No description
Find a file
2026-08-03 19:01:13 +02:00
config_files new config files 2026-08-03 19:01:13 +02:00
LICENSE Initial commit 2026-06-22 19:49:33 +02:00
README.md PXE boot with efi works. 2026-07-31 13:55:44 +02:00

Automated linux installation for hardware4future

This repo is for resources related to automated installation of linux on devices that are to be donated to others in the context of the project hardware for future.

PXE boot

  • Installing debian via pxe boot is done via serving the contents of netboot.tar.gz via tftp, follow the official docs.
    • We tried the dnsmasq way: no other tftp/dhcp server necessary. It worked.
  • Unfortunately Linux Mint doesn't officially support PXE boot. We are currently trying the way in ubuntu netboot docs.
    • Caution: don't serve the files for legacy boot, even our "old" hardwares are too new to support that. We need UEFI booting.
    • It allows serving a whole iso via HTTP. Can we serve the lmde7 iso this way?
      • So far without success. It seems the efi files we prepped do not like to linux mint iso.

Working solution

  • Supply these cli options to vmlinuz: boot=live live-config ip=dhcp fetch=http://192.168.0.1/lmde-7-cinnamon-64bit.iso live-media-path=/live
    • For legacy boot, in pxelinux.cfg/default
      DEFAULT install-legacy
      LABEL install-legacy
        KERNEL vmlinuz
        INITRD initrd.lz
        APPEND boot=live live-config ip=dhcp fetch=http://192.168.0.1/lmde-7-cinnamon-64bit.iso live-media-path=/live
      
    • For EFI (tested succesfully with the Dell Latitude 5490 machines)
    menuentry "LMDE 7 via HTTP ISO fetch" --class linuxmint {
        set gfxpayload=keep
        linux /vmlinuz boot=live live-config ip=dhcp fetch=http://192.168.0.1/lmde-7-cinnamon-64bit.iso live-media-path=/live quiet splash --
        initrd /initrd.lz
    }
    
  • In dnsmasq config:
interface=<iface>,lo
domain=yourdomain.com
bind-interfaces
dhcp-range=<iface>,192.168.0.100,192.168.0.200
dhcp-match=set:efi-x86_64,option:client-arch,7
dhcp-boot=tag:efi-x86_64,grubx64.efi # this is very important, we do not want to boot `bootx64.efi`
enable-tftp
tftp-root=/srv/tftp
~
~

Customizing the install

Source of truth is Debian wiki

Installing specific list of packages

"If you want to install some individual packages in addition to packages installed by tasks, you can use the parameter pkgsel/include. The value of this parameter can be a list of packages separated by either commas or spaces, which allows it to be used easily on the kernel command line as well."