博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基本内核编译
阅读量:5955 次
发布时间:2019-06-19

本文共 3722 字,大约阅读时间需要 12 分钟。

内核解压后停止

   2009年1月份,第一个发布版本出现,采用2.6.27.8版本,使用arm-vfp-linux-gnu 4.3.2的编译器,主机环境为Fedora 9。能够编译通过,却无法正常启动,在解压内核后就停止了。

    如下是串口终端的信息:
 
TFTP from server 192.168.7.110; our IP address is 192.168.7.236
Filename 'uImage'.
Load address: 0x80100000
Loading: #################################################################
         ################################################
done
Bytes transferred = 1648452 (192744 hex)
## Booting kernel from Legacy Image at 80100000 ...
   Image Name:   Linux-2.6.27.8
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:   1648388 Bytes =  1.6 MB
   Load Address: 80008000
   Entry Point: 80008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK
 
Starting kernel ...
 
 
Starting kernel ...
 
Uncompressing Linux............................................................................... done, booting the kernel.
 
    与2.6.25版本的启动信息对比,内核校验信息里面少了XIP选项。
    此时的内核启动参数是:
CONFIG_CMDLINE="root=/dev/nfsroot rw console=tty0 console=ttyS0,115200n81 nfsroot=192.168.7.231:/home/chenxibing/lpc3250/ltib/rootfs ip=192.168.7.236:192.168.7.1:192.168.7.1:255.255.255.0:nxp.zlgmcu.com:eth0:off"
 

    分析

   
done, booting the kernel. 是从arch/arm/boot/compressed/misc.c文件中打印出来的。
    配置了内核的1HZ指示灯,可是主板的指示灯并没有闪烁,可见内核没有运行。应该是内核加载的问题。
 

    解决

   问题不在内核,而在U-Boor。由于之前使用2.6.25配套的u-boot,一些参数不同。更换成2.6.27.8的U-Boot,并设置相应的参数后问题解决,能够正常启动了。
    bootlog:
TFTP from server 192.168.7.110; our IP address is 192.168.7.236
Filename 'uImage'.
Load address: 0x80010000
Loading: #################################################################
         ################################################
done
Bytes transferred = 1648380 (1926fc hex)
## Booting kernel from Legacy Image at 80010000 ...
   Image Name:   Linux-2.6.27.8
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1648316 Bytes =  1.6 MB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK
 
Starting kernel ...
 
Uncompressing Linux................................................................................ done, booting the kernel.
Linux version 2.6.27.8 (chenxibing@localhost.localdomain) (gcc version 4.3.2 (crosstool-NG-1.3.1) ) #8 PREEMPT Tue Feb 3 17:13:38 CST 2009
CPU: ARM926EJ-S [41069264] revision 4 (ARMv5TEJ), cr=00053177
Machine: Phytec 3250 board with the LPC3250 Microcontroller
Memory policy: ECC disabled, Data cache writeback
CPU0: D VIVT write-back cache
CPU0: I cache: 32768 bytes, associativity 4, 32 byte lines, 256 sets
CPU0: D cache: 32768 bytes, associativity 4, 32 byte lines, 256 sets
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
Kernel command line: console=ttyS0,115200n81 root=/dev/nfs rw nfsroot=192.168.1.51:/home/usb10132/dev/ltib-8-1-2-sv/rootfs ip=dhcp init=/sbin/init
PID hash table entries: 256 (order: 8, 1024 bytes)
Console: colour dummy device 80x30
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: 61396KB available (3128K code, 225K data, 104K init)
Calibrating delay loop... 103.83 BogoMIPS (lpj=519168)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
 
 

停在loop: module loaded处

    选中[ ] Check to enable MII support or leave disabled for RMII support 后会出现这个问题。
 
 

配置菜单的变量

PHY3250的两个变量,在c代码中实际上没有用到。
PHY3250_CPU_MODULE_1304_0
PHY3250_CPU_MODULE_1304_1
 
PHY3250的两外3个变量在C代码中也没有用到。
CONFIG_PHY3250_CARRIER_1305_01
CONFIG_PHY3250_CARRIER_1305_2
CONFIG_PHY3250_CARRIER_1305_3
 
只有LCD相关的几个变量用到了,用于处理背光和电源等差异。
CONFIG_PHY3250_LCD_PANEL
CONFIG_PHY3250_QVGA_PANEL_1307_0
CONFIG_PHY3250_QVGA_PANEL_1307_1
 
 
保留 内核源代码
dist/lfs-5.1/kernel/kernel-common.tmpl
 
320 %Clean
321 rm -rf $RPM_BUILD_ROOT
322 if [ -z "$P
KG_KERNEL_LEAVESRC" ]
323 then
324    
rm -f $RPM_BUILD_DIR/linux
325 fi

转载地址:http://ilexx.baihongyu.com/

你可能感兴趣的文章
ConcurrentHashMap(Java8)源码分析
查看>>
Python文件处理之文件指针(四)
查看>>
Numpy用法详解
查看>>
DataGridView在vb.net中的操作技巧
查看>>
PMP考试冲刺进行中。。。
查看>>
大换血的代价
查看>>
RunLoop--
查看>>
chrome 2行换行省略号 ... text-ellipse
查看>>
C语言第四次作业
查看>>
Java学习-集合的理解
查看>>
iOS验证码倒计时(GCD实现)
查看>>
iOS中的过滤器和正则表达式(NSPredicate,NSRegularExpression)
查看>>
canvas和svg
查看>>
结对:复利美化版
查看>>
HDU_2689_Sort it
查看>>
urllib模块使用笔记
查看>>
mysql 连接慢的问题(超过了1秒)
查看>>
Linux嵌入式GDB调试环境搭建
查看>>
java分析jvm常用指令
查看>>
【Linux】Linux 在线安装yum
查看>>