您可以使用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