Benutzer-Werkzeuge

Webseiten-Werkzeuge


Übersetzungen dieser Seite:

bpi-r2:debian

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
bpi-r2/debian.txt · Zuletzt geändert: 2023/06/08 17:06 von 127.0.0.1