[*nix, C, Разработка под Linux] поддерживаю драйвер tp-link t4u для linux
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Когда купил wifi адапртер, думал что будет работать на моей ubuntu 20.04, потому что в числе поддерживаемых систем значился linux. Оказалось что не работает. попробовал решения, которые предлагают на форумах, но адаптер так и не заработал. пришлось вчера и сегодня заняться поддержкой драйвера.
Я подумал, а может это и не сложно сделать. И взялся за работу. При компиляции появлялись ошибки. Например нет функции 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
===========
Источник:
habr.com
===========
Похожие новости:
- [Научно-популярное, Медгаджеты, Мозг, Здоровье, Будущее здесь] Полное руководство по сезонной депрессии (SAD). 7 видов светотерапии
- [Системное администрирование, Разработка под Linux, DevOps, Разработка под Windows] Нужен ли еще один курс по Git?
- [CMS, JavaScript, Разработка веб-сайтов, Хостинг] От небольшого вики-портала до хостинга
- [Delphi, Старое железо, Разработка под Windows, Смартфоны] BroKB Emulz — русскоязычная клавиатура для эмуляторов DosBox/Bochs/LBochs на Android-телефоне
- [Программирование микроконтроллеров] Продолжение очередной статьи: STM32 для начинающих. Интерфейсы
- [Accessibility, Тестирование веб-сервисов, Дизайн] Зачем Chrome Dev Tools дизайнеру
- [Микросервисы] Подсказки по микросервисной автоматизации процессов (перевод)
- [Гаджеты, Смартфоны] iFixit очень низко оценила ремонтопригодность Microsoft Surface Duo
- [Финансы в IT] Эффект пандемии: за три месяца карантина сервис Zoom получил годовую прибыль
- [Разработка под Android] Превращаем EditText в SearchEditText
Теги для поиска: #_*nix, #_c, #_razrabotka_pod_linux (Разработка под Linux), #_linux, #_*nix, #_c, #_razrabotka_pod_linux (
Разработка под Linux
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 25-Ноя 16:03
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Когда купил wifi адапртер, думал что будет работать на моей ubuntu 20.04, потому что в числе поддерживаемых систем значился linux. Оказалось что не работает. попробовал решения, которые предлагают на форумах, но адаптер так и не заработал. пришлось вчера и сегодня заняться поддержкой драйвера. Я подумал, а может это и не сложно сделать. И взялся за работу. При компиляции появлялись ошибки. Например нет функции 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 =========== Источник: habr.com =========== Похожие новости:
Разработка под Linux ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 25-Ноя 16:03
Часовой пояс: UTC + 5