Hi, I am a newbie on the Mini2440 board. I am having some problems in compiling the kernel. The kernel provided at kernel.org have no support for the yaffs2 file system. How can I patch the provided kernel? I have tried to patch from two or three locations but still it can't build the kernel successfully. Thanks.
Kernel 2.6.34 patch
Why you don't use 2.6.32 or mainstream kernel but 2.6.34? Is there some particular think you need (except yafss2). IN latest kernels you could use ubifs. marek
I have builded kernel with jffs2 file system successfully. And I have loaded it onto uboot through a tftp server. The environment variables are as follows. bootdelay=3 baudrate=115200 ethaddr=08:08:11:18:12:27 netmask=255.255.255.0 usbtty=cdc_acm mtdparts=mtdparts=mini2440-nand:256k@0(u-boot),128k(env),5m(kernel),-(root) mini2440=mini2440=0tb bootargs_base=console=ttySAC0,115200 noinitrd bootargs_init=init=/sbin/init root_mmc=root=/dev/mmcblk0p2 rootdelay=2 root_nfs=/mnt/nfs set_root_nfs=setenv root_nfs root=/dev/nfs rw nfsroot=${serverip}:${root_nfs} ifconfig_static=run setenv ifconfig ip=${ipaddr}:${serverip}::${netmask}:mini2440:eth0 ifconfig_dhcp=run setenv ifconfig ip=dhcp ifconfig=ip=dhcp set_bootargs_mmc=setenv bootargs ${bootargs_base} ${bootargs_init} ${mini2440} ${root_mmc} set_bootargs_nand=setenv bootargs ${bootargs_base} ${bootargs_init} ${mini2440} ${root_nand} set_bootargs_nfs=run set_root_nfs; setenv bootargs ${bootargs_base} ${bootargs_init} ${mini2440} ${root_nfs} ${ifconfig} mtdids=nand0=mini2440-nand bootcmd=nboot.e kernel ; bootm ipaddr=192.168.1.41 serverip=192.168.1.40 gatewayip=192.168.1.1 root_nand=root=/dev/mtdblock3 rootfstype=jffs2 bootargs=root=/dev/mtdblock3 rootfstype=jffs2 console=ttySAC0,115200 partition=nand0,0 mtddevnum=0 mtddevname=u-boot But now when I boot the kernel it gives Kernel panic. What can be the problem? Loading from NAND 128MiB 3,3V 8-bit, offset 0x60000 Image Name: Linux-2.6.33-mini2440-FriendlyAR Created: 2011-03-16 1:46:37 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2056336 Bytes = 2 MB Load Address: 30008000 Entry Point: 30008000 ## Booting kernel from Legacy Image at 32000000 ... Image Name: Linux-2.6.33-mini2440-FriendlyAR Created: 2011-03-16 1:46:37 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2056336 Bytes = 2 MB Load Address: 30008000 Entry Point: 30008000 Verifying Checksum ... OK Loading Kernel Image ... OK OK Starting kernel ... Uncompressing Linux... done, booting the kernel. Linux version 2.6.33-mini2440-FriendlyARM (junaidm@localhost.localdomain) (gcc version 4.1.2 (Fedora GP2X 4.1.2-11.fc12)) #3 Wed Mar 16 06:41:56 PKT 2011 CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177 CPU: VIVT data cache, VIVT instruction cache Machine: Mini2440 - ARM9 development board Memory policy: ECC disabled, Data cache writeback CPU S3C2440A (id 0x32440001) S3C24XX Clocks, Copyright 2004 Simtec Electronics S3C244X: core 405.000 MHz, memory 101.250 MHz, peripheral 50.625 MHz CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256 Kernel command line: root=/dev/mtdblock3 rootfstype=jffs2 console=ttySAC0,115200 PID hash table entries: 256 (order: -2, 1024 bytes) Dentry cache hash table entries: 8192 (order: 3, 32768 bytes) Inode-cache hash table entries: 4096 (order: 2, 16384 bytes) Memory: 64MB = 64MB total Memory: 60804KB available (3608K code, 355K data, 108K init, 0K highmem) SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 Hierarchical RCU implementation. NR_IRQS:85 irq: clearing pending status 02000000 irq: clearing subpending status 00000002 Console: colour dummy device 80x30 console [ttySAC0] enabled Calibrating delay loop... 201.93 BogoMIPS (lpj=504832) Mount-cache hash table entries: 512 CPU: Testing write buffer coherency: ok NET: Registered protocol family 16 Mini2440: Features string mini2440=0tb Mini2440 Buttons: [0: ENTER ] [1: UP ] [2: POWER ] [3: LEFT ] [4: DOWN ] [5: RIGHT ] Mini2440 LCD type: NONE > 0: NL2432HC22 3.5" (240x320) 1: TD035STED4 3.5" (240x320) 2: AT056TN52 5.6" (640x480) 3: AT070TN83 7.0" (800x480) 4: VGA board (1024x768) s3c24xx-adc s3c24xx-adc: attached adc driver S3C2440: Initialising architecture S3C2440: IRQ Support S3C24XX DMA Driver, Copyright 2003-2006 Simtec Electronics DMA channel 0 at c4808000, irq 33 DMA channel 1 at c4808040, irq 34 DMA channel 2 at c4808080, irq 35 DMA channel 3 at c48080c0, irq 36 S3C244X: Clock Support, DVS off bio: create slab <bio-0> at 0 SCSI subsystem initialized usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb s3c-i2c s3c2440-i2c: slave address 0x10 s3c-i2c s3c2440-i2c: bus frequency set to 98 KHz s3c-i2c s3c2440-i2c: i2c-0: S3C I2C adapter Advanced Linux Sound Architecture Driver Version 1.0.21. cfg80211: Using static regulatory domain info cfg80211: Regulatory domain: 00 (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp) (2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2000 mBm) (2457000 KHz - 2482000 KHz @ 20000 KHz), (600 mBi, 2000 mBm) (2474000 KHz - 2494000 KHz @ 20000 KHz), (600 mBi, 2000 mBm) (5170000 KHz - 5250000 KHz @ 40000 KHz), (600 mBi, 2000 mBm) (5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 2000 mBm) cfg80211: Calling CRDA to update world regulatory domain NET: Registered protocol family 2 IP 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 registered UDP hash table entries: 256 (order: 0, 4096 bytes) UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) NET: Registered protocol family 1 RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. JFFS2 version 2.2. (NAND) (SUMMARY) ������ 2001-2006 Red Hat, Inc. msgmni has been set to 118 alg: No test for stdrng (krng) io scheduler noop registered (default) Console: switching to colour frame buffer device 30x20 fb0: s3c2410fb frame buffer device s3c2440-uart.0: s3c2410_serial0 at MMIO 0x50000000 (irq = 70) is a S3C2440 s3c2440-uart.1: s3c2410_serial1 at MMIO 0x50004000 (irq = 73) is a S3C2440 s3c2440-uart.2: s3c2410_serial2 at MMIO 0x50008000 (irq = 76) is a S3C2440 loop: module loaded at24 0-0050: 1024 byte 24c08 EEPROM (writable) S3C24XX NAND Driver, (c) 2004 Simtec Electronics s3c24xx-nand s3c2440-nand: Tacls=3, 29ns Twrph0=7 69ns, Twrph1=3 29ns s3c24xx-nand s3c2440-nand: NAND soft ECC NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3V 8-bit) Creating 4 MTD partitions on "NAND 128MiB 3,3V 8-bit": 0x000000000000-0x000000040000 : "boot" 0x000000040000-0x000000060000 : "param" 0x000000060000-0x000000560000 : "kernel" 0x000000560000-0x000008000000 : "root" dm9000 Ethernet Driver, V1.31 Now use the MAC address: 1C:F7:1A:3D:89:E3 eth0: dm9000e at c487a300,c487e304 IRQ 51 MAC: 1c:f7:1a:3d:89:e3 (mini2440) usbcore: registered new interface driver rt73usb ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver s3c2410-ohci s3c2410-ohci: S3C24XX OHCI s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 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: S3C24XX OHCI usb usb1: Manufacturer: Linux 2.6.33-mini2440-FriendlyARM ohci_hcd usb usb1: SerialNumber: s3c24xx hub 1-0:1.0: USB hub found hub 1-0:1.0: 2 ports detected Initializing USB Mass Storage driver... usbcore: registered new interface driver usb-storage USB Mass Storage support registered. usbcore: registered new interface driver usbserial usbserial: USB Serial Driver core USB Serial support registered for pl2303 usbcore: registered new interface driver pl2303 pl2303: Prolific PL2303 USB to serial adaptor driver mice: PS/2 mouse device common for all mice s3c24xx-ts s3c2440-ts: driver attached, registering input device input: S3C24XX TouchScreen as /devices/virtual/input/input0 S3C24XX RTC, (c) 2004,2006 Simtec Electronics s3c2410-rtc s3c2410-rtc: rtc disabled, re-enabling s3c2410-rtc s3c2410-rtc: rtc core: registered s3c as rtc0 i2c /dev entries driver S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq enabled s3c-sdi s3c2440-sdi: powered down. s3c-sdi s3c2440-sdi: mmc0 - using pio, sw SDIO IRQ usbcore: registered new interface driver usbhid usbhid: USB HID core driver No device for DAI UDA134X No device for DAI s3c24xx-i2s S3C24XX_UDA134X SoC Audio driver UDA134X SoC Audio Codec asoc: UDA134X <-> s3c24xx-i2s mapping ok ALSA device list: #0: S3C24XX_UDA134X (UDA134X) TCP cubic registered lib80211: common routines for IEEE802.11 drivers s3c2410-rtc s3c2410-rtc: setting system clock to 2011-03-16 12:47:25 UTC (1300279645) Cowardly refusing to erase blocks on filesystem with no valid JFFS2 nodes empty_blocks 979, bad_blocks 0, c->nr_blocks 981 VFS: Cannot open root device "mtdblock3" or unknown-block(31,3) Please append a correct "root=" boot option; here are the available partitions: 1f00 256 mtdblock0 (driver?) 1f01 128 mtdblock1 (driver?) 1f02 5120 mtdblock2 (driver?) 1f03 125568 mtdblock3 (driver?) Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,3)
Cowardly refusing to erase blocks on filesystem with no valid JFFS2 nodes empty_blocks 979, bad_blocks 0, c->nr_blocks 981? How did you load image to flash? Seems it's not correctly written. marek
I have loaded the uImage into ram using TFTP. nand erase kernel tftp 0x32000000 uImage nand write 0x32000000 kernel Tarjun