Inhaltsverzeichnis
Debian
debootstrap
https://blog.night-shade.org.uk/2013/12/building-a-pure-debian-armhf-rootfs/
in jessie/Ubuntu 14.x (64bit) gibt es Probleme in der second-stage: link, hier muss ggf. debootstrap geupdated werden (erste Stufe muss erneut durchgeführt werden): download
sudo apt-get install qemu-user-static debootstrap binfmt-support distro=buster arch=armhf #r64: arch=arm64 targetdir=$(pwd)/debian_${distro}_${arch} mkdir $targetdir sudo debootstrap --arch=$arch --foreign $distro $targetdir sudo cp /usr/bin/qemu-arm-static $targetdir/usr/bin/ #r64:sudo cp /usr/bin/qemu-aarch64-static $targetdir/usr/bin/ sudo cp /etc/resolv.conf $targetdir/etc sudo distro=$distro chroot $targetdir export LANG=C /debootstrap/debootstrap --second-stage
ggf. gleich root-pw setzen und/oder neue User anlegen (sudo nicht vergessen). sonst kein login (seriell/ssh) in das System möglich.
Man kann auch vom hostsystem Befehle in der chroot ausführen.
chroot rootordner/ ./chroot.sh
chroot verlassen (exit oder strg+D)
ggf. Packen:
#sudo umount $targetdir/proc sudo tar -czf ${distro}_${arch}.tar.gz -C $targetdir $targetdir
wie in der Quelle noch hostname,apt (ggf. De-Server),… einrichten
- hostname (/etc/hostname)
bpi-r2
- /etc/apt/sources.list
deb http://ftp.de.debian.org/debian $distro main contrib non-free deb-src http://ftp.de.debian.org/debian $distro main contrib non-free deb http://ftp.de.debian.org/debian $distro-updates main contrib non-free deb-src http://ftp.de.debian.org/debian $distro-updates main contrib non-free deb http://security.debian.org/debian-security $distro/updates main contrib non-free deb-src http://security.debian.org/debian-security $distro/updates main contrib non-free
- fstab (boot,root)
# <file system> <dir> <type> <options> <dump> <pass> /dev/mmcblk0p2 / ext4 errors=remount-ro 0 1 /dev/mmcblk0p1 /boot vfat defaults 0 0
- Dns-server in /etc/resolv.conf eintragen
nameserver 192.168.0.5
auto eth0 iface eth0 inet manual pre-up ip link set $IFACE up post-down ip link set $IFACE down auto lan0 iface lan0 inet static hwaddress ether 08:00:00:00:00:00 # if you want to set MAC manually address 192.168.0.10 netmask 255.255.255.0 gateway 192.168.0.5 pre-up ip link set $IFACE up post-down ip link set $IFACE down ...
im bestehenden Jessie-Image die root-Partition (außer lib/modules/<kernelversion>) leeren und den Inhalt des Bootstrap-ordners (debian_stretch) dorthin kopieren
fertiges bootstrapped debian stretch (sd+emmc in separaten img's): gdrive
damit der root-login via SSH funktioniert muss noch in der /etc/ssh/sshd_config folgendes hinzugefügt werden:
PermitRootLogin yes
sowie der ssh-server neu gestartet werden mit
service sshd restart
lauffähiges Image anpassen
- logs leeren (echo -n „“>logdatei),
- backup-dateien löschen,
- cache (z.B. APT) löschen,
- nicht benötigte Kernel-Module (/lib/modules/)
- ggf. eigene User löschen
- PW für root zurücksetzen
freien Speicher im Image mit null-datei füllen (besseres packen):
loopdev=$(losetup -f) #erstes freies loopdevice losetup ${loopdev} /path/to/file partprobe ${loopdev} mount ${loopdev}p2 /mnt #wenn man noch Sachen installieren will bzw. Updates machen cp /usr/bin/qemu-arm-static /mnt/usr/bin/ chroot /mnt #bei apt-update-fehler "Couldn't create temporary file /tmp/apt.conf.xxxxx for passing config to apt-key" mount -t tmpfs none /tmp #freien Speicherplatz überschreiben dd if=/dev/zero of=/mnt/null.dat rm /mnt/null.dat #uboot-update r2 dd of=${loopdev} if=u-boot.bin bs=1k seek=320; losetup -d ${loopdev}
https://softwarebakery.com/shrinking-images-on-linux
myimage=myimage.img size=$(fdisk -l $myimage | tail -1 | awk '{print $3}') truncate --size=$[($size+1)*512] $myimage
alternative https://wiki.debian.org/DebianInstaller/Arm/OtherPlatforms
NTP
apt-get install ntpdate
service ntp stop ntpdate -s ptbtime1.ptb.de service ntp start
Netzwerk
alles unter 4.14 in der /etc/network/interfaces:
normale Konfiguration
auto eth0 iface eth0 inet manual pre-up ip link set $IFACE up post-down ip link set $IFACE down auto lan0 iface lan0 inet static hwaddress ether 08:00:00:00:00:00 # if you want to set MAC manually address 192.168.0.10 netmask 255.255.255.0 gateway 192.168.0.5 pre-up ip link set $IFACE up post-down ip link set $IFACE down auto lan1 iface lan1 inet static hwaddress ether 08:00:00:00:00:01 # if you want to set MAC manually address 192.168.1.10 netmask 255.255.255.0 pre-up ip link set $IFACE up post-down ip link set $IFACE down auto lan2 iface lan2 inet static hwaddress ether 08:00:00:00:00:02 # if you want to set MAC manually #... auto lan3 iface lan3 inet static hwaddress ether 08:00:00:00:00:03 # if you want to set MAC manually #... auto wan iface wan inet static hwaddress ether 09:00:00:00:00:01 # if you want to set MAC manually #...
unter debian 9 funktioniert hwaddress nicht mehr, hier lässt sich das setzen der MAC so erreichen:
iface lan0 inet static address 192.168.0.10 netmask 255.255.255.0 gateway 192.168.0.5 # pre-up ip link set $IFACE up pre-up ip link set $IFACE address 02:01:02:03:04:08 up post-down ip link set $IFACE down
Netzwerkbrücke
apt-get install bridge-utils
iface br0 inet static address 192.168.40.1 netmask 255.255.255.0 bridge_ports lan1 lan2 bridge_fd 5 bridge_stp no
vlan
auto lan3 iface lan3 inet manual auto lan3.60 iface lan3.60 inet static address 192.168.60.10 netmask 255.255.255.0 # gateway 192.168.0.5 pre-up ip link set $IFACE address 02:01:02:03:04:03 up #setting mac does not work currently