系统镜像6G,默认安装ubuntu desktop等桌面软件,体积非常大,如果项目开发完成,想要将工程文件直接集成到镜像里,进行批量烧录,那么可以通过自制镜像的方式来实现。以下针对Nano版整理的制作方法。
一、下载BSP并解压
wget https://developer.nvidia.com/embedded/l4t/r32_release_v6.1/t210/jetson-210_linux_r32.6.1_aarch64.tbz2
tar xvf jetson-210_linux_r32.6.1_aarch64.tbz2
cd Linux_for_Tegra
二、host安装依赖
apt-get update
apt-get install --no-install-recommends -y qemu-user-static debootstrap binfmt-support coreutils parted gdisk e2fsprogs
三、运行debootstrap创建基础rootfs
debootstrap --arch=arm64 --foreign --variant=minbase --include=python3,python3-apt bionic rootfs
vim rootfs/etc/apt/sources.list
添加如下源:
deb http://ports.ubuntu.com/ubuntu-ports/ bionic main restricted universe multiverse
deb http://ports.ubuntu.com/ubuntu-ports/ bionic-security main restricted universe multiverse
deb http://ports.ubuntu.com/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb http://ports.ubuntu.com/ubuntu-ports/ bionic-backports main restricted universe multiverse
也可以是阿里源:
deb http://mirrors.aliyun.com/ubuntu-ports/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu-ports/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu-ports/ bionic-backports main restricted universe multiverse
vim rootfs/etc/netplan/netcfg.yaml
添加如下:
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: true
cp /usr/bin/qemu-aarch64-static rootfs/usr/bin
chroot rootfs /bin/bash -c "/debootstrap/debootstrap --second-stage"
四、target安装依赖
此时需要chroot到rootfs内
chroot rootfs /bin/bash
apt update
# 下面根据需求来 安装 #
# x11 桌面有关 #
apt install libx11-dev libgles2 libpangoft2-1.0-0 libharfbuzz0b libgles2 libdatrie1 libxkbcommon0 libwayland-egl1 libwayland-cursor0 libunwind8 libpng16-16 libpixman-1-0 libjpeg-turbo8 libinput10 libgles2 libevdev2 libcairo2 device-tree-compiler iso-codes libffi6 libncursesw5 libpython3-stdlib libpython3.8-minimal libpython3.8-stdlib libreadline7 libtinfo5 python3-minimal python3.8 libglvnd0 libdrm-common libdrm2 libegl-mesa0 libegl1 libegl1-mesa libgtk-3-0 libgbm1 libglapi-mesa libwayland-server0 libx11-xcb1 libxcb-dri3-0 libxcb-present0 libxcb-sync1 libxcb-xfixes0 libxshmfence1 libgstreamer1.0-0 libgstreamer-plugins-bad1.0-0 libpangocairo-1.0-0 libasound2 libasound2-data libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python python-minimal python2.7 python2.7-minimal
apt install bash-completion #命令自动补齐
apt install net-tools netplan.io iputils-ping dnsutils isc-dhcp-client #网络相关
apt install locales systemd udev unzip vim ssh htop #良品必备
apt install wpasupplicant #wifi
apt install kmod build-essential cmake curl #编译相关
apt install pciutils usbutils
apt install linux-firmware #选择性安装 612MB
apt install python3-dev #选择性安装
locale-gen en_US.UTF-8
rm /dev/random
rm /dev/urandom
exit
./apply_binaries.sh
五、编译镜像
cd tools
4G版:
./jetson-disk-image-creator.sh -o jetson_4G.img -b jetson-nano -r 300
*(100/200/300 for A01/A02/B00)
2G版:
./jetson-disk-image-creator.sh -o jetson_2G.img -b jetson-nano-2gb-devkit
-rw-r–r– 1 root root 1.8G Jul 11 15:57 jetson.img
基础版镜像只有1.8G,需要什么加什么。
六、烧录镜像
dd if=jetson_4G.img of=/dev/sdb bs=4M conv=fsync status=progress
根据读卡器识别不同,有些是sd设备,有些是mmc设备,根据情况来。
七、调整分区
比较复杂,参考脚本:https://raw.githubusercontent.com/pythops/jetson-nano-image/master/flash-image.sh
本文详细介绍了如何为Jetson Nano自制最小的Ubuntu系统镜像,通过下载BSP、安装依赖、使用debootstrap创建rootfs、调整分区等步骤,实现精简的系统镜像制作,适用于项目开发和批量烧录。
1801

被折叠的 条评论
为什么被折叠?



