原来Linux内核中有一张代码地图呀,哈哈,悟空还是挺高兴的,心觉着吧,这下可以根据这张内核地图来研究内核代码了吧。怀着这兴致,打开内核根目录下的Makefile文件一看,哎呀!完全看不懂呀有木有?悟空的心情瞬间低落了下来,看来有了内核地图,路还是没那么容易走呀!面对Linux内核这×××的大海,悟空心想,还是从干中学吧,先编译个内核镜像来看看先,可是如何编译呢?还是请教一下师傅吧,于是悟空拨通了唐僧的手机。

  悟空:师傅,请教您个事。

  唐僧:你这泼猴,尽坏为师好事!

  悟空:???

  唐僧:为师正被女妖精调戏……哦不,正在降服女妖精,有事快说!

  悟空:……如何编译Linux内核?

  唐僧:知道交叉编译工具不?

  悟空:俺知道,就在编译工具本身运行在一个特定平台上,为另一特定平台的处理器编译程序的工具链。

  唐僧:不错,有长进.你下的内核版本是多少?

  悟空:3.19.3。

  唐僧:挺新的呀!好吧,为师就以ARM架构下的A10 Soc为例,教你如何编译个内核镜像吧。

  首先解压内核源码包,然后切换到内核源码根目录;

  执行这两条指令就行了:

  tar -xvf ./kernel_source_pkg

  cd ./kernel_path

  其中kernel_source_pkg就是你下载的内核源码包,kernel_path就是解压后的目录;

  执行,

  make ARCH=arm sunxi_defconfig

  make ARCH=arm CROSS_COMPILE=arm-linux- zImage

  这两条命令就可以了,然后就等着编译完成,就可以得到一个可以在A10上面运行的内核镜像zImage了,肿么样?简单吧。

  悟空:哦,我知道了,ARCH是指定处理器架构,CROSS_COMPILE指定交叉编译工具,根据sunxi_defconfig默认配置文件进行编译是吧?

  唐僧: 嗯,正确,还挺聪明的嘛。哦哦哦,女施主别别别这样……

  断线ing...