Recalbox on the ODROID-XU4: Getting Started July 1, 2018
Total Page:16
File Type:pdf, Size:1020Kb
BASH Basics: Introduction to BASH July 1, 2018 Customize the BASH prompt and BASH behavior Linux Gaming: PC-Engine / TurboGrafx July 1, 2018 The PC-Engine, or TurboGrafx-16 as it is called in the United States, was the rst 16 bit console Object Tracking Using oCam and ODROID-XU4: An Easy Step-By-Step Guide To Object Tracking July 1, 2018 I thought many people would be interested in an easy to follow guide on how to use the oCam and ODROID-XU4 for object tracking using OpenCV ODROID-GO Game Kit: A Handheld Gaming Console To Celebrate Hardkernel’s 10th Anniversary July 1, 2018 To celebrate ODROID’s 10th anniversary, we present the ODROID-GO Game Kit. It includes a special anniversary board and all the additional parts to put together your own game kit and see the workings behind such a device. It is not only a fun assembly project but also an educational tool Mali GPU accelerated Qt5: Running on Ubuntu 18.04 July 1, 2018 Ubuntu 18.04 Bionic comes with Qt 5.9.5 by default. However, Canonical has built it without considering the ARM Mali GPU detection, and Qt5 doesn’t work on Ubuntu 18.04 at all. So, we have to build Qt5 from source code manually. This is a quick and dirty build guide, that I Player Unknown’s Battlegrounds (PUBG) On The ODROID-XU4: How To Install and Play With A Keyboard And Mouse July 1, 2018 PlayerUnknown’s Battlegrounds is a multiplayer online battle royale game developed and published by PUBG Corporation Turning your ODROID Into a Tor Relay July 1, 2018 Tor is free software that enables access to an open network useful in anonymous communications Recalbox on the ODROID-XU4: Getting Started July 1, 2018 the ODROID-XU4 runs a bevy of operating systems including RetroPie, Ubuntu MATE, and RecalBox Liquid Cooling Part 1 – Cluster July 1, 2018 After nding some small 15x15x5mm heatsinks, I decided to create an ODROID cluster using water cooling in order to reduce its temperature and noise. I started with a single ODROID-XU4 to see if the small heatsinks were powerful enough to distribute heat away from the board. 200TB GlusterFS Server: Using The ODROID-HC2 For Massively Distributed Applications July 1, 2018 Over the years, I have upgraded my home storage several times. Like many, I started with a consumer-grade NAS.Enter the ODROID-HC2. With 8 cores, 2 GB of RAM, Gbit ethernet, and a SATA port it oers a great base for massively distributed applications. Home Assistant: A DIY Smart Light Project July 1, 2018 Ever since I started working with Home Assistant and automating various things around the house I wanted to have a way to control the lights. I looked at smart light bulbs, like Philips Hue, but they are expensive. Also, most solutions use proprietary protocols or cloud services which may leak Getting Started With OpenCL: Using The ODROID-XU4 July 1, 2018 While I tested OpenGL ES with tools like glmark2-es2 and es2gears, as well as WebGL demos in Chromium, I did not test OpenCL, since I’m not that familiar with it, except it’s used for GPGPU (General Purpose GPU) to accelerate tasks like image/audio processing. That was a good excuse to Liquid Cooling Part 2 – Server July 1, 2018 The most stylish cooling project to date for our community, a liquid-cooled ODROID took about 5 weeks to complete, with an average of 12-18 hours a day spent working on the project. It weighs a whopping 6.5lbs, with a total cost of around $950, including the board, accessories, cooling hardware, BASH Basics: Introduction to BASH July 1, 2018 By Erik Koennecke Tutorial What happens at startup and login with variables and /etc/prole calls /etc/bash.bashrc, so there is one BASH, and how can I customize the BASH prompt and more to add to the list. But ~/.prole starts also BASH behavior? After looking at a lot of essential ~/.bashrc, so this is the place we need to look at for all commands, it’s time to do something fun. When we the interactive shells. When an interactive login shell want to live on the command line, it’s a good idea to exits, or a non-interactive login shell executes the exit shape it to our needs. For this, we rst need to look at builtin command, Bash reads and executes what is done by BASH when a user logs in or BASH commands from the le ~/.bash_logout, if it exists. starts by invoking a script. Invoked as an interactive non-login shell BASH invoked as an interactive login shell When you have a graphical UI and open a terminal This is the usual case when you log into the system application like mate-terminal or xterm, a non-login via ssh, or have a terminal open without a graphical shell gets executed. When an interactive shell that is UI. When BASH is invoked as an interactive login shell, not a login shell is started, BASH reads and executes it rst reads and executes commands from the commands from ~/.bashrc, if that le exists. The – following les: rcle le option will force BASH to read and execute commands from le instead of ~/.bashrc. • /etc/prole, if that le exists. After reading that le, it looks for • ~/.bash_prole, • ~/.bash_login, and • Invoked non-interactively ~/.prole, in that order, and reads and executes For the sake of completeness, this is what happens commands from the rst one that exists and is when you run a script with BASH. When BASH is readable. started non-interactively, to run a shell script, for example, it looks for the variable BASH_ENV in the environment, expands its value if it appears there, and uses the expanded value as the name of a le to read and execute. For our use cases, it is ~/.bashrc which is the most important, since it deals with all the interactive BASH shells. If you want something to run only once after login, put it in /.prole instead. ~/bash_prole could also be used, but doesn’t exist on Ubuntu. Examples for both would be adding a function to Figure 1 – bashrc generator ~/.bashrc, since you want to have it available everytime: (Figure 1 – bashrc generator) After you dragged the interesting elements into box ### shows last installed packages from history #2, you’ll notice that there’s a lot of escape code in function apthistory(){ box #4. This is how BASH can interpret dierent zcat qf /var/log/apt/history.log* | grep Po variables and colors. The principle is similar to '^Commandline: apt install (?!.* Unicode or HTML coded as plain ASCII, just with colors reinstall)K.*' and screen properties. } Modern terminals like mate-terminal or xterm are For the other option, adding something like the capable of 256 colors. To see them, save the following following to the path via ~/.prole, which you want script as 256colors.sh, make it executable with chmod only once for a login: a+x and run it: $ export PATH="$PATH:/some/addition" #!/bin/bash This avoids a path which has :/some/addition tacked for fgbg in 38 48 ; do # Foreground / on every time BASH is called. If you want to see Background everything that happens with BASH and these les for color in {0..255} ; do # Colors put together, you can try: # Display the color printf "e[${fgbg};5;%sm %3s e[0m" $color $ PS4='+ $BASH_SOURCE:$LINENO:' $color BASH_XTRACEFD=7 bash xlic "" 7>&2 # Display 6 colors per lines if [ $((($color + 1) % 6)) == 4 ] ; then However, don’t be surprised by the volume of it, and echo # New line don’t forget to exit again. fi done Changing the BASH prompt echo # New line Now it’s time to put this into practice. While the done colored standard prompt is nice, it might be better to exit 0 have it tailored to your liking. Go to bashrcgenerator.com and play with the dierent This is what your terminal is capable of. Now on the options. bashrcgenerator.com site, you can double-click the elements in box #2 for dierent colors and boldness. The escape codes are generated in box #4. After you nd a version you like, copy the code from box #4 and test it in your BASH window by pasting it and pressing return. If you are satised, open ~/.bashrc with a text editor, search for the line starting with PS1= and packages. After you have changed the ~/.bashrc, don’t replace it with the line from box #4, but without the forget to log out and log in again to have your export part! changes recognized! Just give the function a name, Personally, I like to keep a balance between keeping it start with function functionname() and put your code short, simple and unobtrusive, and having dashboard- between curly brackets. like information in the prompt: Another fun example would be to get the current weather in the console. You can get a current weather report in the terminal by doing curl wttr.in/YourCity, with the two-letter language prex like fr.wttr.in/Paris you can get a weather report for Paris in French. To see all the options, type the following command: $ curl wttr.in/:help. It is annoying to always type all the desired options; with a function, you can skip all that and just type “wttr” to get the current weather for your location, in Figure 2 – command prompt with PS1 example the right language and all the options you want: As you can see, the root prompt diers from the user function wttr() prompt to remind me that I have root power and can { potentially destroy my system when I am careless.