百度"移植kernel",看了网上文章,移植的步骤大概是:
- 获取源码,搭建交叉编译环境。
- 配置内核。修改Makefile,找一个相近的config文件,稍微改改,就可以编译了。
编译得到了个2M多的zImage,烧到板子上启动失败,咋回事呢?
SMDK2416 # bootm c0008000
Boot with zImage
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
eabi也改了, smdk2416也选了,怎么就不行呢?
之前有一个移植成功的版本,直接把config拿过来,编过放到板子上可以执行。使用比较法,比较config,一项一项检查,都给选成一样的,再编译放板子上试试。试了两天,
终于改到Driver的时候,见效了。再缩小范围,“Samsung S3C2410 Serial port support“、”Samsung S3C2440/S3C2442/S3C2416 Serial port support“映入眼帘,
原来是串口驱动不对,控制台没有输出!
需要确认config文件的串口驱动跟板子匹配,网上文章怎么也不提醒一下!
去掉了filesystem大部分内容,内核体积减小了不少。