资源预览内容
第1页 / 共48页
第2页 / 共48页
第3页 / 共48页
第4页 / 共48页
第5页 / 共48页
第6页 / 共48页
第7页 / 共48页
第8页 / 共48页
第9页 / 共48页
第10页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
建立ArmLinux仿真开发环境X-Men 小组1内内 容容1. Armlinux-2.4.18仿真环境的建立2. Armlinux-2.6.0 内核配置的问题2Armlinux-2.4.18 交叉编译环境 编译ARM Linux内核 制作根文件系统 装载ARM Linux3相关软件:ubuntu 7.10 skyeye_1_2_3cross-2.95.3busybox-1.004系统准备: 安装UBUNTU 7.10 设置系统的更新源 更新源就是提供Ubuntu相关软件下载的服务器地址 a 先把原有的更新源备份一下: sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup b 输入用户密码后,然后编辑新的更新源 sudo gedit /etc/apt/sources.list56 3. 保存编辑好的文件,执行以下命令更新. sudo apt-get update sudo apt-get dist-upgrade4. 更新完后,重新启动系统.75. 安装本机编译工具 在终端上,输入 sudo apt-get install build-essential 将安装本机所需的编译工具和相关支持库。 如此步没做,后面进行一些编译时会有很多的错误如此步没做,后面进行一些编译时会有很多的错误。8安装交叉编译环境 1. 先下载 cross-2.95.3.tar.bz2 2. 解压缩,产生2.95.3这个目录, 在/usr/local 目录下新建一个目录 arm ,将2.95.3目录及 其内容拷贝到此目录下 如果是用 cross-3.2 则可以在根目录/ 下直接解压缩就可以了9 3. 添加环境变量 sudo gedit /.bashrc export PATH=$PATH:/usr/local/arm/bin 注意:此步后要重新登录系统更改才有效注意:此步后要重新登录系统更改才有效 4. 检查是否建立好交叉编译环境 对arm-linux-使用tab键功能 查看arm-linux-gcc 的版本 用arm-linux-gcc 编译目标版的可执行程序1011编译ARM Linux内核1.准备内核2.配置内核3.编译内核12 a 准备内核准备内核1.下载标准Linux 的内核源码和ARMLinux 的补丁 linux-2.4.18.tar.bz2 patch-2.4.18-rmk7.bz22. 解压缩内核,并打上ARMLinux 的补丁 patch -p1./patch-2.4.18-rmk7.bz2错误:错误:找不到找不到patch命令命令原因:原因:Ubuntu默认没有安装默认没有安装patch工具工具解决:安装解决:安装patch sudo apt-get install patch13 b 配置内核配置内核 这个环节是最麻烦的,进展最慢的地方。 1:容易出错: 2:错误不好解决。 如果在此之前的步骤能成功完成,在这个环节会少很多的错误,节省很多时间。所以如果有很多很奇怪的错误,最好不要盲目,先检查之前的编译工具,支持库,环境变量等是否设置正确。 当然之前能顺利完成,在这个环节还是有不少错误;对内核的配置还是有很多不清楚的地方。 关于内核编译配置选项简介可以参照下面的网址: http:/lamp.linux.gov.cn/Linux/kernel_options.html14配置内核的方式配置内核的方式三种方式:make config 命令行式的一般不推荐make xconfig 可用鼠标点击选择 make menuconfig 菜单式,用键盘控制15错误及解决方法错误1:如执行“make xconfig”指令,进入内核设置时,系统会报错说没有wish 命令。解决方法:根据提示进行安装wish即可。Ubuntu默认是没有安装这个命令的。16错误2:若运行make menuconfig会提示ncurses找不到,这是因为menuconfig 用到了ncurses库.系统默认没有安装.解决办法如下: sudo apt-get install libncurses5-dev 。17错误3:配置完后编译内核,开始编译。编译中报错:这个错误很常见。18解决方法: 这个原因是你在配置内核的时候选了 vga的支持,去掉console drivers下的vga text console选项后重新编译19 错误4:20 解决方法: 去掉character device中的virtual terminal 选项。21 制作根文件系统这个环节也是很比较困难的地方,出错很多1)安装busybox工具包2)创建文件系统的映象文件3)配置根文件系统22busybox错误1:23 解决办法: make menuconfig ,然后选择Networking Utilities.将route 项不选。24错误2:25如果出现找不到内核版本号的编译错误,可以有两种方法解决:(1)把你的内核源码中的version.h文件拷贝到交叉编译器的包含文件的linux目录下;(2)该方法来源于论坛上面的一位朋友,做法为删掉 #include 换成 #define UTS_RELEASE 2.4.18-rmk7 #define LINUX_VERSION_CODE 132114 #define KERNEL_VERSION(a,b,c) (a) 16) + (b) 8) + (c)(该方法我试验成功)26 27老师PPT关于busybox 的介绍和编译安装虽说只有两页,自己当时也感觉不是很麻烦。可是自己真正做的时候确遇到了很多问题。28创建文件系统的映象文件在/mnt下创建img目录,然后进入根目录执行如下指令创建一个空的映象文件:$dd if=/dev/zero of=initrd bs=1024k count=1$mke2fs -F -m0 initrd使用如下指令加载创建的文件系统,并复制文件系统中必要的文件:$mount -t ext2 -o loop initrd /mnt/img$cp -Rd /tmp/target/* /mnt/img29创建设备文件建立设备文件,一个简单的方法是复制主机/dev/目录下一些必要的设备文件到/mnt/img/dev/目录下.基本的设备文件有:/dev/console /dev/fd0/ dev/null /dev/arm0 /dev/tty /dev/tty0 在复制的过程中,要注意使用dp参数以保证文件属性不变.3031sudo cp -dp /dev/tty /mnt/img/dev32解决方法:增加映象文件的大小,重新建立5M的映象文件dd if=/dev/zero of=initrd bs=5M count=133 ARM Linux 移植到Skyeye上运行1. 安装skyeye 在终端中输入sudo apt-get install skyeye 命令,skyeye1.2.3就安装好了2. 将生成的内核映像vmlinux 和根文件系统initrd拷贝到一个文件下3. 编写skyeye.conf文件 34353637Armlinux-2.6.0交叉编译ARM Linux内核38错误一:在输入“make xconfig”后,如果出现很多错误,原因是系统一些编译相关的软件包没有安装。 39 在安装了相关软件后,可用看到 gcc的版本是4.1.3 40错误二: 出错原因:系统里的出错原因:系统里的gcc是是4.1,它对语法要求非常严格,导致该错误。它对语法要求非常严格,导致该错误。 41 解决办法:或者去注释掉出错的那一行,或将该行解决办法:或者去注释掉出错的那一行,或将该行static修饰符去掉。修饰符去掉。42错误三:出错原因:make xconfig 运行需要相关的依赖包,出现此错误,说明此步之前没有安装QT开发包43解决办法:安装QT开发包,在新立得软件开发包管理器内安装右图所示的软件包。44错误四:我认为是:我认为是: 系统里的系统里的gcc是是4.1,它对语法要求非它对语法要求非常严格,导致该错误常严格,导致该错误45做到这步终于可用出 make xconfig的界面了46编译内核 2.6版可以直接用make命令就可用了,不需先make dep 后再执行 make命令。注意编译器的版本,要是cross-3.3以上的版本。47谢谢陈坤,刘江,衷心感谢你们的帮助!48
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号