首页 > 资源分享 > 歌华链OpenWrt固件的软重启reboot补丁制作OpenWrt固件软重启补丁下载
2019
01-31

歌华链OpenWrt固件的软重启reboot补丁制作OpenWrt固件软重启补丁下载

1. 前言

由于歌华链路由器采用的flash芯片为mx25l25635f, 在OpenWrt官方的驱动中仅有mx25l25635e, 故存在少许的兼容性。

表现为不能用命令 reboot 进行软重启。

歌华链OpenWrt固件的软重启reboot补丁制作OpenWrt固件软重启补丁下载

2. 关于补丁

0) 软重启补丁包含2个文件,分别代表两种应用补丁的方法。

   这两种补丁选择其中之一即可。

308-spi-nor-enable-4B-opcodes-for-mx25l25635f.patch

408-spi-nor-m25p-shutdown-for-mx25l25635f.patch

1) 补丁只能用于歌华链固件的编译:(在linux内核4.14.95上运行正常)

应用方法:将上述两个文件之一拷贝到目录:

"target/linux/ramips/patches-4.14/"

然后编译歌华链的固件即可。

例如: #make -j5

2) 关于补丁对应的linux内核4.14.xx: (在linux内核4.14.95上运行正常)

如果最后的两位版本号xx升级,可能补丁的位置会发生变化,

此时需要自己重新制作补丁,不过补丁内容是一样的。(见下一条)

3) 这两个补丁总有一个能成功启动歌华链(第2个补丁兼容性应该更好)。如果不能启动,请接TTL/或者breed,刷另一个补丁的固件。

4) 检查是否成功的方法:

【对于第1种补丁(308-xxx.patch)】, 成功编译完毕后打开文件: 

"build_dir/target-mipsel_24kc_musl/linux-ramips_mt7621/linux-4.14.95/drivers/mtd/spi-nor/spi-nor.c"

查找"mx",找到下面内容行:

{ "mx25l25635e", INFO(0xc22019, 0, 64 * 1024, 512, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },

应用补丁后其内容变为:

{ "mx25l25635e", INFO(0xc22019, 0, 64 * 1024, 512, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_4B_OPCODES) },

【对于第2种补丁(408-xxx.patch)】,成功编译完毕后打开文件:

"build_dir/target-mipsel_24kc_musl/linux-ramips_mt7621/linux-4.14.95/drivers/mtd/devices/m25p80.c"

在文件的最末尾,成功应用补丁后,其内容增加函数shutdown, 如下:

static void m25p_shutdown(struct spi_device *spi)

{

       struct m25p     *flash = spi_get_drvdata(spi);

       if ((&flash->spi_nor)->addr_width > 3) {

               printk(KERN_INFO "m25p80: exit 4-byte address mode\n");

               flash->command[0] = SPINOR_OP_EX4B;  // exit 4-byte address mode: 0xe9

               spi_write(flash->spi, flash->command, 1);

               flash->command[0] = 0x66;  // enable reset

               spi_write(flash->spi, flash->command, 1);

               flash->command[0] = 0x99;  // reset

               spi_write(flash->spi, flash->command, 1);

       }

}

static struct spi_driver m25p80_driver = {

    .driver = {

        .name   = "m25p80",

        .of_match_table = m25p_of_table,

    },

    .id_table   = m25p_ids,

    .probe  = m25p_probe,

    .remove = m25p_remove,

    .shutdown = m25p_shutdown,

    /* REVISIT: many of these chips have deep power-down modes, which

     * should clearly be entered on suspend() to minimize power use.

     * And also when they're otherwise idle...

     */

};

module_spi_driver(m25p80_driver);

3. 补丁文件

  gehua-R-001-fix-reboot.zip

两种不同的方法编译的带软重启补丁固件:

链接: https://pan.baidu.com/s/1aLXLcP7WSnL9JYMlk0EF6g  提取码: vqvf

2019-01-30 更新:

1) 其中补丁1的内容已经在OpenWrt官方补丁代码中,具体文件是: target/linux/ramips/patches-4.14/304-spi-nor-enable-4B-opcodes-for-mx25l25635f.patch

2) 在我自己的两台硬件都是v0.4的歌华链,其中一台软重启正常,另外一台则反复重启无法正常使用(现象:正在识别.../网络电缆被拔出)

3) 如果不能正常启动,应用第2个补丁即可。(注意先删除304-spi-nor-enable-4B-opcodes-for-mx25l25635f.patch文件)

支付宝打赏 微信打赏