2014/02/15

Intel Galileo BSP 0.9.0 eth0 not found 無法使用網路問題

完成了 BSP 0.9.0.7 測試環境時並沒有使用網路,但當接上網路發現,此系統無法連線,eth0 device 無法偵測,原以為是 Linux 編譯時缺少相關軟體的設定,試了試還是無法使用 eth0。

相較原BSP 0.7.5.7 亦無差異,只好再求救 Google大神,終於找到相關的資料如下:

Accrouding to the  https://communities.intel.com/message/221316 say you need to update the flash image.
----------------------------------------------------------------------------------------------------
To get the ethernet working, I had to update flash/firmware with v0.9.0 *.cap.

I will add some more info for those who want to SD boot v0.9.0 with previous firmware.

1. Build using Yocto and copy the files to SDCARD.
1. On the SDCARD, edit boot/grub/grub.conf with the following changes.
Replaced $EARLY_CON_ADDR_REPLACE with 0x8010f000
2. Renamed image-full-galileo-clanton.ext3 with image-full-clanton.ext3 on the SDCARD
2. Boot into the new image. Ethernet will not work.
3. Generated new Flash-missingPDAT.cap using v0.9.0
4. Flashed v0.9.0 Flash-missingPDAT.cap using steps in "Programming flash using Linux* run-time system"
5. On the SDCARD, edit boot/grub/grub.conf
Replaced 0x8010f000 with $EARLY_CON_ADDR_REPLACE (not sure if this is needed)
6. Boot into the new image. Ethernet working.
-------------------------------------------------------------------------------------------------------

根據上面資料的陳述,需要依照 BSP Build Guide 進行 3. Building the EDKII Firmware 的步驟,並更新 flash,可依 9.1 Programming flash using UEFI shell 進行。

經過一番折騰,終於完成 Flash-missingPDAT.cat 檔案,並完成 flash 更新,重新啟動後,果然eth0 功能恢復。

原試作 BSP 0.9.0.7 是在 CentOS 6.4 i686環境,但是因為 spi-flash-tools 一些工具僅提供 x86_64之執行檔,需換成x86_64版本,不過事情並不是那麼順利,CentOS 中執行 spi-flash-tools//generator/generator.py  會發生問題,最後是換成 Debian 7.0 amd64 版本才順利進行所有需要的作業完成 cap 檔。

使用 Debian 7.0 時大部份需要的安裝元件都可以以 apt-get install 進行安裝,但是 iasl 需要另外下載 iasl-unix 安裝套件 :  iasl_20100528-3_amd64.deb ,以 dpkg -i iasl_20100528-3_amd64.deb安裝。 ( Intel ASL compiler/decompiler)

網路功能順利完成後,確發現 launcher.sh 功能不需要經由 inittab 另外的設定就會自動啟動,須刪除 inittab 中的重複設定。