linux arm文件系统,ARM Linux根文件系统(Root Filesystem)的制作

库可是一件非常麻烦的事请。我建议初学者拷贝买的开发板里面带的文件系统的库,如果开发板的文件系统是映像,只需要把映像挂载在某个目录下就可以访问,假设映像叫做rootfs.cramfs,可以这样

# mkdir /home/lxz/evb_rootfs

(切换为root用户)

# mount -o loop rootfs.cramfs /home/lxz/evb_rootfs

(可以切换为普通用户)

# cd /home/lxz/evb_rootfs/lib

# cp -r ./ /home/lxz/rootfs/lib

一般开发板里都会带有很多库,但是总体积却比较大。可以删掉一些不用的库来减小体积,但是,呵呵,我也不知道那些库具体含有什么函数,什么情况删什么;也许以后我会把这部分补上。如果觉得库体积太大,也可以自己编译glibc或者uclibc,但是这是非常繁琐的事请——目前我认为库应该和编译器arm-linux-gcc一起制作。有个傻瓜式的方案是使用cross-tool,下载地址:。虽然cross-tool是用来制作交叉编译器的,但是其过程中生成的glibc却可以作为副产品为我们所用。cross-tool的使用可以看我之前的这篇文章http://xianzilu.spaces.live.com/blog/cns!4201FDC93932DDAF!274.entry。在成功制作了交叉编译器之后,就可以从cross-tool的目录里把glibc取出来,假设cross-tool的路径是/home/lxz/cross-tool,编译出的编译器叫做arm-linux-gnu-gcc,gcc版本3.4.5,glibc版本2.3.6,想要把glibc库拷贝到/home/lxz/glibc,下面的操作还是用命令来说明。

# cd /home/lxz/cross-tool/build/arm-linux-gnu-gcc/gcc-3.4.5-glibc-2.3.6/build-glibc

# ../glibc-2.3.6/configure --prefix=/home/lxz/glibc

# make install

等候安装结束

# cd /home/lxz/glibc

# cp -r lib /home/lxz/rootfs

这样就把glibc的大部队拷贝好了,但是这样还缺两个库,我们继续

# cd /home/lxz/cross-tool/build/arm-linux-gnu-gcc/gcc-3.4.5-glibc-2.3.6/build-gcc/gcc

# cp libgcc_s.so* /home/lxz/rootfs/lib

还缺少一个libtermcap库,这个就稍微有些麻烦。libtermcap-2.0.8-35-armv4l源码包的下载地址是,你也可以在这里找到其他版本的。假设libtermcap-2.0.8-35.src.rpm下载到了/home/lxz/libtermcap,下面继续用命令说明。

# cd /home/lxz/libtermcap

# rpm2cpio libtermcap-2.0.8-35.src.rpm | cpio -ivd

# tar xvjf termcap-2.0.8.tar.bz2

接下来要打13个补丁,很汗啊,请一定按照下面的顺序来打补丁

# patch -p0 -i termcap-2.0.8-shared.patch

# patch -p0 -i termcap-2.0.8-setuid.patch

# patch -p0 -i termcap-2.0.8-instnoroot.patch

# patch -p0 -i termcap-2.0.8-compat21.patch

# patch -p0 -i termcap-2.0.8-xref.patch

# patch -p0 -i termcap-2.0.8-fix-tc.patch

# patch -p0 -i termcap-2.0.8-ignore-p.patch

# patch -p0 -i termcap-buffer.patch

# patch -p0 -i termcap-2.0.8-bufsize.patch

# patch -p0 -i termcap-2.0.8-colon.patch

# patch -p0 -i libtermcap-aaargh.patch

# patch -p0 -i termcap-2.0.8-glibc22.patch

# patch -p0 -i libtermcap-2.0.8-ia64.patch

然后到/home/lxz/libtermcap/termcap-2.0.8里,找到Makefile,修改其中的CC和AR,

CC = /usr/local/arm/3.4.1/bin/arm-linux-gcc

AR = /usr/local/arm/3.4.1/bin/arm-linux-ar

当然,你的编译器在哪里就改成相应的内容。如果嫌麻烦,可以从本站资料页面下载我已经打好补丁,修改好Makefile的包,地址。需要注意的是,这个包里CC = arm-linux-gcc、AR = arm-linux-ar,请设置好缺省路径。然后就可以编译了:

# cd /home/lxz/libtermcap/termcap-2.0.8

# make

# ln -s libtermcap.so.2.0.8 libtermcap.so.2

# cp libtermcap.so* /home/lxz/rootfs/lib

这样,Shell启动所需要的基本库就都备齐了。但是,这些库里面还含有调试信息,体积稍大,可以把这些信息去掉(当然不去掉也没有什么影响)。

# cd /home/lxz/rootfs/lib

# arm-linux-strip *.so*

至此,库就制作好了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值