[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.
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
slackwarearm:inst_sa64_bcm2711_rpi4 [2023/02/01 08:46 (UTC)] – mozes | slackwarearm:inst_sa64_bcm2711_rpi4 [2024/01/17 09:57 (UTC)] – mozes | ||
---|---|---|---|
Line 3: | Line 3: | ||
====== Installing Slackware on the Raspberry Pi 4 ====== | ====== Installing Slackware on the Raspberry Pi 4 ====== | ||
- | |||
- | <note warning> | ||
- | |||
- | As a consequence, | ||
- | |||
- | If you are considering purchasing a Raspberry Pi and have not yet done so, take heed of this caution and you may wish to consider purchasing one of the other Hardware Models. | ||
^ ^ ^ | ^ ^ ^ | ||
| Platform | AArch64/ | | Platform | AArch64/ | ||
| Hardware Model |Raspberry Pi 4 | | | Hardware Model |Raspberry Pi 4 | | ||
- | | Document Version | 1.02, Jan 2023 | | + | | Document Version | 1.05, Jan 2024 | |
| Author | Stuart Winter < | | Author | Stuart Winter < | ||
| Contributors | Brenton Earl < | | Contributors | Brenton Earl < | ||
| Acknowledgements | Exaga (guidance with hardware/ | | Acknowledgements | Exaga (guidance with hardware/ | ||
+ | |||
+ | <note warning> | ||
==== Video Tutorial ==== | ==== Video Tutorial ==== | ||
Line 31: | Line 27: | ||
==== 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 == | ||
- | Jan 2023: KDE is crashing on the RPi4. We believe this is due to the Kernel. | + | The support within |
- | The same OS works without issue on the other Hardware Models. | + | |
==== Installation Lifecycle ==== | ==== Installation Lifecycle ==== | ||
Line 110: | Line 102: | ||
The setup documented here (2.5" SSD connected to a USB-to-Serial adapter for power and data) has proven stable for this author. | The setup documented here (2.5" SSD connected to a USB-to-Serial adapter for power and data) has proven stable for this author. | ||
- | It is possible to create a 3rd partition on the Micro SD card (' | + | It is possible to create a 4th partition on the Micro SD card (' |
+ | If you want to install the OS to the MMC card, it's preferable to use the [[https:// | ||
+ | Using the '' | ||
=== Computing / Network Environment === | === Computing / Network Environment === | ||
Line 256: | Line 251: | ||
</ | </ | ||
- | == Set the distribution server == | + | == Set the Internet media distribution server == |
If you are using a mirror server rather than the master Slackware ARM server, set it here. | If you are using a mirror server rather than the master Slackware ARM server, set it here. | ||
Line 279: | Line 274: | ||
< | < | ||
- | gpg --verify slkaio.img.xz.asc | + | $ gpg --verify slkaio.img.xz.asc |
</ | </ | ||
Line 382: | Line 377: | ||
If you'd like to encrypt your storage, check the [[slackwarearm: | If you'd like to encrypt your storage, check the [[slackwarearm: | ||
- | == Begin installation == | + | === Begin installation |
<note warning> Disconnect any USB storage devices that aren't required for the OS installation</ | <note warning> Disconnect any USB storage devices that aren't required for the OS installation</ | ||
+ | |||
+ | |||
+ | <note important> | ||
+ | |||
+ | |||
== Power on the Raspberry Pi 4 == | == Power on the Raspberry Pi 4 == | ||
Line 568: | Line 568: | ||
If you plan on exclusively using an HDMI monitor, you should pick ' | If you plan on exclusively using an HDMI monitor, you should pick ' | ||
- | <note tip>This setting can be reset to the default by editing / | + | <note tip>This setting can be reset to the default by editing / |
{{: | {{: | ||
Line 630: | Line 630: | ||
== 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. | ||
+ | |||
{{: | {{: | ||
Line 688: | Line 690: | ||
# logout | # logout | ||
</ | </ | ||
+ | |||
+ | |||
+ | === 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:// | ||
Line 696: | Line 703: | ||
This is documented [[https:// | This is documented [[https:// | ||
- | === 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: | + | If you are using KDE, you need to first adjust a setting. |
+ | |||
+ | As your plebian user, **prior** | ||
+ | |||
+ | <note tip>This will disable the //Compositing// feature. | ||
+ | |||
+ | |||
+ | < | ||
+ | kwriteconfig5 --file kwinrc --group Compositing --key Enabled false | ||
+ | </ | ||
+ | |||
+ | You may now start KDE. | ||
Line 710: | Line 728: | ||
reboot | reboot | ||
</ | </ | ||
- | ===== Managing Slackware on the Raspberry Pi ===== | ||
- | === Keeping the Slackware OS up to date === | + | ===== Disable KDE Suspend action ===== |
+ | |||
+ | If you are using KDE, you should disable ' | ||
+ | |||
+ | As your plebeian user, run these commands from the terminal: | ||
+ | < | ||
+ | $ kwriteconfig5 --file powermanagementprofilesrc --group AC --group SuspendSession --key idleTime --delete | ||
+ | $ kwriteconfig5 --file powermanagementprofilesrc --group AC --group SuspendSession --key suspendThenHibernate --delete | ||
+ | $ kwriteconfig5 --file powermanagementprofilesrc --group AC --group SuspendSession --key suspendType --delete | ||
+ | </ | ||
+ | |||
+ | You can also use the GUI to disable it if you prefer: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Then Apply the settings. | ||
+ | |||
+ | ====== Managing Slackware on the Raspberry Pi ====== | ||
+ | |||
+ | ===== Keeping the Slackware OS up to date ===== | ||
One of the preferred tools to keep your system up to date is [[slackware: | One of the preferred tools to keep your system up to date is [[slackware: | ||
- | <note tip> | + | <note tip> |
- | === Loading Additional Linux Kernel Modules | + | |
+ | |||
+ | ===== Loading Additional Linux Kernel Modules | ||
+ | |||
+ | Often Kernel modules for discovered hardware will be automatically loaded, but occasionally you will need to manually configure the loading of some modules. | ||
+ | |||
+ | < | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | This file is a shell script that is run as one of the last steps before the OS has fully booted. | ||
+ | |||
+ | Configuration files within the directory ''/ | ||
+ | |||
+ | ===== 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. | ||
- | An example of this would be RTCs (Real Time Clocks). | + | An example of this would be RTCs (Real Time Clocks) |
+ | |||
+ | <note important> | ||
To load Kernel modules during the early boot sequence, read: | To load Kernel modules during the early boot sequence, read: | ||
Line 729: | Line 783: | ||
</ | </ | ||
- | As root, the easiest way is to create | + | As root, the easiest way to begin is by renaming the example script: |
< | < | ||
mv / | mv / | ||
</ | </ | ||
- | Then add the appropriate module loading commands to: / | + | Then add the appropriate module loading commands to: '' |
You can also add shell code here to initialise a peripheral - writing something to the peripheral' | You can also add shell code here to initialise a peripheral - writing something to the peripheral' | ||
- | === Slackware repository partition === | + | |
+ | ===== Slackware repository partition | ||
The Slackware Installer image contains a type '' | The Slackware Installer image contains a type '' | ||
Line 755: | Line 811: | ||
<note tip>Most users simply leave the partition alone, as it causes no issues.</ | <note tip>Most users simply leave the partition alone, as it causes no issues.</ | ||
- | === 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: | If you'd like to customise the Linux Kernel, the easiest way is to follow the [[slackwarearm: | ||
Line 762: | Line 818: | ||
- | === 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 791: | Line 847: | ||
- | === Managing the Raspberry Pi Firmware === | + | ===== Managing the Raspberry Pi Firmware |
- | <note warning> | + | <note warning> |
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. | ||
This partition contains the closed-source proprietary boot loader, firmware and various other assets it requires. | This partition contains the closed-source proprietary boot loader, firmware and various other assets it requires. | ||
- | It is mounted within the Slackware OS under / | + | It is mounted within the Slackware OS under '' |
- | These assets are provided and managed by the Slackware package ' | + | These assets are provided and managed by the Slackware package |
<note tip> | <note tip> | ||
- | == Firmware for the EEPROM == | + | === Firmware for the EEPROM |
- | The Slackware package ' | + | The Slackware package |
- | You also need to have the ' | + | You also need to have the '' |
<note tip>This firmware update requires manual action - see below</ | <note tip>This firmware update requires manual action - see below</ | ||
Line 838: | Line 894: | ||
<note tip>The EEPROM tool configuration file is: ''/ | <note tip>The EEPROM tool configuration file is: ''/ | ||
- | == 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 ' | + | The firmware for the peripherals on the Raspberry Pi Hardware Models is contained within the Slackware |
<note tip> | <note tip> | ||
- | === Using Device Tree Overlays === | + | ===== Using Device Tree Overlays |
[[https:// | [[https:// | ||
Line 850: | Line 906: | ||
<note tip> | <note tip> | ||
+ | |||
+ | === Raspberry Pi 3: Enabling Blue Tooth === | ||
+ | |||
+ | < | ||
+ | |||
+ | The Raspberry Pi 3 requires that the serial connection be disabled in order to use Blue Tooth. | ||
+ | |||
+ | To do this you need to edit one setting: | ||
+ | |||
+ | == Elevate yourself to ' | ||
+ | |||
+ | < | ||
+ | |||
+ | == Configure the UART setting == | ||
+ | |||
+ | < | ||
+ | $ nano / | ||
+ | </ | ||
+ | |||
+ | Find the line: '' | ||
+ | |||
+ | Change it to: '' | ||
+ | |||
+ | Save the file and reboot. | ||
+ | |||
+ | ===== Switching to the Raspberry Pi Kernel fork ===== | ||
+ | |||
+ | The Raspberry Pi's are only intended to run the vendor' | ||
+ | |||
+ | As a consequence, | ||
+ | |||
+ | Over time the fixes and new features for the Raspberry Pi will continue to appear in the main stream Kernel. | ||
+ | However, if you are facing instability or need some specific feature that isn't yet available in the mainline official Linux Kernel, Slackware [[slackwarearm: | ||
+ | |||
+ | < | ||
+ | |||
+ | |||
+ | ===== Installing extra Software ===== | ||
+ | |||
+ | Slackware comes with a good base of software applications, | ||
+ | |||
+ | The best way to add new software is to [[slackwarearm: | ||
+ | |||
Line 878: | Line 977: | ||
Once wired up, connect the USB end of the adapter into your Linux Host Computer, and use the following command. | Once wired up, connect the USB end of the adapter into your Linux Host Computer, and use the following command. | ||
- | <note tip>This assumes that there are no other similar adapters occupying / | + | <note tip>This assumes that there are no other similar adapters occupying |
< | < | ||
Line 889: | Line 988: | ||
^ Issue ^ Work around | ^ Issue ^ Work around | ||
- | | Poor X11 performance | + | | General fragility/ |
===== Contributing to the Slackware ARM project ===== | ===== Contributing to the Slackware ARM project ===== |