OpenWrt开发(2)--OpenWrt添加新Flash支持及64M固件

OpenWrt添加新Flash支持

本文主要基于MT7628的mtk-openwrt-sdk-20160324-8f8e4f1e.tar.bz2SDK。部分新的Flash在旧的OpenWrt内核中并不支持,需要自行添加Flash型号来使用,否则在OpenWrt启动时会系统自行分配一款Flash芯片,则很可能导致系统运行出现BUG。添加新Flash支持有两种办法,一种是直接修改dl文件夹下的Linux内核,另一种是修改build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7628/linux-3.10.14/drivers/mtd/ralink/ralink_spi.c文件和build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7628/linux-3.10.14/drivers/mtd/ralink/ralink_bbu_spi.c文件,但该方法在make clean后会清除,需要注意。也可以使用quilt生成内核补丁来添加新Flash的支持。

修改Linux内核

  1. 解压openwrt-sdk/dl/linux-3.10.14.tar.xz,tar.xz的解压方法参考Linux实用记录(1)–Linux命令行下的压缩文件及解压中tar.xz的解压及压缩方法。得到openwrt-sdk/dl/linux-3.10.14文件夹。
  2. 打开openwrt-sdk/dl/linux-3.10.14/drivers/mtd/ralink/ralink_bbu_spi.c文件。在static struct chip_info chips_data数组中添加新的Flash型号,该数组与Uboot中的Flash型号数组结构相同,所以添加方式参考MT7628开发(1)–Uboot添加新Flash支持即可。
  3. 打开openwrt-sdk/dl/linux-3.10.14/drivers/mtd/ralink/ralink_spi.c文件。修改方式与上一步的ralink_bbu_spi.c文件相同。
  4. openwrt-sdk/dl/linux-3.10.14文件夹重新压缩为linux-3.10.14.tar.xz,在openwrt-sdk/dl文件夹目录下使用命令md5sum linux-3.10.14.tar.xz计算得到新的linux-3.10.14.tar.xz的md5值。修改openwrt-sdk/dl/linux-3.10.14.md5文件,将文件中的MD5数值替换为新的linux-3.10.14.tar.xz的md5值。
  5. 重新编译openwrt即可,重新编译完成后可到build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7628/linux-3.10.14/drivers/mtd/ralink/ralink_bbu_spi.cbuild_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7628/linux-3.10.14/drivers/mtd/ralink/ralink_spi.c文件中检查确认是否有新添加的Flash型号。

添加64M大小的固件

打开target/linux/ramips/image/Makefile,找到ralink_default_fw_size_32M=33554432,按如下方式修改makefile文件

ralink_default_fw_size_32M=33554432
BuildFirmware/Default32M/squashfs=$(call BuildFirmware/OF,$(1),$(2),$(3),$(ralink_default_fw_size_32M),$(4))
BuildFirmware/Default32M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3),$(4))

#新增对64M固件的支持
ralink_default_fw_size_64M=67108864
BuildFirmware/Default64M/squashfs=$(call BuildFirmware/OF,$(1),$(2),$(3),$(ralink_default_fw_size_64M),$(4))
BuildFirmware/Default64M/initramfs=$(call BuildFirmware/OF/initramfs,$(1),$(2),$(3),$(4))

修改编译固件支持的flash大小

在同一个makefile下,找到要修改的编译板子内容,格式为:

#Image/Build/Profile/MyMT7628=$(call BuildFirmware/Default64M/$(1),$(1),rg-m28,RG-M28)
#固定开头			编译的板子名称				配置为多大的固件			,固件包名,作用还不确定

Image/Build/Profile/MT7628=$(call BuildFirmware/Default8M/$(1),$(1),rg-m28,RG-M28)
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值