linux3.4.2内核移植详解(四):局部毛病汇总


  编译内核出现:

  arch/arm/mm/tlb-v4wbi.S: Assembler messages:

  arch/arm/mm/tlb-v4wbi.S:64: Error: too many positional arguments

  scripts/Makefile.build:343: recipe for target ‘arch/arm/mm/tlb-v4wbi.o’ failed

  make[1]: *** [arch/arm/mm/tlb-v4wbi.o] Error 1

  Makefile:945: recipe for target ‘arch/arm/mm’ failed

  make: *** [arch/arm/mm] Error 2

  启事:交叉编译对象链太老,装置新的交叉编译对象

  启动内核时,开辟板上出现:

  Verifying Checksum … Bad Data CRC

  启事:烧进开辟板的内核大年夜于内核分区,局部代码损掉,校验掉败

  处理:修改分区大年夜小

  修改以后有2种方法使得修改掉效:

  手动:在开辟板敕令行输入:mtdparts default

  主动:在uboot下,进入vim lib_arm/board.c

  run_command(“mtdparts default”, 0); //添加此处代码

  for (;? {

  main_loop();

  }

  启动内核时:

  Uncompressing Linux… done, booting the kernel 前面一堆乱码

  处理:set bootargs ‘console=ttySAC0,115200’

  接着出现:

  VFS: Cannot open root device “(null)” or unknown-block(0,0): error -6

  Please append a correct “root=” boot option; here are the available partitions:

  1f00 256 mtdblock0 (driver?)

  1f01 128 mtdblock1 (driver?)

  1f02 8192 mtdblock2 (driver?)

  1f03 253568 mtdblock3 (driver?)

  Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

  Backtrace:

  启事:内核默许不支撑yaffs2文件系统,而我挂接的是yaffs2文件系统

  处理:应用yaffs2源码给内核打补丁,设备内核支撑yaffs2

  File systems —>

  编译busybox掉足:

  /usr/local/arm/4.3.2/bin/…/arm-none-linux-gnueabi/libc/usr/include/linux/netfilter.h:44: error: field ‘in’ has incomplete type

  /usr/local/arm/4.3.2/bin/…/arm-none-linux-gnueabi/libc/usr/include/linux/netfilter.h:45: error: field ‘in6’ has incomplete type

  ipsvd/tcpudp.c: In function ‘tcpudpsvd_main’:

  ipsvd/tcpudp.c:314: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result

  scripts/Makefile.build:192: recipe for target ‘ipsvd/tcpudp.o’ failed

  make[1]: *** [ipsvd/tcpudp.o] Error 1

  Makefile:701: recipe for target ‘ipsvd’ failed

  make: *** [ipsvd] Error 2

  处理方法:

  usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include/linux/netfilter.h 头文件的扫尾,添加缺少的头文件: #include

相关内容