How to create Debian 10 SD card image

From ESS-WIKI
Jump to: navigation, search


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