SARPi Project - Slacking on a Raspberry Pi
Introducing the config.txt file...
When booting the Raspberry Pi, the config.txt file is read by the GPU before the ARM core is initialised. It can be used to set various system configuration parameters that you normally find in a conventional BIOS and UEFI environment. There is an abundance of information on this file in the official Raspberry Pi Documentation, if you're interested in settings and features not covered in this guide.
One thing to remember is that whenever the config.txt file changes (i.e. you edit it) you should reboot your system to take on the new settings. The config.txt file allows you to allocate the amount of GPU and system RAM, load Device Tree overlays, configure overscan settings, overclock, etc., and make it so you can boot into Slackware Linux using specific settings and parameters.
Sometimes the output of the screen/display exceeds the viewable area on your physical screen/display. So, under these circumstances you can never see the very edge of what's being displayed as it's outside your viewing area. This can affect both text and images. It's most annoying when you boot your Raspberry Pi to find that you cannot see your command prompt, or only part of it. There are ways to overcome this, by enabling overscan, and solutions to many other problems.
Below is an example Raspberry Pi config.txt file created by the SARPi Project. We have customised it a little and used some popular settings. We've also adding a hashed-out date, purely for our own reference.
You can, of course, create your very own customised config.txt file. See the official CONFIG-TXT Documentation guide.
# For more configuration options and information see: http://rpf.io/configtxt
# Additional overlays and parameters are documented in: /boot/overlays/README
# NB: Some settings may impact device functionality and performance!
#
# https://sarpi.penthux.net - 06 March 2024 - Raspberry Pi 5 config.txt
# Arm 64-bit mode [ 0 = 32-bit | 1 = 64-bit ]
arm_64bit=1
# Allocate amount of GPU video RAM (MB) [min: 16MB]
#gpu_mem=128
# Set CPU clock speed (MHz) for overclocking, etc.
#arm_freq=1800
#arm_freq_min=600
# Load a specific kernel
#kernel=kernel8.img
#kernel=kernel_2712.img
# Enable optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on
# Enable [I2C] DS3231 real time clock [RTC]
#dtoverlay=i2c-rtc,ds3231
# Enable [SPI] DS3234 real time clock [RTC]
#dtoverlay=spi-rtc,ds3234
# Automatically load initramfs files, if found
#auto_initramfs=1
# Disable compensation for displays with overscan
disable_overscan=1
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
# Automatically load overlays for detected cameras
camera_auto_detect=1
# Automatically load overlays for detected DSI displays
display_auto_detect=1
# Enable DRM VC4 V3D driver
dtoverlay=vc4-kms-v3d
max_framebuffers=2
# Don't have the firmware create an initial video= setting in cmdline.txt.
# Use the kernel's default instead.
#disable_fw_kms_setup=1
# Enable ttyS0 (UART1)
#enable_uart=1
# Disable on-board Bluetooth
#dtoverlay=disable-bt
# Disable on-board wireless
#dtoverlay=disable-wifi
# Enable the PWR LED 'heartbeat' pulse
#dtparam=pwr_led_trigger=heartbeat
# Enable the ACT LED 'heartbeat' pulse
#dtparam=act_led_trigger=heartbeat
# Run as fast as firmware / board allows
arm_boost=1
[pi5]
# Enable Pi 5 PCIe external connector
#dtparam=pciex1
#dtparam=nvme
# Enable Pi 5 experimental PCIe Gen 3.0 mode
#dtparam=pciex1_gen=3
# Enable Pi 5 PCIe Gen 1.0 mode
#dtparam=pciex1_gen=1
# Disable Pi 5 onboard real time clock [RTC]
#dtparam=rtc=off
[cm4] # Enable host mode on the 2711 built-in XHCI USB controller.
# This line should be removed if the legacy DWC2 controller is required
# (e.g. for USB device mode) or if USB support is not required.
otg_mode=1
[pi4]
# Raspberry Pi 4 specific configuration settings
[all]
If you've used a SARPi installer to install Slackware Linux on your Raspberry Pi computer then your existing config.txt file should look somewhat similar to the example above, if you haven't already modified it.
What some of the settings in the config.txt file mean:
• arm_64bit=1 is telling the system to boot in 64-bit mode. A setting of arm_64bit=0 would boot in 32-bit mode.
• arm_boost=1 is telling the system to operate as fast as the hardware will allow.
• gpu_mem=64MB is telling the Raspberry Pi to allocate 64MB of RAM to the GPU. The rest goes to the system.
• dtoverlay=i2c-rtc,ds3231 is telling the system to load the Device Tree Blob for a DS3231 real time clock (RTC)
• dtparam=audio=on is telling the system to enable audio/sound.
• camera_auto_detect=1 is telling the system to automatically detect any camera(s) that's connected.
You have the option to add/change/remove any setting or value. It would certainly be beneficial to educate yourself with the litany of config.txt parameters and discover what might enable you to get the most out of your Slackware Linux system and the purpose you intend for it. The official Raspberry Pi Documentation > Configuration > CONFIG-TXT page would be a good place to begin.
If you are planning to use desktop environments on your Slackware Linux system you might want to change the GPU RAM (gpu_mem=64) to a higher value, such as 128MB or more. Currently, the official Raspberry Pi Ltd. advice is that this does not need setting on Raspberry Pi OS, but we don't use that so we prefer to set the GPU memory amount anyway. Some features of the GPU do not work with low memory and it will automatically disable certain firmware features too. Under such circumstances, if you find a certain function or feature aren't working, try allocating more memory to the GPU before rebooting your system.
Editing the config.txt file
To edit the config.txt file you'll use a text editor. The SARPi Project prefers 'nano' - a simple and very useful program that's built in to every version of Slackware Linux.
You may edit the config.txt file directly. There's no need to switch to the /boot directory where config.txt is located. To do this type the following on the command line:
You will find it's easy to achieve using any text editor.
After you have edited and saved the config.txt file, you should reboot your system for any changes to take effect.
You may wish to further edit/modify your config.txt file at a later date, depending on your personal requirements. You can do so at any time as 'root' user.
Continue to the final section of this guide... Post-installation information
•