降低OpenWRT的Linux内核版本

不久前,OpenWRT关闭了官方的svn服务器,导致很多客户无法按照正旗通信的固件编译指导文档获取OpenWRT代码,只能使用git方式。相比于svn,git貌似无法直接获取指定版本的代码。然而,使用git获取的代码已经将Linux内核升级到4.1版本,最新的已经是4.4版本了。这样的更新速度对于业余爱好者也许是件好事,可是对于产品开发者,却未必如此。

为了移植某驱动程序,笔者可谓绞尽脑汁,在4.1内核版本上,尝试了很多次都没能成功,后来仔细分析,才知道是内核版本过高导致的,本文给出降低内核版本的方法,具体编译环境的搭建,还请自行查阅其他文章。

1. 登录Linux编译服务器,在当前用户目录下创建一个新的目录,如erm。

2. 输入以下命令

git clone git://git.openwrt.org/openwrt.git

接下来便进入漫长的等待过程,如下图

receiving-objects

3. git clone完成后,会出现如下提示

git-clone-done

4. 进入openwrt目录,输入以下命令

git log

并使用Page Up/Down与上下方向箭头查看log内容,可以发现,在46553版本中,移除了对3.18内核版本的支持,如下图。

remove-linux-3.18-support

5. 找到一个合适的仍然支持Linux 3.18的版本,这里笔者选择了46550。将46550版本对应的commit字符串复制下来,并按“q”退出git log。输入以下命令

git checkout 367c4188921d77f5edb3dcfd148a59652fbfff37

然后便可以看到“HEAD is now at 367c418…”的字样,如下图。

git-checkout

6. 安装软件包,输入以下命令

./scripts/feeds update

./scripts/feeds install –a

7. 输入make menuconfig命令,选择Advanced configuration options (for developers)—>Toolchain options,然后选择C library implementation,选择uclibc,如下图。

uclibc

然后退出并保存配置。

8. 编辑target/linux/ar71xx/Makefile,将内核版本由4.1修改为3.18;编辑target/linux/ar71xx/image/Makefile,修改flash分区。

9. 笔者需要编译QCA9531的固件,所以需要再次make menuconfig,并将Target Profile选择为AP143。

10. 最后make V=s -j 29(多线程编译),即可得到用于QCA9531的3.18内核版本的固件。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值