根文件系统的移植.docx
- 文档编号:16703663
- 上传时间:2023-07-16
- 格式:DOCX
- 页数:24
- 大小:175.76KB
根文件系统的移植.docx
《根文件系统的移植.docx》由会员分享,可在线阅读,更多相关《根文件系统的移植.docx(24页珍藏版)》请在冰点文库上搜索。
根文件系统的移植
根文件系统的移植
1.下载busybox-1.13.4.tar.bz2
网址:
2.解压busybox-1.13.4.tar.bz2到桌面
[root@localhostDesktop]#tar-xjvfbusybox-1.13.4.tar.bz2-C./
[root@localhostDesktop]#cdbusybox-1.13.4
[root@localhostbusybox-1.13.4]#
3.编辑Makefile文件
[root@localhostbusybox-1.13.4]#geditMakefile
将
CROSS_COMPILE?
=
改为
CROSS_COMPILE?
=/usr/local/arm/3.4.1/bin/arm-linux-
将
ARCH?
=$(SUBARCH)
改为
ARCH?
=arm
4.进行默认配置
[root@localhostbusybox-1.13.4]#makedefconfig//恢复默认配置
5.对配置信息进行修改
[root@localhostbusybox-1.13.4]#makemenuconfig
HOSTLDscripts/kconfig/mconf
HOSTCCscripts/kconfig/lxdialog/checklist.o
HOSTCCscripts/kconfig/lxdialog/inputbox.o
HOSTCCscripts/kconfig/lxdialog/lxdialog.o
HOSTCCscripts/kconfig/lxdialog/menubox.o
HOSTCCscripts/kconfig/lxdialog/msgbox.o
HOSTCCscripts/kconfig/lxdialog/textbox.o
HOSTCCscripts/kconfig/lxdialog/util.o
HOSTCCscripts/kconfig/lxdialog/yesno.o
HOSTLDscripts/kconfig/lxdialog/lxdialog
scripts/kconfig/mconfConfig.in
在弹出的TUI界面中进行如下配置:
检查MiscellaneousUtilities--->
taskset是否去除
同时设置如下:
BusyboxSettings--->
BuildOptions--->
[*]BuildBusyBoxasastaticbinry(nosharedlibs)//选用静态连接
[*]BuildwithLargeFileSupport(foraccessingfiles>2GB)
(/usr/local/arm/3.4.1/bin/arm-linux-)CrossCompilerprefix
InstallationOptions--->
[*]Don'tuse/usr
(./_install)BusyBoxinstallationprefix//安装路径
BusyboxLibraryTuning--->
(6)Minimumpasswordlength
(2)MD5:
TradeBytesforSpeed
[*]Faster/procscanningcode(+100bytes)
[]Supportfor/etc/networks
[*]Commandlineediting
(1024)Maximumlengthofinput
[*]vi-stylelineeditingcommands
(15)Historysize
[*]Historysaving
[*]Tabcompletion
[*]Usernamecompletion
[*]Fancyshellprompts//Settingthisoptionallowsforpromptstousethingslike\wand
//\$andescapecodes.
[]Givemoreprecisemessageswhencopyfails(cp,mvetc)
(4)Copybuffersize,inkilobytes
[]Useclock_gettime(CLOCK_MONOTONIC)syscall
[*]Useioctlnamesratherthanhexvaluesinerrormessages
[*]SupportinfinibandHW
设置完毕后,保存、退出。
6.编译
[root@localhostbusybox-1.13.4]#make
......
CCnetworking/inetd.o
CCnetworking/interface.o
networking/interface.c:
818:
error:
`ARPHRD_INFINIBAND'undeclaredhere(notinafunction)
networking/interface.c:
818:
error:
initializerelementisnotconstant
networking/interface.c:
818:
error:
(nearinitializationfor`ib_hwtype.type')
make[1]:
***[networking/interface.o]错误1
make:
***[networking]错误2
编译出错,此时需要编辑networking/interface.c文件。
[root@localhostbusybox-1.13.4]#geditnetworking/interface.c
将networking/interface.c文件的818行修改为“.type=-1”,然后再次编译。
[root@localhostbusybox-1.13.4]#make
......
CCutil-linux/volume_id/volume_id.o
CCutil-linux/volume_id/xfs.o
ARutil-linux/volume_id/lib.a
LINKbusybox_unstripped
Tryinglibraries:
cryptm
Librarycryptisnotneeded,excludingit
Librarymisneeded,can'texcludeit(yet)
Finallinkwith:
m
DOCbusybox.pod
DOCBusyBox.txt
DOCBusyBox.1
DOCBusyBox.html
[root@localhostbusybox-1.13.4]#llbusybox*
-rwxr-xr-x1rootroot170121605-1117:
26busybox
-rwxr-xr-x1rootroot204518505-1117:
26busybox_unstripped
-rw-r--r--1rootroot88932105-1117:
26busybox_unstripped.map
-rw-r--r--1rootroot8350305-1117:
26busybox_unstripped.out
[root@localhostbusybox-1.13.4]#makeinstall
如果成功,会出现如下信息:
--------------------------------------------------
Youwillprobablyneedtomakeyourbusyboxbinary
setuidroottoensureallconfiguredappletswill
workproperly.
--------------------------------------------------
解决办法是修改_install/bin/busybox文件的属性。
[root@localhostbusybox-1.13.4]#ll_install/bin/busybox
-rwxr-xr-x1rootroot170121605-1117:
41_install/bin/busybox
[root@localhostbusybox-1.13.4]#chmod4755./_install/bin/busybox//修改busybox属性
[root@localhostbusybox-1.13.4]#ll_install/bin/busybox
-rwsr-xr-x1rootroot170121605-1117:
41_install/bin/busybox
[root@localhostbusybox-1.13.4]#ll_install/
总计20
drwxr-xr-x2rootroot409605-1117:
41bin
lrwxrwxrwx1rootroot1105-1117:
41linuxrc->bin/busybox
drwxr-xr-x2rootroot409605-1117:
41sbin
[root@localhostbusybox-1.13.4]#cd_install/
[root@localhost_install]#pwd
/root/Desktop/busybox-1.13.4/_install
7.对配置信息进行修改
(1)在/tmp/nfs中创建所需的目录
[root@localhostnfs]#mkdir-pbinsbinlib/modulesetc/init.ddevusr/binusr/sbinusr/libprocsyshomerootbootmnt/etcmnt/jffs2mnt/yaffsmnt/datamnt/tempvar/libvar/lockvar/logvar/runvar/tmptmp
注意:
其中bin、dev、etc、lib、proc、sbin、sys、usr是必备的8个目录。
[root@localhostnfs]#chmod1777tmp
[root@localhostnfs]#chmod1777var/tmp
[root@localhostnfs]#cddev/
[root@localhostdev]#pwd
/tmp/nfs/dev
[root@localhostdev]#mknod-m600consolec51
[root@localhostdev]#mknod-m666nullc13
(2)复制文件到/tmp/nfs中
将/root/Desktop/busybox-1.13.4/_install中的内容复制到/tmp/nfs中。
[root@localhost_install]#pwd
/root/Desktop/busybox-1.13.4/_install
[root@localhost_install]#cp-abin/tmp/nfs/
[root@localhost_install]#cp-asbin/tmp/nfs/
[root@localhost_install]#lllinuxrc
lrwxrwxrwx1rootroot1105-1117:
41linuxrc->bin/busybox
[root@localhost_install]#cp-alinuxrc/tmp/nfs/
[root@localhost_install]#ll/tmp/nfs/linuxrc
lrwxrwxrwx1rootroot1105-1117:
43/tmp/nfs/linuxrc->bin/busybox
[root@localhost_install]#cd..
[root@localhostbusybox-1.13.4]#pwd
/root/Desktop/busybox-1.13.4
[root@localhostbusybox-1.13.4]#cp-aexamples/bootfloppy/etc/*/tmp/nfs/etc/
[root@localhostbusybox-1.13.4]#ls/tmp/nfs/etc/
fstabinit.dinittabprofile
[root@localhostbusybox-1.13.4]#
8.创建配置文件
(1)编写etc/inittab文件、修改其权限
[root@localhostnfs]#geditetc/inittab
文件内容如下:
:
:
sysinit:
/etc/init.d/rcS#指定系统初始化脚本文件
:
:
respawn:
-/bin/login#加上-语句会在登陆终端之后调用/etc/目录下的profile文件
:
:
restart:
/sbin/init#指定系统重启时执行的初始化程序
tty0:
:
respawn:
-/bin/login
:
:
shutdown:
/bin/umount-a-r#指定关机时执行的操
:
:
shutdown:
/sbin/swapoff-a
[root@localhostnfs]#lletc/inittab
-rw-r--r--1rootroot30905-1118:
28etc/inittab
[root@localhostnfs]#chmod755etc/inittab
(2)编写etc/init.d/rcS文件、修改其权限
[root@localhostnfs]#geditetc/init.d/rcS
文件内容如下:
#!
/bin/sh
#mountallfilesystemdefinedin"fstab"
echo"#mountall......."
/bin/mount-a
/bin/mknod-m600/dev/consolec51
/bin/mknod-m666/dev/nullc13
/bin/mknod-m666/dev/tty0c40
/bin/mknod-m666/dev/mtdblock0b310
/bin/mknod-m666/dev/mtdblock1b311
/bin/mknod-m666/dev/mtdblock2b312
/bin/mknod-m666/dev/mtdblock3b313
#/bin/mount-text2/dev/mtdblock3/mnt/temp/
echo"******************************************************************"
echo"OK2410Rootfsmadebyztg,2009.05"
echo"******************************************************************"
[root@localhostnfs]#lletc/init.d/rcS
-rw-r--r--1rootroot9205-1118:
27etc/init.d/rcS
[root@localhostnfs]#chmod755etc/init.d/rcS
(3)编写etc/fstab文件、修改其权限
[root@localhostnfs]#geditetc/fstab
文件内容如下:
proc/procprocdefaults00
sysfs/syssysfsdefaults00
none/tmpramfsdefaults00
mdev/devramfsdefaults00
[root@localhostnfs]#lletc/fstab
-rw-r--r--1rootroot5905-1118:
30etc/fstab
[root@localhostnfs]#chmod755etc/fstab
(4)编写etc/proflie文件、修改其权限
[root@localhostnfs]#geditetc/proflie
文件内容如下:
#/etc/profile:
system-wide.profilefilefortheBourneshells
echo
echo-n"Processing/etc/profile..."
#no-op
#Setsearchlibrarypath
echo"Setsearchlibrarypathin/etc/profile"
exportLD_LIBRARY_PATH=/lib:
/usr/lib
#Setuserpath
echo"Setuserpathin/etc/profile"
exportPATH=/bin:
/sbin:
/usr/bin:
/usr/sbin#设置命令搜索路径
exportHISTSIZE=100
exportPS1='[\u@\h\W]\$'
aliasll='ls-l'
#/sbin/ifconfigeth0192.168.1.22netmask255.255.255.0
/sbin/ifconfiglo127.0.0.1
echo"Configurenetdone"
echo"AllDone"
echo
(5)创建密码文件、修改其权限
下面3个文件可以从宿主机中复制,只留下root帐号。
[root@localhostnfs]#cp/etc/passwdetc/;cp/etc/shadowetc/;cp/etc/groupetc/
[root@localhostnfs]#chmod600etc/shadow
[root@localhostnfs]#geditetc/passwd
内容是:
root:
x:
0:
0:
root:
/root:
/bin/sh
[root@localhostnfs]#geditetc/shadow
内容是:
root:
$1$zs2zr2N4$15U99ll5tUm3DwOvKnCVV1:
14335:
0:
99999:
7:
:
:
[root@localhostnfs]#geditetc/group
内容是:
root:
x:
0:
root
(6)为mdev创建配置文件
[root@localhostnfs]#geditetc/mdev.conf
内容是:
空
[root@localhostnfs]#lletc/
总计60
-rwxr-xr-x1rootroot11705-1119:
28fstab
-rw-r--r--1rootroot1405-1120:
09group
drwxr-xr-x2rootroot409605-1120:
04init.d
-rwxr-xr-x1rootroot18405-1119:
33inittab
-rw-r--r--1rootroot005-1120:
09mdev.conf
-rw-r--r--1rootroot3005-1120:
07passwd
-rwxr-xr-x1rootroot80105-1119:
42proflie
-rw-r--r--1rootroot5905-1120:
08shadow
(7)删除备份文件
[root@localhostnfs]#rmetc/*~etc/init.d/*~
9.复制常用的库文件
编写脚本文件copy_lib.sh。
[root@localhostnfs]#geditcopy_lib.sh
文件内容如下:
#!
/bin/bash
#Youshouldputthisfilecp.shin/usr/local/arm/3.4.1/arm-linux/lib/
ROOTFS_LIB=/tmp/nfs/lib/
forfileinlibclibcryptlibdllibmlibpthreadlibresolvlibutil
do
cp$file-*.so${ROOTFS_LIB}
cp-d$file.so.[*0-9]${ROOTFS_LIB}
done
cp-dld*.so*${ROOTFS_LIB}
[root@localhostnfs]#llcopy_lib.sh
-rw-r--r--1rootroot30305-1120:
18copy_lib.sh
[root@localhostnfs]#chmoda+xcopy_lib.sh
[root@localhostnfs]#cpcopy_lib.sh/usr/local/arm/3.4.1/arm-linux/lib/
[root@localhostnfs]#cd/usr/local/arm/3.4.1/arm-linux/lib/
[root@localhostlib]#./copy_lib.sh
[root@localhostlib]#cd-
/tmp/nfs
[root@localhostnfs]#lllib
总计2516
-rwxr-xr-x1rootroot13148005-1120:
19ld-2.3.2.so
lrwxrwxrwx1rootroot1105-1120:
19ld-linux.so.2->ld-2.3.2.so
-rwxr-xr-x1rootroot156035205-1120:
19libc-2.3.2.so
-rwxr-xr-x1rootroot3015505-1120:
19libcrypt-2.3.2.so
lrwxrw
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 文件系统 移植