[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

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
howtos:hardware:arm:raspberrypi [2015/12/12 19:38 (UTC)] – [Slackware ARM on the Raspberry Pi] louigi600howtos:hardware:arm:raspberrypi [2017/04/26 22:01 (UTC)] – [Slackware ARM on the Raspberry Pi 1] mozes
Line 1: Line 1:
-====== Slackware ARM on the Raspberry Pi ======+ 
 +====== Slackware ARM on the Raspberry Pi ======
  
 Since there are so many ARM devices coming on to the market, it is not possible Since there are so many ARM devices coming on to the market, it is not possible
Line 7: Line 8:
  
  
-=== Slackware releases 13.37, 14.0 14.===+=== Slackware releases 13.37, 14.014.===
  
 Since the release of Slackware ARM 14.0, there have been a number of community Since the release of Slackware ARM 14.0, there have been a number of community
 efforts to bring Slackware to the device: efforts to bring Slackware to the device:
 +
 +Slackware ARM 14.2 is the only available version of Slackware that is officially supported/maintained, that runs on the Raspberry Pi 1. Releases of Slackware ARM greater than version 14.2 are not backwards compatible, since they moved to a hard floating point ABI and has a minimum CPU requirement of ARMv7.  The Raspberry Pi 1 only has ARMv6 architecture.
  
 You should follow one of the links in the table below.  Each is maintained by a separate author as part of the Slackware-on-Raspberry Pi community. You should follow one of the links in the table below.  Each is maintained by a separate author as part of the Slackware-on-Raspberry Pi community.
  
 ^ Site ^ Slackware versions ^ Using official Slackware packages ^ Installation methods ^ Notes ^ ^ Site ^ Slackware versions ^ Using official Slackware packages ^ Installation methods ^ Notes ^
-| [[http://rpi.fatdog.eu/|fatdog]] | 14.0, 14.1 | Yes | Slackware installer | An end-to-end HOW TO guiding you through the installation and setup process. |+| [[http://sarpi.fatdog.nl/|FatDog]] | 14.| Yes | Slackware installer | An end-to-end HOW TO guiding you through the installation and setup process. |
 | [[http://stanleygarvey.com/slackwarearm_rpi/index.php|Stanley Garvey]] | 14.0 | Yes | Slackware installer & pre-made images | Pre-made installed OS images ready to copy to an SD card | | [[http://stanleygarvey.com/slackwarearm_rpi/index.php|Stanley Garvey]] | 14.0 | Yes | Slackware installer & pre-made images | Pre-made installed OS images ready to copy to an SD card |
 | [[http://www.daves-collective.co.uk/raspi/|Dave's Collective]] | 13.37 | Yes | Slackware installer | An excellent set of instructions in order to have Slackware ARM running on your Raspberry Pi. | | [[http://www.daves-collective.co.uk/raspi/|Dave's Collective]] | 13.37 | Yes | Slackware installer | An excellent set of instructions in order to have Slackware ARM running on your Raspberry Pi. |
Line 29: Line 32:
 Unzip it and mount the partitions therein via loopback and then put all that is needed in a tarball for later use: 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 +  root@darkstar:/tmp# fdisk -l 2016-05-10-raspbian-jessie-lite.img
      
-  Disk 2013-09-10-wheezy-raspbian.img: 1939 MB1939865600 bytes +  Disk 2016-05-10-raspbian-jessie-lite.img: 1.3 GiB1386217472 bytes, 2707456 sectors 
-  255 heads63 sectors/track, 235 cylinders, total 3788800 sectors +  Unitssectors of 1 * 512 = 512 bytes
-  Units sectors of 1 * 512 = 512 bytes+
   Sector size (logical/physical): 512 bytes / 512 bytes   Sector size (logical/physical): 512 bytes / 512 bytes
   I/O size (minimum/optimal): 512 bytes / 512 bytes   I/O size (minimum/optimal): 512 bytes / 512 bytes
-  Disk identifier: 0x000b03b7+  Disklabel type: dos 
 +  Disk identifier: 0x84f9d19f 
 +   
 +  Device                               Boot  Start     End Sectors  Size Id Type 
 +  2016-05-10-raspbian-jessie-lite.img1        8192  137215  129024   63M  c W95 FAT 
 +  2016-05-10-raspbian-jessie-lite.img2      137216 2707455 2570240  1.2G 83 Linux
      
-                         Device Boot      Start         End      Blocks   Id  System +  root@darkstar:/tmp# losetup -o $((8192 * 512)) /dev/loop0 2016-05-10-raspbian-jessie-lite.img 
-  2013-09-10-wheezy-raspbian.img1            8192      122879       57344    c  W95 FAT32 (LBA) +  root@darkstar:/tmp# losetup -o $((137216 * 512)) /dev/loop1 2016-05-10-raspbian-jessie-lite.img
-  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/loop1 /mnt/floppy/
   root@darkstar:/tmp# mount -o ro /dev/loop0 /mnt/floppy/boot   root@darkstar:/tmp# mount -o ro /dev/loop0 /mnt/floppy/boot
Line 48: Line 52:
   root@darkstar:/mnt/hd# tar vcpzf /tmp/raspbian_boot_stuff.tgz boot lib/modules/ lib/firmware opt/vc   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 byte offset for the loop device setup. This is done by <nowiki>$((8192 * 512))</nowiki> and <nowiki>$((122880 * 512))</nowiki>. You will need to change these if the image partitioning scheme changes.\\+Please note the sectors of the beginning of the partitions: 8192 and 137216. We need to multiply these by 512 to get the byte offset for the loop device setup. This is done by <nowiki>$((8192 * 512))</nowiki> and <nowiki>$((137216 * 512))</nowiki>. 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) Now partition and format an SD like this: (NB the "fdisk -l" is just to show how I partitioned my SD)
  
Line 69: Line 73:
   root@darkstar:~# mount -o noatime /dev/sde1 /mnt/hd/boot/   root@darkstar:~# mount -o noatime /dev/sde1 /mnt/hd/boot/
      
 +It's not a typo I got a bad headache figuring out why it did not work: the boot partition is to me made with id "c" but such small partitions have issues when you try to make a fat32 filesystem on them, you will get an error lamenting some issue with insufficient clusters but some sort of filesystem is made and if you ignore that and proceed you end up with something that does not boot. What you need to do is actually tell mkdosfs to make a fat16 filesystem and then things start to work right.
 +
 Now you can extract the Slackware ARM miniroot and then the raspbian_boot_stuff.tgz in /mnt/hd.\\  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 /mnt/hd/boot/cmdline.txt and add at the end "ro" and check that the root parameter matches the partitioning of the SD.\\
Line 82: Line 88:
 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).\\ 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. You might want to edit or comment the serial console in inittab to suppress the "s0" respawning to fast message.
 +
 +Incidentally if you download a recent version of raspbian this procedure will create bootable images for the RPi, RPi 2, RPi 3, and RPi Zero.
 +
 +====== Slackware ARM 14.2 on the Raspberry Pi 3 Model B ======
 +
 +Table of contents
 +  - Partition and format the SD Card
 +  - Put the Raspberry Pi firmware in the SD Card
 +  - Put the Slackware ARM mini root file system in the SD Card
 +  - Insert the SD Card in the Raspberry Pi
 +
 +Remarks:
 +  * This method is for installing Slackware ARM 14.2 on a Raspberry Pi 3 Model B
 +  * However, it should work for other Slackware ARM and Raspberry Pi versions
 +
 +=== 1. Partition and format the SD Card ===
 +
 +<code>
 +$ sudo fdisk -l /dev/mmcblk0
 +
 +Disk /dev/mmcblk0: 31.9 GB, 31914983424 bytes
 +4 heads, 16 sectors/track, 973968 cylinders, total 62333952 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: 0x00000000
 +
 +        Device Boot      Start         End      Blocks   Id  System
 +/dev/mmcblk0p1            2048       67583       32768    b  W95 FAT32
 +/dev/mmcblk0p2           67584    62333951    31133184   83  Linux
 +$ sudo mkfs.vfat /dev/mmcblk0p1
 +$ sudo mkfs.ext4 /dev/mmcblk0p2
 +</code>
 +
 +Remarks:
 +  * I use a 32GB SD Card
 +  * I choose 32MB for the size of the first partition
 +  * I let the empty space left for the second partition
 +
 +=== 2. Put the Raspberry Pi firmware in the SD Card ===
 +
 +<code>
 +$ git clone https://github.com/raspberrypi/firmware.git
 +$ sudo mount /dev/mmcblk0p1 ~/mnt
 +$ sudo cp -r firmware/boot/* ~/mnt
 +$ sudo umount ~/mnt
 +$ sudo mount /dev/mmcblk0p2 ~/mnt
 +$ sudo mkdir -p ~/mnt/lib/modules
 +$ sudo cp -r firmware/modules/* ~/mnt/lib/modules
 +$ sudo umount ~/mnt
 +</code>
 +
 +=== 3. Put the Slackware ARM mini root file system in the SD Card ===
 +
 +<code>
 +$ wget -c ftp://ftp.arm.slackware.com/slackwarearm/slackwarearm-devtools/minirootfs/roots/slack-14.2-miniroot_01Jul16.tar.xz
 +$ sudo mount /dev/mmcblk0p2 ~/mnt
 +$ sudo tar -C ~/mnt -xf slack-14.2-miniroot_01Jul16.tar.xz
 +$ echo "/dev/mmcblk0p1 /boot vfat defaults 0 0" | sudo tee ~/mnt/etc/fstab
 +$ echo "/dev/mmcblk0p2 /     ext4 defaults 0 0" | sudo tee -a ~/mnt/etc/fstab
 +$ echo "proc           /proc proc defaults 0 0" | sudo tee -a ~/mnt/etc/fstab
 +$ PASSWD=$(openssl passwd -1 -salt cetkq/enZx6/c2 password)
 +$ sudo sed -i "s|\(root:\).*\(:16983:0:::::\)|\1${PASSWD}\2|" ~/mnt/etc/shadow
 +$ sudo sed -i 's|USE_DHCP\[1\]=""|USE_DHCP\[1\]="yes"|' ~/mnt/etc/rc.d/rc.inet1.conf
 +$ echo "PermitRootLogin yes" | sudo tee -a ~/mnt/etc/ssh/sshd_config
 +$ sudo umount ~/mnt
 +</code>
 +
 +Remarks:
 +  * I set "password" as password for the "root" user
 +  * I set DHCP on the "eth1" network interface
 +  * I allow the "root" user to connect through SSH
 +
 +=== 4. Insert the SD Card in the Raspberry Pi ===
 +
 +Your SD Card is ready so you can insert it in the Raspberry Pi and boot.
 +
 +You can connect remotely to your Raspberry Pi as "root" through SSH.
 +<code>
 +$ ssh root@raspberrypi
 +</code>
 +
 +As soon as you are logged, you might want to install additional Slackware ARM packages:
 +<code>
 +$ wget --mirror ftp://ftp.arm.slackware.com/slackwarearm/slackwarearm-14.2
 +$ upgradepkg --install-new ftp.arm.slackware.com/slackwarearm/slackwarearm-14.2/slackware/*/*.txz
 +$ removepkg ftp.arm.slackware.com/slackwarearm/slackwarearm-14.2/slackware/*/kernel_*.txz
 +</code>
 +
 +Remarks:
 +  * I consider that the Raspberry Pi hostname is "raspberrypi"
 +  * I recommend to add a normal user and use this user instead of "root"
 +  * I recommend to change the "root" user password
 +  * I recommend to disallow the "root" user to connect through SSH
 +  * I recommend to [[https://www.raspberrypi.org/documentation/linux/kernel/building.md|build your own Linux kernel]] packages because the kernel you are running does not match with the installed Slackware ARM packages
 +  * I recommend to [[https://dri.freedesktop.org/wiki/VC4/|build your own Mesa]] package to get 60 FPS with the "glxgears" command
 ===== Sources ===== ===== Sources =====
  
 howtos:hardware:arm:raspberrypi ()