[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/01/31 17:22 (UTC)] – mozes | slackwarearm:inst_sa64_bcm2711_rpi4 [2024/03/19 09:33 (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.06, Mar 2024 | |
| Author | Stuart Winter < | | Author | Stuart Winter < | ||
| Contributors | Brenton Earl < | | Contributors | Brenton Earl < | ||
- | | Acknowledgements | Exaga (guidance with hardware/ | ||
+ | |||
+ | <note warning> | ||
==== Video Tutorial ==== | ==== Video Tutorial ==== | ||
Line 31: | Line 26: | ||
==== 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 47: | Line 38: | ||
- Acquiring all required hardware | - Acquiring all required hardware | ||
- Setup of the Raspberry Pi hardware | - Setup of the Raspberry Pi hardware | ||
- | - Downloading | + | - Downloading |
- | - Verifying the Slackware assets | + | |
- Writing the Slackware Installer to the Micro SD card | - Writing the Slackware Installer to the Micro SD card | ||
- | - Writing the Slackware Installation Media to the USB flash drive | ||
- Booting the Slackware Installer | - Booting the Slackware Installer | ||
- Installing Slackware | - Installing Slackware | ||
Line 83: | Line 72: | ||
| [[https:// | | [[https:// | ||
| [[https:// | | [[https:// | ||
- | | [[https:// | ||
| [[https:// | | [[https:// | ||
| USB keyboard and mouse | Standard peripherals | Required | A USB keyboard and mouse are required for this Slackware installation guide but are not required for the running of the OS. Slackware can also be installed headless (without a keyboard or monitor) over the Serial/UART or SSH (but this isn't documented). | | | USB keyboard and mouse | Standard peripherals | Required | A USB keyboard and mouse are required for this Slackware installation guide but are not required for the running of the OS. Slackware can also be installed headless (without a keyboard or monitor) over the Serial/UART or SSH (but this isn't documented). | | ||
Line 113: | Line 101: | ||
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 259: | Line 250: | ||
</ | </ | ||
- | == 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 282: | Line 273: | ||
< | < | ||
- | gpg --verify slkaio.img.xz.asc | + | $ gpg --verify slkaio.img.xz.asc |
</ | </ | ||
Line 385: | Line 376: | ||
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 411: | Line 407: | ||
{{: | {{: | ||
+ | |||
+ | |||
+ | == 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. | ||
+ | |||
+ | < | ||
== Set the date/time == | == Set the date/time == | ||
Line 571: | Line 574: | ||
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 633: | Line 636: | ||
== 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 691: | Line 696: | ||
# 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 699: | Line 709: | ||
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 713: | Line 734: | ||
reboot | reboot | ||
</ | </ | ||
- | ===== Managing Slackware on the Raspberry Pi ===== | ||
- | === Keeping the Slackware OS up to date === | + | |
+ | |||
+ | ====== 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 732: | Line 772: | ||
</ | </ | ||
- | 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 758: | Line 800: | ||
<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 765: | Line 807: | ||
- | === 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 794: | Line 836: | ||
- | === 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 841: | Line 883: | ||
<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 853: | Line 895: | ||
<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 881: | Line 966: | ||
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 892: | Line 977: | ||
^ Issue ^ Work around | ^ Issue ^ Work around | ||
- | | Poor X11 performance | + | | General fragility/ |
===== Contributing to the Slackware ARM project ===== | ===== Contributing to the Slackware ARM project ===== |