J'ai pensé que ce n'était peut-être pas difficile à faire. Et il s'est mis au travail. Des erreurs de compilation sont apparues. Par exemple, il n'y a pas de fonction get_ds. Eh bien, oui, c'était dans la version 4 du noyau, mais dans la version 5, cette fonction ne l'est pas. Je pense parfois que les développeurs ne veulent pas prendre en charge leurs pilotes en raison du fait qu'ils apportent constamment des modifications au noyau et que certaines parties du code doivent être réécrites. En général, j'ai regardé comment get_ds est implémenté dans l'ancienne version du noyau. Il s'avère qu'il renvoie simplement KERNEL_DS. Eh bien, je l'ai également remplacé. Ensuite, il y a eu un problème avec la structure temporelle, qui n'a déjà qu'une version 64 bits dans le noyau actuel. C'est corrigé. Il y avait aussi des corrections mineures, mais je ne me souviens pas de ce que j'ai corrigé. Ainsi, le pilote a compilé mais a refusé d'enregistrer le périphérique adaptateur. J'ai trouvé un lien de patch, qui oblige les fabricants à préciser les règles. J'ai ajouté à chaque entrée dans os_dep / linux / rtw_cfgvendor.c, cette .policy = VENDOR_CMD_RAW_DATA,
Exemple:
{
{
.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
},
Et compilé, copié et exécuté. et voila! Je me suis débrouillé. ) Bien que je ne comprenne pas le développement du noyau, j'ai réussi à faire un support simple. Le lien vers le code source du pilote sera affiché sur le disque google pour le moment. voici un lien. lien .
Et c'est aussi maintenant sur github .
Je suis content si c'est utile à quelqu'un.