原来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...