一、首先我们如何编译适合的自己的嵌入式 linux 内核?
就像我们目前使用的硬件版本是 SMDK2410,而我们都知道,SMDK2410 是 linux 内核所支持的,可以
直接编译。
我们首先要做的准备工作是:准备好交叉编译器,并设置好 PATH,系统能很快的找到我们需要的交
叉编译工具。这个我们都已经完成了,那么我们就从 www.kernel.org 上将 linux 的源代码下载下来,每次编
译内核的时候,我们都需要有一个默认的.config 文件,就像我们编译自己电脑上使用的 linux 内核时,需要
将自己目前使用的内核的配置文件复制到内核的源代码根目录下,就像 ubuntu,该文件就位于/boot 目录下
面:config-2.6.15-26-386。
针对 SMDK2410 的默认设置的配置文件位于:arch/arm/configs/s3c2410_defconfig,将这个文件拷
贝到根目录下成为.config 文件。在 make menuconfig 中加载这个默认的 config 文件。
然后修改根目录下的 MakeFile 文件。
#ARCH ?= $(SUBARCH)
#CROSS_COMPILE ?=
将上面的这些变量设置为如下的值。
ARCH ?= arm
CROSS_COMPILE ?=arm-linux-
同时将下面的语句注释掉!
#SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
# -e s/arm.*/arm/ -e s/sa110/arm/ \
# -e s/s390x/s390/ -e s/parisc64/parisc/ \
# -e s/ppc.*/powerpc/ )
最后使用 make menuconfig,将下面所有的调试信息都打开。我们可以看到内核所有的运行的情况,
(包括错误)。
Kernel hacking --->
Verbose user fault messages
Include debugging information in kernel binary
Kernel debugging
Magic SysRq key
Verbose BUG() reporting (adds 70k)
Verbose kernel error messages
Kernel low-level debugging functions
这里我们必须要检查的内核编译选项是:
1、Loadable module support
linux 内核从 2.6 开始,已经支持将驱动编译成模块的方式,然后用 insmod 或者 probe 的方式来自动
的加载,选上 Automatic kernel module loading 这个选项,是告诉内核:在内核启动的时候,将编译到内
核里面的模块自动的加载!(这很重要)
有疑问请联系 ty3247@163.com(23012675) 欢迎大家一起讨论、共同进步!