歌华链OpenWrt固件的软重启reboot补丁制作OpenWrt固件软重启补丁下载
1. 前言
由于歌华链路由器采用的flash芯片为mx25l25635f, 在OpenWrt官方的驱动中仅有mx25l25635e, 故存在少许的兼容性。
表现为不能用命令 reboot 进行软重启。
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. 补丁文件
两种不同的方法编译的带软重启补丁固件:
链接: 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文件)
点击链接加入群聊三群:751529538
点击链接加入群聊二群:376877156
点击链接加入群聊【路由器交流群:622891808已满】
本站附件分享,如果附件失效,可以去找找看
饿了么红包