开发环境:Ubuntu 12.04
开发板:mini2440 256M NandFlash 64M SDRAM
glibc库:点此下载
交叉编译器:arm-linux-gcc 4.4.3点此可下载
BusyBox版本:busybox-1.13.3 点此可下载
yaffs制作工具:mkyaffsimage
yaffs2制作工具:mkyaffs2image(适合64M)、mkyaffs2image-128(适合128M以上)
紧接着上一节:http://blog.csdn.net/mybelief321/article/details/10001927
在我们制作交叉编译工具链arm-linux-gcc时,已经生成了glibc库,可以直接使用它来构建根文件系统,本文使用的时光盘里自带的压缩库,由下图可以看出,这是arm-linux-gcc3.4.5版本的glibc库,而我的arm-linux-gcc是4.4.3的,可不可以使用呢?答案是可以的!(补充,其实不可以的,所用的动态链接库必须和你PC机的交叉编译工具的动态链接库,所以我这里必须要用arm-linux-gcc的动态库。但是,我并没有修改这个错误,而是将错就错,所以建议你什么都不要变,还是按照这篇文章的步骤做下去,我本系列最后一个文章是针对出现的这个错误纠错的,相信你一结合,会明白不少的!)
15、将下载的arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2 放在和rootfs同一个文件夹,如下
16、执行命令:tar -jxf arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2 解压此库
我们需要的glibc库的位置存放在gcc-3.4.5-glibc-2.3.6/arm-linux/lib 文件夹下。
执行命令:ls gcc-3.4.5-glibc-2.3.6/arm-linux/lib 可以看到该目录下的文件。其实这个目录下的文件并非都属于glibc库,比如crt1.o、libstdc++.a等文件是gcc工具本身生成的。里面的目录、文件可以分为8类。
① 加载器ld-2.3.6.so、ld-linux.so.2。
动态程序启动前,它们都被用来加载动态库。
② 目标文件(.o)。
比如crt1.o、crti.o、crtn.o、Mctr1.o、Scrt1.o等,在生成应用程序时,这些文件像一般的目标文件一样被链接。
③ 静态库文件(.a)。
比如静态数学库libm.a、静态c++库libstdc++.a等,编译静态程序时会连接它们
④ 动态库文件(.so、,so.[0-9]*)。
比如动态数学库libm.so、动态c++库libstdc++.so等,它们可能是一个链接文件。编译动态库时会用到这些文件,但是不会连接它们,运行时才连接。
⑤ libtool库文件(.la)。
在连接库文件时,这些文件会被用到,比如它们列出了当前库文件所依赖的其他库文件。程序运行时无需这些文件。
⑥ gconv目录。
里面是有头字符的集的动态库,比如ISO8859-1.so、GB18010.so等。
⑦ ldscripts目录。
里面是各种连接脚本,在编译应用程序时,它们被用于制定程序的运行地址、各段的位置等。
⑧ 其他目录及文件。
17、现在安装glibc库,在上一节我们编译安装busybox时使用的是动态连接,这里在开发板上只需要加载器和动态库。
执行命令:mkdir -p rootfs/lib 在rootfs中创建lib文件夹,用来存放咱们的加载器和动态库
执行命令:cp gcc-3.4.5-glibc-2.3.6/arm-linux/lib/*.so* rootfs/lib/ 安装glibc库到咱们的文件夹下
18、执行命令:cd rootfs 进入到rootfs文件夹,此时可以看到在lib文件夹已经有咱们需要的库了。
至此,glibc库已经安装完成,也已经在根文件目录下创建了/lib目录。其实,上面复制的库文件不是每个文件都会被用到,可以根据应用程序对库的依赖关系保留需要用到的。通过ldd命令可以查看一个应用程序会用到哪些库。
下一节 :http://blog.csdn.net/mybelief321/article/details/10007719
分享到:
相关推荐
一步一步制作yaffs2根文件系统,一步一步制作yaffs2根文件系统,
s/yaffs2/yaffs_vfs.c: In function 'yaffs_read_super': fs/yaffs2/yaffs_vfs.c:2383:2: error: implicit declaration of function 'get_sb_bdev' fs/yaffs2/yaffs_vfs.c: At top level: fs/yaffs2/yaffs_vfs.c:...
yaffs2 工具包 1.从http://www.yaffs.net/download-yaffs-using-git网址下载得到yaffs和yaffs2的源文件 2.解压后,进入到yaffs2目录下,通过yaffs2目录下的脚本...3.最后就是配置编译内核,让内核支持yaffs2文件系统
给内核打yaffs2文件系统的补丁 cd /mnt/hgfs/share tar –zxvf /mnt/hgfs/share/cvs-root.tar.gz –C /opt/studyarm cd /opt/stdudyarm/cvs/yaffs2/ ./patch-ker.sh c /opt/studyarm/linux-2.6.29.1/ 上面命令...
压缩包包含三个适用于Tiny6410的yaffs2根文件系统,mini_rootfs.yaffs2是最小的根文件系统,不是很完整的根文件系统,fix_mount_mini_rootfs.yaffs2添加了自动挂载功能,fix_udev_rootfs.yaffs2在添加了自动挂载功能...
期刊论文,介绍了一种制作YAFFS2嵌入式文件系统的方法, 详细介绍了在ARM处理器S3SC2440和嵌入式Linux 平台上建立YAFFS2 根文件系统的方法步骤。
s3c2440下 yaffs2文件系统制作详解,本人实践成功
yaffs yaffs2 文件系统正确补丁包 移植LINUX常用 CSDN有的下载的编译不正确,特发布正确的。
busybox编译,ok6410开发板yaffs2文件系统的制作和烧写。
在utu2440开发板上制作yaffs2根文件系统的详细步骤
yaffs 文件系统制作 解压工具
YAFFS意义为‘yet another flash file system... YAFFS是目前为止唯一一个专门为NAND flash设计的文件系统,目前有YAFFS 和YAFFS2 两个版本,两个版本的主要区别之一在于YAFFS2 能够更好的支持大容量的NAND FLASH芯片。
实验环境的搭建: 交叉编译工具,内核源代码,根文件系统压缩包,yaffs2文件夹,Busybox源代码包,mkyaffs2image-128M工具 实验内容: 1.对标准Linux2.6.32内核源代码的修改,加上s3c2440的特性,配置,编译,烧写...
很详细的介绍yaffs2的数据结构,初始化,挂载,内存分布等。新手必看,老手回顾。
另一个yaffs根文件系统工具包,有时候工具没用对,制作出来的文件系统没法用
第一章 移植内核... 2 1.1 Linux内核基础知识... 2 1.1.1 Linux版本... 2 1.1.2 什么是标准内核... 2 ...1.1.3 Linux操作系统的分类......1.1.4 linux内核的选择......2.2.5 制作根文件系统映像文件... 26
Yaffs2文件系统是转为Nand Flash设计的文件系统,是基于日志式的文件系统
YAFFS2文件系统的加载过程,具普遍性
yaffs2 linux bsp YAFFS意义为‘yet another... YAFFS是目前为止唯一一个专门为NAND flash设计的文件系统,目前有YAFFS 和YAFFS2 两个版本,两个版本的主要区别之一在于YAFFS2 能够更好的支持大容量的NAND FLASH芯片。
linux在TQ2440上移植4--yaffs2文件系统制作----经典