本文介绍如何采用网络接口通过tftp加载kernel
1.搭建tftp服务器
主机环境:Ubuntu 18.04.6 LTS
1)安装必要的包
sudo apt-get install xinetd tftpd tftp
2)创建tftp文件
vi /etc/xinetd.d/tftp
service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = /tftpboot
disable = no
}
3)创建/tftpboot目录
sudo mkdir /tftpboot
sudo chmod -R 777 /tftpboot
sudo chown -R nobody /tftpboot
4)启动xinetd服务
sudo service xinetd restart
现在tftp服务器就启动了。
2.加载kernel
1)复制kernel,dtb到制定目录
sudo cp Linux_for_Tegra/kernel/Image /tftpboot/
sudo cp Linux_for_Tegra/kernel/dtb/tegra210-p3448-0000-p3449-0000-b00.dtb /tftpboot/
其中,“Linux_for_Tegra”为根文件系统目录,“tegra210-p3448-0000-p3449-0000-b00.dtb”为对应的dtb,不同的硬件平台会有差异。
2)创建pxelinux.cfg
sudo vi /tftpboot/pxelinux.cfg
PROMPT 0
TIMEOUT 30
DEFAULT primary
MENU TITLE PXELinux boot options
LABEL primary
MENU LABEL primary kernel on TFTP
LINUX Image
FDT tegra210-p3448-0000-p3449-0000-b00.dtb
APPEND ${cbootargs} booted-via-pxe=true
注意其中的dtb文件要写对。
3)u-boot配置
开机,按任意键进入u-boot命令行
a)DHCP方式
pci enum; pci
setenv serverip <your-tftp-server-ip>
setenv autoload no
dhcp
run bootcmd_pxe
注意:这种方式,主机需要搭建DHCP服务器,并开启DHCP服务,<your-tftp-server-ip>为主机IP地址。
b)手动配置IP方式
setenv serverip <tftp-server-ip>
setenv ipaddr <target-ip>
saveenv
editenv bootcmd_pxe
增加:
pci enum
删除:
dhcp
最后run bootcmd_pxe
注意:<tftp-server-ip>为主机IP地址,<target-ip>为开发板IP地址,且2个IP地址须在同一个网段。
以上就是Jetson Nano采用tftp加载kernel的方法。