Я подумал, а может это и не сложно сделать. И взялся за работу. При компиляции появлялись ошибки. Например нет функции get_ds. Ну да, она была в 4 версии ядра, а в 5 этой функции нет. Я иногда думаю что разработкичи не хотят поддерживать свои драйвера из-за того, что в ядре постоянно изменения вносят и переписывать нужно некоторые участки кода. В общем я посмотрел как в старой версии ядра реализован get_ds, оказывается он просто возвращает KERNEL_DS. Ну это я и заменил также. Потом была проблема со структурой времени, которая в текущем ядре уже есть только 64 битная версия. Это исправил. Были ещё мелкие вроде исправления, но я не помню уже что исправлял. Итак, драйвер скомпилировался, но отказывался регистрировать устройство адаптер. Я нашел патч link, который обязывает производителей указывать правила. Я добавил в каждую запись в 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 диск. вот ссылка. link
и также теперь есть на github
я рад, если это кому то пригодиться.
