[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
slackwarearm:inst_sa64_bcm2711_rpi4 [2023/06/26 08:00 (UTC)] mozesslackwarearm:inst_sa64_bcm2711_rpi4 [2024/04/30 14:59 (UTC)] (current) mozes
Line 1: Line 1:
 [[https://arm.slackware.com/|Slackware ARM project web site]] | [[https://www.linuxquestions.org/questions/slackware-arm-108/|Forum]] | [[slackwarearm:development|Slackware ARM development documentation]] | [[slackwarearm:inst|Slackware ARM installation guides]]  [[https://arm.slackware.com/|Slackware ARM project web site]] | [[https://www.linuxquestions.org/questions/slackware-arm-108/|Forum]] | [[slackwarearm:development|Slackware ARM development documentation]] | [[slackwarearm:inst|Slackware ARM installation guides]] 
  
-====== Installing Slackware on the Raspberry Pi ======+====== Installing Slackware on the Raspberry Pi ======
  
  
 ^  ^  ^ ^  ^  ^
 | Platform | AArch64/ARM64 |  | Platform | AArch64/ARM64 | 
-| Hardware Model |Raspberry Pi 4 | +| Hardware Model |Raspberry Pi 4/400 
-| Document Version | 1.03June 2023 |+| Document Version | 1.06Mar 2024 |
 | Author | Stuart Winter <mozes@slackware> | | Author | Stuart Winter <mozes@slackware> |
 | Contributors | Brenton Earl <el0226@slackware>  (R&D for the RPi4 Hardware Model)  | | Contributors | Brenton Earl <el0226@slackware>  (R&D for the RPi4 Hardware Model)  |
-| Acknowledgements | Exaga (guidance with hardware/accessories) | 
  
 +====Supported Raspberry Pi versions ====
 +
 +<note warning>At the moment, only the Raspberry Pi 4 is officially supported.</note>
 +
 +The Raspberry Pi 400 has [[https://www.linuxquestions.org/questions/slackware-arm-108/slackware-aarch64-raspberry-pi-400-hardware-support-4175733019/page6.html|been validated as working]] by the user community.
  
 ==== Video Tutorial ==== ==== Video Tutorial ====
Line 25: Line 29:
 ==== Caveats ==== ==== Caveats ====
  
-== Raspberry Pi 3 support == 
- 
-Using the GUI on the Raspberry Pi 3 is not recommended due to the lack of RAM - the screen will typically freeze. 
-It is recommended that the Raspberry Pi 3 is used headless (remote access). 
  
 == Fragility due to upstream support == == Fragility due to upstream support ==
Line 379: Line 379:
 If you'd like to encrypt your storage, check the [[slackwarearm:disk_encryption_slackware_aarch64|Disk Encryption Guide]]. If you'd like to encrypt your storage, check the [[slackwarearm:disk_encryption_slackware_aarch64|Disk Encryption Guide]].
  
-== Begin installation ==+=== Begin installation ===
  
 <note warning> Disconnect any USB storage devices that aren't required for the OS installation</note>  <note warning> Disconnect any USB storage devices that aren't required for the OS installation</note> 
 +
 +
 +<note important>Due to bugs in the upstream Linux Kernel, the screen may blank every few seconds. This is normal and can be resolved by switching to the Raspberry PI Kernel fork (detailed later in this guide). </note>
 +
 +
  
 == Power on the Raspberry Pi 4 == == Power on the Raspberry Pi 4 ==
Line 405: Line 410:
  
 {{:slackwarearm:04-setkeymap_c.jpg?400|}} {{:slackwarearm:04-setkeymap_c.jpg?400|}}
 +
 +
 +== Font size ==
 +
 +If you're using a smaller monitor, such as one with a screen size less than 20 inches, it may be necessary to adjust the console font size to ensure that menus and other interface elements fit correctly on the screen.  If so, type this into the shell prompt:
 +
 +<code>setfont ter-v18n</code>
  
 == Set the date/time == == Set the date/time ==
Line 627: Line 639:
  
 == Configure GUI Window Manager == == Configure GUI Window Manager ==
 +
  
 This author recommends using XFCE as it's light weight versus KDE. This author recommends using XFCE as it's light weight versus KDE.
 +
  
 {{:slackwarearm:56-ChooseWindowManager-xfce-selected.jpg?400|}} {{:slackwarearm:56-ChooseWindowManager-xfce-selected.jpg?400|}}
Line 685: Line 699:
 # logout # logout
 </code> </code>
 +
 +
 +=== NTP (Network Time Protocol) setup ===
 +
 +Even if your Raspberry Pi has an RTC (as documented in this guide), you may wish to configure it to [[https://docs.slackware.com/howtos:network_services:ntp|set time from an Internet NTP Server]].  The Raspberry Pi requires continuous Internet access for this to function.
  
  
Line 693: Line 712:
 This is documented [[https://www.slackbook.org/html/essential-sysadmin.html|here]]. This is documented [[https://www.slackbook.org/html/essential-sysadmin.html|here]].
  
-=== NTP (Network Time Protocol) setup ===+=== KDE fixups ===
  
-Even if your Raspberry Pi has an RTC (as documented in this guide), you may wish to configure it to [[https://docs.slackware.com/howtos:network_services:ntp|set time from an Internet NTP Server]].  The Raspberry Pi requires continuous Internet access for this to function.+If you are using KDE, you need to first adjust a setting. 
 + 
 +As your plebian user, **prior** to loading KDE, run this command. 
 + 
 +<note tip>This will disable the //Compositing// feature.  This is required when using the mainline Linux Kernel (as Slackware does).</note> 
 + 
 + 
 +<code> 
 +kwriteconfig5 --file kwinrc --group Compositing --key Enabled false 
 +</code> 
 + 
 +You may now start KDE.
  
  
Line 709: Line 739:
  
  
-== Disable KDE Suspend action == 
- 
-If you are using KDE, you should disable 'Suspend' within KDE's System Settings: 
- 
-{{:slackwarearm:slackarm-kdesystemsettings.png?400|}} 
- 
-{{:slackwarearm:slackarm-kde-powersettings.png?400|}} 
- 
-Then Apply the settings. 
  
-===== Managing Slackware on the Raspberry Pi =====+====== Managing Slackware on the Raspberry Pi ======
  
-=== Keeping the Slackware OS up to date ===+===== Keeping the Slackware OS up to date =====
  
 One of the preferred tools to keep your system up to date is [[slackware:slackpkg|slackpkg]]. One of the preferred tools to keep your system up to date is [[slackware:slackpkg|slackpkg]].
Line 730: Line 751:
  
  
-=== Loading Additional Linux Kernel Modules within the OS Proper ===+===== Loading Additional Linux Kernel Modules within the OS Proper =====
  
 Often Kernel modules for discovered hardware will be automatically loaded, but occasionally you will need to manually configure the loading of some modules. Often Kernel modules for discovered hardware will be automatically loaded, but occasionally you will need to manually configure the loading of some modules.
Line 742: Line 763:
 Configuration files within the directory ''/lib/modprobe.d/'' can be used to configure the parameters of the modules.  Existing files within that directory serve as reference examples should you need them. Configuration files within the directory ''/lib/modprobe.d/'' can be used to configure the parameters of the modules.  Existing files within that directory serve as reference examples should you need them.
  
-=== Loading Additional Linux Kernel Modules early in the boot sequence ===+===== Loading Additional Linux Kernel Modules early in the boot sequence =====
  
 There are a number of peripherals that may require Kernel modules loading early on in the boot sequence. There are a number of peripherals that may require Kernel modules loading early on in the boot sequence.
Line 764: Line 785:
  
  
-=== Slackware repository partition ===+===== Slackware repository partition =====
  
 The Slackware Installer image contains a type ''ext4'' partition labeled ''SLKins_aio-pkgs'' from which the packages are installed.   The Slackware Installer image contains a type ''ext4'' partition labeled ''SLKins_aio-pkgs'' from which the packages are installed.  
Line 782: Line 803:
 <note tip>Most users simply leave the partition alone, as it causes no issues.</note> <note tip>Most users simply leave the partition alone, as it causes no issues.</note>
  
-=== Customising the Slackware Linux Kernel ===+===== Customising the Slackware Linux Kernel =====
  
 If you'd like to customise the Linux Kernel, the easiest way is to follow the [[slackwarearm:cstmz_kernel|HOWTO]] guide and use the Slackware ARM Kernel build script to create new packages. If you'd like to customise the Linux Kernel, the easiest way is to follow the [[slackwarearm:cstmz_kernel|HOWTO]] guide and use the Slackware ARM Kernel build script to create new packages.
Line 789: Line 810:
  
  
-=== Reducing Boot Time ===+===== Reducing Boot Time =====
  
 Slackware ARM ships with a generic OS InitRD (Operating System Initial RAM Disk - the environment that prepares the machine to boot the Operating System Proper), so as to support a wide range of Hardware Models. Slackware ARM ships with a generic OS InitRD (Operating System Initial RAM Disk - the environment that prepares the machine to boot the Operating System Proper), so as to support a wide range of Hardware Models.
Line 818: Line 839:
  
  
-=== Managing the Raspberry Pi Firmware ===+===== Managing the Raspberry Pi Firmware =====
  
 <note warning>Do not use the ''rpi-update'' script (found in other distributions) - this is unnecessary and is incompatible with Slackware.</note> <note warning>Do not use the ''rpi-update'' script (found in other distributions) - this is unnecessary and is incompatible with Slackware.</note>
Line 824: Line 845:
 The Raspberry Pi firmware is managed by the Slackware packages.  The Raspberry Pi firmware is managed by the Slackware packages. 
  
-== Bootware ==+=== Bootware ===
  
 The Raspberry Pi boots from a FAT partition on the Micro SD card. The Raspberry Pi boots from a FAT partition on the Micro SD card.
Line 835: Line 856:
  
  
-== Firmware for the EEPROM ==+=== Firmware for the EEPROM ===
  
 The Slackware package ''a/hwm-bw-raspberrypi'' contains the available firmware that can be programmed to the Raspberry Pi's EEPROM. The Slackware package ''a/hwm-bw-raspberrypi'' contains the available firmware that can be programmed to the Raspberry Pi's EEPROM.
Line 865: Line 886:
 <note tip>The EEPROM tool configuration file is: ''/etc/rpi-eeprom-update'' By default we're using firmware from the "critical" (most stable and well-tested) release channel, but you can change it within that configuration file.</note> <note tip>The EEPROM tool configuration file is: ''/etc/rpi-eeprom-update'' By default we're using firmware from the "critical" (most stable and well-tested) release channel, but you can change it within that configuration file.</note>
  
-== Raspberry Pi SoC/IP Core Firmware ==+=== Raspberry Pi SoC/IP Core Firmware ===
  
 The firmware for the peripherals on the Raspberry Pi Hardware Models is contained within the Slackware ''a/kernel-firmware'' package. The firmware for the peripherals on the Raspberry Pi Hardware Models is contained within the Slackware ''a/kernel-firmware'' package.
Line 871: Line 892:
 <note tip>Simply upgrading to the latest available Slackware packages will update this firmware.</note> <note tip>Simply upgrading to the latest available Slackware packages will update this firmware.</note>
  
-=== Using Device Tree Overlays ===+===== Using Device Tree Overlays =====
  
 [[https://github.com/raspberrypi/firmware/blob/master/boot/overlays/README|Device Tree Overlays]] can be configured within the Raspberry Pi's Native Boot Loader configuration file: ''/boot/platform/hwm_bw/config.txt'' [[https://github.com/raspberrypi/firmware/blob/master/boot/overlays/README|Device Tree Overlays]] can be configured within the Raspberry Pi's Native Boot Loader configuration file: ''/boot/platform/hwm_bw/config.txt''
Line 879: Line 900:
  
 === Raspberry Pi 3: Enabling Blue Tooth === === Raspberry Pi 3: Enabling Blue Tooth ===
 +
 +<note>This does **not apply** to Raspberry Pi 4.</note>
  
 The Raspberry Pi 3 requires that the serial connection be disabled in order to use Blue Tooth. The Raspberry Pi 3 requires that the serial connection be disabled in order to use Blue Tooth.
 slackwarearm:inst_sa64_bcm2711_rpi4 ()