Ubuntu下制作根文件系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Ubuntu下制作根文件系统
(我自己虚拟机安装的路径)
Arm-linux-gcc路径/up-techpxa270/arm-linux-tools/gcc-3.4.6-glibc-2.3.6/arm-linux/bin
动态库路径:/up-techpxa270/arm-linux-tools/gcc-3.4.6-glibc-2.3.6/arm-linux/lib
配置busybox #make menuconfig
此时出现错误:In file included from scripts/kconfig/lxdialog/checklist.c:24: scripts/kconfig/lxdialog/dialog.h:31:20: error: curses.h: 没有那个文件或目录In file included from scripts/kconfig/lxdialog/checklist.c:24:
解决办法:ubuntu系统中缺少一个套件ncurses devel ,把此套件安装下即可
$ sudo apt-get install libncurses5-dev
实验内容
能在linux2.6.32与ARM平台运行的根文件系统的制作
实验目的
掌握简单linux根系统的制作过程,搭建开发平台
实验材料
交叉编译器:arm-linux-gcc-4.3.2
Busybox:busybox-1.16.0.tar.bz2
实验工具
Linux操作系统:Ubuntu9.04
ARM交叉编译套件
实验步骤
1、编译/安装Busybox(busybox-1.16.0.tar.bz2),
具体步骤:
创建制作根文件系统的路径(假定为/root/myroot/rootfs)
#> mkdir /root /myroot
#> mkdir /root /myroot/rootfs
将busybox压缩包解压到/root /myroot目录下
#>tar jxvf busybox-1.16.0.tar.bz2 -C /root/myroot/
进入解压后软件所在目录
#> cd busybox-1.16.0
修改Makefile文件
#> vi Makefile
修改前:
190 ARCH ?= $(SUBARCH)
164 CROSS_COMPILE ?=
修改后:
164 CROSS_COMPILE ?= arm-linux-
190 ARCH ?= arm
添加临时环境变量
#> export PATH=/usr/local/arm/4.3.2/bin:$PATH
配置Busybox
#> make menuconfig
在Busybox Settings --------->
Installation Options --------->
(./_install)BusyBox installation prefix
输入/root/myroot/rootfs,
其他默认原设置,保存退出
PS:错误
错误1:make[1]: *** [coreutils/fsync.o] 错误1
make: *** [coreutils] 错误2
经过查质料,把配置里面的Coreutils里的fsync不选中,重新编译,就解决了,如下Coreutils - - - >
[ ] fsync
错误2:make[1]: *** [miscutils/ionice.o] 错误1
make: *** [miscutils] 错误2
搞不懂这个是什么,不过还是取消掉选项先:
Miscellaneous Utilities --->
[ ] ionice
错误3:Busybox Settings --->
Build Options --->
[*] Build BusyBox as a static binary (no shared libs) //这里编译为静态库
[ ] Build with Large File Support //这里要去掉这一项
() Cross Compiler perfix //设置交叉编译器路径
Installation Options --->
[*] Don't use /usr //不安装到系统的usr目录下,以解压目录下的_install来代替Linux System Utilities --->
[ ] mkfs_ext2
[ ] mkfs_vfat //这两项不选,否则编译会报错
编译busybox
#> make
安装busybox
#> make install
安装结束后,在目录/root/myroot/rootfs/下将生成4个文件:bin、sbin、usr 、linuxrc
1. 添加动态库与加载器,
具体步骤:
动态库与加载器的位置是:
/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/
注:若是4.4.3则,位置是:
/usr/local/arm/4.4.3/arm-none-linux-gnueabi/lib
创建库目录
#> mkdir –p /root/myroot/rootfs/lib
进入lib目录
#> cd /root/myroot/rootfs/lib/
添加库函数
#> cp /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/* .