linux2.6.32.2移植到mini2440错误集锦

错误1:

arch/arm/mach-s3c2440/mach-mini2440.c:84: error: array type has incomplete element type

arch/arm/mach-s3c2440/mach-mini2440.c:85: error: array index in non-array initializer
arch/arm/mach-s3c2440/mach-mini2440.c:85: error: (near initialization for 'mini2440_nand_sets')
arch/arm/mach-s3c2440/mach-mini2440.c:86: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:86: error: (near initialization for 'mini2440_nand_sets')
arch/arm/mach-s3c2440/mach-mini2440.c:87: error: field name not in record or union initializer  

解决:

在linux2.6.32/arch/arm/mach-s3c2440/mach-mini2440.c中添加头文件

#include <plat/common-smdk.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/nand.h>
#include <linux/mtd/nand_ecc.h>
#include <linux/mtd/partitions.h>
#include <plat/nand.h>

在linux2.6.32/arch/arm/mach-s3c2440/mach-mini2440.c添加红色部分

static void __init mini2440_machine_init(void)
{
    s3c24xx_fb_set_platdata(&mini2440_fb_info);
    s3c_i2c0_set_platdata(NULL);
    s3c_device_nand.dev.platform_data = &mini2440_nand_info;  

    platform_add_devices(mini2440_devices, ARRAY_SIZE(mini2440_devices));
   //smdk_machine_init();
}


错误2:

 0x000000000000-0x000000040000 : "supervivi"                                     
0x000000040000-0x000000060000 : "param"                                         
ftl_cs: FTL header not found.                                                   
0x000000060000-0x000000560000 : "Kernel"                                        
uncorrectable error :                                                           
0x000000560000-0x000040560000 : "root"                                          
mtd: partition "root" extends beyond the end of device "NAND 256MiB 3,3V 8-bit"0
0x000000000000-0x000040000000 : "nand"                                          
mtd: partition "nand" extends beyond the end of device "NAND 256MiB 3,3V 8-bit"0

解决:

重新配置内核,取消下面三个选项(黄色部分)。

在Make menuconfig时:

Device Drivers ->

Memory Technology Devices (MTD) ->

不要选择下面这三个选项

<>FTL (Flash Translation Layer) support

<> NFTL (NAND Flash Translation Layer) support

<>INFTL (Inverse NAND Flash Translation Layer) support

然后保存配置并重新编译即可


错误3:

  在按照手册执行:./patch-ker.sh /home/song/linux-2.6.32.2/的时候,出现以下提示

 usage:  ./patch-ker.sh  c/l m/s kernelpath
 if c/l is c, then copy. If l then link
 if m/s is m, then use multi version code. If s then use single version code

  并且linux2.6.32.2/fs下也没有yaffs2文件夹

解决:

  执行命令:./patch-ker.sh c m /home/song/linux-2.6.32.2/

  这时候就出现正确的提示了

 Updating /home/song/linux-2.6.32.2//fs/Kconfig
Updating /home/song/linux-2.6.32.2//fs/Makefile


错误4:

 按照手册移植完yaffs2文件重启后出现

yaffs: dev is 32505859 name is "mtdblock3" rw                                   
yaffs: passed flags ""                                                          
VFS: Mounted root (yaffs filesystem) on device 31:3.                            
Freeing init memory: 132K                                                       
Warning: unable to open an initial console.                                     
[01/Jan/1970:00:00:13 +0000] boa: server version Boa/0.94.13                    
[01/Jan/1970:00:00:13 +0000] boa: server built Jul 26 2010 at 15:58:29.         
[01/Jan/1970:00:00:13 +0000] boa: starting server pid=749, port 80              

Try to bring eth0 interface up......Done  

然后就没有然后了

解决方法:

    Kernel Features  ---> 

            [*] Use the ARM EABI to compile the kernel    

            [*]   Allow old ABI binaries to run with this kernel (EXPERIMENTAL) 
   这两项都选上,原因是友善的根文件系统在编译的时候也启用了EABI特性,内核和文件系统需要对上,文件系统用了EABI 内核也要用EABI 内核不用EABI 也只能读取不用EABI的文件系统。

这时候文件系统就启动起来了,如下

http://blog.chinaunix.net/uid-22391661-id-1774353.html

http://blog.chinaunix.net/uid-25194149-id-3235257.html


 http://bbs.chinaunix.net/thread-4057984-1-1.html

错误5:

我的mini2440开发板上的x35屏没有显示。

解决方法:在arch/arm/mach-s3c2440/mach-mini2440.c中添加以下代码支持我的x35屏

  linux2.6.32.2移植到mini2440错误集锦_第1张图片

  同时在drivers/video/Kconfig 添加代码如下

linux2.6.32.2移植到mini2440错误集锦_第2张图片

错误6

  移植完触摸屏驱动后,我的mini2440板子并没有出现校正界面,移植停留在qt的主界面。

解决方法:

  先将编译好的内核下载进去,再重新下镜像文件。



你可能感兴趣的:(linux2.6.32.2移植到mini2440错误集锦)