1.解压内核
sudo xz -d linux-3.15.4.tar.xz
sudo tar xvf linux-3.15.4.tar
2.修改内核源码顶层的Makefile
sudo vim Makefile
arch=arm
CROSS_COMPILE=arm-linux-
3.vim arch/arm/mach-s3c24xx/mach-smdk2440.c
s3c24xx_init_clocks(12000000);
4.make menuconfig命令配置内核,使用默认的配置文件/arch/arm/configs/s3c2410_defconfig,选择CPU、在配置单中加入自己的信息、支持EABI(它针对浮点数运算做了优化,使用它编译出来的应用程序效率更高)
注:在Ubuntu下make menuconfig会报错,错误信息如下:
*** Unable to find the ncurses libraries or the
*** required header files.
*** ‘make menuconfig‘ requires the ncurses libraries.
***
*** Install ncurses (ncurses-devel) and try again.
***
make[1]: *** [scripts/kconfig/dochecklxdialog] 错误 1
make: *** [menuconfig] 错误 2
解决方法:
在命令行中输入:
sudo apt-get install libncurses5-dev
然后在make menuconfig,成功。
Ncurses是一个能提供功能键定义(快捷键),屏幕绘制以及基于文本终端的图形互动功能的动态库。
5.修改机器码,在arch/arm/tools/mach-types中,将S3C2440对应的机器码改为Uboot传进来的一致。
linux-3.15.4内核移植