Start porting kernel 2.6.27.8 to qq2440 (4) --Congratuation! Kernel boots OK!

 从arch/arm/mach-s3c2440/mach-smdk2440.c 复制一份为mach-qq2440.c,准备依葫芦画瓢,当然,先是要修改该目录下的Makefile和Kconfig,照着smdk2440添加一份qq2440的就可以了。mach-qq2440.c中,先是去掉了smdk2440开发板映射的相关地方,同时去掉了有关framebuffer和lcd还有nand的配置,基本上里面就没有什么东西了,我是想先至少能让kernel boot 起来,至于其他设备的驱动,再慢慢来吧。
       有个地方要注意,qq2440开发板上的bootloader传递的machineID为782,看看2.6.27.8kernel里面,782早就占用了,没办法,不能改bootloader,只好把kernel里面的782抢过来了。
       在menuconfig的时候,也是基本上去掉了所有的驱动,只保留最基本的kernel。编译好后,大概有600多k的样子,下载到qq2440开发板,上电, Uncompressing linux.................... Done..booting,之后什么都没有了^#%#%$%$
        开始检查,发现是时钟频率填错了,我一直记得是16M的,看了开发板上的晶振才发现是12M的,赶快改过来,重新编译,下载,上电,还是什么都没有……
        这下郁闷了,后来发现kernle能打开kernel low-level debugging functions,在kernel hacking里面,赶快打开,重新编译,下载,上电,这回有点东西了,看了下,提示MachineID不对,bootloader传递的是782,但kernel支持的是362。有希望了啊,赶快检查下代码,最后,发现在MACHINE_START的定义中,当时看到后面传递是S3C2440就没理它,原来这个要改成自己定义的QQ2440,最终会展开成include/asm/mach-types.h里面的machineID。修改后,kernel终于能boot起来了,当然,最后肯定会panic,不过那都是驱动的问题,接下来就要慢慢解决了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值