用busybox创建基于Linux2.6.24内核的nfs根系统

上传人:仙*** 文档编号:170425804 上传时间:2022-11-21 格式:DOC 页数:12 大小:79KB
收藏 版权申诉 举报 下载
用busybox创建基于Linux2.6.24内核的nfs根系统_第1页
第1页 / 共12页
用busybox创建基于Linux2.6.24内核的nfs根系统_第2页
第2页 / 共12页
用busybox创建基于Linux2.6.24内核的nfs根系统_第3页
第3页 / 共12页
资源描述:

《用busybox创建基于Linux2.6.24内核的nfs根系统》由会员分享,可在线阅读,更多相关《用busybox创建基于Linux2.6.24内核的nfs根系统(12页珍藏版)》请在装配图网上搜索。

1、用busybox创建基于Linux2.6.24内核的nfs根文件系统Jacky Xu 2008.7.13一、主机环境 Linux version 2.4.20-8, RedHat9, VMWare5.5.3; gcc version 3.4.4, Thread model: posix; GNU Make 3.81; arm-linux-gcc 4.2.1 (此创建过程见另贴用crosstool脚本编译针对Linux2.6内核的交叉编译工具链) 所需源文件: busybox-1.11.1.tar.bz2;二、用Busybox创建nfs文件系统1、解压busybox-1.11.1.tar.bz2

2、,路径为rootSure busybox-1.11.1# pwd/home/jacky/busybox-1.11.1修改Makefilez中的ARCH和CROSS_COMPILE与本机的路径一致:CROSS_COMPILE ?= /opt/crosstool/bin/arm-s3c2410-linux-gnu-.ARCH ?= arm2、编译busybox。先make menuconfig,修改以下: Busybox Settings -Build Options -* Build BusyBox as a static binary (no shared libs)/直接编译成静态库,省事点

3、(/opt/crosstool/bin/arm-s3c2410-linux-gnu-) Cross Compiler prefix/这里和Makefile里保持一致,应该写一处就行了Installation Options -* Dont use /usr/不用本机的目录Shells -Choose your default shell (ash) -/这里选择shell为ash,应该是默认选中的- ash/把ash这档的选项全部选上保存退出,直接make,make install。3、用shell脚本创建根文件系统的目录结构,并在想要建立根文件系统的地方运行此脚本。我是用root用户登陆的,

4、直接创建了设备节点。rootSure root-s3c2410# vim makedir.sh #!/bin/shecho makeing rootdirmkdir rootfscd rootfsecho makeing dir: bin dev etc lib proc sbin sys usrmkdir bin dev etc lib proc sbin sys usr #8 dirsmkdir usr/bin usr/lib usr/sbin lib/modules#Dont use mknod, unless you run this Script as mknod -m 600 de

5、v/console c 5 1mknod -m 666 dev/null c 1 3echo making dir: mnt tmp varmkdir mnt tmp varchmod 1777 tmpmkdir mnt/etc mnt/jiffs2 mnt/yaffs mnt/data mnt/tempmkdir var/lib var/lock var/log var/run var/tmpchmod 1777 var/tmpecho making dir: home root bootmkdir home root bootecho done执行这个sh:rootSure root-s3

6、c2410# sh makedir.sh创建出一个主文件夹rootfs,里面有一批文件:rootSure rootfs# lsbin boot dev etc home lib mnt proc root sbin sys tmp usr var4、把busybox源码目录下的etc的内容拷贝到这里的etc下rootSure rootfs# cd etc/rootSure etc# cp -a /home/jacky/busybox-1.11.1/examples/bootfloppy/etc/* ./5、修改拷贝过来的profile文件rootSure etc# vim profile #

7、/etc/profile: system-wide .profile file for the Bourne shellsecho Processing /etc/profile# no-op# Set search library pathecho Set search library pathexport LD_LIBRARY_PATH=/lib:/usr/lib# Set user pathecho Set user pathPATH=/bin:/sbin:/usr/bin:/usr/sbinexport PATH# Set PS1echo Set PS1HOSTNAME=/bin/ho

8、stname# 此处让shell提示符显示host名称的。是,不是,要注意# 会在进入根系统后显示Jackyexport PS1=e32m$USER$HOSTNAME wa$e00;37m # 此处e32m是让后面的“$USER$HOSTNAME wa”显示为绿色# e00是关闭效果# e05是闪烁# 37m是让后面的显示为白色# 多个命令可以;号隔开echo All done!echo6、修改初始化文件inittab和fstabrootSure etc# vim inittab :sysinit:/etc/init.d/rcS:respawn:-/bin/sh:restart:/sbin/i

9、nittty2:askfirst:-/bin/sh:ctrlaltdel:/bin/umount -a -r:shutdown:/bin/umount -a -r:shutdown:/sbin/swapoff arootSure etc# vim fstab proc /proc proc defaults 0 0none /tmp ramfs defaults 0 0mdev /dev ramfs defaults 0 0sysfs /sys sysfs defaults 0 07、修改初始化的脚本文件init.d/rcSrootSure etc# vim init.d/rcS #! /bi

10、n/shecho Processing etc/init.d/rc.S#hostname $HOSTNAMEecho Mount all/bin/mount -aecho Start mdev./bin/echo /sbin/mdev proc/sys/kernel/hotplugmdev -secho *echo RootFS by NFS, s3c2410echo Created by Jacky Xu 2008.7.13echo Enjoy it!echo *echo8、创建一个空的mdev.conf文件,在挂载根文件系统时会用到的rootSure etc# touch mdev.con

11、f9、从本机拷贝passwd、shadow、group文件。rootSure etc# cp /etc/passwd .rootSure etc# cp /etc/shadow .rootSure etc# cp /etc/group .修改passwd文件,把第一行和最后一行的bash修改成ash。10、把busybox默认安装目录中的文件全部复制到这里的rootfs中。会发现多了linuxrc - bin/busybox文件,这是挂载文件系统需要执行的。rootSure etc# cd .rootSure rootfs# cp -Rfv /home/jacky/busybox-1.11.1

12、/_install/ ./OK,以上用busybox创建了一个基本的文件系统。PS: 如果编译busybox时选择动态库方式编译,则需要查看生成的busybox使用哪些动态库,然后把它们拷贝到rootfs/lib目录下。rootSure lib# arm-s3c2410-linux-gnu-readelf -d ./bin/busybox Dynamic section at offset 0xc1014 contains 21 entries:Tag Type Name/Value0x00000001 (NEEDED) Shared library: libm.so.60x00000001

13、(NEEDED) Shared library: libc.so.60x0000000c (INIT) 0xc2ec0x0000000d (FINI) 0xa96b80x00000004 (HASH) 0x80e80x00000005 (STRTAB) 0xa4c40x00000006 (SYMTAB) 0x8b640x0000000a (STRSZ) 3505 (bytes)0x0000000b (SYMENT) 16 (bytes)0x00000015 (DEBUG) 0x00x00000003 (PLTGOT) 0xd10e40x00000002 (PLTRELSZ) 3112 (byt

14、es)0x00000014 (PLTREL) REL0x00000017 (JMPREL) 0xb6c40x00000011 (REL) 0xb6740x00000012 (RELSZ) 80 (bytes)0x00000013 (RELENT) 8 (bytes)0x6ffffffe (VERNEED) 0xb5a40x6fffffff (VERNEEDNUM) 20x6ffffff0 (VERSYM) 0xb2760x00000000 (NULL) 0x0可以看出,使用了libm.so.6和libc.so.6两个库。发现只拷贝这两个库还不够,还需要ld-linux.so.2和libgcc_

15、s.so.1,也就是我编译出来的这个busybox需要4个动态库文件。# cp /opt/crosstool/arm-s3c2410-linux-gnu/sys-root/lib/libm.so.6 .# cp /opt/crosstool/arm-s3c2410-linux-gnu/sys-root/lib/libc.so.6 .# cp /opt/crosstool/arm-s3c2410-linux-gnu/sys-root/lib/ld-linux.so.2 .# cp /opt/crosstool/arm-s3c2410-linux-gnu/lib/libgcc_s.so.1 .这样

16、,使用动态库可以节省一半左右的空间,不过效率有所降低。三、测试1、在本机修改/etc/export文件,重启NFS服务:rootSure rootfs# vim /etc/exports/home/jacky/root-s3c2410/rootfs 192.168.1.*(rw,sync,no_root_squash)rootSure rootfs# service nfs restart2、在Bootloader中传递以下参数给Kernel:root=/dev/nfs rw nfsroot=192.168.1.249:/home/jacky/root-s3c2410/rootfs ip=19

17、2.168.1.199:192.168.1.249:192.168.1.1:255.255.255.0:Jacky:eth0:off console=ttySAC0,115200 init=/linuxrc noinitrd3、启动目标板,串口输出显示根文件系统已经加载成功: Boot Parameters: root=/dev/nfs rw nfsroot=192.168.1.249:/home/jacky/root-s3c2410/rootfs ip=192.168.1.199:192.168.1.249:192.168.1.1:255.255.255.0:Jacky:eth0:off c

18、onsole=ttySAC0,115200 init=/linuxrc noinitrdNow, booting Linux.Uncompressing Linux. done, booting the kernel.Linux version 2.6.24.7 (rootSure) (gcc version 4.2.1) #5 Sat Jul 12 17:26:16 CST 2008CPU: ARM920T 41129200 revision 0 (ARMv4T), cr=c0007177Machine: SMDK2410ATAG_INITRD is deprecated; please u

19、pdate your bootloader.Memory policy: ECC disabled, Data cache writebackCPU S3C2410A (id 0x32410002)S3C2410: core 200.000 MHz, memory 100.000 MHz, peripheral 50.000 MHzS3C24XX Clocks, (c) 2004 Simtec ElectronicsCLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL onCPU0: D VIVT write-back cacheCPU0: I c

20、ache: 16384 bytes, associativity 64, 32 byte lines, 8 setsCPU0: D cache: 16384 bytes, associativity 64, 32 byte lines, 8 setsBuilt 1 zonelists in Zone order, mobility grouping on. Total pages: 16256Kernel command line: root=/dev/nfs rw nfsroot=192.168.1.249:/home/jacky/root-s3c2410/rootfs ip=192.168

21、.1.199:192.168.1.249:192.168.1.1:255.255.255.0:Jacky:eth0:off console=ttySAC0,115200 init=/linuxrc noinitrdirq: clearing subpending status 00000003PID hash table entries: 256 (order: 8, 1024 bytes)timer tcon=00000000, tcnt a2c1, tcfg 00000200,00000000, usec 00001eb8Console: colour dummy device 80x30

22、console ttySAC0 enabledDentry cache hash table entries: 8192 (order: 3, 32768 bytes)Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)Memory: 64MB = 64MB totalMemory: 61440KB available (3048K code, 314K data, 128K init)Mount-cache hash table entries: 512CPU: Testing write buffer coherency:

23、 oknet_namespace: 64 bytesNET: Registered protocol family 16S3C2410 Power Management, (c) 2004 Simtec ElectronicsS3C2410: Initialising architectureS3C24XX DMA Driver, (c) 2003-2004,2006 Simtec ElectronicsDMA channel 0 at c4800000, irq 33DMA channel 1 at c4800040, irq 34DMA channel 2 at c4800080, irq

24、 35DMA channel 3 at c48000c0, irq 36usbcore: registered new interface driver usbfsusbcore: registered new interface driver hubusbcore: registered new device driver usbBluetooth: Core ver 2.11NET: Registered protocol family 31Bluetooth: HCI device and connection manager initializedBluetooth: HCI sock

25、et layer initializedNET: Registered protocol family 2IP route cache hash table entries: 1024 (order: 0, 4096 bytes)TCP established hash table entries: 2048 (order: 2, 16384 bytes)TCP bind hash table entries: 2048 (order: 1, 8192 bytes)TCP: Hash tables configured (established 2048 bind 2048)TCP reno

26、registeredNetWinder Floating Point Emulator V0.97 (double precision)JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.JFS: nTxBlock = 480, nTxLock = 3840io scheduler noop registeredio scheduler anticipatory registered (default)io scheduler deadline registeredio scheduler cfq registereds

27、3c2410-lcd s3c2410-lcd: no platform data for lcd, cannot attachs3c2410-lcd: probe of s3c2410-lcd failed with error -22lp: driver loaded but no devices foundppdev: user-space parallel port driverSerial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enableds3c2410-uart.0: s3c2410_serial0 at

28、 MMIO 0x50000000 (irq = 70) is a S3C2410s3c2410-uart.1: s3c2410_serial1 at MMIO 0x50004000 (irq = 73) is a S3C2410s3c2410-uart.2: s3c2410_serial2 at MMIO 0x50008000 (irq = 76) is a S3C2410RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksizeloop: module loadedCirrus Logic CS8900A dri

29、ver for Linux (Modified for SMDK2410)eth0: CS8900A rev E at 0xe0000300 irq=53, addr: 00: 0:3E:26:0A: 0Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xxS3C24XX NAND Driver, (c) 2004 Simtec Electronicss3c2410-nand s3c241

30、0-nand: Tacls=3, 30ns Twrph0=7 70ns, Twrph1=3 30nsNAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit)Scanning device for bad blocksCreating 5 MTD partitions on NAND 64MiB 3,3V 8-bit:0x00000000-0x00100000 : Bootloader0x00100000-0x00400000 : Kernel0x00400000-0x03400000 :

31、Root0x03400000-0x03fe0000 : ExtRoot0x03fe0000-0x04000000 : Paramusbmon: debugfs is not availables3c2410-ohci s3c2410-ohci: S3C24XX OHCIs3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000usb usb1: configuration #1 chosen from 1

32、choicehub 1-0:1.0: USB hub foundhub 1-0:1.0: 2 ports detectedmice: PS/2 mouse device common for all miceS3C24XX RTC, (c) 2004,2006 Simtec Electronicss3c2410-i2c s3c2410-i2c: slave address 0x10s3c2410-i2c s3c2410-i2c: bus frequency set to 390 KHzs3c2410-i2c s3c2410-i2c: i2c-0: S3C I2C adapterS3C2410

33、Watchdog Timer, (c) 2004 Simtec Electronicss3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq enabledTCP cubic registeredNET: Registered protocol family 1NET: Registered protocol family 17RPC: Registered udp transport module.RPC: Registered tcp transport module.drivers/rtc/hctosys.c: un

34、able to open rtc device (rtc0)IP-Config: Complete:device=eth0, addr=192.168.1.199, mask=255.255.255.0, gw=192.168.1.1,host=Jacky, domain=, nis-domain=(none),bootserver=192.168.1.249, rootserver=192.168.1.249, rootpath=Looking up port of RPC 100003/2 on 192.168.1.249Looking up port of RPC 100005/1 on

35、 192.168.1.249VFS: Mounted root (nfs filesystem).Freeing init memory: 128Kinit started: BusyBox v1.11.1 (2008-07-13 14:46:21 CST)starting pid 789, tty : /etc/init.d/rcSProcessing etc/init.d/rc.SMount allStart mdev.*RootFS by NFS, s3c2410Created by Jacky Xu 2008.7.13Enjoy *starting pid 793, tty : -/bin/shProcessing /etc/profileSet search library pathSet user pathSet PS1All rootJacky /# lsbin dev home linuxrc proc sbin tmp varboot etc lib mnt root sys usrrootJacky /#已经直接进入了nfs文件系统!

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!