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-boot把S3C2410的時鐘設定為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