This is an old revision of the document!
Table of Contents
Slackware Experience
Personal notes on using Slackware. Some old notes have been archived.
Do note that Slackware also has a great documentation site.
Getting Slackware
The official way to do this is, of course, to get it from slackware.com.
Personally, I have getslack, a bash script based on (more accurately, a trimmed-down version of) the excellent (he termed it infamous) mirror-slackware-current.sh by Alien Bob. When going down this path, the next step would be to prepare the installation media.
Slackware Installer ISO Image
I no longer need an ISO image (refer to USB installer below). But, I have my slack2iso script (also based on Alien Bob's script) that can help in creating one using the tree downloaded by getslack
.
Slackware USB Installer
Alien Bob has provided a script to make/setup/configure a USB-based Slackware installation media. I wanted to do something simpler using the existing files in the Slackware tree that I mirrored using getslack
(mentioned above). So, here is how I got that working.
- Create a FAT32 partition
- use
fdisk
and make sure it is bootable (bootable flag enabled) - use
mkdosfs
(e.g.mkdosfs -F 32 /dev/sdb1
)
- Use syslinux to provide bootloader
- create a
/linux/boot/syslinux
folder on the USB - type
syslinux -d /linux/boot/syslinux /dev/sdb1
Note: On newer syslinux, use
-i
to indicate new installation - a file
ldlinux.sys
should appear in/linux/boot/syslinux
- Copy boot facilities from Slackware tree to the media
- copy a kernel from slackware tree to
/linux/boot
(I usedhuge.s
) - copy
initrd.img
andmessage.txt
to/linux/boot
- copy
isolinux.cfg
to/linux/boot/syslinux
assyslinux.cfg
- edit
syslinux.cfg
accordingly (initrd, kernel params, etc.)
- Copy slackware<64> in the Slackware tree (I used a shorter folder name like slack on the USB)
And… we're done! Now we have a simple Slackware USB Installer and install it on every computer we can get our hands on!
Note: GPT Disks and EFI
Things moving to (U)EFI and GPT… slowly leaving legacy BIOS and MBR.
Instead of MBR, we use GPT partitioning scheme:
- supports bigger disk
- supports EFI booting (easier to maintain actually :p)
Partition codes are 2-bytes instead (only 1-byte on MBR's partition table). Among the common ones:
- EF00 (EFI System Partition): this is what EFI boot look for
- format FAT32
mkdosfs -F 32 -n MY1EFI /dev/sdxx
- 0700 (MS Basic Data): Windows Partition
- format NTFS
mkntfs -f -L MY1WIN /dev/sdxx
- 8300 (Linux filesystem): Linux Partition
- format EXT4
mkfs.ext4 -L MY1LIN /dev/sdxx
Once boot using EFI, efibootmgr
tool can be used (available on Slackware 14.2)
- to create an entry labelled
Slackware
with loader file named\efi\slackware\elilo.efi
located on first partition of first disk (/dev/sda1
)efibootmgr -c -d /dev/sda -p 1 -L "Slackware" -l "\efi\slackware\elilo.efi"
- to delete an entry xxxx (bootnum)
efibootmgr -b xxxx -B
- to re-order boot sequence
efibootmgr -o xxxx,yyyy,zzzz
Installing Slackware
Installation notes (i.e. packages, configs).
LastUpdated20250112
Basic Install
Using Slackware installer.
- official packages (
getslack
)- checkout my
getslack
config file - without kde (AND xfce if going DE-less)
removepkg gnuchess xaos xsnow
removepkg joe nano vim-gvim slackpkg
- setup/config
- sample elilo.conf
- elilo.conf
prompt #chooser=simple timeout=50 default=Slack image=vmlinuz-huge label=SlackHuge read-only append="root=/dev/sda2 resume=/dev/sda4 vga=normal" image=vmlinuz label=Slack initrd=initrd.gz read-only append="root=/dev/sda2 resume=/dev/sda4 vga=normal"
- make sure vim does not create backups (edit
/usr/share/vim/vimrc
)- or, run
vimstart
(from my1shell repo)
- dmesg no longer allowed for user
- append
rc.local
←echo 0 > /proc/sys/kernel/dmesg_restrict
- or, run
setup_slack
(from my1shell repo)
- additional packages (
getslackpack
)- (alien) openjdk libreoffice libreoffice-dict-en“
- additional packages (
getslackbuild
)slackware-xdm-theme
geany unrar
nss-mdns avahi libdaemon
- actually, scripts from slackbuilds.org (commonly used)
DE-less config
This is what I do for a lean
(not necessarily minimal, but trimmed to my liking) installation.
- setup acpi from my personal script
- additional packages (
getslackbuild
)dmenu slock st wmname
rox-filer pmount
- custom dwm build
- using my own build script (which has personalized patches)
Updating
To maintain:
- run slack-update
- this actually runs 3 scripts (
getslack
,getslackpack
,getslackbuild
)
- run slackpatch (if required)
- run getslackbuild build -x -i (if required)
Sample configuration files for the above scripts are here.
Using Slackware-current
This is actually NOT recommended for beginners. But, sometimes, the need to use the latest software is unavoidable and this COULD be a solution. Plus, this will add a LOT of COOL-points
Note: I have removed a section on DE-less installation since my current Slackware installations ARE, in fact, DE-less.
Note: I have also removed a section on hijacking other Linux system - this, here, turned out to be VERY similar to what needed to be done.
Installing
[LastUpdated20210620]
I need to use GTK3 version that is newer that the one on 14.2, so I tried the development version (slackware64-current). I have done the same once (pre-11), so I am aware that there can be some issues when doing this. I am happy to say that I AM writing this on a slackware64-current (15.0 beta?) installation on my laptop.
So, this is a little note to my future self (or anybody that may be find this useful DISCLAIMER: Use this at your own risk!). I am doing this while still using Devuan and I want to keep that for backup, in case things go wrong. (On a side note, the reason I use Devuan was because of the GTK3 version.) So, I have an extra partition that I have reformatted and prepared to download the stuffs I need.
- download official packages (
getslack
)- create download path:
<mount-path>/home/share/slackware
- create custom getslack config
.getslack
- set
VERS=current
- exclude kde & xfce
- setup EFI boot
bzImage
in kernels/huge.s (rename tovmlinuz
)initrd.img
in isolinux/ (this has the slackware setup)
- boot and run installation as usual
- DO NOT format partition (packages are there!)
- pick packages from mounted path
- manually set kernel to boot (i use huge - generic needs initramfs)
- boot newly installed slackware
- remove
gnuchess
andxaos
packages - make sure vim does not create backups (edit
usr/share/vim/vimrc
) - allow
dmesg
for user- append
etc/rc.d/rc.local
←echo 0 > /proc/sys/kernel/dmesg_restrict
- just for personal reference, some useful info on using nmcli
nmcli r[adio] wifi nmcli r[adio] wifi on nmcli d[evice] wifi list nmcli d[evice] wifi connect <ssid> password <pass> ifname <wlan0> nmcli c[onnection] show nmcli c[onnection] down <ssid> nmcli c[onnection] up <ssid>
- customize
etc/xdg/user-dirs.defaults
(standard default paths) - create user
- get additional packages (
getslackpack
)- luckily, alienBob's repo 'supports' current
- create custom getslackpack config
.getslackpack
- (alien) openjdk libreoffice libreoffice-dict-en“
- get additional packages (
getslackbuild
) - i want to use dwm
- using my own custom build script (which has personalized patches)
- my dwm xinitrc will run loginctl hibernate when battery<30% (→ what i need on my current laptop)
Updating
To maintain:
note: my libmy1slack
library will detect current when etc/slackware-version
has '+' suffix. this sign will disappear when -current is near to a stable release.
- run slack-update as usual
- when
-current
going stable, useSLACKVERS=current slack-update
- run slack-current instead of
slackpatch
- when
-current
going stable, use-f
switch - to see removed packages, use slackview (i.e.
SLACKVERS=current slackview find –alien
)
- update those installed using getslackbuild if needed