Linux用のtp-linkt4uドライバーをサポートしています

サポートされているシステムの中にlinuxがリストされているため、wifiアダプターを購入したとき、ubuntu20.04で動作すると思いました。動作しないことが判明しました。フォーラムで提供されているソリューションを試しましたが、アダプターが機能しませんでした。私は昨日と今日のドライバーサポートに対処しなければなりませんでした。



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



それが誰かに役立つなら私はうれしいです。



画像



All Articles