BeagleBoard-xM 'de Kernel Boot Sorunu

Başlatan Tagli, 18 Kasım 2011, 12:06:48

Tagli

2.6.34 ve 2.6.36'da sorun yok. Ancak 2.6.38 ve sonrasini BeagleBoard-xM'de boot edemedim bir turlu. Beagle Board "Uncompressing Linux... done, booting the kernel." yazisindan sonra donup kaliyor. Herhangi bir hata mesaji yok.

kernel.org'dan cektigim kaynak kodlarini kullaniyorum. Sistemdeki defconfig'i kullanip uzerinde ufak degisiklikler yapiyorum. Sorunun bu degisikliklerden kaynaklandigini sanmiyorum, cunku benzer config'ler ile 2.6.34 ve 2.6.36 calisiyor.

Internet arastirdigimda sorunun kernel'deki varsayilan console ayarinin ttyO2 olarak degistirilmesinden kaynaklaniyor olabilecegi soylenmis. uboot'ta bunu denedim, degisiklik olmadi. Zaten kart uzerindeki isiklar da hareketsiz kaliyor. Normalde boot sirasinda kernel panic olsa bile orada en az bir isigin yanip sonuyor olmasi gerekir. Bu sebeple, sorunun konsoldan kaynaklandigini dusunmuyorum.

Config ayarlarinda "early printk" secenegini de sectim. Yine de hata mesaji yok. Sadece dedigim yerde donup kaliyor.

Bazilari da "kernel machine id" ve "uboot machine id" nin ayni olmasi gerektiginden bahsetmis. Bunlari nereden kontrol edebilirim ve tutmuyorlarsa nereden degistirebilirim?

Sorun config'lerden kaynaklaniyor da olabilir. 2.6.36'ya kadar defconfig "omap3_defconfig" olarak adlandirilirken 2.6.38'den itibaren bu "omap2plus_defconfig" olmus. Arada gozumden kacan bir fark olabilir belki.

Bu arada, BB-xM'in islemcisi DM3730, DaVinci ailesine giriyor. Acaba konfigurasyonu buna gore mi yapmam gerekiyor? Ama bu islemci omap3 ile uyumlu oldugundan sanirim, daha once omap3 icin olan defconfig'ler guzel calisiyordu.

Derleyici olarak birden fazla derleyici denedim. Ubuntu paketleri arasindaki arm-linux-gnueabi, Code Sourcery'nin (Mentor Graphics tarafindan satin alindi) Sourcery G++ derleyicisi (arm-none-linux-gnueabi komutuyla calisiyor) ve crosstool-NG ile derledigim kendi derleyicimi denedim. Bu derleyiciler ile 2.6.36'yi derleyip calistirabiliyorum.
Gökçe Tağlıoğlu

Tagli

Sorun console'dan kaynaklaniyormus. ttyO2 olmasi gerekliymis. Daha onceki denemerimde ttyO0 yazmis ve sonuca ulasamayinca hatanin buradan kaynaklanmadigini dusunmustum. Ayrica ilk denemeye dahil etmedigim icin init bulunamayip kernel panic oldugunda nedense LED'lerin yanip sonmesi duruyor. Daha onceki versiyonlarda kernel panic oldugunda bile LED'ler yanip sonmeye devam ediyordu. Sanirim beni asil yaniltan ve sorunu baska yerde aramama sebep olan sey bu oldu.

1 haftayi askin bir suredir kafa patlattigim ve beni cildirma noktasina getiren bu sorunu cozebildigim icin icim baya rahatladi.
Gökçe Tağlıoğlu

EmaNet

#2
Tagli şu an aynı sorun bende de var. Cutecom kullanıyorum. HDMI-VGA kablo ile bilgisayarıma bağladım ancak görüntüde gelmedi.

Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)

Reading boot sector

Loading u-boot.bin from mmc


U-Boot 2011.06-dirty (Jul 19
 2011 - 17:30:34)

OMAP3530-GP ES3.1, CPU-OPP2, L3-165MHz, Max CPU Clock 720 mHz
OMAP3 Beagle board + LPDDR/NAND
I2C:   
ready
DRAM:  256 MiB
NAND:  256 MiB
MMC:   OMAP SD/MMC: 0

*** Warning - bad CRC, using default environment


In:    serial
Out:   serial
Err:   serial
Beagle Rev C4

timed out in wait_for_pin: I2C_STAT=0
I2C read: I/O error

Unrecognized expansion board: 0
Die ID #46a80024000000000403951c0701d01c
Net:   Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot:  2 
\0x08\0x08\0x08 1 
\0x08\0x08\0x08 0 
SD/MMC found on device 0
reading uEnv.txt

** Unable to r
ead "uEnv.txt" from mmc 0:1 **
Loading file "/boot/uImage" from mmc device 0:2 (xxa2)

3195484 bytes read
Booting from mmc ...
## Booting kernel from L
egacy Image at 82000000 ...
   Image Name:   Angstrom/2.6.32/beagleboard
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3195420 Bytes = 3 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... 
OK
   Loading Kernel Image ... 
OK
OK

Starting kernel ...

Uncompressing Linux........
............................................................
............................................................
............................................................
..................... done, booting the kernel.


Angstrom kurdum SD karta.

Tagli

Yanlış hatırlamıyorsam 2.6.32'de eski konsol vardı. ttyS2 olarak anılıyor. Bu sebeple, kernel boot argümanlarında da bu değerin olması gerekiyor. Eğer uboot versiyonun kısmen yeni ise, varsayılan boot argümanları ttyO2 olarak ayarlanmış olabilir. Bunu uboot'un ortam değişkenlerinden kontrol edebilirsin. Komut galiba printenv bootargs idi. Oradan console'un ne olduğuna bak.

Ancak bu durumun ekrana görüntü gelmesini engellememesi gerekirdi bence. Ben bahsetmiş olduğum sorunla seri port üzerinde karşılaşmıştım (bağlı bir ekranım yoktu).

Ayrıca, kernel ile ilgili pek çok sorunda boot işlemi tam da o noktada tıkanır. Yani sorun bambaşka birşey de olabilir.

Kernel'i sen mi derledin? Eğer öyle ise derleyiciden de şüphelenebilirsin. Kernel config'indeki ciddi hatalar da buna sebep olabilir. Veya kernel'i hazır kullanıyorsan yanlış bir kernel imajı kullanıyor olabilirsin.
Gökçe Tağlıoğlu