1.NVIDIA Jetson Nano使用指南
2.小白自制Linux开发板 :Linux内核与文件系统移植
NVIDIA Jetson Nano使用指南
本文旨在提供NVIDIA Jetson Nano的使用指南,分享个人在端侧机器学习系统课程助教和PRP相关研究项目中的经验。如有疑问,欢迎在评论区留言。先前也撰写过关于树莓派的经验帖,欢迎关注。源码导弹20枚密码是什么
Jetson系列专注于边缘端AI平台,自年发布Pascal架构的TX2子系列,至年推出Ampere架构的Orin子系列,涵盖Nano、TX2/NX、AGX等型号,满足入门级、氢tv源码主流级和自主机器市场的需求。Nano是尺寸最小、性能最弱、价格最低的型号。
Jetson开发板一般包含核心板和载板两层。核心板集成了Tegra架构SoC、CPU、GPU、内存和视频编解码器等,带有eMMC闪存。载板提供额外的外设接口,如HDMI、货品溯源码网口、USB等。Nano型号的官方载板和国产载板在布局上基本一致。
硬件准备包括:Nano开发板、无线网卡(推荐高级套件,避免干扰)、数据线(Micro-USB和DC接口)、电源(推荐5V3A或更高,避免使用过长电源线)、外壳(保护电路避免意外损坏)。注意Micro-USB和Mini-USB的区别。
固件刷写包括BootLoader和Linux内核。kit端口源码使用VMWare加载虚拟机,确保硬件资源设置为1个CPU和1个线程,通过短接控制引脚和Micro-USB连接实现硬件与虚拟机的连接,然后进入/home/linux_for_Tegra文件夹,运行终端命令,输入密码nvidia完成刷写。
系统烧录需要使用balenaEtcher工具,选择TF卡作为目标,加载并执行烧录过程。此过程中使用的系统镜像包含了Jetpack4.6.1和CUDA.2,适用于Nano。
分区扩容可通过GParted工具实现,skey权限源码更新apt源为清华源以优化网络体验,安装GParted并扩展主分区至TF卡最大容量。
配置风扇自启动,编辑自启动脚本以实现开机时风扇启动,确保系统散热。
SSH远程登录配置包括静态IP地址设置和免密登录,以支持远程访问Nano系统。
深度学习环境配置涉及PyTorch和torchvision的安装,需要在官网下载预编译的whl文件或从源码编译安装,确保兼容aarch架构。
VSCode远程开发环境配置包括安装Remote Development插件,设置远程连接,通过SSH终端连接Nano系统进行编程。
通过MNIST神经网络时延测试,评估Nano在端侧机器学习应用中的性能,包括硬件限制和资源消耗,提供直观的速度对比。
小白自制Linux开发板 :Linux内核与文件系统移植
Linux内核
若要移植F1CS/F1CS至Linux,可直接利用官方源码对licheepi nano的支援。首先,访问kernel.org下载最新长支版本内核源码(建议使用5..),若使用特定版本,如5.7.1,则可直接下载对应链接。解压后,将内核源码复制至Ubuntu虚拟机。
配置编译
在Linux内核代码中找到Makefile文件,修改ARCH和CROSS_COMPILE配置为Arm,使用编译工具交叉编译。完成内核配置后,下载licheepi_nano的配置文件,放置于arch/arm/configs目录下。使用图形化配置界面完成内核与开发板soc的对应配置。
配置TF卡设备树信息
在arch/arm/boot/dts目录下修改suniv-f1cs.dtsi和suniv-f1cs-licheepi-nano.dts文件,添加相应的头文件与配置选项。确保内核编译成功,生成zImage和dtb文件。
TF分区配置
通过Gparted软件分区,将TF卡分为两个分区,一个用于存放zImage、dtb文件,另一个用于根文件系统。格式化为fat和ext4,确保正确分配分区大小并保存配置。
内核复制与执行
将内核文件复制至TF卡的BOOT分区,插入开发板后,通过u-boot启动并自动进入内核启动环节。确保TF卡根文件系统正确挂载。
文件系统移植
使用Buildroot制作根文件系统,选择目标选项、编译选项、工具链与系统配置,确保文件系统兼容并能正常挂载。构建完成的根文件系统镜像解压至TF卡第二分区。
执行与升级
登录自制Linux系统,通过修改/etc/profile文件调整命令行显示。运行GPIO实验,利用Linux GPIO子系统实现LED灯的点灯功能,探索Linux内核的驱动实现。
总结
完成了Linux内核与文件系统的移植,从内核配置到文件系统挂载,再到驱动实验,逐步实现自制Linux开发板的操作系统。后续将升级硬件设备并进行更有意义的项目开发,期待你的进步。