Buildroot is STILL building the root. It crashed last night because of a bug in a make script in the
Linux kernel. While attempting to get the compilation to resume, I first tried re-running. That didn't work. Then I noticed one of the error messages said that it was missing a library, and googled it. The first search turned up only 8 results, none of which had anything to do with my issue. So I tried shortening the search term.
The second search came up with one related search result (all the others were garbage), which said to check the make script. When I opened the script, the compiler option was surprisingly absent. It is strange how nobody previously realized that it wouldn't compile when testing the code. Anyway, I inserted the compiler option and
Buildroot resumed.
Still waiting . . .
![](https://upload.wikimedia.org/wikipedia/commons/e/ee/Backup_Backup_Backup_-_And_Test_Restores.jpg)
hoping . . .
praying . . .
crossing my fingers . . .
you name it, I'm doing it . . .
I really want to get going on transferring the robotics code to our flash drive so that we are not dependent on using one particular computer.
You never know what will happen in life, as this project has shown,
so it is always good to have a back-up plan.
Bonus Tech Stuff: Personal Cluster Processing
With SBC's (single board computers) available for cheap, it has become incredibly inexpensive to deploy personal clusters. In this post, I will try to explain some of the necessary choices for constructing a cluster, and what you may want to use it for.
What can I use a Cluster for?
Personal clusters can be used for highly parallel tasks that may take a long time to complete on a personal computer. One that I need badly, and other people also probably need, is compilation of large source trees. With a powerful cluster running
distcc, you could theoretically compile the
Linux kernel in a minute. For people who do not compile that much, you could use it for simpler tasks such as web serving, http caching, a
noSQL server, or high-capacity file storage. Or, you could donate processing time to a
BOINC-based crowd processing project such as
VirtualLHC@Home.
What Nodes (Computers) can I use?
You may use any device that you want that runs Linux. It is often appealing to set up a cluster with old out-of-use computers that you may have lying around. However, if you are going to be serious about your cluster, the energy consumption of the old computers may outweigh the cost of new nodes in the long run. I suggest using cheap single-board-computers for building a cluster because they are cheap, low-energy and long-lasting. You should select an SBC based on your needs. For general purpose, an Orange Pi PC or Orange Pi One would be your most cost effective. However, if your tasks involve a lot of RAM or are disk intensive, you may want to consider using an ODROID-XU4 with a USB-connected SSD or similar. For some people, a mix of boards could be best.
What Software can I use?
For some people, stock OS images and SSH will suffice. However, I suggest using Docker on Buildroot for more advanced users. This will allow you to select whatever Linux software you like, and will free up as much of the RAM and processing power as possible. Buildroot has support for most popular SBCs, and allows you to generate a minimalist image to run Docker on. Removing unnecessary software will increase processing capacity, decrease attack surface, and significantly reduce the chances of unexpected crashes. Docker will allow you to quickly deploy any Linux userspace software stack you want.
What can I do to Keep this Organized?
If possible, I would suggest building a slide-in mounting system with proper wire routing. However, some people just tend to make everything messy. In order to mitigate this, I have a few simple tips:
- Label all wires
- Color code whenever possible
- Use wire routing whenever possible
- Avoid floating boards and routers - if one wire slips, the whole thing could come crashing down
- Whether or not you do the above, you should check that you know where every wire goes before bringing the system online
If you are only using a few nodes, 1-4 may not make sense. But most important is number 5. It may save hours of debugging because a networking switch was unplugged from power or something similar.
#slice2016