为瑞昱(Realtek)路由器适配 OpenWRT 心路历程

一、开始 (2017-7-24)

最近朋友搞到很多路由器,就和他一起在做 OpenWRT 移植,就是把普通的配置较低的路由器换上 Flash 和 RAM 然后装上 OpenWRT 。

但是碰到几个瑞昱芯片的路由器却束手无策,于是我和朋友便萌生了为瑞昱芯片的路由器适配 OpenWRT 并申请上传主线化的念头。


二、源码 (2017-7-24)

网上找到,很久以前,是有个团队也有像我们这样的念头,并且也付出了实践,但是最后据传是因为内部意见不和,团队解散了,项目也不了了之。但是幸好找到了他们的源码:

http://archive.main.lv/writeup/building_openwrt_for_rtl8196c.html

既然这样,我们就打算在他们的基础上继续完成他们的项目就行了。


三、编译通过 (2017-8-16)

按照他们对环境的要求,还有经过了重重困难,我们编译通过了他们的源码。

编译的过程简直太多坑了!比如说 GCC 版本、系统位数、编译过程中的老旧链接下载失败、代码生成脚本和配置文件脚本本身的错误、瑞昱提供的源码中的驱动错误、命名错误、等等。。。苦不堪言~不过最终还是编译成功了。。。

不过编译出来的系统镜像并不能启动,从系统启动日志也没有找到很大的帮助,暂时找不到原因。


四、GCC 转机 (2017-8-16)

既然系统启动不了,我们就打算先看一下瑞昱对 GCC 的修改有多少,结果发现,瑞昱用的全是 MIPS 的 GCC 编译过程,只是少了 4 条指令、汇编器那边多出了很多汇编指令,不过汇编器这边很好改。这让本以为 GCC 部分会非常难做的我们十分兴奋!

我朋友还在网上找到了关于瑞昱汇编器多出的哪些汇编指令的说明文档,于是我们打算先改 GCC 部分,编译出个 Uboot 。


五、启动 (2017-9-4)

这天晚上,经过不断地试探以及配置的修改,我们终于让现在这个版本的固件成功启动。


五、成功 (2018-7-5)

毕业前几天,成功适配了最新 binutils-2.30、最新 gcc-7.3、最新 linux_kernel-4.4.53。

并且启动成功,未见错误启动日志。

https://github.com/rlx-router/lede-rtl8196c

你可能感兴趣的:(为瑞昱(Realtek)路由器适配 OpenWRT 心路历程)