0.准备工作
首先,在$HOME目录下创建arm_qemu目录,用于存放“工具/原料”提及的源码包等:
mkdir ~/arm_qemu
接下来按“工具/原料”里面说明的命令执行后同步相关源码包和安装相关工具。
安装好交叉编译链后还需要做如下处理,即创建链接(为什么创建,可以了解下编译脚本):
sudo ln -s /usr/bin/arm-linux-gnueabi-gcc-4.7 /usr/bin/arm-linux-gnueabi-gcc
sudo ln -s /usr/bin/arm-linux-gnueabi-gcc-ar-4.7 /usr/bin/arm-linux-gnueabi-gcc-ar
sudo ln -s /usr/bin/arm-linux-gnueabi-gcc-nm-4.7 /usr/bin/arm-linux-gnueabi-gcc-nm
sudo ln -s /usr/bin/arm-linux-gnueabi-gcc-ranlib-4.7 /usr/bin/arm-linux-gnueabi-gcc-ranlib
sudo ln -s /usr/bin/arm-linux-gnueabi-cpp-4.7 /usr/bin/arm-linux-gnueabi-cpp
sudo ln -s /usr/bin/arm-linux-gnueabi-gcov-4.7 /usr/bin/arm-linux-gnueabi-gcov
即把所有尾部有4.7版本号的链接为没有的。
1.配置Kernel
这里使用最常用的versatile_defconfig,具体步骤如下:
cd ~/arm_qemu/kernel
make versatile_defconfig ARCH=arm
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
进入Kernel源码目录,生成根目录下.config配置文件(arm架构),使用交叉编译工具链(以arm-linux-gnueabi-为前缀)编译versatile配置的内核。
编译完成后,我们使用qemu试下:
qemu-system-arm -M versatilepb -kernel arch/arm/boot/zImage -nographic
其中-M指定模拟的设备型号,这里是versatile的pb版设备,-kernel对应启动程序,这里是编译好的Linux内核,-nographic表示直接将输出到当前终端。
运行后有如下输出:
pulseaudio: set_sink_input_volume() failed
pulseaudio: Reason: