Ubuntu下制作根文件系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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/* .

相关文档
最新文档