1. 环境准备与网络配置
嵌入式Linux开发最让人头疼的就是反复烧写系统镜像了。每次改个驱动代码都要重新烧录整个系统,效率太低。我自己刚开始学的时候,一天能烧写几十次,简直让人崩溃。后来发现了TFTP+NFS这个黄金组合,开发效率直接提升10倍不止。
简单来说,TFTP负责快速传输内核镜像和设备树文件,NFS则让根文件系统直接挂载到Ubuntu的共享目录。这样修改代码后,只需要重新编译并复制到指定位置,开发板就能立即使用新版本,完全不需要烧写EMMC。
1.1 硬件连接与软件安装
先说说需要的硬件准备。我用的正点原子阿尔法IMX6ULL开发板,你需要准备:
- 开发板电源和串口线(USB-TTL)
- 网线(连接开发板和电脑)
- 笔记本电脑(安装Ubuntu虚拟机)
软件方面,确保Ubuntu已经安装这些服务:
# 安装TFTP和NFS相关服务
sudo apt-get install tftp-hpa tftpd-hPA xinetd
sudo apt-get install nfs-kernel-server rpcbind
创建必要的目录结构,这是我推荐的组织方式:
mkdir -p ~/linux/{tftpboot,nfs,IMX6ULL}
tftpboot存放内核镜像和设备树,nfs放根文件系统,IMX6ULL放源码和驱动项目。
1.2 网络环境搭建
网络配置是很多新手最容易卡住的地方。我建议采用"双网卡"方案:一个NAT模式用于上网,一个桥接模式用于开发板通信。
在VMware中设置两个虚拟网络适配器:
- 适配器1:桥接模式,桥接到有线网卡
- 适配器2:NAT模式,用于上网
Ubuntu内的IP配置如下:
- 桥接网卡:192.168.10.100/24
- NAT网卡:自动获取即可
Windows端以太网适配器设置为:
- IP地址:192.168.10.200
- 子网掩码:255.255.255.0
开发板IP通过U-Boot设置为192.168.10.50。这样所有设备都在同一网段,互相ping通没问题。
注意:如果ping不通,先检查Windows防火墙设置,暂时关闭防火墙测试连通性。
2. TFTP与NFS服务配置
配置好网络后,接下来搭建文件传输服务。TFTP用于内核镜像的快速传输,NFS实现根文件系统的网络挂载。
2.1 TFTP服务器搭建
TFTP配置需要几步走。先创建共享目录并设置权限:
chmod 777 ~/linux/tftpboot
然后创建TFTP配置文件:
sudo vim /etc/xinetd.d/tftp
写入以下内容(记得替换为你的实际路径):
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
serve
454



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



