在PC上交叉编译好的基于ARM架构的可执行文件可以通过串口传输,FTP服务,NFS挂载等方式放到目标ARM板上。其中NFS挂载应该是最方便的,文件一直存放在PC上,只不过目标ARM板可以通过这种方式把PC的文件系统借为己用。
以前用FriendlyARM 2440开发板无论怎么折腾都无法成功地挂载,错误信息是server denied。后来发现是因为没有开发板的root权限(板子买来的时候root密码已经被人改过),于是重新用SD卡烧写了系统,这样root用户密码初始化为空。
SD卡烧写linux系统
把Bootloader(Superboot2440.bin
),Linux内核 (ZImage_X35
),文件系统映像(rootfs_qtopia_qt4.img
)和烧写配置文件(FriendlyARM.ini
)放入到images目录下。
- Step1:把格式化为FAT的SD卡插入电脑,把images目录全部拷到/目录下。打开FriendlyARM.ini文件修改成以下:
- Step2:将 SD卡插到开发板的 SD插槽上,将 S2 开关切换至 NOR一侧,然后上电开机,会听到“滴”一声开始烧写系统。
- Step3:系统烧写完成后,会发出滴滴的声音,串口会显示“OS ‘LINUX’ Installed”,将开发板 S2 开关设置为NAND一档,重新开机即可启动新的 Linux 系统。
挂载步骤
- PC上执行
sudo apt-get install nfs-common nfs-kernel-server portmap
安装NFS服务器 - 安装完成后会在/etc目录下生成exports配置文件,它是用来设置PC允许NFS服务器分享的目录。同时可以通过命令控制NFS服务器状态。
启动服务 ` sudo /etc/init.d/nfs-kernel-server start`
停止服务 ` sudo /etc/init.d/nfs-kernel-server stop`
重启服务 ` sudo /etc/init.d/nfs-kernel-server restart`
- 编辑exports文件,设置共享目录
sudo vim /etc/exports
添加以下一行:/opt/ARM2440 *(rw,sync,no_root_squash)
/opt/ARM2440是PC上的共享目录,也就是ARM可以挂载在自己某个目录下的文件系统。 - 在ARM对应的终端上执行挂载命令
mount -t nfs -o nolock 202.201.13.205:/opt/ARM2440 /mnt
,其实202.201××是PC的公网IP地址 [root@FriendlyARM /]# cd /mnt
,进入mnt目录即可看到PC上共享目录ARM2440下的文件。这样就可以直接在PC上修改和交叉编译源代码,在ARM上执行程序。