HumBo - Install Slackware ARM

Notes for Pre-installation

From this guide you are able to install Slackware ARM 14.1/current Linux on a HummingBoard, or Cubox-i. The version of HummingBoard (or Cubox-i) you have might not be the same but the procedure is very similar during all Slackware ARM installs, with few changes. The hostname 'slackware' is given to your Slackware ARM Linux system during the installation process.

We are using a HummingBoard i2eX, a 16Gb microSD card (Samsung EVO), and a 16GB USB memory stick (Imation Nano). Your own storage devices may be different so bear that in mind throughout this guide.

Installing without a screen/monitor

FatDog says ... In the event that you do not have a screen/monitor/tv to connect to your HummingBoard, it's possible to boot the Slackware ARM installer with networking enabled and a specified keyboard layout (locale) in order to login and perform the installation remotely (i.e. from another computer). It's just a matter of editing the 'uEnv.txt' file on the boot partition of the microSD card before you boot with it (see this example) and connecting your HummingBoard to your network via an Ethernet cable. So, if you wanted to perform a remote installation and you have an American (US) keyboard layout, you would insert the following code into the existing code within the uEnv.txt file:

kbd=us nic=auto:eth0:dhcp

Alternatively, if your network does not have DHCP enabled you should specify an IP address and netmask. In this example the IP address is and the netmask is (a netmask of 24 bits):

kbd=us nic=auto:eth0:static:

Of course, you should specify your own IP address, netmask, and keyboard layout here. See this keymaps list for supported keyboard layouts and select one which suits your own keyboard configuration (e.g. kbd=es , kbd=fr , kbd=de , kbd=it , kbd=ru , etc.). So, when you boot the Slackware ARM installer on the HummingBoard you will not be required to enter a keyboard map and networking will already be configured. You can simply login remotely via SSH as 'root' user and just hit the enter key when asked for a password. If you're installing Slackware ARM remotely then some parts of this guide may not apply to you, so you'll have to work around those areas. ;)

To boot the Slackware ARM installer normally just leave the uEnv.txt file unmodified.

Powering on your HummingBoard...

If you haven't done so yet, now is the time to plug everything in and power-on your HummingBoard!

• Insert the microSD card you've just configured into the slot on the underside of the HummingBoard.
• Connect the USB keyboard to one of the USB ports.
• Insert the USB memory stick into the other USB port (if you are using one for your source media).
• Plug in the relevant HDMI/RCA video cable.
• Attach the Ethernet cable to the Ethernet port on the HummingBoard - plug the other end of the cable into your Internet router/hub/switch.
• Turn on your screen/monitor.
• Connect the Micro USB power cable to the HummingBoard...

FatDog says ... If you don't have a USB stick available you're still able to install Slackware ARM by configuring your network connection and using a FTP/HTTP server as your source media. Instructions on how to do this are included within this installation guide.

The red PWR (power) LED will illuminate. The green ACT (activity) LED starts to flash intermittently and you will see the familiar bootloader on your screen followed by scrolling text. This tells you it's booting normally.

When you see a message about setting up your keyboard you're ready to begin installing Slackware ARM Linux. :)

Install Slackware ARM Linux

After successfully booting your HummingBoard with the pre-configured microSD card inserted, the first thing you will be presented with in the Slackware ARM installer is a choice of keyboard map which looks something similar to the following:

If you're not using a US layout keyboard, you should select an appropriate keyboard map here by typing '1' and pressing the enter key, following the directions given. If you are using a US layout keyboard just press the enter key. Then you will see this next screen:

You should type 'root' as the login and press the enter key.

Now you'll see the next screen and this is where you'll start to configure your system and install Slackware ARM Linux.

Setting the system date & time

IMPORTANT! : Before you do anything else, you need to set the correct time and date on the Linux system. This is done with the 'date' command using the following format:

date -s "DAY MONTH DATE HH:mm:ss YEAR"

The DAY, MONTH, DATE, hour (HH), minute (mm), and second (ss) values are always specified in 2 digits and have a leading zero '0' when applicable. The time is always specified as the 24 hour clock. The YEAR is always specified with 4 digits.
Example: if the time is 5:03pm on Friday 13th March 2015 then the command would be as follows:

root@slackware:~# date -s "Fri Mar 13 17:03:00 2015"
FatDog says ... If you do not set the correct time and date your Linux system will think it's 00:00 (midnight) on 01 January 1970, the date of the UNIX epoch. NB: this is never a good thing.

Configuring the NIC for Slackware ARM installation [optional]

You will require access to the network or the Internet (for example: if you wish to perform a remote installation from another computer, or you don't have a USB stick and wish to use a FTP/HTTP server as your source media) so you may want to setup the network interface card at this point. If not, you can safely skip this procedure and continue from the 'Information on available drives' section.

Before you can start configuring your NIC, you're going to need 2 pieces of information.
• The IP address of your internet gateway
• The IP address you want to assign to your HummingBoard

FatDog says ... The default gateway is a device on a network (i.e. your router), through which another device on the network (i.e. your HummingBoard) can access or send data packets to another device on a different network (i.e. a web server on the Internet). This may seem mind-boggling but it's relatively easy to setup, as long as you have the correct default gateway IP address. Linux users can type 'route -n' at the command prompt on any system already connected to the Internet to find out their default gateway IP address. Windows users can run the command 'ipconfig' within Windows Command Processor (cmd.exe) to find out their default gateway IP address.

Assuming you have the correct network information required to setup your NIC, you are now going to type the following command:

root@slackware:~# ifconfig eth0 <HummingBoard IP address> netmask up

ifconfig is a command line tool used to configure a network interface in Linux. eth0 (that's a ZERO on the end and not an "O" as in Orange) is the identity of the Ethernet interface on the HummingBoard. <HummingBoard IP address> is the IP address you want to assign to your HummingBoard. netmask denotes the network mask which decides the potential size of your network. up is the flag which enables the Ethernet card and makes it ready to send and receive data.

Next you need to specify the default gateway IP address and you're going to set this up by typing the following command:

root@slackware:~# route add default gw <Internet gateway IP address>

Next you need to add a Domain Name Server (DNS) which is for managing the names of Web sites. DNS technology allows you to use names (like or and your computer automatically finds that address on the Internet and takes you to the Web site/page/file. Without DNS you would only be able to access Web sites by their IP address and that is something which we're not going to cover here.

You're going to create a file called resolv.conf and edit it by adding a single line of text. This will be done in one easy command using 'echo' and specifying an OpenDNS IP address. Type the following on the command line:

root@slackware:~# echo nameserver > /etc/resolv.conf

Now you should be able to access the Internet and you can test this by typing:
ping -c 3

You should see 3 results of something like "64 bytes from (". If you receive a timeout error then something is wrong and you need to check your settings (IP addresses) and go back to the ifconfig section and do it again. If all is good and you have a ping reply from then your NIC and Internet connection have been setup successfully.

Remote Slackware setup, configuration & install [optional]

Now that you have successfully setup your NIC it is possible to carry on with the setup, configuration and installation of Slackware Arm Linux remotely, using putty for example, or any other SSH client.

In order to start a SSH server on your HummingBoard which allows you to login remotely all you have to do is start dropbear, a script already included in the Slackware ARM installer files. To do this type the following at the command prompt:

root@slackware:~# /etc/rc.d/rc.dropbear start

You are now able to log-in on your HummingBoard using 'root' as your username and just hit enter when asked for a password. If you're not already familiar with remotely logging in via SSH then it's probably not something you want to get into at this point.

Information on available drives

Now you're going to need some information about your Linux system and the available drives. The easiest way to do this is with the 'fdisk -l' command, like this:

The top part of the output is '/dev/mmcblk0' and this is our microSD card. Notice that '/dev/mmcblk0p1' is the FAT32 partition where our boot files are located. /dev/mmcblk0p2 is the /swap partition, and /dev/mmcblk0p3 is the /root partition. The bottom part, '/dev/sda1' is the USB memory stick containing our Slackware ARM operating system files. In this example, our 16Gb USB memory stick containing the Slackware ARM 14.1 source is /dev/sda. On your own system it may be different (e.g. /dev/sdb).

Make a note of these settings:
• boot partition = /dev/mmcblk0p1
• Slackware ARM source = /dev/sda1 (or /dev/sdb1)

FatDog says ... If you're not using a USB stick as your source media then you can ignore the instructions relating to it when following this guide.

The cfdisk partition manager

Now you need to setup the required partitions on your microSD card. You will do this using 'cfdisk' which is a command line partition manager in Linux. Remember your microSD card is '/dev/mmcblk0' and this is the drive we tell cfdisk to use. So, go ahead and type the command:

root@slackware:~# cfdisk /dev/mmcblk0

On your microSD card you will see a vfat (FAT32) partition already present in the 'cfdisk /dev/mmcblk0' user interface.

The vfat (FAT32) partition 'mmcblk0p1' is fine as it is. You're going to use that as your boot partition. You'll notice there's a lot of free space available on your microSD card. So, at this point you should delete the root partition and re-create it, using up all the available free space.

Delete and create the root partition like this:

• Move the highlight down to mmcblk0p3, using the cursor keys on your keyboard.
• select [ Delete ] at the bottom, and then press the enter key.
• Select [ Primary ] and press the enter key.

• Now move the highlight at the bottom to [ NEW ], using the cursor keys on your keyboard, and press the enter key.
• Select [ Primary ] and press the enter key.
• When asked to specify size (in MB) just press the enter key.

You should end up with something which looks similar to the screenshot below. Remembering your microSD card capacity might not be the same.

So now you must write the new partition table to disk by selecting [ Write ] at the bottom and type 'yes' when asked to save the changes and press the enter key. Next, select [ Quit ] (or type 'Q') and exit the cfdisk partition manager.

Mount your USB memory stick

In order to read files from your USB memory stick it has to be mounted on the system. This process allocates a directory to the USB storage device so it can be accessed like any other drive or directory on a Linux system.

FatDog says ... You don't *have* to mount your USB memory stick for Slackware ARM 14.1 installation as there is a 'Install from USB Stick' option later on in the setup which will save you the time and trouble. It's still good practice to mount it in any case.

Those who are using a FTP/HTTP server as their source media don't have to mount a USB stick, obviously. ;)

Remember '/dev/sda1' is the partition where the Slackware ARM files are located on our USB memory stick. This is the partition we will need to mount in order to get access to those files. Note that /dev/sda1 is the designation of our USB memory stick, yours may be different. You should mount this partition in the existing '/floppy' directory by typing the following command:

root@slackware:~# mount /dev/sda1 /floppy
root@slackware:~# ls /floppy

If you copied the Slackware ARM files onto the root of your USB storage device, you should get a list of files similar to the screenshot below. Otherwise you should see the name of the directory where you copied the files available in the /floppy directory now.

Running Slackware ARM setup

Type 'setup' at the command prompt.

root@slackware:~# setup

This is the main setup interface you will use. Use the cursor keys to navigate in the menus. If you haven't already selected a keyboard layout map you need to do so now by selecting KEYMAP and pressing the enter key, following all instructions.

Select 'ADDSWAP' and press enter.

The only partition listed is '/dev/mmcblk0p2' and you can just press enter to accept this setting. Select < No > when asked to check swap partition for bad blocks. You will receive the following confirmation screen where you can just press the enter key:

You're now going to be asked which partition you want to use for your root. There should be only one partition listed - '/dev/mmcblk0p3' - so just select it by pressing the enter key.

On the next screen, select 'Quick format with no bad block checking' and press the enter key.

You want to format this partition 'ext4' so select it in the list and press the enter key.

Your partition is now being formatted.

Once formatting has completed:

Press the enter key to accept and write the new setting in your fstab.

Now you will see this next screen which tells you there are FAT or NTFS partitions found on your system.

Select < Yes > and proceed to the next screen:

With '/dev/mmcblk0p1' highlighted at the top and < Select > at the bottom, press the enter key.

Select 'Root has read/write access, users have no access' and press the enter key.

The next screen asks you where the partition is to be mounted. You want it mounted as your boot partition.

Type /boot in the text box and press the enter key. When this screen refreshes, select < Continue > and do not add any more FAT or NTFS partitions.

Slackware ARM source media - Install from USB stick

This next section is about telling the installer where the Slackware ARM source is located.

The easiest option here is to 'Install from a Slackware USB stick". Your USB memory stick is already plugged in, so just move the highlighter to option 2 and press the enter key.

Just press enter on the next screen to begin... and your USB memory stick should be detected. If this fails, try the 'Install from pre-mounted directory' method.

If your USB memory stick containing the Slackware ARM source was detected ok, you can now skip to Slackware ARM package selection.

Slackware ARM source media - Install from pre-mounted directory

If you mounted your USB stick earlier and made a note that they are on /dev/sda1, you'll remember you mounted that partition to the /floppy directory. So, all you have to do is tell the system it's in a pre-mounted directory.

Select the bottom option 'from a pre-mounted directory' and press the enter key.

In the text box type '/floppy/slackware' and press the enter key.

FatDog says ... Note that if you copied your Slackware ARM files to another directory other than the root of your USB memory pen, the path to those files will be different! Specify your own correct path to the /slackware directory if needed.

Slackware ARM source media - Install from FTP/HTTP server

It's also possible to install Slackware ARM from a FTP/HTTP server. This might be preferable for those who do not have a USB stick handy, or one of a large enough capacity on which to store the Slackware ARM source. This next section will show you how to achieve it.

FatDog says ... NB: You should have already configured your network connection before trying to install from a FTP or HTTP server!

Select the 'Install from FTP/HTTP server' option and press the enter key.

Enter the URL of your chosen FTP/HTTP server. We have selected '' as our server in the example below.

FatDog says ... You may want to check out the list of current and available Slackware ARM FTP and HTTP servers at the bottom of this page:

Now enter the source directory. We have specified 'slackwarearm/slackwarearm-14.1/slackware'. You could just as effectively specify 'slackwarearm/slackwarearm-current/slackware' here to install Slackware ARM current.

Next, you will see the following screen which informs you that the PACKAGES.TXT file will be downloaded. Make sure "OK" is selected and press [Enter] to continue.

When the PACKAGES.TXT file has been found you should select 'No' and press enter to continue.

Now you will see the following screen telling you that the available packages are being processed, with a progress bar.

When this process has completed you're ready to move onto the next step of the Slackware ARM installation.

Slackware ARM package selection

The next section deals with packages that will be installed on your Slackware ARM system. You can choose which packages to install or omit. If you're going for a full install you can pretty much select everything in the package list. In this guide we will not be installing packages E, KDEI, T, or Y. You may decide differently on which packages you want installed on your system.

Use the cursor keys to move up and down the list and the space bar to select/deselect the highlighted package. When you have finished selecting your packages press the enter key.

Unless you really have a reason not to, or you are very familiar with Slackware package management, now select 'Install everything' and press the enter key...

Sit back and relax for a while, put the kettle on, clean your room (students only), catch up with the latest news and developments from the Slackware ARM Linux Project, while your HummingBoard is otherwise unoccupied...

This process took approx. 35 mins to complete when installing Slackware ARM 14.1 on a HummingBoard i2eX with the packages which we previously selected. Your installation may take the same or a similar time, depending on which HummingBoard you are using, your own choice of packages, and the speed of your microSD card.

Final steps of installation

After all the packages have been installed you will be asked to select a mouse configuration.

Use the cursor keys to move down to 'USB Mouse' and press the enter key. Then, answer yes when asked to 'load gpm program at boot time?' by pressing the enter key. For those who don't already know, 'gpm' is a simple utility which enables you to copy and paste text on the command line.

Network configuration

You want to select yes and configure your network.

Specify a name (hostname) to give to your system. For the purpose of this guide we named ours 'myrasbox'. When you have chosen a suitable name for your system and entered it into the text box, press the enter key.

Enter a domain name. It does not have to be an existing or active domain name. For the purposes of this guide we selected 'slackarm.lan' for a domain name.

You want to select yes and configure your DHCP hostname.

Enter the same name you gave to your hostname. We selected 'myrasbox'. When asked if the DHCP settings are correct, select < Yes > and press the enter key.

Configure startup services

These are services which start when the system is booted. For example, you could have the apache web server running on startup, or you could run the samba file server too. If you want to login to your HummingBoard remotely it's imperative that you have the SSHD daemon service enabled.

When you are happy with your selection press the enter key.

Next, answer < No > when asked 'Would you like to try out some screen fonts?' and press the enter key.

Now you can set the hardware clock the system will use.

It's best if you select < Yes > and choose a location close to where you are situated, but not absolutely necessary.

For we have selected the timezone of 'Europe/Amsterdam' because we are based in Holland. You should select your own timezone here and press the enter key.

Select your desktop environment

When installing a desktop environment it boils down to one thing, preference. From the options available, there are a few to choose from, each with their own benefits and drawbacks. KDE is very nice and streamlined, but takes a toll on the HummingBoard due to it being somewhat resource hungry. On the other hand, fluxbox is very light and speedy but a little basic in looks and the GUI isn't to everybody's liking. Xfce is quite lightweight and aims to be fast and low on system resources, while still being visually appealing and user friendly. Blackbox is similar to Windowmaker and is able to generate beautiful window decorations on the fly at high speed. It's probably worth your while reading up on some of the different desktop environments available before you select one.

For the purposes of this guide, we will install Xfce as our desktop environment. It's much lighter on system resources than KDE and perfect for our requirements on the HummingBoard. You may choose your own desktop environment here.

Setting a ROOT password

Next you are asked to set a root password. This password is VERY important because if you ever forget it or lose it, you will not be able to get 'root' access on your Slackware ARM Linux system.

Select < Yes >, press the enter key and type your password, then press the enter key again. You will be asked to repeat the password, now press the enter key one more time.

FatDog says ... Make sure you remember the password you have entered for the 'root' user. Write it down if you need to. It's very important.

Press the enter key to continue.

Completing the install process

You have now completed the installation process. Before you reboot the system there are a few tasks left to do before you can actually reboot successfully. So, if the system tells you to reboot, don't do it yet.

Press the enter key and you'll find yourself back in the familiar Slackware ARM setup interface. DO NOT REBOOT!

Select EXIT at the bottom of the setup interface and press the enter key. DO NOT REBOOT!

Select < No > at the bottom of the 'Exit Slackware Linux Setup' menu and press the enter key. DO NOT REBOOT! You want to be dropped to the command prompt in a shell. If you reboot right now you would reload the Slackware ARM Linux installer/setup you have just completed!

The above screenshot is what you want to be looking at, with a waiting cursor at the command prompt. If you see this then we are good to continue.

To save space on our new Slackware ARM 14.1 Linux system we are going to remove some packages which are not required. At the command prompt type the following commands:

root@slackware:~# ROOT=/mnt removepkg kernel_kirkwood kernel-modules-kirkwood
root@slackware:~# ROOT=/mnt removepkg kernel_armv7 kernel-modules-armv7
root@slackware:~# ROOT=/mnt removepkg kernel_versatile kernel-modules-versatile

After all of the superfluous kernel and module packages have been removed, you are now going to mount the '/dev/mmcblk0p1' boot partition (remember that one?) in the '/mnt/boot' directory. So, now type the following command:

root@slackware:~# mount -t vfat /dev/mmcblk0p1 /mnt/boot

Now that's done, you must do some necessary housekeeping on your boot partition before you install any new system files.

Configure your boot partition for future use

It's an important issue and one that you should address as soon as possible because right now you have very little free space on the boot partition of your microSD card. Approx. 62MB is used with only a small amount remaining. This is good when you need to install new files on the boot partition, such as firmware updates or new kernels. So, why is there so little free space on your boot partition? It's because the /boot partition was optimised for the Slackware ARM installer and the zImage (initramfs) is still there. This file alone is responsible for over 60MB of the space taken up on your boot partition and it's not even required any longer! You are going to remove it, of course, with a simple 'rm' command.

FatDog says ... IMPORTANT! : BE VERY CAREFUL HERE! If you make an error and delete the wrong file(s) you will find yourself in seriously deep Linux doo-doo! 'rm' is a very powerful command when used by root and can irreparably delete, in the blink of an eye, that which took you eons to create! Your HummingBoard and/or Slackware ARM Linux system might not be offering you a log-in prompt after you reboot if you have deleted the wrong file(s)!!!

Type the command below to remove the zImage RAM disk file from the boot partition:

root@slackware:~# rm /mnt/boot/zImage

Next, type 'df -h' on the command line and you should receive the following output:

The output tells you that your boot partition '/dev/mmcblk0p1' now has quite a lot of free space. This is exactly what you needed to achieve.

Now, you need to install those new packages containing the firmware and kernel data. To do this type the following command:

root@slackware:~# ROOT=/mnt installpkg /humbo-extra/*.txz

You should see the following screen on successful installation of the HummingBoard firmware and kernel packages:

If you previously mounted your USB memory stick - mount /dev/sda1 /floppy - (i.e. you did not use the 'Install from Slackware USB stick' option during setup) you should now unmount it from the /floppy directory. To do this type the following command:

root@slackware:~# umount /floppy

Now you can unplug your USB stick from the HummingBoard.

You are about to reboot the system. When it reboots you will be prompted for a login username and password. Until the Slackware ARM installation and update process has completed, and on any other occasion for which you need to use 'root' access, you should always login with the following credentials:

login: root
password: ** the password you specified for the root user account **


So, without further ado, type the following at the command prompt:

root@slackware:~# reboot

Rebooting for the first time after installing Slackware ARM Linux

It may take a minute or two to boot up for the first time after installing Slackware ARM Linux. Don't worry, the next time you boot/reboot your HummingBoard it will be much quicker. Eventually you will be prompted to log in. You should use the following credentials at this point:

login: root
password: ** the password you specified for the root user account **

Note that the hostname of your Linux system has now changed from 'slackware' to the name you gave in the HOSTNAME settings during setup. For the purpose of this guide, we named our Slackware ARM system, 'humbox'.

After logging in, go to the next section in this guide... Update Slackware ARM with slackpkg.