Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 建立 ArmLinux 仿真开发环境 X-Men 小组. 2 内 容 1. Armlinux-2.4.18 仿真环境的建立 2. Armlinux-2.6.0 内核配置的问题.

Similar presentations


Presentation on theme: "1 建立 ArmLinux 仿真开发环境 X-Men 小组. 2 内 容 1. Armlinux-2.4.18 仿真环境的建立 2. Armlinux-2.6.0 内核配置的问题."— Presentation transcript:

1 1 建立 ArmLinux 仿真开发环境 X-Men 小组

2 2 内 容 1. Armlinux-2.4.18 仿真环境的建立 2. Armlinux-2.6.0 内核配置的问题

3 3 Armlinux-2.4.18 交叉编译环境 编译 ARM Linux 内核 制作根文件系统 装载 ARM Linux

4 4 相关软件: ubuntu 7.10 skyeye_1_2_3 cross-2.95.3 busybox-1.00

5 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 6

7 7 3. 保存编辑好的文件,执行以下命令更新. sudo apt-get update sudo apt-get dist-upgrade 4. 更新完后, 重新启动系统.

8 8 5. 安装本机编译工具 在终端上,输入 sudo apt-get install build-essential 将安装本机所需的编译工具和相关支持库。 如此步没做,后面进行一些编译时会有很多的错误。

9 9 安装交叉编译环境 1. 先下载 cross-2.95.3.tar.bz2 2. 解压缩,产生 2.95.3 这个目录, 在 /usr/local 目录下新建一个目录 arm ,将 2.95.3 目录及 其内容拷贝到此目录下 如果是用 cross-3.2 则可以在根目录 / 下直接解压 缩就可以了

10 10 3. 添加环境变量 sudo gedit ~/.bashrc export PATH=$PATH:/usr/local/arm/bin 注意:此步后要重新登录系统更改才有效 4. 检查是否建立好交叉编译环境 对 arm-linux- 使用 tab 键功能 查看 arm-linux-gcc 的版本 用 arm-linux-gcc 编译目标版的可执行程序

11 11

12 12 编译 ARM Linux 内核 1. 准备内核 2. 配置内核 3. 编译内核

13 13 a 准备内核 1. 下载标准 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 14 b 配置内核 这个环节是最麻烦的,进展最慢的地方。 1 :容易出错: 2 :错误不好解决。 如果在此之前的步骤能成功完成,在这个环节会少很 多的错误,节省很多时间。所以如果有很多很奇怪的错误, 最好不要盲目,先检查之前的编译工具,支持库,环境变 量等是否设置正确。 当然之前能顺利完成,在这个环节还是有不少错误; 对内核的配置还是有很多不清楚的地方。 关于内核编译配置选项简介可以参照下面的网址: http://lamp.linux.gov.cn/Linux/kernel_options.html

15 15 配置内核的方式 三种方式: make config 命令行式的一般不推荐 make xconfig 可用鼠标点击选择 make menuconfig 菜单式,用键盘控制

16 16 错误及解决方法 错误 1 : 如执行 “make xconfig” 指令, 进入内核设置时, 系统会报错说没有 wish 命令。 解决方法: 根据提示进行安装 wish 即可。 Ubuntu 默认 是没有安装这个命令的。

17 17 错误 2 : 若运行 make menuconfig 会提示 ncurses 找 不到,这是因为 menuconfig 用到了 ncurses 库. 系统默认没有安装. 解决办法如下: sudo apt-get install libncurses5-dev 。

18 18 错误 3 : 配置完后编译内核,开始编译。编译中报错: 这个错误很常见。

19 19 解决方法: 这个原因是你在配置内核的时候选了 vga 的支持,去掉 console drivers 下的 vga text console 选项后重新编译

20 20 错误 4:

21 21 解决方法: 去掉 character device 中的 virtual terminal 选项。

22 22 制作根文件系统 这个环节也是很比较困难的地方,出错很多 1) 安装 busybox 工具包 2) 创建文件系统的映象文件 3) 配置根文件系统

23 23 busybox 错误 1 :

24 24 解决办法: make menuconfig, 然后选择 Networking Utilities. 将 route 项不选。

25 25 错误 2 :

26 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 27

28 28 老师 PPT 关于 busybox 的介绍和编译安装虽 说只有两页,自己当时也感觉不是很麻烦。 可是自己真正做的时候确遇到了很多问题。

29 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 30 创建设备文件 建立设备文件, 一个简单的方法是复制主机 /dev/ 目录下一些必要的设备文件到 /mnt/img/dev/ 目录下. 基本的设备文件 有 :/dev/console /dev/fd0/ dev/null /dev/arm0 /dev/tty /dev/tty0 在复制的过程中, 要注意使用 dp 参数以保证 文件属性不变.

31 31

32 32 sudo cp -dp /dev/tty /mnt/img/dev

33 33 解决方法: 增加映象文件的大小,重新建立 5M 的映象 文件 dd if=/dev/zero of=initrd bs=5M count=1

34 34 ARM Linux 移植到 Skyeye 上运行 1. 安装 skyeye 在终端中输入 sudo apt-get install skyeye 命令, skyeye1.2.3 就安装好了 2. 将生成的内核映像 vmlinux 和根文件 系统 initrd 拷贝到一个文件下 3. 编写 skyeye.conf 文件

35 35

36 36

37 37

38 38 Armlinux-2.6.0 交叉编译 ARM Linux 内核

39 39 错误一:在输入 “make xconfig” 后,如果出现很多错 误,原因是系统一些编译相关的软件包没有安装。

40 40 在安装了相关软件后,可用看到 gcc 的版本是 4.1.3

41 41 错误二: 出错原因:系统里的 gcc 是 4.1, 它对语法要求非常严格,导致该错误。

42 42 解决办法:或者去注释掉出错的那一行,或将该行 static 修饰符去掉。

43 43 错误三: 出错原因: make xconfig 运行需要相关的依赖包,出现此错 误,说明此步之前没有安装 QT 开发包

44 44 解决办法: 安装 QT 开发包, 在新立得软件开发 包管理器内安装右 图所示的软件包。

45 45 错误四: 我认为是: 系统里的 gcc 是 4.1, 它对语法要求非 常严格,导致该错误

46 46 做到这 步终于 可用出 make xconfig 的界面 了

47 47 编译内核 2.6 版可以直接用 make 命令就可用了,不 需先 make dep 后再执行 make 命令。 注意编译器的版本,要是 cross-3.3 以上的 版本。

48 48 谢谢 陈坤,刘江,衷心感谢你们的帮助!


Download ppt "1 建立 ArmLinux 仿真开发环境 X-Men 小组. 2 内 容 1. Armlinux-2.4.18 仿真环境的建立 2. Armlinux-2.6.0 内核配置的问题."

Similar presentations


Ads by Google