内核编译与烧写

一、实验环境

硬件: JZ2440开发板

内核版本: linux-2.6.22.6

交叉工具链:  gcc-3.4.5-glibc-2.3.6


二、实验步骤

1、解压内核源码包

为了方便以后查看我们对内核源码所作的修改可以使用git建立一个代码仓库,从而记录修改的点滴

                      tar   xjfv  linux-2.6.22.tar.bz2

                      cd   linux-2.6.22.6

                      git  init              //初始git仓库

                      git  add .          //将目录下的所有添加到暂存区

                      //将所有提交到仓库

                      git  commit  -a  -m "this is kernel source without any change"

2、打补丁

将补丁文件保存在解压的源码同一级目录下,然后进入源码目录打补丁,命令如下:

                      cd  linux-2.6.22.6

                      patch -p1 < ../linux-2.6.22.6_jz2440.patch

3、编译   

打完补丁后会在linux-2.6.22.6/目录下生成一个config_ok的配置文件,需将其拷贝一份为.config以便内核编译,同时修改

Makefile指定交叉工具链

ARCH        ?= arm
CROSS_COMPILE    ?= /opt/cross-tools/gcc-3.4.5-glibc-2.3.6/bin/arm-linux-

修改完之后便可执行如下命令

                       cp  config_ok  .config

                       make uImage


4、烧写

在烧写内核之前得先安装tftp,具体的安装和使用这里不细说(参考ubuntu14.04开发环境搭建),同时还得设置电脑与开发板的

IP地址,使得它们在同一网段上。对于开发板IP的设置可以进入u-boot命令模式进行设置。具体如下:

                     set  ipaddr   200.200.200.66

                     set  serverip   200.200.200.99

然后使用tftp烧写:

                    tftp   30000000  uImage

                   nand  erase  kernel

                   nand  write.jffs2   30000000  kernel


5、nfs挂载

为了方便内核的学习和调试,作者在此建议使用nfs挂载启动内核,这样就不用将每次的修改烧写进flash也能验证修改的结果。

要使用nfs也得设置电脑与开发板的IP地址在同一网段上,如上。设置完后便可以进入u-boot命令模式输入命令,如下:

                nfs  30000000   200.200.200.99:/nfs/kernel/uImage    //将uImage加载到内存的指定地址

                bootm  30000000              //从指定地址启动内核


待完善

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值