1、 Fedora14 下烧写 uboot 到 sd 卡,烧写内核代码到 nangflash ,挂载 ntfs 文件系统到 s5pv210前几天在老师的指导下完成了 s5pv210 的 u-boot 及内核代码的烧写和挂载 netfs 文件系统,今天抽时间再总结一下,主要是对中间出现的问题及解决方案。希望对有需要的人有所帮助。环境:fedora 14 s5pv210 开发板 vwarm9.0需要准备的:uImage 、 tiny210v2-uboot.bin 、rootfs_qtopia_qt4.img一. 首先先把 u-boot 烧到 sd 卡里面代码:dd iflag= dsync oflag
2、=dsync if= tiny210v2-uboot.bin of=/dev/sdb seek=1说明:这一步比较简单,没什么问题 烧写完毕后,开发板上电,以 root 权限进入 minicom 进入 u-boot 界面。二、准备烧写内核代码 1、配置 TFTP 服务器 为了安装 TFTp 服务器及客户端,需要连接网络 ,为方便起见,本人建议,开启虚拟机之前首先 调节网络模式为 NET 模式,这样主机只要能连上网,虚拟机就能上网,可以通过YUN 工具进行 TFTP 服务器的安装代码:#yum install tftp-server /安装 TFTP 服务器# yum install y tft
3、p /安装 TFTP 客户端 y 参数表示同意下载配置 TFTP 环境创建共享目录: #mkdir /var/lib/tftpboot打开修改配置文件:#vim /etc/xinetd.d/tftp修改如下: server-args = -s /var/lib/tftpboot c启动 TFTP 服务器: #service xinetd restart测试是否启动 TFTP 服务器: # netstat a | grep tftp如果没有打开:#chkconfig tftp on # /etc/init.d /xinetd restart关闭防火墙:Setup 进入设置 (这里不在多说)注意:
4、接下来虚拟机下必须设置网络模式为桥接模式(烧写 uImage 时候的网络模式) ,我曾经试过在 NET 模式下和 HOST-ONLY 模式都没有成功。这里关系到设置 TFTP 服务器的ip 地址。进入 u-boot 模式 设置服务器 ip 地址及开发板的 ip 地址代码:1, set serverip 192.168.0.102, set ipaddr 192.168.0.20保证服务器的 ip 地址与开发板的 ip 地址在同一个网段 其他的不需要设定3, saveenv(保存 )4, u-boot 对 nandflash 的操作指令擦除整个 nandflash: nand erase.chi
5、p向地址为 21000000 开始拷贝 0x400 个字节到 nandflash 的起始位置 05,内核映像文件 uImage 将 uImage 文件放在共享目录下 /var/lib/tftpboot 在 u-boot 模式下用 tftp 命令下载 uImage到开发板代码: tftp 21000000 uImage nand erase.chipnand write 21000000 600000 500000setenv bootcmd nand read 20008000 600000 500000;bootm 20008000saneenv6,重新启动,在 minicom 中可以看到内
6、核启动的信息注意:按照以上的虚拟机配置,在命令终端 进入 root 用户 设置 eth0 的 ip 地址# ifconfig eth0 192.168.0.10#service network restart注意:如果这个时候 etho 起不开 并且报错为:弹出界面 eth0:错误:激活连接失败:device not managed by NetworkManager解决方法:关闭 NetworkManager 即可命令:service NetworkManager stop 为了防止下次启动时,该服务重新启动,解决方法:chkconfig NetworkManager off再重启网卡,就可
7、以了最后一步:安装 NFS 服务宿主机启动 NFS 共享服务需要执行以下三个步骤,分别是:1) 设置共享目录和存取权限在 PC 宿主机的终端下,打开/etc/exports 文件:# gedit /etc/exports在里面添加如下内容:/var/lib/tftpboot *(rw,sync,no_root_squash)其中“/var/lib/tftpboot”是 PC 宿主机端的共享目录、 “rw”表示读写权限、 “sync”表示数据同步写入内存和硬盘、 “no_root_squash”表示允许其他机器以 root 权限执行、存取 NFS 共享目录里的内容。1) 打 开 NFS 服 务
8、器 功 能在 终 端 下 执 行 以 下 指 令 打 开 NFS 服 务 功 能 :# /etc/rc.d/init.d/nfs start通 常 在 执 行 完 开 启 NFS 服 务 的 操 作 后 再 进 行 一 次 NFS 重 新 启 动 的 操 作 , 执 行 如 下指 令 :# /etc/rc.d/init.d/nfs restart在 PC 宿 主 机 上 设 置 好 NFS 共 享 目 录 后 , 最 好 先 在 PC 宿 主 机 上 进 行 NFS 服 务 器 的 回环 测 试 , 验 证 共 享 目 录 是 否 能 够 被 访 问 , 执 行 如 下 指 令 :mount
9、t nfs 192.168.0.10:/var/lib/tftpboot /mnt o nolock这 里 192.192.192.105 是 PC 宿 主 机 的 IP 地 址 , 如 果 验 证 没 有 问 题 的 话 就 会 在 PC宿 主 机 /mnt 目 录 下 看 到 共 享 目 录 /var/lib/tftpboot 里 面 的 内 容 。配置根文件系统根文件系统有两个选择: 带 QT 的:rootfs_qtopia_qt4-20130222.tar.gz(选这个) 不带 QT 的:rootfs_rtm_210.tgz将任一一个解压到/var/lib/tftpboot 目录内,重
10、新启动开发板,进入 u-boot,配置如下信息:setenv bootargs noinitrd root=/dev/nfs rw nfsroot=192.168.0.10:/var/lib/tftpboot ip=192.168.0.20:192.168.0.10:192.168.0.100:255.255.255.0:arm:eth0:off console=ttySAC0,115200saveenv经过以上操作,开发板启动后加载内核,并以 NFS 的方式挂载 PC 主机的根文件系统。补充说明:1, 在最后一步挂载 nfs 文件是会出现很多问题比如说权限不够。 。 。 。当你 chmod 777 /var/lib/tftpboot 之后 还是报权限的错误不用考虑,只需要关闭 selinux 即可,指令如下#vim /etc/sysconfig/selinux 设定 selinux = 0;2,当非常退出 minicom 时 只需要删除/var/lock 下的 LOCK*即可(不要删错了,删除就要重新安装 mincom,得不偿失)以上便是这两天从烧写 u-boot 到 sd 卡再到烧写内核代码到 nand flash 及最后通过 NFS 挂载 bootfs 整个过程,希望对大家有所帮助。