标题:
Linux-2.6-virtex 在XUP上面的移植和相关问题的解决
[打印本页]
作者:
pengpengpang
时间:
2014-2-22 09:42
标题:
Linux-2.6-virtex 在XUP上面的移植和相关问题的解决
在西安电子科技大学xilinx俱乐部的支持下,完成了Linux到V2Pro开发板的移植。期间遇到了很多网上没有提到的问题,总结了一下,希望对大家有所帮助:) 系统:红帽子简体中文版,GCC 3.2.2 软件:EDK8.2+sp2Linux-2.6-virtex.tar.gz (linux对于virtex的开发树) Crosstool-0.43.tar (交叉工具生成器)Mkrootfs.tgz (根文件系统生成脚本) 硬件: ppc405,uartlite,system ACE,DDR 256M,全部带有中断 具体移植过程参见风雷的PowerPC 平台 Linux 的移植,这里只是对出现的问题进行说明。 一, 交叉环境编译这里建议使用GCC3.4.4-GLIBC2.3.5的组合。GCC4.1.0编译Linux2.6会有问题。 二, 生成BSP 打开软件平台设置 ,将PPC_405_0的OS设置为 linux_2_6 ,这样可以使生成的xparameters_ml403.h完全符合新的linux2.6内核头文件的要求。其它与风雷相同。 如果libgen过程中出现cp命令的错误,是由于TARGET_DIR设置后出现的问题。把它清空即可,生成的BSP在工程目录\p405_0\libsrc\linux_2_6下面。 三,编译和配置linux由于我们使用的是virtex的linux开发树,所以不用打任何补丁。Make menuconig配置的具体配置参见风雷的文章。配置过程中需要说明一下:(1)如果你使用的是Uart Lite ,就不要选取 Device drivers-Character devices -Serial drivers -8250/16550 and compatible serial support。(2)网络的可以先都不选取。 (3) 风雷使用的linux 2.6 版本需要打System ACE的补丁,才能出现Xilinx on-chipSystem ACE 选项,我们这个版本直接就有。(4)设置console 选项时,注意如果使用Uart16550的IP 设置console=ttyS0如果使用Uart Lite 的IP 设置console=ttyUL0 Make zImage编译过程,有可能出现/linux/config.h没有找到的错误,直接去掉就可以了。编译过程中出现的mismatch警告不用关心。 四 运行Linux把生成的zImage.elf复制到工程文件夹下。打开xmd, dow zImage.elf;,con串口端出现loaded at :00400000 0066D19c………………………………………………….Now booting the kernelLinux 2.6………………………………………..(以下省略)如果出现错误,系统停在Now booting the kernel,是由于你的配置有问题,我们进行了总结,具体问题总结在西安电子科技大学xilinx俱乐部的文章当中。 五 制作根文件系统 需要的软件(1)
http://klingauf.de/v2p/mkrootfs.tgz
根文件制作的脚本。(2)
http://www.busybox.net/
busybox 1.1.3 Busybox 的设置在busybox 目录下make menucofnig这些选项必须要选的:General Configuration * Support for devfs Build Options * Do you want to build BusyBox with a Cross Compiler? (powerpc-405-linux-gnu-) Login/Password Management Utilites * addgroup * delgroup * adduser * deluser * getty * login * Support for /etc/securetty * passwd * su * sulogin Networking Utilities * inetd * ifconfig * ip * netstat * nslookup * telnet * telnetd Process Utilities * top * Support showing CPU usage percentage 修改解压的mkrootfs.hLFS : 最终生成的文件放到的位置CC :交叉编译器TARGET_PREFXIX: 是你交叉编译工具glibc的位置BUILD_TOOL : 是Crosstool/build的路径,这里是要复制一个文件 nsswitch.confPPC_KERNEL : 你存放linux_virtex的位置PPC_KERNEL_VERSION:linux 的版本,这个是拷贝module 的时候用到修改 busybox-1.00.-pre2 到你存放 busybox 源程序的位置。 接下来,是一个关键的问题,把你从mkrootfs.tgz解压缩出来的文件用dos2unix命令全部转换一遍,特别是其中的mkrootfs.h,rcS.initab,负责回有一些找不到文件的错误。 使用CF卡,FDISK的使用见网上教程。 这里我们需要注意的是分区的问题。在我的系统中我的CF卡设备是/dev/sdc ,分区为/dev/sdc1 和/dev/sdc2 。我把根系统放到/dev/sdc2的分区下。 根文件系统的装载位置是根据在console 中设置实现的。我这里的配置是console=ttyS0 ,9600 root = fe02,这里的02 就是表示第二个分区。 启动系统后,插入CF卡,如果启动到#字符,说明系统启动成功,恭喜!!! 如果在移植中遇到问题,可以留言到西安电子科技大学Xilinx俱乐部,我们会尽量帮你们解决
来源:
fcni_cn
的百度空间
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0