Chinaunix首页 | 论坛 | 博客
  • 博客访问: 208279
  • 博文数量: 80
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 824
  • 用 户 组: 普通用户
  • 注册时间: 2014-06-12 21:40
个人简介

只有今天的埋头,才有明天的出头。

文章分类

全部博文(80)

文章存档

2014年(80)

我的朋友

分类: LINUX

2014-12-13 13:32:12

制作根文件系统

 

第一步:建立实验目录,拷贝文件包busybox-1.13.3.tar.gz etc.tar.gz到当前目录

[root@localhost rfs]# ls

busybox-1.13.3.tar.gz  etc.tar.gz

 

第二步:创建根文件系统目录

[root@localhost rfs]# mkdir -p /nfsroot/rootfs

[root@localhost rfs]# ls

busybox-1.13.3.tar.gz  etc.tar.gz

[root@localhost rfs]# cd /nfsroot/rootfs/

[root@localhost rootfs]# mkdir bin dev etc lib proc sbin sys usr mnt tmp var

[root@localhost rootfs]# mkdir usr/bin usr/lib usr/sbin lib/modules

[root@localhost rootfs]# pwd

/nfsroot/rootfs

[root@localhost rootfs]# ls

bin  dev  etc  lib  mnt  proc  sbin  sys  tmp  usr  var

[root@localhost rootfs]# ls usr

bin  lib  sbin

 

第三步:创建设备文件

[root@localhost rootfs]# cd dev/

[root@localhost dev]# mknod -m 666 console c 5 1

[root@localhost dev]# mknod -m 666 null c 1 3

[root@localhost dev]# cd ../

[root@localhost rootfs]# cd dev

[root@localhost dev]# pwd

/nfsroot/rootfs/dev

[root@localhost dev]# ls -l

总用量 0

crw-rw-rw-. 1 root root 5, 1 12月 13 09:37 console

crw-rw-rw-. 1 root root 1, 3 12月 13 09:37 null

 

第四步:安装etc

[root@localhost rfs]# tar zxvf etc.tar.gz -C /nfsroot/rootfs/

etc/

etc/inittab

etc/profile

etc/fstab

etc/init.d/

etc/init.d/rcS

[root@localhost rfs]# cd /nfsroot/rootfs/

[root@localhost rootfs]# ls

bin  dev  etc  lib  mnt  proc  sbin  sys  tmp  usr  var

[root@localhost rootfs]# cd etc/

[root@localhost etc]# pwd

/nfsroot/rootfs/etc

[root@localhost etc]# ls

fstab  init.d  inittab  profile

 

第五步:编译内核模块

基于前面的内核编译,

[root@localhost rootfs]# cd linux-2.6.29

[root@localhost linux-2.6.29]# make modules ARCH=arm CROSS_COMPILE=arm-linux-

  CHK     include/linux/version.h

make[1]: include/asm-arm/mach-types.h”是最新的。

  CHK     include/linux/utsrelease.h

  SYMLINK include/asm -> include/asm-arm

  CALL    scripts/checksyscalls.sh

:1097:2: warning: #warning syscall fadvise64 not implemented

:1265:2: warning: #warning syscall migrate_pages not implemented

:1321:2: warning: #warning syscall pselect6 not implemented

:1325:2: warning: #warning syscall ppoll not implemented

:1365:2: warning: #warning syscall epoll_pwait not implemented

  CC [M]  drivers/char/mini2440_hello_module.o

  CC [M]  drivers/scsi/scsi_wait_scan.o

  Building modules, stage 2.

  MODPOST 2 modules

  CC      drivers/char/mini2440_hello_module.mod.o

  LD [M]  drivers/char/mini2440_hello_module.ko

  CC      drivers/scsi/scsi_wait_scan.mod.o

  LD [M]  drivers/scsi/scsi_wait_scan.ko

 

第六步:安装内核模块到根文件系统

[root@localhost linux-2.6.29]# make modules_install ARCH=arm INSTALL_MOD_PATH=/nfsroot/rootfs

  INSTALL drivers/char/mini2440_hello_module.ko

  INSTALL drivers/scsi/scsi_wait_scan.ko

  DEPMOD  2.6.29.4-FriendlyARM

将内核模块安装到根文件系统 /nfsroot/roots/lib/modules

[root@localhost modules]# pwd

/nfsroot/rootfs/lib/modules

[root@localhost modules]# ls

2.6.29.4-FriendlyARM

 

第七步:配置busybox

解压:#tar xzvf busybox-1.13.3.tar.gz

[root@localhost rfs]# cd busybox-1.13.3

[root@localhost busybox-1.13.3]# ls

applets        e2fsprogs  libpwdgrp        modutils    sysklogd

arch           editors    LICENSE          networking  testsuite

archival       examples   loginutils       printutils  TODO

AUTHORS        fa.config  mailutils        procps      TODO_config_nommu

Config.in      findutils  Makefile         README      util-linux

console-tools  include    Makefile.custom  runit

coreutils      init       Makefile.flags   scripts

debianutils    INSTALL    Makefile.help    selinux

docs           libbb      miscutils        shell

 

配置:

(1)#cd busybox-1.13.3

#make menuconfig

(2)进入busybox settings

 

a.选中build options

 

b.选中busybox as a static binary

 

c.再进入cross compile prefix,填写arm-linux-,这样编译就可直接make

 

 

d.进入Istall option,选择don’t use /usr

 

e.再进入最后一项,填写busybox安装路径

  

f.退出保存设置。

 

第八步:编译busybox

#make ARCH=arm CROSS_COMPILE=arm-linux-

 

第九步:安装busybox

#make install

 

第十步:查看根文件系统

[root@localhost busybox-1.13.3]# ls /nfsroot/rootfs/

bin  dev  etc  lib  linuxrc  mnt  proc  sbin  sys  tmp  usr  var

[root@localhost busybox-1.13.3]# cd /nfsroot/rootfs/bin/

[root@localhost bin]# ls

[         deallocvt   hexdump   mkdir          resize       tftpd

[[        delgroup    hostid    mkfifo         rm           time

addgroup  deluser     hostname  mknod          rmdir        top

adduser   df          hush      mktemp         rtcwake      touch

ar        diff        id        more           run-parts    tr

arping    dirname     install   mount          runsv        traceroute

ash       dmesg       ip        mountpoint     runsvdir     true

awk       dos2unix    ipaddr    msh            rx           tty

basename  du          ipcalc    mt             script       ttysize

bunzip2   dumpkmap    

 

至此根文件系统就制作好了

 

附加:为了能被挂载

第一步:#vi /etc/exports

添加代码

 ***************************************
/nfsroot/rootfs 192.168.139.*(rw,sync,no_root_squash)

                                                     

******************************************************
第二步:重启nfs服务

[root@localhost modules]# /etc/init.d/nfs restart

关闭 NFS 守护进程:                                        [确定]

关闭 NFS mountd:                                          [确定]

关闭 NFS quotas:                                          [确定]

关闭 NFS 服务:                                            [确定]

启动 NFS 服务:                                            [确定]

关掉 NFS 配额:                                            [确定]

启动 NFS mountd:                                          [确定]

正在启动 RPC idmapd:                                      [确定]

正在启动 RPC idmapd:                                      [确定]

启动 NFS 守护进程:                                        [确定]

 

第三步:使用mount命令挂载NFS服务器上的共享目录到本地

[root@localhost modules]# mount -t nfs 192.168.139.128:/nfsroot/rootfs/ /mnt/

[root@localhost modules]# ls /mnt

bin  dev  etc  lib  linuxrc  mnt  proc  sbin  sys  tmp  usr  var

内容一致?

[root@localhost modules]# cd /nfsroot/rootfs/

[root@localhost rootfs]# ls

bin  dev  etc  lib  linuxrc  mnt  proc  sbin  sys  tmp  usr  var

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