Environment: the Linux kernel loads your own file system.
There are several error messages:
Error Message 1:
Root-NFS: server returned error-5 while mounting/mini2440/rootfs
VFS: Unable to mount root FS via NFS, trying floppy.
VFS: cannot open root device "NFS" or unknown-block (2, 0)
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 ?)
1f04 131072 mtdblock4 (driver ?)
Kernel panic-not syncing: VFS: Unable to mount root FS on unknown-block (2, 0)
Backtrace:
[<C00341cc>] (dump_backtrace + 0x0/0x10c) from [<C03
Error Message 2:
Looking up port of RPC 100003/2 on 192.168.1.149
Eth0: link up, 100 Mbps, full-duplex, LPA 0xc9e1
Looking up port of RPC 100005/1 on 192.168.1.149
VFS: mounted root (NFS filesystem) on device 0: 11.
Freeing init memory: 156 K
Kernel panic-not syncing: No init found. Try passing init = option to kernel.
Backtrace:
[<C00341cc>] (dump_backtrace + 0x0/0x10c) from [<c0329b08>] (dump_stack + 0x18/0 x1c)
R7: 00000000 R6: 00000000 R5: c001f24c R4: c0481c30
This is the error message I encountered when loading my own file system. I found help online.
Pay attention to the following points:
1. Make sure that your kernel image, namely, uimage or zimage, is correct. At the same time, make sure that the image is burned to the correct address. If you load the image in NFS mode, ensure that the image does not exceed the RAM address range.
2. Check whether the NFS service on the Linux host is installed. For how to determine NFS, see my previous records.
3. the permissions of linuxrc are not set as executable files. when creating the root file system, it is best to run chmod 777 linuxrc to avoid the trouble of failed to execute/linuxrc.
The existence of major linuxrc files is not necessary. Busybox uses its default file when linuxrc is not available, and the inittab file is not required. Whether it is necessary depends on the method used to create the root file system.
Freeing init memory: 156 K
Failed to execute/linuxrc. Attempting ults... why.
When a file system is generated using busybox, It is compiled in static mode and the automatically generated linuxrc file is deleted. However, in the bootargs of uboot, The init =/linuxrc option is used, because in the kernel main. init_post () function in C
If (execute_command ){
Run_init_process (execute_command );
Printk (kern_warning "failed to execute % S. Attempting"
"Defaults... \ n", execute_command );
} The file/linuxrc needs to be executed. Therefore, this file is not available.
4. When installing busybox, there is no static compilation Link Library.
Solution: Select static compilation in the busybox option, or CP the library under the LIB/directory in the cross compiler to the LIB/directory in the root file system, the file system is usually large.
5. The yaffs2 file system is burned to the wrong partition. The file system of the yaffs2 file system should be written in the root partition of the NAND. The partition information can be found in the kernel source code, for example:
The static struct mtd_partition friendly_arm_default_nand_part [] data in the mach-mini2440.c defines the partition information.
6. If you are using uboot, are you using the Run Command of yaffs, Nand write. yaffs instead of NAND write, and whether your uboot correctly modifies the burning support of the yaffs file system.
7. Is the mkyaffs2image tool successful?