Benutzer-Werkzeuge

Webseiten-Werkzeuge



bpi-r2:debian

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
bpi-r2:debian [2019/07/10 16:59] frankbpi-r2:debian [2023/06/08 17:06] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +====== 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: [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=857338|link]], hier muss ggf. debootstrap geupdated werden (erste Stufe muss erneut durchgeführt werden): [[https://packages.debian.org/jessie-backports/all/debootstrap/download|download]]
 +
 +<code bash>
 +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
 +</code>
 +
 +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)
 +<code>
 +bpi-r2
 +</code>
 +  * /etc/apt/sources.list
 +<code>
 +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
 +</code>
 +  * fstab (boot,root)
 +<code>
 +# <file system>     <dir>       <type>  <options>       <dump>  <pass>
 +/dev/mmcblk0p2      /       ext4    errors=remount-ro         1
 +/dev/mmcblk0p1      /boot       vfat    defaults        0       0
 +</code>
 +  * Dns-server in /etc/resolv.conf eintragen
 +<code>
 +nameserver 192.168.0.5
 +</code>
 +  * [[#Netzwerk|Netzwerk-Konfiguration]]
 +<code>
 +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
 +...
 +</code>
 +
 +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): [[https://drive.google.com/drive/folders/15Y5Y3NAOwg_IMmN3k6hdb7pAQj9oTVTl?usp=sharing|gdrive]]
 +
 +damit der root-login via SSH funktioniert muss noch in der /etc/ssh/sshd_config folgendes hinzugefügt werden:
 +<code>PermitRootLogin yes</code>
 +sowie der ssh-server neu gestartet werden mit 
 +<code>service sshd restart</code>
 +===== 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):
 +
 +<code bash>
 +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}
 +</code>
 +
 +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 ====
 +<code>
 +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
 +  #...
 +</code>
 +
 +unter debian 9 funktioniert hwaddress nicht mehr, hier lässt sich das setzen der MAC so erreichen:
 +
 +<code>
 +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
 +</code>
 +
 +
 +==== Netzwerkbrücke ====
 +
 +<code>
 +apt-get install bridge-utils
 +</code>
 +
 +<code>
 +iface br0 inet static
 +  address 192.168.40.1
 +  netmask 255.255.255.0
 +  bridge_ports lan1 lan2
 +  bridge_fd 5
 +  bridge_stp no
 +</code>
 +
 +==== vlan ====
 +
 +<code>
 +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
 +</code>