微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > Busybox编译及其yaffs2文件系制作

Busybox编译及其yaffs2文件系制作

时间:11-22 来源:互联网 点击:

.so

|-- ld-linux.so.3 -> ld-2.8.so

|-- libBrokenLocale-2.8.so

|-- libBrokenLocale.so.1 ->libBrokenLocale-2.8.so

|-- libSDL-1.2.so.0 -> libSDL-1.2.so.0.11.0

|-- libSDL-1.2.so.0.11.0

|-- libSDL-1.2.so.0.11.2

|-- libSDL.so -> libSDL-1.2.so.0.11.0

|-- libSegFault.so

|-- libanl-2.8.so

|-- libanl.so.1 -> libanl-2.8.so

|-- libc-2.8.so

|-- libc.so.6 -> libc-2.8.so

|-- libcidn-2.8.so

|-- libcidn.so.1 -> libcidn-2.8.so

|--libcrypt-2.8.so

|-- libcrypt.so.1 -> libcrypt-2.8.so

|-- libdl-2.8.so

|-- libdl.so.2 -> libdl-2.8.so

|-- libgcc_s.so -> libgcc_s.so.1

|-- libgcc_s.so.1

|-- libm-2.8.so

|-- libm.so.6 -> libm-2.8.so

|-- libmemusage.so

|-- libnsl-2.8.so

|-- libnsl.so.1 -> libnsl-2.8.so

|-- libnss_compat-2.8.so

|-- libnss_compat.so.2 ->libnss_compat-2.8.so

|-- libnss_dns-2.8.so

|-- libnss_dns.so.2 -> libnss_dns-2.8.so

|-- libnss_files-2.8.so

|-- libnss_files.so.2 ->libnss_files-2.8.so

|-- libnss_hesiod-2.8.so

|-- libnss_hesiod.so.2 ->libnss_hesiod-2.8.so

|-- libnss_nis-2.8.so

|-- libnss_nis.so.2 -> libnss_nis-2.8.so

|-- libnss_nisplus-2.8.so

|-- libnss_nisplus.so.2 ->libnss_nisplus-2.8.so

|-- libpcprofile.so

|-- libpthread-2.8.so

|-- libpthread.so.0 -> libpthread-2.8.so

|-- libresolv-2.8.so

|-- libresolv.so.2 -> libresolv-2.8.so

|-- librt-2.8.so

|-- librt.so.1 -> librt-2.8.so

|-- libsqlite3.so -> libsqlite3.so.0.8.6

|-- libsqlite3.so.0 -> libsqlite3.so.0.8.6

|-- libsqlite3.so.0.8.6

|-- libthread_db-1.0.so

|-- libthread_db.so.1 ->libthread_db-1.0.so

|-- libutil-2.8.so

`-- libutil.so.1 -> libutil-2.8.so

说明:linuxrc执行时会依赖lib库文件

1)、如果将busybox编译成动态链接的形式,没有lib动态库或者缺少相应的库文件,那么linux会提示无法执行或者找不到相应的库。

2)、如果将busybox编译成静态链接的形式(实际就是调用编译器的静态链接库来编译可执行文件),没有lib动态库也是可以的。

[*]Build Busybox as a static binary (no shared libs)

实际上,在linux平台上编译可执行文件,如果调用的是动态链接库,那么我们在执行的时候,需要exportLD_LIBRARY_PATH指向动态链接库的路劲,如果调用的是静态链接库,那就不用设置库的路劲了。道理都是一样的。

3)、如果将busybox编译成静态链接的形式,且lib目录下没有相应的动态链接库(如libc.so,libm.so等),那么编译出来的可执行程序无法运行,会提示说"[程序名]:Not found",因此,一般不会将busybox编译成静态链接的形式。这个问题是在编写watchdog测试程序时发现的。

三、使用mkyaffsimage_2制作yaffs2文件系统

mkyaffsimage_2 myroot myroot.bin

说明:

1)、在实际的嵌入是系统中,产品发行后,一般都不会使用终端登录的功能(除非返厂维修,debug时要用到),所以在终端登录时没必要设置密码,也没必要要bash。

所以,etc目录可简化为:

fstab

init.d/rcS

inittab

sysconfig/HOSTNAME

这样在终端登录后的提示符为“#”,而不会有用户名、主机名。

在移植Android系统时,也按这种方法制作系统就可以了。

2)、编译好内核,制作好文件系统后,我们的Linux系统是可以正常跑起来了,终端也可以使用命令了,但是,如果要做产品研发,离成品的要求还很远很远!除了做嵌入式学习,可以接受现在的情况,用户是绝对不会买这样的产品的。

我们好要做下面一些工作:

a)、驱动移植(BSP):没有驱动,LCD,USB,WIFI,声卡,显卡等许多外设都无法使用,AP也不可能跑在上面。

b)、Framewor修改:如sdcard挂载,屏幕旋转,屏幕校准,恢复出厂设置等。

c)、BSP、Framework与AP整合测试,并修改其中的大象Bug:在测试的过程中,肯定会发现大量的Bug,这是完全可以预料的。其中有一些是AP的问题,有些是Framework或BSP的问题,但是在实际的开发中,Bug往往都会是相互关联的,可能是AP的一个程序,发现了Framework或BSP的问题,但Framework或BSP却无法发现。所以,要真正让BSP,Framework达到完美,那就一定要与AP整合测试。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

console输入reboot或powerdown后,GT2440挂载不了yaffs2(具体的原因及好的解决方案还没有找到,继续研究)

unc

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top