开发板开发环境搭建基本流程

来源:互联网 发布:手机电玩城源码 编辑:程序博客网 时间:2024/06/09 20:33
1.烧写sd卡(win下使用sd卡烧写工具,win7下要format),将uboot文件烧到sd卡中



2.sd卡启动,按下空格进入菜单界面,首先选择1 , y 回车 ,格式化nandflash ,然后选择3烧写镜像,选择1烧写uboot ,在虚拟机中通过dnw烧写uboot

补充dnw使用方法:
insmod dnw_usb.ko  //安装dnw_usb模块
如果提示一些错误信息(file exist -1),说明已经安装了dnw 工具,如果想重新安装,则:

rmmod dnw_usb //卸载dnw_usb驱动
insmod dnw_usb.ko

注意每次开linux虚拟机都要手动insmod dnw_usb.ko ,因为这个驱动并不是开机时启动的,需要自行安装

烧写命令:

XX./dnw  50000000 u-boot.bin   //6410 :50000000   2440: 30000000

补充uboot制作:
    a.解压
    b.make distclean
    c.make smdk2440_config (fl2440)    /  make ok6410_config
    d.make
 



3.设置开发板为nandflash 启动,按下空格键进入菜单界面,选择6 exit 退出菜单界面进入命令模式,使用print查看开发板的基本环境变量的配置

  setenv配置环境变量
 
  一般配置选项:
  setenv ipaddr 192.168.0.105  //配置开发板ip
  setenv serverip 192.168.0.101 //配置linux主机的ip(ifconfig查看)
  setenv gatewayip 192.168.0.1 //配置网关
  
  使用ping命令,ping 192.168.0.1 保证网络通,刚开始可能不通,ping多几次就通了,然后ping linux主机 ping 192.168.0.101  ,不建议电脑和开发板直接用网线连接,最好使用交换机或者路由作为中介,ping虚拟机的时候需要关闭虚拟机的防火墙的

saveenv

注意查看linux虚拟机的tftp服务是否配置好,如果没有配置tftp服务则需要先配置

a.安装tftp服务器包

b.配置tftp 
  vim /etc/xinet.d/tftp

  disable = no   //服务器关闭?no  不能为yes,否则tftp永远无效
  server_args = -s /home/tftp    //作为tftp文件的路径,tftp下放uImage

c.重启tftp服务
 /etc/init.d/xinetd restart

 重启开发板







4.按下空格进入菜单选择6进入命令模式,print查看环境变量是否修改成功,ping linux主机解决ping通问题,然后tftp c0008000 uImage  //下载内核镜像,下载完后,bootm c0008000 启动内核,这时候应该会看到启动时打印出来的一堆配置信息,最后提示没有找到根文件系统的错误,没关系的,因为还没有制作根文件系统

补充uImage制作:
    a.tar解压
    b.make distclean  清除以前的配置
    c.make menuconfig ARCH=arm
    d.make uImage ARCH=arm CROSS_COMPILE=arm-linux-  (参数:内核名称uImage  运行平台arm 交叉编译工具链:arm-linux-  这些参数都是修改Makefile中的编译选项用的)
    e.cp 将uImage拷贝到tftp目录



5.配置内核file sysytem为nfs system,步骤:
mak menuconfig ARCH=arm
General setup 中取消选中Initial RAM... 这一项 (这是从RAM中启动的,作为最后产品不再修改时才选这种方式,这是需要烧进开发板nandflash中的,如果选中,需要配置rootfs路径)

选中File System -->Network File System -->选中NFS server support,选中Root file system  on NFS
保存退出menu,然后重新编译内核make uImage ARCH=arm CROSS_COMPILE=armlinux-
cp arch/arm/boot/uImage /home/FL2440/tftp





6.配置开发板环境变量
setenv 

  配置nfs
  setenv bootargs noinitrd console=ttySAC0,115200 init=/init root=/dev/nfs rw nfsroot=192.168.0.101:/home/FL2440/rootfs ip=192.168.0.105
               (linux主机ip)                                             (开发板ip)

print 查看所配置的环境变量

saveenv
重启开发板

tftp c0008000 uImage 下载内核,bootm启动内核,这是还是会出现错误的,因为你的linux主机的nfs服务
没有配置或者根本没有开启

linux主机配置nfs:

a.配置nfs服务器
vim /etc/exports
添加: 如下一行

/home/FL2440/rootfs  *(rw,sync,no_root_squash)

/home/FL2440/rootfs: 根文件系统目录
*: 允许访问共享目录的主机IP,一般配置为*,好一点,就算ip变了,也不需要重新配置,当然也可以指定网段如192.168.1.* 
(rw,sync,no_root_squash): 访问权限,就这样写,无需修改

b.启动NFS服务器
/etc/init. d/nfs restart





7.如果上面的步骤都已经做完了,这是再启动开发板,tftp下载内核,bootm启动内核,应该能够正常进入开发板内核,能够看到rootfs目录文件,如果还是不行,那一般是nfs出了问题,所以再次检测linux主机和开发板的配置是否正确,正常情况下都是可以的!







8.设置开机自动加载内核和挂载根文件系统
  开机进入uboot命令模式
 
设置自 动下载内 核到内 存后启动
  setenv bootcmd tftp c0008000 uImage \; bootm c0008000

 重启开发板即可

注意:开发板环境搭建是一个非常关键的过程,对于新手,这个过程中会遇到很多问题,关键是要认真做好这个环境搭建中的每一步,按部就班,不能投机取巧,静下心一步步解决问题!










 

0 0
原创粉丝点击