制作嵌入式根文件系统常见问题详解
查/etc/inittab文件是否存在,如果此文件不存在,BusyBox会使用缺省的inittab配置,它主要为系统重引导,系统挂起以及init重启动设置缺省的动作,此外它还会为四个虚拟控制台(tty1到tty4)设置启动shell的动作。如果未建立这些设备文件,BusyBox会报错。 7、网上有人问“-”的作用 我很纳闷: :: respawn:-/bin/sh 这个-是干什么的,为什么有的时候有有的时候没有??? 还有啊,我从网上看到一个例程,如下,节选: ::respawn:-/bin/sh tty2::askfirst:-/bin/sh 我搞不清两个的区别,这样控制台就启动了,是第一句启动的还是第二句,那我内核启动参数里面的console=ttyS0会自动来找这个控制台??? 原帖由 wavezone 于 2008-8-22 16:34 发表 我很纳闷: :: respawn:-/bin/sh 这个-是干什么的,为什么有的时候有有的时候没有??? 还有啊,我从网上看到一个例程,如下,节选: ::respawn:-/bin/sh tty2::askfirst:-/bin/sh 我搞不清两个的区别 ... 测试的时候是这样的,加上”-”的语句会在登陆终端之后调用/etc/目录下的profile文件,而不加”-”的不会执行这个脚本。 其实登陆终端的命令有几种方便,但是标准的还是使用getty来登陆,但是直接使用如上的语句也是可以的,并且兼容性强一点,因为它不需要指定对应的串口设备。 ::askfirst:-/bin/sh s3c2410_serial0::askfirst:-/bin/sh ::askfirst:-/bin/sh s3c2410_serial0:23456:respawn:/sbin/getty -L s3c2410_serial0 115200 vt100 都是可用的。 8./bin/sh: XXX not found arm-linux-readelf -d xxx 查看你的以用程序依赖哪些库 一般是因为缺少libc.so.6造成的,实际还是根文件系统的问题,没有将常用的库文件拷贝到/lib目录下 常用的库: [root@centos lib]cp /usr/local/arm/3.4.1/arm-linux/lib/ld* . [root@centos lib]cp /usr/local/arm/3.4.1/arm-linux/lib/libc-2.3.2.so . [root@centos lib]cp /usr/local/arm/3.4.1/arm-linux/lib/libc.so.6 . [root@centos lib]cp /usr/local/arm/3.4.1/arm-linux/lib/libm * . [root@centos lib]cp /usr/local/arm/3.4.1/arm-linux/lib/libcrypt* . 9、错误insmod: chdir(2.6.26.6): No such file or directory 网上有人提出这种解决方法: 需要注意的是insmod等模块加载命令需要从lib/modules/2.6.26.6 的目录下加载模块,所以必须先建立此目录,然后将模块放到此目录下面,否则将出现以下两种情况: 一是没有建立lib/modules/2.6.26.6目录,取决于内核版本号,将出现insmod: chdir(2.6.26.6): No such file or directory的错误 二是只将模块简单地放在根目录或其它文件夹,没有将其拷贝到指定的lib/modules/2.6.26.6目录,将出现 insmod: module 'gpio_driver' not found错误 不过这种方法不是很奏效 根本原因是insmod的问题,在busybox编译的时候参考下面的选项,不要使用 Linux Module Utilities ---> [ ] Simplified modutils //该选项不要选择 [*] Support version 2.6.x Linux kernels //此选项选上 参考如下: 10、不能执行”-h”命令 在执行xxx –h时没有任何反应。是在lib目录下缺少常见的库文件 参考如下: [root@vm-dev rootfs]# ls lib/ ld-2.3.6.so libc-2.3.6.so libgcc_s.so libnsl.so.1 libnss_files.so.2 libnss_nis.so.2 librt-2.3.6.so libthread_db.so.1 ld-linux.so.2 libcrypt-2.3.6.so libgcc_s.so.1 libnss_compat-2.3.6.so libnss_hesiod-2.3.6.so libpcprofile.so librt.so.1 libutil-2.3.6.so libanl-2.3.6.so libcrypt.so.1 libm-2.3.6.so libnss_compat.so.2 libnss_hesiod.so.2 libpthread-0.10.so libSegFault.so libutil.so.1 libanl.so.1 libc.so.6 libmemusage.so libnss_dns-2.3.6.so libnss_nis-2.3.6.so libpthread.so.0 libtermcap.so.2 modules libBrokenLocale-2.3.6.so libdl-2.3.6.so libm.so.6 libnss_dns.so.2 libnss_nisplus-2.3.6.so libresolv-2.3.6.so libtermcap.so.2.0.8 libBrokenLocale.so.1 libdl.so.2 libnsl-2.3.6.so libnss_files-2.3.6.so libnss_nisplus.so.2 libresolv.so.2 libthread_db-1.0.so [root@vm-dev rootfs]# linux操作系统文章专题:linux操作系统详解(linux不再难懂)
- Windows CE 进程、线程和内存管理(11-09)
- 如何监控和保护Linux下进程安全 (07-12)
- uClinux进程调度器的实现分析(04-13)
- linux操作系统下的进程通信设计(01-24)
- Windows操作系统多核CPU内核线程管理方法(01-21)
- 一种基于嵌入式实时操作系统的微机保护装置网络通信方案(05-07)