Minimal CRUX-ARM installation

CRUX-ARM is a Linux distro for ARM devices like the Raspberry Pi that follows the KISS philosophy. If you’re looking for a minimalistic system you might want to have a look at the construction kit.

I’m using CRUX-ARM on one of my Raspberry Pi’s. The installation fits on a 1 GB memory card. On the project’s wiki there is a manual for installing the system: [click me!]

The basic installation consists of some unneeded packages that can be removed:

# prt-get listinst|less
# prt-get remove reiserfsprogs xfsprogs jfsutils pciutils btrfs-progs hdparm sudo ppp exim mlocate
# prt-get remove mlocate
# groupdel mlocate

To make SSH work you need to customize the file /etc/hosts.allow and the daemon autostart configuration:

# echo "sshd: ALL" >> /etc/hosts.allow
 # vi /etc/rc.conf
 ...
 SERVICES=(net crond sshd)

ESC ZZ

It is also a good idea to alter the paging behaviour and the daily rdate cron job:

# echo "vm.swappiness=0" >> /etc/sysctl.conf
# vi /etc/cron/daily/rdate
...
/usr/bin/rdate -nav pool.ntp.org

ESC ZZ

Because this installation doesn’t need any graphical software you can disable the Xorg repositories:

# mv /etc/ports/xorg-arm.rsync /etc/ports/xorg-arm.rsync.inactive
# mv /etc/ports/xorg.rsync /etc/ports/xorg.rsync.inactive
# vi /etc/prt-get.conf
...
#prtdir /usr/ports/xorg-arm
#prtdir /usr/ports/xorg

ESC ZZ

# rm -Rf /usr/ports/xorg*

In my case the firmware only detected 128 MB memory – the reason for this effect is an outdated firmware version. Using a tool named rpi-update this firmware can be updated easily. During the update also a new kernel is installed – after rebooting the system old kernel modules can be removed. The update also installs some tools for maintaining the single board computer – to use these tools you need to update the library cache:

# wget --no-check-certificate http://goo.gl/1BOfJ -O /opt/bin/rpi-update 
# chmod +x /opt/bin/rpi-update
# rpi-update
Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS
Performing self-update
ARM/GPU split is now defined in /boot/config.txt using the gpu_mem option!
We're running for the first time
Setting up firmware (this will take a few minutes)
Using HardFP libraries
If no errors appeared, your firmware was successfully setup
A reboot is needed to activate the new firmware
# reboot
# rm -Rf /lib/modules/3.6.11
# echo "/opt/vc/lib" > /etc/ld.so.conf.d/vc.conf
# ldconfig

It is a good idea to install all available updates afterwards:

# ports -u ; prt-get diff
# prt-get sysup

Because CRUX-ARM is a source-based Linux distro all updates are compiled which can take a lot of time. “Installing” all updates took a complete day for me.

For impatient users I uploaded all update packages that were available when I wrote this article: [click me!]

# wget --mirror -nH --cut-dirs=100 http://crux.stankowic-development.net/rpi/packages --accept="*.pkg.tar.gz"
# for i in *.pkg.tar.gz ; do pkgadd -u $i; done

There is also an image of my CRUX installation available: [click me!]

Sharing is caring

Leave a Reply