欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

移植内核3.4.2

程序员文章站 2022-07-14 10:01:16
...

1、解压tar xjf linux-3.4.2.tar.bz2

2、进入解压后的文件目录,修改顶层Makefile

 ARCH=arm
 CROSS_COMPILE=arm-linux-

3、选择默认配置

      内核默认已经支持很多单板,以defconfig命名结尾,搜索默认配置单板。

   find -name"*defconfig"
   make s3c2410_defconfig

      生成配置文件.config,可以查看.config进行查看是否支持单板。

4、编译

      make uImage

5、烧录查看打印信息,打印信息是乱码

     在uboot启动内核时,会传给内核3个参数,r0=0,r1=机器ID,r2=tag参数地址。查看uboot传入的机器id。

    do_bootm ==》boot_os[i]==》do_bootm_linux==》boot_jump_linux==》kernel_entry(0, machid, r2);

    移植内核3.4.2

可知机器id(machid)既可以从程序默认指定,也可以从环境变量中获取。

 

6、设置机器id

     uboot查看支持的machid(arch/arm/include/asm/mach-types.h)

移植内核3.4.2

方法一:将gd->bd->bi_arch_number = MACH_TYPE_SMDK2410;改为gd->bd->bi_arch_number = MACH_TYPE_S3C2440;重新编译烧录uboot

方法二:通过环境变量设置:

set machid 16a
save

7、修改时钟初始化和串口波特率

      时钟初始化:板子使用12M晶振,所以需要修改

移植内核3.4.2

修改串口波特率:修改环境变量set bootargs console=ttySAC0,115200 .....

8、设置分区(arm/arm/mach-s3c24xx/common-smdk.c),可以根据内核打印信息找到分区在哪。

移植内核3.4.2

 

9、编译烧录,成功打印信息。

 

参考:https://blog.csdn.net/Carl_0/article/details/87856439