好久都没有搞高通新芯片了,因为IPQ5018这颗芯片的原因,要搞下新的QSDK。总结一下,最深的感受就是说,Atheros堕落了(侧头遮脸)。

首先,就是开发环境搭建真的很烦。Release Notes里搞那么繁琐的命令,直接搞一个脚本就好了嘛。到了2023年还有一个坑,就是官方的代码都在一个codeaurora.org的网站上,可是,人家居然网站停止运营了,还好有提示,可以转到git.codelinaro.org网站去,就是都要改一下地址。然后,也不怨人家的一点是,我的服务器是CentOS7的,有些对应环境要自己改,而QSDK基本环境停留在OpenWRT18.6上,经实验,可以用devtoolset-7这套环境。部分包的源应该是15.05的,和QSDK里改的一些新版本的东西不匹配,乱选可能编译不过。然后,文件目录不要太深,不然编译时可能遇到命令行参数过长的问题。当然,也可像我一样,魔改Makefile也是可以的。

其次,编译脚本太拉,可能只考虑一次性生成,而不照顾别人修改。比如,OpenWRT编译完后,因为习惯问题,我清理了build_dir重编,发现就make不过去了。好家伙!只能参考生成脚本,研究还需要处理什么,居然编译前单独touch了pkginfo,这用法也是醉了。然后,有强迫症的我,就开始把逻辑都加到OpenWRT的编译脚本中去,至少要保持人家的make逻辑吧,该有的独立性要有啊!每次编译的时间也很长,What? 怎么这里没改动还重新编译了,改!提交个git怎么目录名变了,又重编了,改!怎么每次都CP这么多东西啊,改!怎么生成这么多Image,改!好吧,最后我只能承认强迫症是个病……

然后,运行脚本逻辑太乱。怎么内核这么多Err打印啊?很多没必要这么高级别啊。改!怎么启动打印这么明显的错误提示都不改的?改!这脚本居然运行这么久,什么效率写的啊?!改!

最后,你只是得到了个能启动的板子。QSDK的LUCI网页环境居然没改!所以,只能靠脚本配WiFi,网页是配不了的。什么?iwinfo的接口也对不上?好吧,高通的工程师目标可能只是脚本配起来跑测试项就行了。研究一下都用什么命令吧。不会吧?iwconfig, iwpriv, iwlist, wlanconfig, iw, acfg_tool, cfg80211tool齐上阵,这些命令的跨度有20年了吧……比我玩wifi的历史都久了。好吧,老老实实去研究qca-wifi代码吧。看了qca-wifi代码发现,它支持的芯片真全啊!功能也真全啊!但这个逻辑能不能组织好点,这都跟俄罗斯套娃了……硬着头改吧。不过,我猜测,高通的测试项应该挺全的,改完后,功能跑起来还是可以的。应该是传说中的测试驱动开发吧,能运行过测试项就是王道。

最后,跑速率还是不错的。先上个改出来的OpenWRT的版本网页。后续继续开发。