|
 |
栏目导栏 |
|
| |
|
|
|
|
 |
资料搜索 |
|
| |
|
|
|
|
 |
热门文章 |
|
| |
|
|
|
|
 |
最新文章 |
|
| |
|
|
|
| |
| |
|
|
|
|
一. t91sam9263是atmel arm9系列芯片新的一员,使用ARM926EJ-S ARM内核,有DSP扩展指令。支持cmos摄像头的itu656输入接口,支持LCD接口最大分辨率支持到2048x2048。200MHz的时钟能够获取到220mips的运算能力。支持linux操作系统,支持wince操作系统,并且老外已经在linux下移植了ffmeg工程,能够流畅的播放视频文件(352x288),看demo后不仅热血沸腾,呵呵心想移植个街机模拟器如何? 要动手时发现AT91SAM9263EK使用的是cramfs根文件系统,移植或者开发应用很不方便的,需要用U盘拷来拷去的。工欲善其事,必先利其器,于是决定搞个NFS根文件系统的版本以方便后续的移植工作,算是迈出街机模拟器工作的第一步吧。CzdLinux联盟 二. 建根文件系统:CzdLinux联盟 a) 拷贝ATMEL的linux demo里的 rootfs_lnxdemo.cramfs文件到宿主机的:/home目录下。CzdLinux联盟 b) 在/home目录下创建tmp目录:CzdLinux联盟 mkdir tmp 。CzdLinux联盟 c) 在/home目录下挂载cramfs文件系统镜像:CzdLinux联盟 mount -t cramfs rootfs_lnxdemo.cramfs tmp/ -o loopCzdLinux联盟 d) 进入tmp文件目录查看根文件系统是否齐全。CzdLinux联盟 cd tmpCzdLinux联盟 e) 修改根文件系统的rsS启动加载教本。CzdLinux联盟 因为atmel提供的cramfs根文件系统默认是启动触摸屏校正程序和ffmpeg播放器的,但是我的目的是移植街机模拟器,要的启动后进入shell里。CzdLinux联盟 cd tmpCzdLinux联盟 vim etc/init.d/rcS删除触摸屏和ffmpeg相关的脚本。然后保存退出。CzdLinux联盟 f) 备份新的根文件系统:CzdLinux联盟 tar cjvf nfsroot.tar.bz2 tmpCzdLinux联盟 g) 卸载cramfs文件系统:CzdLinux联盟 做过nfsroot根文件系统后要把卸载cramfs从tmp卸载掉。CzdLinux联盟 Umount tmpCzdLinux联盟 注意:现在的rootfs_lnxdemo.cramfs的已经不能够在用于atmel的linux demo了。CzdLinux联盟 三. 配置NFS服务器CzdLinux联盟 a) 当然是要先安装nfs服务器软件包的啦。CzdLinux联盟 b) 创建exports 文件:CzdLinux联盟 vim /etc/exportsCzdLinux联盟 添加:CzdLinux联盟 /home/target/ 192.168.2.0/255.255.255.0(rw,no_root_squash)CzdLinux联盟 /home/target就是NFS根文件系统的一级目录,由nfsroot.tar.bz2解压得来,包含有bin,etc,usr,mnt,dev,var等等,包含有linux启动运行所需要的一切。CzdLinux联盟 c) 安装dhcpd服务包软件CzdLinux联盟 d) 配置dhcpdCzdLinux联盟 e) 启动nfs,启动dhcpd,portmapCzdLinux联盟 service nfs restartCzdLinux联盟 service protmap restartCzdLinux联盟 service dhcpd restartCzdLinux联盟 f) 测试服务器配置是否成功:CzdLinux联盟 mount 192.168.2.46:/home/target /mntCzdLinux联盟 ls /mntCzdLinux联盟 四. 配置linux内核:CzdLinux联盟 进入打过at91补丁的linux2.6内核源代码树的根目录CzdLinux联盟 make menuconfig进入内核配置程序。CzdLinux联盟 1. 选中Networking --->CzdLinux联盟 Networking options --->CzdLinux联盟 [*] IP: kernel level autoconfiguration CzdLinux联盟 [*] IP: DHCP support CzdLinux联盟 [*] IP: BOOTP support CzdLinux联盟 [*] IP: RARP support CzdLinux联盟 2. Device Drivers --->CzdLinux联盟 Block devices --->CzdLinux联盟 <*> Network block device supportCzdLinux联盟 3. 选中Device Drivers --->CzdLinux联盟 Ethernet (10 or 100Mbit) --->CzdLinux联盟 <*> Atmel MACB support CzdLinux联盟 [*] Atmel MACB TX buffers in internal SRAMCzdLinux联盟 4. 选中File systems --->CzdLinux联盟 Network File Systems --->CzdLinux联盟 <*> NFS file system support CzdLinux联盟 [*] Provide NFSv3 client support CzdLinux联盟 [*] Provide client support for the NFSv3 ACL protocol extension CzdLinux联盟 [*] Provide NFSv4 client support (EXPERIMENTAL)CzdLinux联盟 [*] Root file system on NFSCzdLinux联盟 五. 运行新内核,进行测试CzdLinux联盟 1. 重新编译内核,至于启动参数这里可以不去理它因为我们要从u-boot传递启动参数。CzdLinux联盟 make uImageCzdLinux联盟 2. 使用u-boot或者是sam-ba把uImage烧入nand flash。、CzdLinux联盟 3. 启动u-boot配置启动参数:CzdLinux联盟 setenv bootargs CzdLinux联盟 mem=64M CzdLinux联盟 console=ttyS0 115200 CzdLinux联盟 mac=00:60:6E:42:BA:80 CzdLinux联盟 root=/dev/nfs CzdLinux联盟 nfsroot=192.168.2.46:/home/target CzdLinux联盟 ip=192.168.2.40:192.168.2.46:192.168.2.1.255.255.255.0:::ethCzdLinux联盟 0:offCzdLinux联盟 然后保存参数:saveenvCzdLinux联盟 4. 重新启动系统:u-boot加载内核,内核运行,这时候内核提示:nfs没有响应,后分析没有道理呀, 发现init进程已经运行,于是查看rcS文件发现里有对ip的设置难怪呀,删去相关的东西,在重新启动一切OK.CzdLinux联盟 六. 总结:CzdLinux联盟 在测试的过程中发现u-boot经常提示:CzdLinux联盟 DM9161A PHY DetectedCzdLinux联盟 No linkCzdLinux联盟 MAC: error during RMII initializationCzdLinux联盟 End of AutonegociationCzdLinux联盟 这样的错误,只要有这样的错误出现NFS肯定挂不上,想是u-boot有bug换高版本的吧,于是下载了个1.1.6的故障依旧,没有办法,只有看代码了,最后终于发现是检测DM9161时的超时时间设置的不够,修改后工作正常。CzdLinux联盟 cd uboot/include/configs/CzdLinux联盟 vim at91sam9263ek.hCzdLinux联盟 改#define AT91C_ETH_TIMEOUT 30000CzdLinux联盟 为#define AT91C_ETH_TIMEOUT 300000CzdLinux联盟 重新编译u-boot就可以了。CzdLinux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论 |
|
|
|
|
|