我想,也许这并不难。然后他开始工作。出现编译错误。例如,没有get_ds函数。好吧,是的,它在内核的版本4中,但是在版本5中却没有。我有时认为开发人员不想支持他们的驱动程序,因为他们不断在内核中进行更改,并且某些代码部分需要重写。通常,我研究了如何在旧版本的内核中实现get_ds。事实证明,它只是返回KERNEL_DS。好吧,我也更换了它。然后是时间结构的问题,该时间结构在当前内核中已经只有64位版本。这是固定的。也有一些小的修复程序,但我不记得自己修复了什么。因此,驱动程序已编译,但拒绝注册适配器设备。我找到了补丁链接,这使制造商有义务指定规则。我在os_dep / linux / rtw_cfgvendor.c中的每个条目中添加了这个.policy = VENDOR_CMD_RAW_DATA,
例如:
{
{
.vendor_id = OUI_GOOGLE,
.subcmd = RTT_SUBCMD_SET_CONFIG
},
.policy = VENDOR_CMD_RAW_DATA,
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
.doit = rtw_cfgvendor_rtt_set_config
},
{
{
.vendor_id = OUI_GOOGLE,
.subcmd = RTT_SUBCMD_CANCEL_CONFIG
},
.policy = VENDOR_CMD_RAW_DATA,
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
.doit = rtw_cfgvendor_rtt_cancel_config
},
{
{
.vendor_id = OUI_GOOGLE,
.subcmd = RTT_SUBCMD_GETCAPABILITY
},
.policy = VENDOR_CMD_RAW_DATA,
.flags = WIPHY_VENDOR_CMD_NEED_WDEV | WIPHY_VENDOR_CMD_NEED_NETDEV,
.doit = rtw_cfgvendor_rtt_get_capability
},
并进行编译,复制和运行。和瞧!我管理。)虽然我不了解内核开发,但是我设法提供了简单的支持。目前,驱动程序源代码的链接将发布在google磁盘上。这是一个链接。链接。
而且它现在也在github上。
我很高兴它对某人有用。
