您可以使用GDB使用QEMU調試您的內核,您可以使用-s -S
選項。如果你想要一個簡單可靠的工具鏈,你可以使用DENX的ELDK
(http://www.denx.de/wiki/DULG/ELDK)。
您可以安裝它是這樣的(這不是最後的版本,但你有這個想法):
wget http://ftp.denx.de/pub/eldk/4.2/arm-linux-x86/iso/arm-2008-11-24.iso
sudo mkdir -p /mnt/cdrom
(如有必要)
sudo mount -o loop arm-2008-11-24.iso /mnt/cdrom
/mnt/cdrom/install -d $HOME/EMBEDDED_TOOLS/ELDK/
上面的命令應該安裝工具鏈在$HOLE/EMBEDDED_TOOLS/ELDK
(修改它,如果你需要)
echo "export PATH=$PATH:$HOME/EMBEDDED_TOOLS/ELDK/ELDK42/usr/bin" >> $HOME/.bashrc
然後,您可以看到您的ARM工具鏈的版本是這樣的:
arm-linux-gcc -v
您可以測試程序hello_world。這樣的C程序:
arm-linux-gcc hello_world.c -o hello_world
你鍵入:文件hello_wrold查看二進制的目標架構,它應該是這樣的:
hello_wrold: ELF 32-bit LSB executable, ARM, version 1 (SYSV)
現在,如果你想編譯生產的內核,你需要優化它(我建議使用busybox
),如果你現在想只是一個用來測試,試試這個步驟:
創建一個腳本設置你的鏈工具set_toolchai n.sh:
#! /usr/bin/sh
PATH=$PATH:$HOME/EMBEDDED_TOOLS/ELDK/ELDK42/usr/bin
ARCH=arm
CROSS_COMPILE=arm-linux-gnueabi-
export PATH ARCH CROSS_COMPILE
和運行腳本(source ./set_toolchain.sh
)
- 下載Linux內核,並且將它解壓縮(假設2.6.x的,這是一箇舊的內核,但也有很多機會,它沒有編譯錯誤主持工作)。
裏面你解壓縮內核:
cd ~/linux-2.6.29/arch/arm/configs
make versatile_defconfig
這裏我們使用通用的芯片,您可能需要使用make menuconfig
修改的選項OABI
並將其設置爲ARM EABI
,此選項下Kernel features menu
經過這一步,你可以編譯你的內核:
make
如果你想詳細編譯make v=1
在這之後,你得到你的內核在arch/arm/boot/zImage
下。
希望得到這個幫助。
問候。
來源
2012-08-04 16:27:23
TOC
有人可以幫助我! – inblueswithu
有沒有人知道這樣的事情? plz幫助 – inblueswithu