深秋的落叶
ARM && Linux kernel

Linux-2.6内核移植过程中常见问题及解决方法
1gA1Nlb Z0矩阵通信网-通信.IT人的精神家园z6Od hS u+{
1
、内核启动后,出现如下提示后停住
4K+r5DM&_K0矩阵通信网-通信.IT人的精神家园:c'v$]jN]Qq2`6KU
Uncompressing Linux........................................................... done, booting the kernel矩阵通信网-通信.IT人的精神家园)m9U/X,u3^1?'N-u

%J'ckd+C0
一般情况下,这个时候内核已经启动了,只不过在控制台console中没有打印信息而已。所以问题主要锁定在串口这一块。矩阵通信网-通信.IT人的精神家园Z:q|&k8{Y5O5r

{DA*P1L l(~;v0
首先确定你的板子包括硬件都是没有问题的。可以分以下几种情况,最常见的原因是在内核启动命令行这块cmdline,一般情况下linux-2.4内核中,console=ttyS0,linux-2.6内核则用console=ttySAC0。还有一个原因,不多见,我当时用的是S3C2410的板子,bootloader用的是u-boot-1.0.0,内核移植的是linux-2.6.16,结果出现这个问题,在网上查了很多资料,最后找出来问题。u-bootS3C2410的时钟设置为202Mhz,而内核启动时使用的是200Mhz,修改U-Boot中的MPLLCON
)TK M8yH2TD0
,q0C#F*ZZ/ZVd\y+]0clk_power->MPLLCON MPLLCON = 0x0005c040
//MPLL=200Mhz
/sL6C(`#W7c*C7]0
a(cl {phx02
、内核编译成功后,启动后出现如下提示后就停住了。。。。。。 矩阵通信网-通信.IT人的精神家园 n4}I?QR{` t7sJ
Freeing init memory: 72K 矩阵通信网-通信.IT人的精神家园%Eq"w-?0~;{8rTm
Warning: unable to open an initial console.矩阵通信网-通信.IT人的精神家园8`9Pjq&_/N

!C+Q7f W ][0
这个也是控制台console的问题,linux-2.6.13以后的内核都支持devfs,而之后版本的内核就把devfs这块去掉了,虽然还能在内核源码中找到对应的源码,你也可以把它加进内核,但是也不是太好用。2.6.13 后的版本改为支持udev了,udev这块我也没太弄懂,正在研究。因此如果你是linux-2.6.13版本一下的内核,编译的时候在Pseudo filesystems添加dev filesystem surpport选项,也就是添加devfs的支持,如果linux-2.6.13之后的版本,你就看看你的rootfs下有没有/dev/console这个文件,没有的话,自己做一个就可以矩阵通信网-通信.IT人的精神家园3O\` N tOL

f5l+K b \ d0#mknod console c 5 1
R7xK]3M"|} C!w0矩阵通信网-通信.IT人的精神家园!h@ewf:Rg
3
、内核启动后,打印出一大堆提示信息
/Rmo_#{ i)W1t:U0
4kbhj-GH2p4g-N0Unable to handle kernel xxxx pointer dereference at virtual address xxxxxx
x"C&}!M0ws#_ @C \0
:Q|wP"l hz;m0……
Ss Zn,l c0
QD] zo!E9? Hx0r10: 00000000 r9 : 00000000 r8 : 00500001
I'b H+BX*Tl0r7 : 00000001 r6 : c011ab50 r5 : c3726c00 r4 : c013e024 矩阵通信网-通信.IT人的精神家园I`u9~u\g
r3 : 00000000 r2 : 00000000 r1 : 00000000 r0 : c3726c00
|d.w/rs0
*x5vE7O;W0….矩阵通信网-通信.IT人的精神家园5Ae%U"L"H`
矩阵通信网-通信.IT人的精神家园V'Dl D-Z9O?$k(P$m
<0>Kernel panic - not syncing: Attempted to kill init!
Oa$j3A/pQR/f0L \0矩阵通信网-通信.IT人的精神家园*q%yb,kLH4nq*|&u
这个提示是内核启动加载驱动时出错,那就只有找到出错的驱动,不加载它,如果必须要用这个驱动,只有自己修改源代码,一般问题都在对硬件的地址操作有问题。一般情况下,芯片出来的时候厂家都会给一个参考设计方案,主要是硬件电路,如果你是用的是开发板的话,大都是参考厂家的那个设计做的。而内核也按参考方案设计的,但是每家的开发板并不能保证硬件电路一样,问题可能就出现了。
资料来源:http://www.itgoal.com/html/98/12398-882.html

posted on 2007-07-30 11:07  刘伟_luvi  阅读(1749)  评论(1编辑  收藏  举报