Chinaunix首页 | 论坛 | 博客
  • 博客访问: 411976
  • 博文数量: 36
  • 博客积分: 960
  • 博客等级: 准尉
  • 技术积分: 1368
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-13 19:26
文章分类
文章存档

2018年(3)

2012年(6)

2011年(27)

分类: LINUX

2011-08-08 18:50:22

===========================================
本文系作者原创, 欢迎大家转载!
转载请注明出处:netwalker.blog.chinaunix.net
===========================================
 
硬件平台:
MainBoard:OK6410
CPU: S3C6410
RAM: 256M
FLASH:1G K9GAG08U0D
Kernel:Linux2.6.28
BootLoader:Uboot1.1.6

7.Busybox 的编译

选择合适的Busybox版本,这里选择用2.6.28内核对应的busybox-1.16.2版本,然后做以下配置:

1)  make menuconfig

2)  Busybox Settings  --->  Build Options  ---> 


 

选择编译成静态库,这样就避免了繁琐的动态库安装,当然如果使用了动态库,那么需要将uclibc中的库so文件拷贝到lib文件夹中,这样其他的应用程序也可以使用动态库编译而不增加代码大小。

指定交叉编译工具链。

3)  Busybox Settings  --->  Installation Options  --->

 

   

选择Don't use /usr防止busybox安装到宿主机

指定安装路径为/home/red/forlinux/rootfs

 

  1. #make
  2. #make install

 

此时安装到rootfs的文件和目录如下:

 

 

  1. #ls /home/red/forlinux/rootfs
  2. drwxr-xr-x 2 root root 4.0K 2011-07-12 10:38 bin/
  3. lrwxrwxrwx 1 root root 11 2011-07-12 10:38 linuxrc -> bin/busybox*
  4. drwxr-xr-x 2 root root 4.0K 2011-07-12 10:38 sbin/

 

 创建一些系统启动必须的目录和文件

  1. #mkdir bin sbin dev etc lib proc tmp usr var sys mnt

 

创建设备节点,通常需要root权限才能使用mknod来创建,我们直接赋值已经创建好的设备节点即可,另外一种方法是使用mdev命令根据mdev.conf在启动时生成。

 

设备节点应该具有合适的权限,否则在使用该设备的时候会出问题。

 

etc下的配置文件:

1)  inittab :在busybox执行linuxrc或者init链接的时候解析并执行。

2)  init.d:是一个文件夹,一般放置rcS脚本

3)  profile:用来配置终端

 

export PS1='[\u@\h \W]\# ' 后发现终端提示符号不正确,如下显示:

[\u@\h \W]\#

 

busybox settings->busybox library tuning->username completionfancy shell prompts选上

CONFIG_FEATURE_EDITING_FANCY_PROMPT=y

CONFIG_FEATURE_USERNAME_COMPLETION=y

 

重新编译即可。也只有开启了此两选线,/etc/profile才有意义。

 

8.关于nfs文件系统的挂载
 

ubuntu10.10上测试通过,参考了网上的一些文档,有些命令在ubuntu上需要修改

 

  1. #sudo apt-get install portmap
  2. #sudo apt-get install nfs-kernel-server
  3. #sudo vim /etc/exports

  4. 添加/forlinx *(rw,sync,no_root_squash)

  5. #sudo /etc/init.d/portmap restart //该命令应为service portmap stop; service portmap start
  6. #sudo /etc/init.d/nfs-kernel-server restart // 该命令为service nfs-kernel-server restart

 

另外查看rpcbind有没有运行。如果没有则rpcbind –w&

 

 

  1. #exportfs –rv // 这一步很关键
  2. #showmount -e // 显示共享出的目录

 

本机测试命令为:

  1. #sudo mount -t nfs localhost:/forlinux/root /mnt/tmp

 

嵌入式系统测试为:

  1. mount -t nfs localhost:/forlinux/root /mnt/tmp -o nolock // nolock 必须要添加

 

如果作为根系统启动,则

  1. #setenv bootargs "root=/dev/nfs nfsroot=10.255.21.240:/forlinux/root ip=10.255.21.213:10.255.21.240:10.255.21.254:255.255.255.0:hostname:eth0:off console=ttySAC0,115200"
  2. #saveenv
  3. #reset

10.255.21.240 PC Ubuntu IP

10.255.21.213开发板IP

10.255.21.254 网关

255.255.255.0 子网掩码

阅读(1884) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~