Eagle-eyed forum user Psynapse pm'd me about a month ago, asking if, since the RHEL-like ARM distro RedSleeve appeared to be armv5tel based, might it be possible to create a B3 image?
Well, I'm pleased to say the answer was 'yes', and that I've just released version 1.0.0 of the live-USB image of RedSleeve Linux (v7) for the B3 on GitHub (here). All included packages are up-to-date against the RedSleeve tree, as of 9 April 2016.
You can burn the supplied image to a USB key (>=4GB, Lexar and SanDisk keys seem the most reliable), then boot your B3 from it, without affecting any installed (Excito) system on your B3's hard drive. (The compressed image is 223MiB; writing takes between 5 and 15 minutes, depending on your system.) You can even boot a diskless B3 (without having to modify the image)! No soldering, compilation or U-Boot flashing is required.
The live-USB may then be used as a rescue disk, to play with RedSleeve Linux, or as the starting point to install RedSleeve on your B3's main hard drive. Any packages you install, or other changes you make, while running the live-USB are saved on the USB key, but do not affect your existing Excito system, so you can run RedSleeve for a while, then reboot back into your Excito system and continue to use it as normal, then boot back into the USB at a later date - any changes you made will still be there when you do.
RedSleeve, like Debian, is a binary distribution, so you can install new packages and update your B3 very quickly (using the package manager command "yum"; cheat-sheet here).
A few quick points about the image:
- At the time of writing, the standard kernel version supplied by RedSleeve (3.10.14) does not have the B3 specific patches included (these hit the mainline in version 3.15), and so is unusable for booting. Accordingly, I have built a 4.5.0 Gentoo kernel + module set, and shipped this with the image (you can see the interstitial kernel (see next point) config here, and the 'real' kernel config here). It has all the necessary systemd options enabled (for auditing etc.). The 4.5.0 module set has not been stripped, but you can easily do this yourself if you like. The RedSleeve 3.10.14 kernel and module set have been left in place on the image also, for reference.
- Two kernels are actually used during the boot process. The first, 'interstitial' kernel has an integral initramfs (an archive of which is available here), within which is a simple init script (which you can see here); this script attempts to mount the first partition of the USB key (by UUID, so it will work even on a diskless chassis) and then sources the file /boot/kexec.sh within it (which you can see here). This script in turn loads the 'real' kernel zImage from /boot, applies a small workaround patch, sets up the kernel command line, and then switches to this 'real' kernel (using kexec). You can easily modify the script fragment /boot/kexec.sh if you like, for example to change the kernel command line settings (without having to change U-Boot's flash environment), or to run a different kernel (e.g. should RedSleeve release a version >= 3.15 in future, and you wish to use that instead). The use of an interstitial kernel has no effect on system operation once booted.
- You must use Ethernet to log in when using this image: RedSleeve does not include a build of hostapd at this time, so WiFi login isn't supported 'out of the box'. The necessary kernel WiFi support is present on the image, however, so once logged in you can build your own copy of hostapd using e.g. the instructions here.
- As shipped, the image has the iptables firewall service disabled, and does not have forwarding set up between the lan and wan ports. As such, while you should be able to access the Internet when logged into your B3 over ssh (to install packages etc.), client PCs will not be able to e.g. browse the web via the lan interface out of the box. Setting up such a configuration is relatively straightfoward however.
- Finally, as shipped, the B3's wan (eth0) interface is set up as a DHCP client, and the lan (eth1) interface is running a simple DHCP server (using dnsmasq). If your local network does not support DHCP, you should still be able to log in via eth1 and then modify the configuration for eth0 (the wan port) appropriately (the file you need to edit is /etc/sysconfig/network-scripts/ifcfg-eth0; alternatively, just use the supplied nmtui tool, as described here).
Once logged in, you can then play around with RedSleeve. For example, install the apache web server:
Code: Select all
[root@rsb3 ~]# yum install httpd (confirm if prompted, this is equivalent to apt-get-install on Debian)
Finally, two points of order:
- I am not a day-to-day user of RedSleeve (or RHEL) so it is quite possible that some of the configuration / settings on the image might not be "just so". If you do find any issues, please email me (firstname.lastname@example.org) and I will try to address them in a subsequent release.
- It is important to bear in mind that RedSleeve is not produced, maintained or supported by Red Hat. Most of the binaries on the image have been taken from the RedSleeve DreamPlug Kirkwood image (here). Accordingly, you should be comfortable with RedSleeve as an organization, before trying out the image. Please refer to their site for licensing details of included firmware files etc.