Installing SYSLINUX

From scratch on Slackware

Avoid Slackware 14.2’s obsolete v4.07

ls -lF /var/log/packages/syslinux*
removepkg syslinux

Requirements

#official
slackpkg install nasm uuid python3
    which nasm
    ls -lF /usr/include/uuid/uuid.h
    ln -s python3 /usr/bin/python

#slackonly
slackpkg install ucl upx
    ls -lF /var/log/packages/ucl-*
    ls -lF /var/log/packages/upx-*

ldd /usr/bin/gpg
ldd /usr/libexec/gnupg/gpgkeys_hkp
slackpkg install nghttp2 brotli cyrus-sasl

Fetch the latest SYSLINUX stable

wget https://cdn.kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.03.tar.gz
wget https://cdn.kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.03.tar.sign
tar xzf syslinux-6.03.tar.gz 
gunzip syslinux-6.03.tar.gz
gpg --recv-keys 58F7ABFE
gpg --verify syslinux-6.03.tar.sign

gets

Primary key fingerprint: D864 55E3 D1D0 9620 37AA  86E0 88AE 647D 58F7 ABFE

apply debian patches

wget https://lab.nethence.com/nunux/syslinux603-debian-patches.tar.gz
tar xzf syslinux603-debian-patches.tar.gz -C ./

tar xf syslinux-6.03.tar
cd syslinux-6.03/
for f in ../syslinux603-debian-patches/*.patch; do patch -p1 < $f; done; unset f

and proceed

echo $MAKEJOBS
time nice make > ../syslinux.log && echo BUILT
nice make install > ../syslinux.install.log && echo INSTALLED

Ready to go

now check you’ve got EXTLINUX

    which extlinux
    ls -lF /sbin/extlinux
    extlinux -v
    ls -lF /usr/share/syslinux/mbr.bin
    ls -lF /usr/share/syslinux/efi64/syslinux.efi

Ubuntu binaries vs from scratch

with binaries

apt install syslinux-utils extlinux

from source

apt update
apt install build-essential uuid-dev nasm upx-ucl

build as described above, and prevent Ubuntu from running update-grub without asking

dpkg -l | grep grub
apt purge ...

Resources

Package: syslinux https://sources.debian.org/patches/syslinux/

Package: syslinux / 3:6.03+dfsg-14.1+deb9u1 https://sources.debian.org/patches/syslinux/3:6.03+dfsg-14.1+deb9u1/

syslinux package in Ubuntu https://launchpad.net/ubuntu/+source/syslinux

Trash

or testing

wget https://cdn.kernel.org/pub/linux/utils/boot/syslinux/Testing/6.04/syslinux-6.04-pre1.tar.gz
tar xzf syslinux-6.04-pre1.tar.gz 
cd syslinux-6.04-pre1

or current / summary

git clone --recursive git://repo.or.cz/syslinux.git
cd syslinux/

Install latest UCL library

ls -lF /var/log/packages/ucl*
slackpkg install ucl #slackonly

wget https://www.oberhumer.com/opensource/ucl/download/ucl-1.03.tar.gz
tar xzf ...
cd ...
./configure
nice make -j$j
nice make install

Install latest UPX

ls -lF /var/log/packages/upx*
slackpkg install upx #slackonly

wget https://github.com/upx/upx/releases/download/v3.95/upx-3.95-src.tar.xz
tar xJf upx-3.95-src.tar.xz 
cd upx-3.95-src/src/
nice make -j$j
install -D upx.out /usr/local/bin/upx

HOME | GUIDES | BENCHMARKS | html