====== Debian ======
===== debootstrap =====
https://blog.night-shade.org.uk/2013/12/building-a-pure-debian-armhf-rootfs/
[[ubuntu]]
:!: in jessie/Ubuntu 14.x (64bit) there are problems in second-stage: [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=857338|link]], here debootstrap must be updated (first stage must be called again): [[https://packages.debian.org/jessie-backports/all/debootstrap/download|download]]
sudo apt-get install qemu-user-static debootstrap binfmt-support
distro=buster
arch=armhf
#for bpi-r64 use 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/
#for r64 use
# 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
like it's done in source hostname,apt (local Server),...must be configured
* hostname (/etc/hostname)
bpi-r2
* /etc/apt/sources.list
deb http://ftp.us.debian.org/debian buster main contrib non-free
deb-src http://ftp.us.debian.org/debian buster main contrib non-free
deb http://ftp.us.debian.org/debian buster-updates main contrib non-free
deb-src http://ftp.us.debian.org/debian buster-updates main contrib non-free
deb http://security.debian.org/debian-security buster/updates main contrib non-free
deb-src http://security.debian.org/debian-security buster/updates main contrib non-free
* fstab (boot,root)
#
/dev/mmcblk0p1 /boot vfat errors=remount-ro 0 1
/dev/mmcblk0p2 / ext4 defaults 0 0
* Dns-server in /etc/resolv.conf
nameserver 192.168.0.5
* Network-Configuration
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
...
in existing Jessie-Image clear root-partition (except lib/modules/) and put contents of Bootstrap-folder (debian_stretch) to it
Uploaded work so far on my [[https://drive.google.com/drive/folders/15Y5Y3NAOwg_IMmN3k6hdb7pAQj9oTVTl?usp=sharing|gdrive]]
Image (sd+emmc in separate img's):
[[https://drive.google.com/drive/folders/1oP7jy1KrrIOifvImo2nQ59wx3_9hHkgk?usp=sharing|gdrive]]
(deb_stretch_…)
on EMMC-Image SSH-Login is not possible as root because of missing option in ssh-server
add the following line to /etc/ssh/sshd_config and reboot/restart sshd:
PermitRootLogin yes
===== change working Image =====
* clear logs (echo -n "">logfile),
* delete backup-files,
* clear cache (e.g. APT),
* remove unused Kernel-Modules (/lib/modules/)
* delete own Users
* reset PW for root
fill free space in the Image with null-file (for better packing):
loopdev=$(losetup -f) #get first free loopdevice
losetup ${loopdev} /path/to/file
partprobe ${loopdev}
mount ${loopdev}p2 /mnt
#if you want to install/update things
cp /usr/bin/qemu-arm-static /mnt/usr/bin/
chroot /mnt
#overwrite free space
dd if=/dev/zero of=/mnt/null.dat
rm /mnt/null.dat
losetup -d ${loopdev}
https://softwarebakery.com/shrinking-images-on-linux
alternative https://wiki.debian.org/DebianInstaller/Arm/OtherPlatforms
===== my Image for BPI-R2 =====
==== network ====
you have ports wan, lan0-lan4 with kernel 4.14+
current config can be displayed using ip a or by editing /etc/network/interfaces
wan:dhcp # maybe needs additional "auto wan" to go up on boot
lan0: 192.168.0.10/24
lan1+lan2 are in a bridge with address 192.168.40.1/24 #currently also auto lanx+manual missing
lan3 unconfigured
to add default-gateway / DNS server do this
ip route add default via
nano /etc/resolv.conf #change ip of your gateway for DNS
==== keyboard ====
for configuring keyboard you have to install console-setup then you will be prompted for keyboard-layout
apt-get install console-setup