基础镜像制作
环境准备
- 安装编译依赖工具
sudo apt install build-essential bc
sudo apt-get install git bison flex libssl-dev zip libncurses-dev make git
sudo apt-get install build-essential bc
创建工具链放置目录
mkdir $HOME/l4t-gcc-toolchain
cd $HOME/l4t-gcc-toolchain
- 下载并解压交叉编译工具链
wget https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v3.0/toolchain/aarch64--glibc--stable-2022.08-1.tar.bz2
tar xf aarch64--glibc--stable-2022.08-1.tar.bz2
- 进入到缓存好的刷机固件目录
cd $HOME/nvidia/nvidia_sdk/JetPack_6.2.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/source #根据实际目录进行修改
修改添加设备树和驱动
4G模块
需要改动内核镜像
Intel无线网卡
参考 网卡说明 安装驱动后进入 /lib/modules/$(uname -r)/kernel/update/dkms 提取 ko驱动
r8125网卡
ko驱动放入/lib/modules/$(uname -r)/kernel/update/dkms
USB设备树
修改tegra234-dcb-p3737-0000.dtsi
替换dcb字段
修改tegra234-p3768-0000.dtsi
添加usb3-2相关设置
padctl@3520000 { status = "okay"; pads { usb2 { lanes { usb2-0 { nvidia,function = "xusb"; status = "okay"; }; usb2-1 { nvidia,function = "xusb"; status = "okay"; }; usb2-2 { nvidia,function = "xusb"; status = "okay"; }; }; }; usb3 { lanes { usb3-0 { nvidia,function = "xusb"; status = "okay"; }; usb3-1 { nvidia,function = "xusb"; status = "okay"; }; usb3-2 { nvidia,function = "xusb"; status = "okay"; }; }; }; }; ports { /* recovery port */ usb2-0 { mode = "otg"; vbus-supply = <&vdd_5v0_sys>; status = "okay"; usb-role-switch; }; /* hub */ usb2-1 { mode = "host"; vbus-supply = <&vdd_1v1_hub>; status = "okay"; }; /* M.2 Key-E */ usb2-2 { mode = "host"; vbus-supply = <&vdd_5v0_sys>; status = "okay"; }; /* hub */ usb3-0 { nvidia,usb2-companion = <1>; status = "okay"; }; /* J5 */ usb3-1 { nvidia,usb2-companion = <0>; status = "okay"; }; usb3-2 { nvidia,usb2-companion = <2>; status = "okay"; }; }; }; usb@3550000 { status = "okay"; phys = <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>, <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-1}>; phy-names = "usb2-0", "usb3-0"; }; usb@3610000 { status = "okay"; phys = <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-0}>, <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-1}>, <&{/bus@0/padctl@3520000/pads/usb2/lanes/usb2-2}>, <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-0}>, <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-1}>, <&{/bus@0/padctl@3520000/pads/usb3/lanes/usb3-2}>; phy-names = "usb2-0", "usb2-1", "usb2-2", "usb3-0", "usb3-1", "usb3-2"; };