User Tools

Site Tools


linux:slackware

This is an old revision of the document!


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.

  1. Create a FAT32 partition
    • use fdisk and make sure it is bootable (bootable flag enabled)
    • use mkdosfs (e.g. mkdosfs -F 32 /dev/sdb1)
  2. 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
  3. Copy boot facilities from Slackware tree to the media
    • copy a kernel from slackware tree to /linux/boot (I used huge.s)
    • copy initrd.img and message.txt to /linux/boot
    • copy isolinux.cfg to /linux/boot/syslinux as syslinux.cfg
    • edit syslinux.cfg accordingly (initrd, kernel params, etc.)
  4. 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! 8-)

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
2025/01/01 15:54 · azman

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.localecho 0 > /proc/sys/kernel/dmesg_restrict
      • or, run setup_slack (from my1shell repo)
  • additional packages (getslackpack)
  • 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:

Sample configuration files for the above scripts are here.

2025/01/12 07:57 · azman

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 8-) 8-) 8-)

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 to vmlinuz)
    • 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 and xaos packages
    • make sure vim does not create backups (edit usr/share/vim/vimrc)
    • allow dmesg for user
      • append etc/rc.d/rc.localecho 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)
    • run as VERS=14.2 getslackbuild fetch <pkg>
    • pkgs: dmenu geany rox-filer slackware-xdm-theme
    • pkgs: slock st wmname pmount unrar
    • pkgs: nss-mdns avahi libdaemon
    • note: rox-filer cannot be compiled, needed patching (this)
    • i have gathered all the scripts from slackbuilds.org that i use and keep them here
  • 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, use SLACKVERS=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
2025/01/01 16:06 · azman
linux/slackware.1736646998.txt.gz · Last modified: by azman