2013年5月31日 星期五

Build EDK2 BeagleBoardPkg for booting qEmu BeagleBoard

Build BeagleBoardPkg

Get ARM GCC tools by following BeagleBoardPkg/readme.txt first, then follow the link below
Some build errors and tool-deprecated issues need to be done 

Get arm-none-eabi toolchain

4.4.1 (recommended)
https://code.google.com/p/arduino/downloads/detail?name=gcc-arm-none-eabi-4.4.1-2010q1-188-linux32.tar.gz&can=2&q=

Note that if you choose 4.6 or above will probably get compatibility errors, such as -combine option deprecated issue.

4.6
https://launchpad.net/gcc-arm-embedded/4.6/4.6-2012-q2-update/+download/gcc-arm-none-eabi-4_6-2012q2-20120614.tar.bz2

Error: unknown pseudo-op: `.arch_extension' 

Find where the code ".arch_extension" is (in ArmSmc.S) and modify as below

#if __GNUC__ >= 4 && __GNUC_MINOR__ >= 6
".arch_extension sec\n" #endif

BeagleBoardPkg should be successfully built

Qemu-arm-static not found

Follow link below to install qEmu first

Add boot device entry

Because Terminal on Ubuntu cannot completely clear bootargs content and update it, we need to add an entry for booting.

The default boot selection will start in   7 seconds
[1] Linux from SD
[2] Shell
[3] Boot Manager
Start: 3
[1] Add Boot Device Entry
[2] Update Boot Device Entry
[3] Remove Boot Device Entry
[4] Update FDT path
[5] Return to main menu
Choice: 1

bunch of  "SD: CMD12 in a wrong state" messages

[1] SemihostFs (0 MB)
[2] boot (51 MB)
[3] VenHw(4D00EF14-C4E0-426B-81B7-30A00A14AAD6)
Select the Boot Device: 2
File path of the EFI Application or the kernel: zImage
Has FDT support? [y/n] nAdd an initrd: [y/n] yFile path of the initrd: uInitrd
Arguments to pass to the binary: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw earlyprintk fixrtc nocompcache vram=12M omapfb.mode=dvi:1280x720MR-16@60
Description for this new Entry: Linaro Linux
[1] Add Boot Device Entry
[2] Update Boot Device Entry
[3] Remove Boot Device Entry
[4] Update FDT path
[5] Return to main menu
Choice: 5
[1] Linux from SD
[2] Linaro Linux
[3] Shell
[4] Boot Manager
Start: 2

bunch of  "SD: CMD12 in a wrong state" messages

   PEI    383 ms
   DXE   2744 ms
   BDS   2845 ms
Total Time = 5974 ms

Uncompressing Linux... done, booting the kernel.
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu

booting kernel logs

Welcome to Linaro!
 * Documentation:  http://www.linaro.org
root@localhost:~#

Build using gcc-arm-linux-gnueabi (Working on it)

http://kphuang1009.blogspot.tw/2013/06/build-beagleboardpkg-using-gcc-arm.html

Issues

"SD: CMD12 in a wrong state" issue

Rollback to Older Linaro qemu version 

Compile using gcc-4.4

undefined reference to symbol 'timer_settime@@GLIBC_2.3.3'
sudo apt-get install python2.4

Try another qemu omap3 project

https://code.google.com/p/qemu-omap3/wiki/UserManual#Download_The_Source_Code

Get warning messages after configuring qemu-omap3
WARNING: "gcc" looks like gcc 4.x
Looking for gcc 3.x
gcc 3.x not found!
QEMU is known to have problems when compiled with gcc 4.x
It is recommended that you use gcc 3.x to build QEMU
To use this compiler anyway, configure with --disable-gcc-check

Tried to install gcc 3.x to build Linaro qEmu
http://askubuntu.com/questions/39628/old-version-of-gcc-for-new-ubuntu

Error: zlib check failed
Reinstall zlib
sudo apt-get install --reinstall zlibc zlib1g zlib1g-dev


沒有留言:

張貼留言