[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

This is an old revision of the document!


Slackware ARM on the Raspberry Pi

Since there are so many ARM devices coming on to the market, it is not possible to provide support for them all in the main tree.

The Raspberry Pi is supported outside of the official Slackware ARM tree by the Slackware community.

Slackware releases 13.37, 14.0 & 14.1

Since the release of Slackware ARM 14.0, there have been a number of community efforts to bring Slackware to the device:

Site Slackware versions Using official Slackware packages Installation methods Notes
fatdog 14.0, 14.1 Yes Slackware installer An end-to-end HOW TO guiding you through the installation and setup process.
Stanley Garvey 14.0 Yes Slackware installer & pre-made images Pre-made installed OS images ready to copy to an SD card
Dave's Collective 13.37 Yes Slackware installer An excellent set of instructions in order to have Slackware ARM running on your Raspberry Pi.

Although the community does its best to keep up with the hardware changes there may be times when the above notes and images fail to boot. If this happens you may work around the problem by borrowing some stuff from rasbian or by compiling your kernel from sources (see here for a guide on doing that http://elinux.org/RPi_Kernel_Compilation):

Download the current stable raspbian image from http://www.raspberrypi.org/downloads Unzip it and mount the partitions therein via loopback and then put all that is needed in a tarball for later use:

root@darkstar:/tmp# fdisk -l 2013-09-10-wheezy-raspbian.img 

Disk 2013-09-10-wheezy-raspbian.img: 1939 MB, 1939865600 bytes
255 heads, 63 sectors/track, 235 cylinders, total 3788800 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000b03b7

                       Device Boot      Start         End      Blocks   Id  System
2013-09-10-wheezy-raspbian.img1            8192      122879       57344    c  W95 FAT32 (LBA)
2013-09-10-wheezy-raspbian.img2          122880     3788799     1832960   83  Linux
root@darkstar:/tmp# losetup -o $((8192 * 512)) /dev/loop0 2013-09-10-wheezy-raspbian.img
root@darkstar:/tmp# losetup -o $((122880 * 512)) /dev/loop1 2013-09-10-wheezy-raspbian.img
root@darkstar:/tmp# mount -o ro /dev/loop1 /mnt/floppy/
root@darkstar:/tmp# mount -o ro /dev/loop0 /mnt/floppy/boot
root@darkstar:/tmp# cd /mnt/floppy/
root@darkstar:/mnt/hd# tar vcpzf /tmp/raspbian_boot_stuff.tgz boot lib/modules/ lib/firmware opt/vc

Please note the sectors of the beginning of the partitions: 8192 and 122880. We need to multiply these by 512 to get the bite offset for the loop device setup. This is done by $((8192 * 512)) and $((122880 * 512)). You will need to change these if the image partitioning scheme changes.
Now partition and format an SD like this: (NB the “fdisk -l” is just to show how I partitioned my SD)

root@darkstar:~# fdisk  -l -u  /dev/sde

Disk /dev/sde: 4093 MB, 4093640704 bytes
126 heads, 62 sectors/track, 1023 cylinders, total 7995392 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd0b5414a

   Device Boot      Start         End      Blocks   Id  System
/dev/sde1            2048      133119       65536    c  W95 FAT32 (LBA)
/dev/sde2          133120     7995391     3931136   83  Linux
root@darkstar:~# mkdosfs -F 32 /dev/sde1
root@darkstar:~# mke2fs -t ext4 -b 4096 -i 16384 -m 0  -L root /dev/sde2
root@darkstar:~# mount -o noatime /dev/sde2 /mnt/hd/
root@darkstar:~# mkdir /mnt/hd/boot
root@darkstar:~# mount -o noatime /dev/sde1 /mnt/hd/boot/

Now you can extract the Slackware ARM miniroot and then the raspbian_boot_stuff.tgz in /mnt/hd.
Edit the /mnt/hd/boot/cmdline.txt and add at the end “ro” and check that the root parameter matches the partitioning of the SD.
Edit the fstab to match your formatting (if that was like I suggested it will look like this:)

root@darkstar:/mnt/hd/etc# cat fstab
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    errors=remount-ro          0       2
/dev/mmcblk0p2  /               ext4    errors=remount-ro,noatime  0       1
root@darkstar:/mnt/hd/etc# 

You can now umount the SD, insert it into the RasbberyPI and boot into your Slackware ARM miniroot to add whatever else you need.
I generally add whatever else I need by simply using wget to pull down slackpkg, installing manually the downloaded slackpkg, editing the mirrors file and then install the rest that's needed with slackpkg itself (internet connection is required for this).
You might want to edit or comment the serial console in inittab to suppress the “s0” respawning to fast message.

Sources

 howtos:hardware:arm:raspberrypi ()