建立ArmLinux仿真开发环境.ppt_第1页
建立ArmLinux仿真开发环境.ppt_第2页
建立ArmLinux仿真开发环境.ppt_第3页
建立ArmLinux仿真开发环境.ppt_第4页
建立ArmLinux仿真开发环境.ppt_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,建立ArmLinux仿真开发环境,X-Men 小组,2,内 容,1. Armlinux-2.4.18仿真环境的建立 2. Armlinux-2.6.0 内核配置的问题,3,Armlinux-2.4.18,交叉编译环境 编译ARM Linux内核 制作根文件系统 装载ARM Linux,4,相关软件: ubuntu 7.10 skyeye_1_2_3 cross-2.95.3 busybox-1.00,5,系统准备: 安装UBUNTU 7.10 设置系统的更新源 更新源就是提供Ubuntu相关软件下载的服务器地址 a 先把原有的更新源备份一下: sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup b 输入用户密码后,然后编辑新的更新源 sudo gedit /etc/apt/sources.list,6,7,3. 保存编辑好的文件,执行以下命令更新. sudo apt-get update sudo apt-get dist-upgrade 4. 更新完后,重新启动系统.,8,5. 安装本机编译工具 在终端上,输入 sudo apt-get install build-essential 将安装本机所需的编译工具和相关支持库。 如此步没做,后面进行一些编译时会有很多的错误。,9,安装交叉编译环境 1. 先下载 cross-2.95.3.tar.bz2 2. 解压缩,产生2.95.3这个目录, 在/usr/local 目录下新建一个目录 arm ,将2.95.3目录及 其内容拷贝到此目录下 如果是用 cross-3.2 则可以在根目录/ 下直接解压缩就可以了,10,3. 添加环境变量 sudo gedit /.bashrc export PATH=$PATH:/usr/local/arm/bin 注意:此步后要重新登录系统更改才有效 4. 检查是否建立好交叉编译环境 对arm-linux-使用tab键功能 查看arm-linux-gcc 的版本 用arm-linux-gcc 编译目标版的可执行程序,11,12,编译ARM Linux内核 准备内核 配置内核 编译内核,13,a 准备内核 下载标准Linux 的内核源码和ARMLinux 的补丁 linux-2.4.18.tar.bz2 patch-2.4.18-rmk7.bz2 2. 解压缩内核,并打上ARMLinux 的补丁 patch -p1/patch-2.4.18-rmk7.bz2 错误:找不到patch命令 原因:Ubuntu默认没有安装patch工具 解决:安装patch sudo apt-get install patch,14,b 配置内核 这个环节是最麻烦的,进展最慢的地方。 1:容易出错: 2:错误不好解决。 如果在此之前的步骤能成功完成,在这个环节会少很多的错误,节省很多时间。所以如果有很多很奇怪的错误,最好不要盲目,先检查之前的编译工具,支持库,环境变量等是否设置正确。 当然之前能顺利完成,在这个环节还是有不少错误;对内核的配置还是有很多不清楚的地方。 关于内核编译配置选项简介可以参照下面的网址: /Linux/kernel_options.html,15,配置内核的方式,三种方式: make config 命令行式的一般不推荐 make xconfig 可用鼠标点击选择 make menuconfig 菜单式,用键盘控制,16,错误及解决方法,错误1: 如执行“make xconfig”指令,进入内核设置时,系统会报错说没有wish 命令。 解决方法: 根据提示进行安装wish即可。Ubuntu默认是没有安装这个命令的。,17,错误2: 若运行make menuconfig会提示ncurses找不到,这是因为menuconfig 用到了ncurses库.系统默认没有安装. 解决办法如下: sudo apt-get install libncurses5-dev 。,18,错误3: 配置完后编译内核,开始编译。编译中报错: 这个错误很常见。,19,解决方法: 这个原因是你在配置内核的时候选了 vga的支持,去掉console drivers下的vga text console选项后重新编译,20,错误4:,21,解决方法: 去掉character device中的virtual terminal 选项。,22,制作根文件系统 这个环节也是很比较困难的地方,出错很多 1)安装busybox工具包 2)创建文件系统的映象文件 3)配置根文件系统,23,busybox,错误1:,24,解决办法: make menuconfig ,然后选择Networking Utilities.将route 项不选。,25,错误2:,26,如果出现找不到内核版本号的编译错误,可以有两种方法解决: (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) (该方法我试验成功),27,28,老师PPT关于busybox 的介绍和编译安装虽说只有两页,自己当时也感觉不是很麻烦。可是自己真正做的时候确遇到了很多问题。,29,创建文件系统的映象文件 在/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/img,30,创建设备文件 建立设备文件,一个简单的方法是复制主机/dev/目录下一些必要的设备文件到/mnt/img/dev/目录下.基本的设备文件有:/dev/console /dev/fd0/ dev/null /dev/arm0 /dev/tty /dev/tty0 在复制的过程中,要注意使用dp参数以保证文件属性不变.,31,32,sudo cp -dp /dev/tty /mnt/img/dev,33,解决方法: 增加映象文件的大小,重新建立5M的映象文件 dd if=/dev/zero of=initrd bs=5M count=1,34,ARM Linux 移植到Skyeye上运行 1. 安装skyeye 在终端中输入sudo apt-get install skyeye 命令,skyeye1.2.3就安装好了 2. 将生成的内核映像vmlinux 和根文件系统initrd拷贝到一个文件下 3. 编写skyeye.conf文件,35,36,37,38,Armlinux-2.6.0,交叉编译ARM Linux内核,39,错误一:在输入“make xconfig”后,如果出现很多错误,原因是系统一些编译相关的软件包没有安装。,40,在安装了相关软件后,可用看到 gcc的版本是4.1.3,41,错误二:,出错原因:系统里的gcc是4.1,它对语法要求非常严格,导致该错误。,42,解决办法:或者去注释掉出错的那一行,或将该行static修饰符去掉。,43,错误三:,出错原因:make xconfig 运行需要相关的依赖包,出现此错误,说明此步之前没有安装QT开发包,44,解决办法: 安装QT开发包,在新立得软件开发包管理器内安装右图所示的软件包。,45,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论