Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1683000
  • 博文数量: 584
  • 博客积分: 13857
  • 博客等级: 上将
  • 技术积分: 11883
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-16 09:34

分类: LINUX

2010-10-14 10:53:45

成功移植busybox-1.10.0并加载mdev
编译器:arm-linux-gcc 3.4.4
busybox:busybox 1.10.0
今天看到busybox.net上已经升级到1.10.0了,想起以前的busybox有-sh: can't access tty;
job control turned
off问题,这个问题导致在控制台中没法使用Ctrl+c。所以今天就试试最新的版本看看有没有这方面的问题。果然没有问题,同时又把mdev加上去。最
后想试一下Ctrl+c可不可以用,但是写了一下死循环程序不能运行,
# cd /usr
# ls -al
drwxr-xr-x    4 0        0            4096 Apr 21  2008 .
drwxr-xr-x    9 0        0            4096 Apr 21  2008 ..
drwxr-xr-x    2 0        0            4096 Apr 21  2008 bin
-rwxrwxrwx    1 0        0            7298 Apr 21  2008 hell
-rw-r--r--    1 0        0              89 Apr 21  2008 hell.c
drwxr-xr-x    2 0        0            4096 Apr 21  2008 sbin
# ./hell
-/bin/sh: ./hell: not found
# whoami
whoami: unknown uid 0-/bin/sh: ./hell: not found
不知道这问题是什么原因?难道是我没有用登录的原因吗?

# ping 192.168.1.180
PING 192.168.1.180 (192.168.1.180): 56 data bytes
64 bytes from 192.168.1.180: seq=0 ttl=64 time=1.877 ms
64 bytes from 192.168.1.180: seq=1 ttl=64 time=1.222 ms
64 bytes from 192.168.1.180: seq=2 ttl=64 time=1.108 ms
--- 192.168.1.180 ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 1.108/1.402/1.877 ms
最后想起来ping不是可以用来测试一下Ctrl+c的吗。做了一下,Ctrl+c是有效。

以下为我主要参考的移植文章:
成功移植busybox-1.7.0并加载mdev(udev的嵌入式版本)
上次成功移植完2.6.22.3后,由于没有启动udev,造成/dev下没有设备文件。也就是说所有的设备都没有挂接进来。
用google在网上搜了一把。发现最新的busybox已经包含了udev的简化版本即mdev,且使用非常简单。
于是下载移植:
第一步:修改Makefile
将Makefile中第175行左右的ARCH和CROSS_COMPILE修改为arm系列:
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-
第二步:meke menuconfig
运行make menuconfig,选择你需要的选项。
在此选择
mdev
第三步:编译、安装
#make
#make install
这时会在你的编译目录下生成一个_install的目录,里面包含了生成的所有文件和目录结构。
第四步:查找所依赖的共享库
#cd _install/bin
#arm-linux-readelf -a ./busybox | grep "Shared library"
用上面的命令可以查到当前的busybox依赖哪些共享库(这些共享库一般可以在你的交叉编译器所在目录的lib下找到)
第五步:将生成的文件和共享库拷贝到你的root filesystem中
将_install中的目录结构和文件完全拷贝到你的root filesystem中。
然后将共享库拷贝到root filesystem的lib目录中,并建立相关的链接文件
第六步:为mdev的运行准备环境
mdev需要改写/dev和/sys两个目录。所以必须保证这两个目录是可写的(一般会用到sysfs,tmpfs。所以要重新编译内核)。
然后在你的启动脚本文件中加入
/bin/mdev -s
最后:将新的内核、新的root filesystem烧到nand flash中就行了。
http://blog.chinaunix.net/u1/59015/showart_571813.html
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/81599/showart_1917066.html
阅读(1106) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~