How to create Debian 10 SD card image
From ESS-WIKI
Revision as of 08:46, 6 December 2021 by Darren.huang (talk | contribs)
Host Prerequisites
Debian 10 rootfs tarball
The environment variable ,ROOTFS, must be set properly. (Ref. keep the rootfs for future use)
Yocto Linux SD card image
SDIMAGE=5720A1AIM20LIV90100_iMX8M_2020-04-03.img # i.MX8 ROM-5720
SDIMAGE=3430A1LIV8940_DualQuad_2019-04-29.img # i.MX6 RSB-3430
backup modules and firmware
BACKUPDIR=~/${SDIMAGE%%_*}
mkdir $BACKUPDIR
MNT=~/mnt
mkdir -p $MNT
PL=`fdisk -lu $SDIMAGE | grep "${SDIMAGE}2" | awk '{print $2}'`
sudo mount -o ro,offset=$((PL*512)) $SDIMAGE $MNT
sudo tar zcvf $BACKUPDIR/lib_modules.tgz -C $MNT lib/modules
sudo tar zcvf $BACKUPDIR/lib_firmware.tgz -C $MNT lib/firmware
sudo umount $MNT
Building Procedures
create one working image
DEBIMAGE=`sed "s/AIM20//; s/LIV/DIV/" <<< ${SDIMAGE%%_*}`_Debian10_base.img
cp $SDIMAGE $DEBIMAGE
PSECS=`fdisk -lu $SDIMAGE | grep "${SDIMAGE}2" | awk '{print $4}'`
mkfs.ext4 -F -E offset=$((PL*512)) $DEBIMAGE $((PSECS/2))K
restore rootfs
sudo mount -o offset=$((PL*512)) $DEBIMAGE $MNT
sudo tar zxvf $ROOTFS.tgz -C $MNT/
set hostname
HOST=RSB-3430 # for RSB-3430
HOST=ROM-5720 # for ROM-5720
sudo su -c "echo $HOST > $MNT/etc/hostname"
sudo su -c "echo -e \"127.0.0.1\tlocalhost\n127.0.1.1\t$HOST\n\" > $MNT/etc/hosts"
restore modules & firmware
sudo tar zxvf $BACKUPDIR/lib_modules.tgz -C $MNT
sudo tar zxvf $BACKUPDIR/lib_firmware.tgz -C $MNT
sudo umount $MNT
SDcard image is ready
write to SD card
The environment variable ,SD_DEVICE, must be set properly.
sudo dd if=$DEBIMAGE of=${SD_DEVICE} bs=1M conv=fsync status=progress