123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263 |
- # Die APU aufbauen und mit Debian in Betrieb nehmen
- # Spezifikationen
- - <https://www.pcengines.ch/apu4d4.htm>
- # Montage des Kühlers
- - <https://www.pcengines.ch/apucool.htm>
- Die Montage des Kühlers, d.h. das Aufkleben der Aluplatte an die richtige Stelle im Gehäuse, geht auch gut damit, dass man
- - die Platine ohne Kühlung provisorisch in das Gehäuse einfügt, dann
- - sich durch die beiden großen Löcher in der Platine mit einem Stift Markierungen auf der Innenseite des Gehäuses anbringt. Die beiden Löcher markieren gut die Diagonale der Postion des Alukühlers.
- Dann klebt man das Alublech auf und schiebt dann die Platine zuerst verkanntet ein und presst sie dann vorsichtig auf das Alublech.
- # BIOS Anmerkung
- Änderungen im BIOS 4.12.0.1 (nach F10) werden erst beim nächsten Einschalten, also nach stromlos, wirksam.
- Auch wenn die geänderte Einstellung schon vorher im Menü erscheint.
- Aufgefallen / getestet mit der m Option (clk für die WLAN Karte).
- # Energieverbrauch
- Gemessen mit ELV Energy Master Basic 2 und Steckernetzteil Seanon KSA 24W 120/200VE Output 12V 2A
- APU4D4 mit 256GB SSd und WLE600 Wlankarte
- APU beim booten: max 9W
- APU im Leerlauf: 5,4W
- APU im Leerlauf mit BIOS PCIe Powermanagement: 4,7W
- APU ausgeschaltet: 1,5W
- Nur Netzteil: 0,0W
- # APU Installation auf dem PC vorbereiten
- Erforderlich ist ein Nullmodemkabel zur Verbindung APU <--> PC
- Ein Terminalprogramm (z.B. minicom)
- Eventuell bei Installation PXE übers Netz ein tftpserver (z.B., dnsmasq)
- # APU Installation mit USB-Stick
- Bereithalten: einen USB-Stick mit dem aktuellen Debian Image, Stick als bootbar definiert mit:
- - mit `sudo dd bs=4M if=/path/to/debian-10.0.0-amd64-netinst.iso of=/dev/sdx status=progress oflag=sync` das Image auf den Stick kopieren
- - mit dem USB-Stick booten, dann im Grub-Menü die Bootzeile mit `e` editieren:
- - wenn das grub-Menu da ist, mit `e` die Befehlszeile ändern und dazu hinter /linux/ boot ergänzen:
- `console=ttyS0,115200n8`
- Damit ist die serielle Schnittstelle bis zum nächsten Booten als Standard festgelegt.
- Wenn das System installiert ist und neu bootet, auch an dieser Stelle wie beschrieben im Grub-Menu mit `e`
- die Grub-Befehlszeile ändern und ttyS0 aktivieren.
- # APU Netz Installation von Debian oder Ubuntu
- Für die Installation über das Netz ohne Bootmedium und mit vorbelegten Antworten
- muss das eigene Netzwerk eingerichtet werden mit folgenden Diensten:
- - TFTP-server mit dem Bootimage
- - DHCP-server / Proxy der der APU ip-adresse und Pfad zum Bootimage übermittelt
-
- ## Verwendete Hardware
- - Privates LAN mit Internetzugang, Router als DHCPserver z.B. Fritz!Box
- - Rechner als PXE - BOOTP - TFTP - DHCP Server (nicht exklusiv)
- - APU4D4 mit 4Gb RAM, 256GB SSD und WLE600 Wlankarte (bislang nicht verwendet)
- - Serielles Nullmodem Kabel zwischen APU und Rechner
- - Netzwerkkabel
- ## Verwendete Adressen
- - Diese sind an die eigenen anzupassen
- - 192.168.178.0/24 Netzwerk
- - 192.168.178.254 Fritz!Box Router, DHCPserver, Zugang Internet
- - Die folgenden Adressen ausserhalb des Bereiches F!B DHCP-server
- - 192.168.178.51 Statische Adresse für die APU (später)
- - 192.168.178.52 Statische Adresse für den PXE - BOOTP - TFTP server
- ## Einrichten PXE - BOOTP - TFTP- Server
- - Anleitung von Marcel verwendet / erweitert für TFTP-server
- - dnsmasq installieren falls nötig:
- sudo apt install dnsmasq
- - Anpassen /etc/dnsmasq.conf
- - Da wir nur wenig Funktionen von dsnmasq benötigen, löschen wir die installierte
- Datei und ersetzen sie durch folgenden Inhalt.
- dhcp-range=192.168.178.0,proxy # Unser Netzwerk.
- dhcp-boot=pxelinux.0,192.168.178.52,192.168.178.0 # IP TFTP-Server und Netzwerk.
- pxe-service=x86PC,"Netzwerk Boot",pxelinux # gewünschter Dienst
- enable-tftp # aktiviere TFTP-server
- tftp-root=/var/lib/tftp # hier liegen die Daten Debian 12 Bookworm
- port=0 # DNS brauchen wir hier nicht
- ### Bootimage holen im Browser oder mit wget, ...
- - [download netboot.tar.gz Image](https://ftp.halifax.rwth-aachen.de/debian/dists/buster/main/installer-amd64/current/images/netboot/netboot.tar.gz)
- - Verzeichnis für TFTP-server anlegen
- sudo mkdir /var/lib/tftp
- - Bootimage dort entpacken
- - sudo tar xvf netboot.tar.gz -C /var/lib/tftp
- ### Konfigurations Dateien für die Clients erstellen oder anpassen
- Es kann für jeden Client eine spezielle Datei erstellt werden oder auch mehrere allgemeinere für mehrere Clients.
- Weitere Infos in https://wiki.ubuntuusers.de/PXE-Boot/
- Die in netboot.tar enthaltene default Konfigurationsdatei pxelinux.cfg/default kann für die APU nicht ohne Anpassung verwendet werden wegen fehlender Grafikkarte.
- Inhalt der default Datei für APU Installation im tftpserver mit Antwortdatei (debseed.cfg)
- Achtung IP-adresse tftp Server evtl. anpassen
- Dateiname C0A8B2 ergibt sich als hex von 192.168.178. Damit kann diese Datei für alle Geräte im Netz 192.168.178.0/24 verwendet werden.
- SERIAL 0 115200
- CONSOLE 0
- default Bookworm
- ALLOWOPTIONS 0
- TIMEOUT 600
- LABEL Bookworm
- MENU LABEL ^Bookworm
- KERNEL debian-installer/amd64/linux
- append interface=enp1s0 priority=critical initrd=debian-installer/amd64/initrd.gz auto=true url=tftp://192.168.178.52/debseed.cfg console=ttyS0,115200n8 --- console=ttyS0,115200n8
- Die Antwortdatei debseed.cfg und die Hilfsdatei netcfghack.sh müssen sich im TFTP-server Rootverzeichnis befinden.
- netcfghack.sh sorgt für die statische Netzkonfiguration von enp1s0 der APU.
- #!/bin/sh
- killall-dhcp
- netcfg
- echo netcfghack ende
- debseed.cfg hier ohne Kommentare, aber noch ein Hinweis zu Partionierung
- In debseed.cfg wird der größte freie (unpartionierte) Bereich genommen. 20G sind gut ausreichend. Ist keiner vorhanden >12G, fällt die Installation in den interaktiven Modus.
- Weitere Informationen im Debian Installationshandbuch [Debian Handbuch](https://www.debian.org/releases/stable/amd64/apbs04.en.html)
- #_preseed_v1
- ######### debseed.cfg ohne Kommentare, damit sie ins wiki passt
- d-i apt-setup/contrib boolean true
- d-i apt-setup/non-free boolean true
- d-i apt-setup/non-free-firmware boolean true
- d-i apt-setup/security_host string security.debian.org
- d-i apt-setup/services-select multiselect security, updates
- d-i clock-setup/ntp boolean true
- d-i clock-setup/utc boolean true
- d-i debian-installer/country string DE
- d-i debian-installer/language string en
- d-i debian-installer/locale string de_DE.UTF-8
- d-i hw-detect/load_firmware boolean true
- d-i keyboard-configuration/xkb-keymap select de
- d-i localechooser/supported-locales multiselect en_US.UTF-8
- d-i mirror/country string manual
- d-i mirror/http/directory string /debian
- d-i mirror/http/hostname string ftp.halifax.rwth-aachen.de
- d-i mirror/http/proxy string
- d-i netcfg/choose_interface select enp1s0
- d-i netcfg/confirm_static boolean true
- d-i netcfg/dhcp_failed note
- d-i netcfg/dhcp_options select Configure network manually
- d-i netcfg/disable_autoconfig boolean true
- d-i netcfg/get_domain string ffdo.net
- d-i netcfg/get_gateway string 192.168.178.254
- d-i netcfg/get_hostname string berghofen
- d-i netcfg/get_ipaddress string 192.168.178.51
- d-i netcfg/get_nameservers string 192.168.178.254
- d-i netcfg/get_netmask string 255.255.255.0
- d-i netcfg/hostname string berghofen.ffdo.net
- d-i netcfg/link_wait_timeout string 10
- d-i netcfg/wireless_wep string
- d-i partman-auto/choose_recipe select atomic
- d-i partman-auto/init_automatically_partition select biggest_free
- d-i partman-partitioning/confirm_write_new_label boolean true
- d-i partman/choose_partition select finish
- d-i partman/confirm boolean true
- d-i partman/confirm_nooverwrite boolean true
- d-i passwd/root-login boolean false
- d-i passwd/user-fullname string Debian apu
- d-i passwd/user-password password ganzsicher
- d-i passwd/user-password-again password ganzsicher
- d-i passwd/username string fb
- d-i preseed/run string netcfghack.sh
- d-i time/zone string Europe/Berlin
- tasksel tasksel/first multiselect standard
- d-i pkgsel/include string \
- bird2 \
- bridge-utils \
- build-essential \
- curl \
- debconf-utils \
- dkms \
- dnsutils \
- fail2ban \
- flashrom \
- git \
- info \
- iperf \
- iproute2 \
- iputils-tracepath \
- lshw \
- mlocate \
- mtr-tiny \
- neofetch \
- net-tools \
- openssh-server \
- psmisc \
- ssh-tools \
- syncthing \
- libncurses-dev libreadline-dev zlib1g-dev liblzo2-dev libssl-dev \
- tree \
- unbound \
- vim \
- wireless-tools \
- wpasupplicant \
- zip
- d-i finish-install/reboot_in_progress note
- d-i grub-installer/bootdev string /dev/sda
- d-i grub-installer/with_other_os boolean true
- popularity-contest popularity-contest/participate boolean false
- d-i preseed/late_command string cp /etc/network/interfaces /target/etc/network/interfacesweg2 ; env > /target/etc/network/env.lst
- In der debseed.cfg sind die IP-adressen, Hostnamen und User/PW für den sudouser anzupassen.
- Es sind auch ein paar Pakete der Kategorie 'nice to have' aufgenommen.
- ## Ablauf der Installation
- Auf dem tftpserver das serielle Terminalprogramm starten, im zweiten Terminalfenster dnsmasq mit Option -d starten, damit die Ausgabe im Terminal sichtbar bleibt.
- Falls dnsmasq port 69 nicht öffnen kann, prüfen wer drauf sitzt:
- sudo ss -lp 'sport = 69'
- und mit kill processid beenden, dann sollte dnsmasq starten.
- dnsmasq-dhcp: PXE(enp109s0f1) 00:0d:b9:58:66:1c proxy
- dnsmasq-dhcp: PXE(enp109s0f1) 192.168.178.51 00:0d:b9:58:66:1c pxelinux.0
- dnsmasq-tftp: sent /var/lib/tftp/pxelinux.0 to 192.168.178.51
- dnsmasq-tftp: sent /var/lib/tftp/ldlinux.c32 to 192.168.178.51
- dnsmasq-tftp: Datei /var/lib/tftp/pxelinux.cfg/01-00-0d-b9-58-66-1c nicht gefunden
- dnsmasq-tftp: Datei /var/lib/tftp/pxelinux.cfg/C0A8B233 nicht gefunden
- dnsmasq-tftp: Datei /var/lib/tftp/pxelinux.cfg/C0A8B23 nicht gefunden
- dnsmasq-tftp: sent /var/lib/tftp/pxelinux.cfg/C0A8B2 to 192.168.178.51
- dnsmasq-tftp: sent /var/lib/tftp/debian-installer/amd64/linux to 192.168.178.51
- dnsmasq-tftp: sent /var/lib/tftp/debian-installer/amd64/initrd.gz to 192.168.178.51
- dnsmasq-tftp: sent /var/lib/tftp/debseed.cfg to 192.168.178.51
- dnsmasq-tftp: sent /var/lib/tftp/netcfghack.sh to 192.168.178.51
- APU booten (Strom einschalten) und mit N PXE boot auswählen sobald es im seriellen Terminal angeboten wird. Nach einiger Zeit wird die Auswahl zur Netzschnittstelle angeboten.
- Bei der Schnittstelle enp1s0 auswählen und bestätigen. (Es ist mir nicht gelungen, diese Auswahl automatisch zu treffen).
- Wenn alles klappt, ist die APU nach ca 18 Minuten installiert und bootet in das frisch installierte System.
- Bei Fehlern in der debseed.cfg springt die Installation in den interaktiven Modus.
- Die Konfiguration (oder auch Kompilieren) von tinc, bird2 und unbound kann jetzt erfolgen.
- Die Abhängigkeiten lib*-dev sind schon installiert, ebenso der gcc compiler für tinc kompilieren.
- ## Tabelle der Installationen und für das Kompilieren von tinc
- [link label](/240506-VM-Konfiguration.pdf)
|