您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 嵌入式Linux Ramdisk文件系统制作(u-boot, busybox)
精彩]嵌入式LinuxRamdisk文件系统制作(u-boot,busybox)作者:myforever发表于:2008-11-0421:35:23【发表评论】【查看原文】【Linux讨论区】【关闭】申明:此贴乃引用贴为尊重原作者,特注明出处:[url=][color=red]随点BBS[/color][color=blue][url==621&extra=page%3D1]=621&extra=page%3D1[/color]本文以mpc8247主板上移植Linux为例,详细讲解了嵌入式LinuxRamdisk文件系统制作过程,图文并茂,并有排错方法,涉及u-boot和busybox一、busybox的编译首先是交叉编译设置,打开busybox根目录下的Makefile,进行修改[attach]220792[/attach]一般情况下,为了让busybox能够独立于其他的库文件而可以单独运行,需要将busybox编译成静态的。#makemenuconfigBusyboxSettings---BuildOptions---BuildBusyBoxasastaticbinary(nosharedlibs)//静态InstallationOptions---Don'tuse/usr//makeinstall的时候不会安装到根目录,而是安装到./_installLinuxSystemUtilities---mdev//相当于udevSupport/etc/mdev.confSupportcommandexecutionatdeviceaddition/removalShells---Chooseyourdefaultshell(msh)//具有ash没有的功能,比如支持tab补齐,历史纪录等等的高级功能而编译成静态的分为glibc和uclibc,如果系统没有安装uclibc的话,那就会报下面的错[attach]220793[/attach]解决办法是打开applets/applets.c将其中的错误注释掉[attach]220794[/attach]其他的busybox选项根据需要进行选择!#make#makeinstall这样就在./_install目录下生成了busybox[attach]220795[/attach]二、ramdisk文件系统生成[attach]220796[/attach]上图中首先创见了一个10M的文件系统映象然后使用losetup命令将此镜像与块设备/dev/loop0进行挂接如果出现ioctl:LOOP_SET_FD:设备或资源忙,说明/dev/loop0设备还和一文件联系,可用losetup/dev/loop0查看地,并可用-d删除[attach]220797[/attach]上图是用命令mke2fs来格式化此块设备/dev/loop0,其实就是格式化我们刚生成的那个文件系统镜像,ext2格式[attach]220798[/attach]上图是挂载文件系统镜像,可见经过刚才格式化之后的文件系统镜像里面只有lost+found这个文件夹之后可以将步骤一中生成的_install目录下的所有文件拷贝进来即可,/et/init.d/rcS文件如下修改[attach]220799[/attach]其他的系统配置文件可以根据需要进行更改三、u-boot加载内核和文件系统=tftp800000uImage;tftpa00000rootfs.img;bootm800000a00000UsingFCC1ETHERNETdeviceTFTPfromserver192.168.0.102;ourIPaddressis192.168.0.20Filename'uImage'.Loadaddress:0x800000Loading:################################################################################################################################################################################################################################################################################################################################################################################doneBytestransferred=1880231(1cb0a7hex)UsingFCC1ETHERNETdeviceTFTPfromserver192.168.0.102;ourIPaddressis192.168.0.20Filename'rootfs.img'.Loadaddress:0xa00000Loading:############################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################doneBytestransferred=3170368(306040hex)##Bootingimageat00800000...ImageName:Linux-2.6.11ImageType:PowerPCLinuxKernelImage(gzipcompressed)DataSize:1880167Bytes=1.8MBLoadAddress:00000000EntryPoint:00000000VerifyingChecksum...OKUncompressingKernelImage...OK##cmdlineat0x007FFF00...0x007FFF14memstart=0x00000000memsize=0x08000000flashstart=0xFE000000flashsize=0x01000000flashoffset=0x00033000sramstart=0x00000000sramsize=0x00000000immr_base=0xF0000000bootflags=0x00000001vco=400MHzsccfreq=100MHzbrgfreq=100MHzintfreq=400MHzcpmfreq=200MHzbusfreq=100MHzethaddr=00:08:02:06:10:00IPaddr=192.168.0.20baudrate=115200bps##LoadingRAMDiskImageat00a00000...ImageName:ImageType:PowerPCLinuxRAMDiskImage(uncompressed)DataSize:3170304Bytes=3MBLoadAddress:00000000EntryPoint:00000000VerifyingChecksum...OKLoadingRamdiskto07880000,end07b86000...OKLinuxversion2.6.11(root@Embedded001)(gccversion3.4.3)#1FriSep2611:08:35CST2008MotorolaPQ2ADSPowerPCportarch/ppc/syslib/m82xx_pci.c:ThePCIbusis33333333Mhz.Waiting1secondafterdeassertingRST...Built1zonelistsKernelcommandline:console=ttyS0,115200PIDhashtableentries:1024(order:10,16384bytes)Warning:realtimeclockseemsstuck!Dentrycachehashtableentries:32768(order:5,131072bytes)Inode-cachehashtableentries:16384(order:4,65536bytes)Memory:122272kavailable(2660kkernelcode,1524kdata,116kinit,0khighmem)Mount-cachehashtableentries:512(order:0,4096bytes)checkingifimageisinitramfs...itisn't(badgzipmagicnumbers);lookslikeaninitrdFreeinginitrdmemory:3096kfreedNET:Registeredprotocolfamily16PCI:ProbingPCIhardwaredev=0,pin=1slot=0,dev=0,pin=1dev=a0,pin=1slot=20,dev=a0,pin=1dev=b8,pin=1slot=23,dev=b8,pin=1dev=b9,pin=1slot=23,dev=b9,pin=1PCI:Cannotallocateresourceregion0ofdevice0000:00:00.0PCI:Cannotallocateresourceregion1ofdevice0000:00:00.0SCSIsubsysteminitializedSangomaWANPIPERouterv1.1(c)1995-2000SangomaTechnologiesInc.devfs:2004-01-31RichardGooch([email]rgooch@atnf.csiro.au[/email])devfs:boot_options:0x1InitializingCryptographicAPISerial:CPMdriver$Revision:0.01$ttyS0atMMIO0xf0011a80(irq=4)isaCPMUARTttyS1atMMIO0xf0011a00(irq=40)isaCPMUARTttyS2atMMIO0xf0011a60(irq=43)isaCPMUARTioschedulernoo
本文标题:嵌入式Linux Ramdisk文件系统制作(u-boot, busybox)
链接地址:https://www.777doc.com/doc-2440442 .html