nfs2Word文件下载.docx
- 文档编号:19530883
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:10
- 大小:23.48KB
nfs2Word文件下载.docx
《nfs2Word文件下载.docx》由会员分享,可在线阅读,更多相关《nfs2Word文件下载.docx(10页珍藏版)》请在冰豆网上搜索。
另外,按照他的这种方法做出来的文件系统,运行的时候shell并不好有,没有历史记录、自动补全、删除字符的功能,下面介绍如何为它添加这些功能:
Shells--->
---
BourneShellOptions
[]
Hidemessageoninteractiveshellstartup
Standaloneshell
[*]
commandlineediting
vi-stylelineeditingcommands
(15)
historysize
historysaving
tabcompletion
usernamecompletion
Fancyshellprompts
Coreutils>
[*]cp
[*]cat
[*]ls
[*]mkdir
[*]echo(basicSuSv3versiontakingnooptions)
[*]env
[*]mv
[*]pwd
[*]rm
[*]touch
Editors>
[*]vi
LinuxSystemUtilities>
[*]mount
[*]umount
[*]Supportloopbackmounts
[*]Supportfortheold/etc/mtabfile
NetworkingUtilities>
##########################################################
LinuxModuleUtilities
--->
[*]insmod
[*]rmmod
[*]lsmod
[*]
lsmodprettyoutputfor2.6.xLinuxkernels
[*]modprobe
Multipleoptionsparsing
---
Optionscommontomultiplemodutils
Supporttaintedmodulecheckingwithnewkernels
[]
Supportversion2.2.xto2.4.xLinuxkernels
//此项一定不要选!
!
Supportversion2.6.xLinuxkernels
########################################################################
退出并保存config选项。
然后:
[~busybox-1.13.3]#exportPATH={交叉编译器路径}:
$PATH
[~busybox-1.13.3]#makeARCH=armCROSS_COMPILE=arm-linux-
install
此处的选项ARCH、CROSS_COMPILE是为了明确目标平台以及所使用的交叉编译器。
非此版本的Busybox有可能不是ARCH或CROSS_COMPILE,具体名称可以从Makefile中可以找到。
编译完成后,在_install目录下会生成目标平台的相关根文件。
以下说明并没有真正确认过其可行性,在此不做详细解释。
如果你是使用的1.4以上的版本,交叉编译同编译内核一样,需要修改Makefile中的arch=arm
CROSS_COMPILE=arm-linux-
然后#makexconfig
#make
#makeinstall
2.用shell脚本创建根文件系统的目录结构,并在想要建立根文件系统的地方运行此脚本
sh脚本文件build_fs.sh内容:
##############################################
#!
/bin/sh
echo"
makeingrootdir"
mkdirrootfs
cdrootfs
makeingdir:
bindevetclibprocsbinsysusr"
mkdirbindevetclibprocsbinsysusr#8dirs
mkdirusr/binusr/libusr/sbinlib/modules
#Don'
tusemknod,unlessyourunthisScriptas
mknod-m600dev/consolec51
mknod-m666dev/nullc13
makingdir:
mnttmpvar"
mkdirmnttmpvar
chmod1777tmp
mkdirmnt/etcmnt/jiffs2mnt/yaffsmnt/datamnt/temp
mkdirvar/libvar/lockvar/logvar/runvar/tmp
chmod1777var/tmp
homerootboot"
mkdirhomerootboot
done"
####################################################
执行这个sh:
[~busybox-1.13.3]#./build_fs.sh
makeingrootdir
bindevetclibprocsbinsysusr
mnttmpvar
homerootboot
done
创建出一个主文件夹rootfs,里面有一批文件:
[~busybox-1.13.3]#cdrootfs/
[~rootfs]#ls
binbootdevetchomelibmntprocrootsbinsystmpusrvar
4、把busybox源码目录下的etc的内容拷贝到这里的etc下
[~rootfs]#cdetc/
[~etc]#ls
[~etc]#cp-a/opt/develop/lyj/common/porting/rootfs/busybox-1.12.2/examples/bootfloppy/etc/*./
fstabinit.dinittabprofile
5、修改拷贝过来的profile文件
[~etc]#viprofile
#/etc/profile:
system-wide.profilefilefortheBourneshells
Processing/etc/profile"
#no-op
#Setsearchlibrarypath
Setsearchlibrarypath"
exportLD_LIBRARY_PATH=/lib:
/usr/lib
#Setuserpath
Setuserpath"
PATH=/bin:
/sbin:
/usr/bin:
/usr/sbin
exportPATH
#SetPS1
SetPS1"
HOSTNAME=`/bin/hostname`
#此处让shell提示符显示host名称的。
是`,不是’,要注意!
#会在进入根系统后显示Jacky
exportPS1="
\\e[32m[$USER@$HOSTNAME\\w\\a]\\$\\e[00;
37m"
#此处\\e[32m是让后面的“[$USER@$HOSTNAME\\w\\a]”显示为绿色
#\\e[00是关闭效果
#\\e[05是闪烁
#37m是让后面的显示为白色
#多个命令可以;
号隔开
Alldone!
"
echo
6、修改初始化文件inittab和fstab
Inittab
[~etc]#viinittab
:
sysinit:
/etc/init.d/rcS
respawn:
-/bin/sh
restart:
/sbin/init
tty2:
askfirst:
ctrlaltdel:
/bin/umount-a-r
shutdown:
/sbin/swapoff–a
Fstab
[~etc]#vimfstab
proc/procprocdefaults00
none/tmpramfsdefaults00
mdev/devramfsdefaults00
sysfs/syssysfsdefaults00
7、修改初始化的脚本文件init.d/rcS
[~etc]#viinit.d/rcS
/bin/sh
Processingetc/init.d/rc.S"
#hostname${HOSTNAME}
hostnamequickengine-tech
Mountall"
/bin/mount-a
Startmdev...."
/bin/echo/sbin/mdev>
proc/sys/kernel/hotplug
mdev-s
****************************************************"
rootfsbyNFS,s3c2440"
CreatedbyAnsonLiu@2009.11.05"
GoodLuck"
www.quickengine-"
8、创建一个空的mdev.conf文件,在挂载根文件系统时会用到的
[~etc]#touchmdev.conf
9、从本机拷贝passwd、shadow、group文件。
[~etc]#cp/etc/passwd.
[~etc]#cp/etc/shadow.
[~etc]#cp/etc/group.
修改passwd文件,把第一行和最后一行的bash修改成ash。
10、把busybox默认安装目录中的文件全部复制到这里的rootfs中。
会发现多了linuxrc->
bin/busybox文件,这是挂载文件系。
[~etc]#cd..
[~rootfs]#cp-Rfv/opt/develop/lyj/common/porting/rootfs/busybox-1.12.2/_install/*./
OK,以上用busybox创建了一个基本的文件系统。
PS:
如果编译busybox时选择动态库方式编译,则需要查看生成的busybox使用哪些动态库,然后把它们拷贝到rootfs/lib目录下。
[~lib]#arm-linux-readelf-d../bin/busybox
Dynamicsectionatoffset0xc1014contains21entries:
TagTypeName/Value
0x00000001(NEEDED)Sharedlibrary:
[libm.so.6]
[libc.so.6]
0x0000000c(INIT)0xc2ec
0x0000000d(FINI)0xa96b8
0x00000004(HASH)0x80e8
0x00000005(STRTAB)0xa4c4
0x00000006(SYMTAB)0x8b64
0x0000000a(STRSZ)3505(bytes)
0x0000000b(SYMENT)16(bytes)
0x00000015(DEBUG)0x0
0x00000003(PLTGOT)0xd10e4
0x00000002(PLTRELSZ)3112(bytes)
0x00000014(PLTREL)REL
0x00000017(JMPREL)0xb6c4
0x00000011(REL)0xb674
0x00000012(RELSZ)80(bytes)
0x00000013(RELENT)8(bytes)
0x6ffffffe(VERNEED)0xb5a4
0x6fffffff(VERNEEDNUM)2
0x6ffffff0(VERSYM)0xb276
0x00000000(NULL)0x0
可以看出,使用了libm.so.6和libc.so.6两个库。
发现只拷贝这两个库还不够,还需要ld-linux.so.2和libgcc_s.so.1,也就是我编译出来的这个busybox需要4个动态库文件。
#cp/opt/crosstools/gcc-3.4.6-glibc-2.3.6/lib/libm.so.6.
#cp/opt/crosstools/gcc-3.4.6-glibc-2.3.6/lib/libc.so.6.
#cp/opt/crosstools/gcc-3.4.6-glibc-2.3.6/lib/ld-linux.so.2.
#cp/opt/crosstools/gcc-3.4.6-glibc-2.3.6/lib/libgcc_s.so.1.
这样,使用动态库可以节省一半左右的空间,不过效率有所降低。
准备链接库
#cd${OBJ_LIB}/lib(${OBJ_LIB}是交叉编译环境的目录)
#forfileinlibclibcryptlibdllibm\
>
libpthreadlibresolvlibutil
do
cp$file-*.so/home/fortis/rootfs/lib
cp-d$file.so.[*0-9]/home/fortis/rootfs/lib
#cp-dld*.so*/home/fortis/rootfs/lib
11.测试
1)、在本机修改/etc/export文件,重启NFS服务:
[root@vm-devroot]#vi/etc/exports
/opt/lyj
192.168.1.*(rw,insecure,sync,no_root_squash)
/opt/develop/lyj/common/porting/rootfs/root_stand/reset/rootfs
[root@vm-devroot]#servicenfsrestart
2)、在Bootloader中传递以下参数给Kernel:
root=/dev/nfsrwnfsroot=192.168.1.152:
/opt/develop/lyj/common/porting/rootfs/root_stand/reset/rootfsip=192.168.1.155:
192.168.1.152:
192.168.1.254:
255.255.255.0:
Jacky:
eth0:
offconsole=ttySAC0,115200init=/linuxrcnoinitrd
3)、启动目标板,串口输出显示根文件系统已经加载成功:
U-Boot1.3.2(Nov272016-17:
43:
03)
DRAM:
64MB
Flash:
512kB
NAND:
64MiB
In:
serial
Out:
Err:
FoundDM9000ID:
90000a46ataddress10000000!
DM9000workin16buswidth
bd->
bi_entaddr:
08:
00:
3e:
26:
0a:
5b
[eth_init]MAC:
8:
0:
a:
5b:
Hitanykeytostopautoboot:
0
NANDread:
device0offset0x80000,size0x1b0000
1769472bytesread:
OK
##Bootingimageat30008000...
ImageName:
Linux-2.6.24.4
Created:
2016-11-27
7:
24:
11UTC
ImageType:
ARMLinuxKernelImage(uncompressed)
DataSize:
1697964Bytes=
1.6MB
LoadAddress:
30008000
EntryPoint:
30008040
VerifyingChecksum...OK
test:
hdr->
ih_type:
2
ih_comp:
XIPKernelImage...OK
ih_os:
5
Startingkernel...
machid:
805306624
bi_boot_params:
0x33f5bfb8
starting1
UncompressingLinux............................................................................................................done,bootingthekernel.
Linuxversion2.6.24.4(root@vm-dev)(gccversion3.4.6)#94ThuNov2710:
02:
26CST2008
CPU:
ARM920T[41129200]rev
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- nfs2