Jetson Nano 自制最小文件系统镜像

本文详细介绍了如何为Jetson Nano自制最小的Ubuntu系统镜像,通过下载BSP、安装依赖、使用debootstrap创建rootfs、调整分区等步骤,实现精简的系统镜像制作,适用于项目开发和批量烧录。

系统镜像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

八、插电开机、成功启动

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码撸起

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值