多分これは難しいことではないと思いました。そして彼は仕事に取り掛かった。コンパイルエラーが発生しました。たとえば、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にもあります。
それが誰かに役立つなら私はうれしいです。