hardware4future/README.md
2026-07-31 13:55:44 +02:00

64 lines
3.2 KiB
Markdown

# 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](https://wiki.debian.org/PXEBootInstall#Provide_the_boot_image).
+ 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](https://ubuntu.com/server/docs/how-to/installation/how-to-netboot-the-server-installer-on-amd64/).
+ 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
~
~
```
- These files must be in tftp root (may be incomplete for efi as it was not tested)
+ common to both legacy and efi (extract from the iso)
- vmlinuz
- initrd.lz
+ legacy
- pxelinux.0 (get from debian netboot.tar.gz)
- ldlinux.c32
+ Ensure the syslinux-common package is installed, then `cp /usr/lib/syslinux/modules/bios/ldlinux.c32 /srv/tftp/`
- pxelinux.cfg/default (checked into this repo)
+ efi (follow https://ubuntu.com/server/docs/how-to/installation/how-to-netboot-the-server-installer-on-amd64/#set-up-the-files-for-uefi-booting)
- grub/grub.cfg (checked into this repo)
- bootx64.efi
- grubx64.efi
- unicode.pf
# Customizing the install
Source of truth is [Debian wiki](https://www.debian.org/releases/trixie/amd64/apbs04.en.html)
## 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."