对根文件系统不需要进行修改,只需修改内核对cramfs的支持:
[lingyun@localhostyangzheng]$ cd linux-3.0
[[email protected]]$ vt100
[[email protected]]$ make menuconfig
Filesystems --->
<*> Compressed ROM file system support (cramfs)
[[email protected]]$ sudo make
[[email protected]]$ cp uImage-s3c2440.gz/tftp/yz_cramuImage-2440.gz
制作镜像文件:
[lingyun@localhostyangzheng]$ mkcramfs rootfs rootfs.cramfs
Directorydata: 10428 bytes
Everything:6540 kilobytes
Superblock: 76 bytes
CRC: ec5a9b84
warning:files were skipped due to errors
warning:gids truncated to 8 bits (this may be a security concern)
[lingyun@localhostyangzheng]$ du -h rootfs.cramfs
6.4M rootfs.cramfs
[lingyun@localhostyangzheng]$ cp rootfs.cramfs /tftp/
添加u-boot对cramfs的支持:
[ s3c2440@ yangzheng ]# set bootcmd 'runbootcmd_cramfs'
[ s3c2440@ yangzheng ]# set bkr 'tftp30008000 yz_cramuImage-2440.gz;nand erase 100000 27d23c;nand write 30008000 100000 27d23c'
[ s3c2440@ yangzheng ]# set bcramfs 'tftp30800000 rootfs.cramfs;nand erase f00000 663000;nand write 30008000 f00000 663000'
[ s3c2440@ yangzheng ]# set bootargs'noinitrd root=/dev/mtdblock3 rootfstype=cramfs init=/linuxrcconsole=ttyS0,115200'
[ s3c2440@ yangzheng ]# set bootcmd_cramfs'nand read 30008000 100000 27d23c;bootm30008000'
[ s3c2440@ yangzheng ]# sa
启动linux:
[ s3c2440@ yangzheng ]# boot
NANDread: device 0 offset 0x100000, size 0x27d800
2611200 bytes read: OK
##Booting kernel from Legacy Image at 30008000 ...
Image Name: Linux Kernel
Created: 2013-06-04 8:33:49 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2609660 Bytes = 2.5 MiB
Load Address: 30008000
Entry Point: 30008040
Verifying Checksum ... OK
XIP Kernel Image ... OK
OK
OS entrypoint: 30008040
Imageentry point=30008040
Startingkernel ...
UncompressingLinux... done, booting the kernel.
Linuxversion 3.0.0 ([email protected]) (gccversion 4.5.4 (Buildroot 2012.08) ) #5 Tue Jun 4 16:33:45 CST 2013
CPU:ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177
CPU: VIVTdata cache, VIVT instruction cache
Machine:SMDK2440
Memorypolicy: ECC disabled, Data cache writeback
CPU S3C2440A(id 0x32440001)
S3C24XX Clocks, Copyright 2004 SimtecElectronics
S3C244X: core 405.000 MHz, memory 101.250MHz, peripheral 50.625 MHz
CLOCK:Slow mode (1.500 MHz), fast, MPLL on, UPLL on
Built 1zonelists in Zone order, mobility grouping on. Total pages: 16256
Kernelcommand line: console=ttyS0,115200 mem=64Minitrd=0x30800000,16Mroot=/dev/ram0 rw loglevel=7
PID hashtable entries: 256 (order: -2, 1024 bytes)
Dentrycache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cachehash table entries: 4096 (order: 2, 16384 bytes)
Memory:64MB = 64MB total
Memory:43096k/43096k available, 22440k reserved, 0K highmem
Virtualkernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896kB)
DMA : 0xffc00000 - 0xffe00000 ( 2 MB)
vmalloc : 0xc4800000 - 0xf6000000 ( 792 MB)
lowmem : 0xc0000000 - 0xc4000000 ( 64 MB)
modules : 0xbf000000 - 0xc0000000 ( 16MB)
.init : 0xc0008000 - 0xc002e000 ( 152 kB)
.text : 0xc002e000 - 0xc04f1000 (4876 kB)
.data : 0xc04f2000 - 0xc0521b20 ( 191 kB)
.bss : 0xc0521b44 - 0xc054dfa0 ( 178 kB)
NR_IRQS:85
irq:clearing pending ext status 00080000
irq:clearing subpending status 00000003
irq:clearing subpending status 00000002
Console:colour dummy device 80x30
console[ttyS0] enabled
Calibratingdelay loop... 201.52 BogoMIPS (lpj=503808)
pid_max:default: 32768 minimum: 301
Mount-cachehash table entries: 512
CPU:Testing write buffer coherency: ok
gpiochip_add:gpios 288..303 (GPIOK) failed to register
gpiochip_add:gpios 320..334 (GPIOL) failed to register
gpiochip_add:gpios 352..353 (GPIOM) failed to register
NET:Registered protocol family 16
S3C Power Management, Copyright 2004Simtec Electronics
S3C2440: Initialising architecture
S3C2440: IRQ Support
S3C24XX DMA Driver, Copyright 2003-2006Simtec Electronics
DMAchannel 0 at c4804000, irq 33
DMAchannel 1 at c4804040, irq 34
DMAchannel 2 at c4804080, irq 35
DMAchannel 3 at c48040c0,irq 36
S3C244X: Clock Support, DVS off
s3c-adc s3c24xx-adc: attached adc driver
bio:create slab <bio-0> at 0
SCSIsubsystem initialized
usbcore:registered new interface driver usbfs
usbcore:registered new interface driver hub
usbcore:registered new device driver usb
s3c-i2cs3c2440-i2c: slave address 0x10
s3c-i2cs3c2440-i2c: bus frequency set to 98 KHz
s3c-i2cs3c2440-i2c: i2c-0:S3C I2C adapter
AdvancedLinux Sound Architecture Driver Version 1.0.24.
cfg80211:Calling CRDA to update world regulatory domain
NET:Registered protocol family 2
IP routecache hash table entries: 1024 (order: 0, 4096 bytes)
TCPestablished hash table entries: 2048 (order: 2, 16384 bytes)
TCP bindhash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hashtables configured (established 2048 bind 2048)
TCP reno registered
UDP hashtable entries: 256 (order: 0, 4096 bytes)
UDP-Litehash table entries: 256 (order: 0, 4096 bytes)
NET:Registered protocol family 1
RPC:Registered named UNIX socket transport module.
RPC:Registered udp transport module.
RPC:Registered tcp transport module.
RPC:Registered tcp NFSv4.1 backchannel transport module.
Trying tounpack rootfs image as initramfs...
rootfsimage is not initramfs (junk in compressed archive); looks like an initrd
Freeinginitrd memory: 16384K
NetWinderFloating Point Emulator V0.97 (extended precision)
NTFSdriver 2.1.30 [Flags: R/W].
JFFS2version 2.2. (NAND) (SUMMARY) 漏 2001-2006 Red Hat, Inc.
msgmnihas been set to 116
ioscheduler noop registered
ioscheduler deadline registered
ioscheduler cfq registered (default)
Console:switching to colour frame buffer device 60x34
fb0: s3c2410fb frame buffer device
s3c2440-uart.0: ttyS0 at MMIO 0x50000000(irq = 70) is a S3C2440
s3c2440-uart.1: ttyS1 at MMIO 0x50004000(irq = 73) is a S3C2440
s3c2440-uart.2: ttyS2 at MMIO 0x50008000(irq = 76) is a S3C2440
brd:module loaded
loop:module loaded
at240-0050: 65536 byte 24c512EEPROM, writable, 128 bytes/write
S3C24XX NAND Driver, (c) 2004 SimtecElectronics
s3c24xx-nand s3c2440-nand: Tacls=3, 29ns Twrph0=7 69ns, Twrph1=329ns
s3c24xx-nand s3c2440-nand: NAND soft ECC
NANDdevice: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit)
Scanningdevice for bad blocks
Baderaseblock 421 at 0x0000034a0000
Baderaseblock 1177 at 0x000009320000
Baderaseblock 1727 at 0x00000d7e0000
Creating11 MTD partitions on "NAND":
0x000000000000-0x000000100000: "mtdblock0 u-boot 1MB"
0x000000100000-0x000000500000: "mtdblock1 kernel 4MB"
0x000000500000-0x000000f00000 : "mtdblock2 ramdisk10MB"
0x000000f00000-0x000001e00000 :"mtdblock3 cramfs 15MB"
0x000001e00000-0x000004600000: "mtdblock3 jffs2 40MB"
0x000004600000-0x000006e00000: "mtdblock4 yaffs2 40MB"
0x000006e00000-0x000009600000: "mtdblock5 ubifs 40MB"
0x000009600000-0x000009700000: "mtdblock6 info 1MB"
0x000009700000-0x00000bf00000: "mtdblock7 apps 40MB"
0x00000bf00000-0x00000e700000: "mtdblock8 data 40MB"
0x00000e700000-0x000010000000: "mtdblock9 backup 25MB"
PPPgeneric driver version 2.4.2
PPPDeflate Compression module registered
PPP BSDCompression module registered
PPP MPPECompression module registered
NET:Registered protocol family 24
dm9000Ethernet Driver, V1.31
eth0: dm9000a at c4864300,c4866304 IRQ 51 MAC:08:00:3e:26:0a:6b(chip)
usbcore:registered new interface driver rt2800usb
ohci_hcd:USB 1.1 'Open' Host Controller (OHCI) Driver
s3c2410-ohci s3c2410-ohci: S3C24XXOHCI
s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned busnumber 1
s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000
usb usb1:New USB device found, idVendor=1d6b, idProduct=0001
usb usb1:New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1:Product: S3C24XXOHCI
usb usb1:Manufacturer: Linux 3.0.0 ohci_hcd
usb usb1:SerialNumber: s3c24xx
hub1-0:1.0: USB hub found
hub1-0:1.0: 2 ports detected
InitializingUSB Mass Storage driver...
usbcore:registered new interface driver usb-storage
USB MassStorage support registered.
usbcore:registered new interface driver usbserial
usbserial:USB Serial Driver core
USBSerial support registered for ch341-uart
usbcore:registered new interface driver ch341
USBSerial support registered for FTDI USB Serial Device
usbcore:registered new interface driver ftdi_sio
ftdi_sio:v1.6.0:USB FTDI Serial Converters Driver
USBSerial support registered for GSM modem (1-port)
usbcore:registered new interface driver option
option: v0.7.2:USBDriver for GSM modems
USBSerial support registered for pl2303
usbcore:registered new interface driver pl2303
pl2303:Prolific PL2303 USB to serial adaptor driver
mousedev:PS/2 mouse device common for all mice
samsung-tss3c2440-ts: driverattached, registering input device
input: S3C24XX TouchScreen as/devices/virtual/input/input0
S3C24XX RTC, (c) 2004,2006 SimtecElectronics
s3c-rtc s3c2410-rtc: rtc disabled, re-enabling
s3c-rtc s3c2410-rtc: rtc core: registered s3c as rtc0
i2c /dev entries driver
s3c-sdi s3c2440-sdi: mmc0 - using pio, sw SDIO IRQ
usbcore:registered new interface driver usbhid
usbhid:USB HID core driver
S3C24XX_UDA134X SoC Audio driver
UDA134XSoC Audio Codec
asoc:uda134x-hifi <-> s3c24xx-iismapping ok
ALSAdevice list:
#0: S3C24XX_UDA134X
Netfiltermessages via NETLINK v0.30.
nf_conntrackversion 0.5.0 (929 buckets, 3716 max)
ctnetlinkv0.93: registering with nfnetlink.
xt_time:kernel timezone is -0000
ip_set:protocol 6
IPVS:Registered protocols (TCP, UDP, AH, ESP)
IPVS:Connection hash table configured (size=4096, memory=32Kbytes)
IPVS:Creating netns size=1008 id=0
IPVS:ipvs loaded.
IPVS:[rr] scheduler registered.
IPVS:[wrr] scheduler registered.
IPVS:[lc] scheduler registered.
IPVS:[wlc] scheduler registered.
IPVS:[lblc] scheduler registered.
IPVS:[lblcr] scheduler registered.
IPVS:[dh] scheduler registered.
IPVS:[sh] scheduler registered.
IPVS:[sed] scheduler registered.
IPVS:[nq] scheduler registered.
ip_tables:(C) 2000-2006 Netfilter Core Team
ipt_CLUSTERIP:ClusterIP Version 0.8 loaded successfully
arp_tables:(C) 2002 David S. Miller
TCP cubicregistered
NET:Registered protocol family 17
lib80211:common routines for IEEE802.11 drivers
Registeringthe dns_resolver key type
s3c-rtc s3c2410-rtc: setting system clock to 2047-03-20 13:37:56UTC (2436701876)
RAMDISK:cramfs filesystem found at block 0
RAMDISK:Loading 6540KiB [1 disk] into ram disk... /
usb 1-1:new full speed USB device number 2 using s3c2410-ohci
-
usb 1-1:New USB device found, idVendor=05e3, idProduct=0606
usb 1-1: NewUSB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-1:Product: USB Hub 2.0
/
hub1-1:1.0: USB hub found
hub1-1:1.0: 4 ports detected
done.
VFS:Mounted root (cramfs filesystem) readonly on device 1:0.
Freeinginit memory: 152K
dm9000dm9000.0: eth0: link down
dm9000dm9000.0: eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1
Copyright(C) 2013 yangzheng<[email protected]>
rootlogin: root
>: ls
apps data etc info lib mnt root sys usr
bin dev haha init linuxrc proc sbin tmp var
测试一下:
>:touch haha
touch:haha: Read-only file system