根文件系统实验指导Word文件下载.docx

上传人:b****5 文档编号:18348337 上传时间:2022-12-15 格式:DOCX 页数:18 大小:28.07KB
下载 相关 举报
根文件系统实验指导Word文件下载.docx_第1页
第1页 / 共18页
根文件系统实验指导Word文件下载.docx_第2页
第2页 / 共18页
根文件系统实验指导Word文件下载.docx_第3页
第3页 / 共18页
根文件系统实验指导Word文件下载.docx_第4页
第4页 / 共18页
根文件系统实验指导Word文件下载.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

根文件系统实验指导Word文件下载.docx

《根文件系统实验指导Word文件下载.docx》由会员分享,可在线阅读,更多相关《根文件系统实验指导Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。

根文件系统实验指导Word文件下载.docx

tuse/usr

//使用usr目录

BusyboxLibraryTuning--->

[*]Fancyshellprompts

//一定要选上,否则很多转意字符无法识别

Shells--->

Chooseyourdefaultshell(ash)--->

//这里选择shell为ash,应该是默认选中的

---ash

//把ash这档的选项全部选上

MiscellaneousUtilities--->

[]inotifyd

//不选

保存退出,直接make,makeinstall。

可以看到如下目录

[root@vm-devbusybox-1.12.2]#ls_install/

binlinuxrcsbinusr

3、用shell脚本创建根文件系统的目录结构,并在想要建立根文件系统的地方运行此脚本。

我是用root用户登陆的,直接创建了设备节点。

[root@vm-devroot_stand]#catbuild_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"

[root@vm-devroot_stand]#

执行这个sh:

[root@vm-devroot_stand]#shbuild_fs.sh

makeingrootdir

bindevetclibprocsbinsysusr

mnttmpvar

homerootboot

done

创建出一个主文件夹rootfs,里面有一批文件:

[root@vm-devroot_stand]#cdrootfs/

binbootdevetchomelibmntprocrootsbinsystmpusrvar

[root@vm-devrootfs]#

4、把busybox源码目录下的etc的内容拷贝到这里的etc下

[root@vm-devrootfs]#cdetc/

[root@vm-devetc]#ls

[root@vm-devetc]#cp-a/opt/develop/lyj/common/porting/rootfs/busybox-1.12.2/examples/bootfloppy/etc/*./

fstabinit.dinittabprofile

[root@vm-devetc]#

5、修改拷贝过来的profile文件

[root@vm-devetc]#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

[root@vm-devetc]#viinittab

:

sysinit:

/etc/init.d/rcS

respawn:

-/bin/sh

restart:

/sbin/init

tty2:

askfirst:

ctrlaltdel:

/bin/umount-a-r

shutdown:

/sbin/swapoff–a

Fstab

[root@vm-devetc]#vimfstab

proc/procprocdefaults00

none/tmpramfsdefaults00

mdev/devramfsdefaults00

sysfs/syssysfsdefaults00

7、修改初始化的脚本文件init.d/rcS

[root@vm-devetc]#viinit.d/rcS

/bin/sh

Processingetc/init.d/rc.S"

#hostname${HOSTNAME}

hostnameup-tech

Mountall"

/bin/mount-a

Startmdev...."

/bin/echo/sbin/mdev>

proc/sys/kernel/hotplug

mdev-s

****************************************************"

rootfsbyNFS,s3c2410"

Createdbylyj_uptech@2008.11.28"

GoodLuck"

www.up-"

8、创建一个空的mdev.conf文件,在挂载根文件系统时会用到的

[root@vm-devetc]#touchmdev.conf

9、从本机拷贝passwd、shadow、group文件。

[root@vm-devetc]#cp/etc/passwd.

[root@vm-devetc]#cp/etc/shadow.

[root@vm-devetc]#cp/etc/group.

修改passwd文件,把第一行和最后一行的bash修改成ash。

10、把busybox默认安装目录中的文件全部复制到这里的rootfs中。

会发现多了linuxrc->

bin/busybox文件,这是挂载文件系统需要执行的。

[root@vm-devetc]#cd..

[root@vm-devetc]#cp-Rfv/opt/develop/lyj/common/porting/rootfs/busybox-1.12.2/_install/*../

OK,以上用busybox创建了一个基本的文件系统。

PS:

如果编译busybox时选择动态库方式编译,则需要查看生成的busybox使用哪些动态库,然后把它们拷贝到rootfs/lib目录下。

[root@vm-devlib]#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.

这样,使用动态库可以节省一半左右的空间,不过效率有所降低。

三、测试

1、在本机修改/etc/export文件,重启NFS服务:

[root@vm-devroot]#vi/etc/exports

/opt/lyj192.168.1.*(rw,insecure,sync,no_root_squash)

/opt/develop/lyj/common/porting/rootfs/root_stand/reset/rootfs192.168.1.*(rw,insecure,sync,no_root_squash)

[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-277:

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]revision0(ARMv4T),cr=00007177

Machine:

SMDK2410

Memorypolicy:

ECCdisabled,Datacachewriteback

CPUS3C2410A(id0x32410002)

S3C2410:

core202.800MHz,memory101.400MHz,peripheral50.700MHz

S3C24XXClocks,(c)2004SimtecElectronics

CLOCK:

Slowmode(1.500MHz),fast,MPLLon,UPLLon

CPU0:

DVIVTwrite-backcache

Icache:

16384bytes,associativity64,32bytelines,8sets

Dcache:

Built1zonelistsinZoneorder,mobilitygroupingon.Totalpages:

16256

Kernelcommandline:

root=/dev/nfsrwnfsroot=192.168.1.152:

irq:

clearingsubpendingstatus00000002

PIDhashtableentries:

256(order:

8,1024bytes)

timertcon=00500000,tcnta509,tcfg00000200,00000000,usec00001e4c

Console:

colourdummydevice80x30

console[ttySAC0]enabled

Dentrycachehashtableentries:

8192(order:

3,32768bytes)

Inode-cachehashtableentries:

4096(order:

2,16384bytes)

Memory:

64MB=64MBtotal

61324KBavailable(3088Kcode,316Kdata,132Kinit)

Mount-cachehashtableentries:

512

Testingwritebuffercoherency:

ok

net_namespace:

64bytes

NET:

Registeredprotocolfamily16

S3C2410PowerManagement,(c)2004SimtecElectronics

Initialisingarchitecture

S3C24XXDMADriver,(c)2003-2004,2006SimtecElectronics

DMAchannel0atc4800000,irq33

DMAchannel1atc4800040,irq34

DMAchannel2atc4800080,irq35

DMAchannel3atc48000c0,irq36

SCSIsubsysteminitialized

usbcore:

registerednewinterfacedriverusbfs

registerednewinterfacedriverhub

registerednewdevicedriverusb

Registeredprotocolfamily2

IProutecachehashtableentries:

1024(order:

0,4096bytes)

TCPestablishedhashtableentries:

2048(order:

TCPbindhashtableentries:

1,8192bytes)

TCP:

Hashtablesconfigured(established2048bind2048)

TCPrenoregistered

NetWinderFloatingPointEmulatorV0.97(doubleprecision)

y

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 人力资源管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1