Не мог скомпилировать драйвер RealTek RTL8188CE на Ubuntu 13.10

Я пытаюсь скомпилировать драйверы Realtek на своей машине, и я получаю следующие ошибки:

make -C /lib/modules/3.11.0-12-generic/build M=/home/david/Downloads/rtl8188ce-linux-driver modules
make[1]: Entering directory `/usr/src/linux-headers-3.11.0-12-generic'
  CC [M]  /home/david/Downloads/rtl8188ce-linux-driver/base.o
/home/david/Downloads/rtl8188ce-linux-driver/base.c: In function ‘rtl_action_proc’:
/home/david/Downloads/rtl8188ce-linux-driver/base.c:885:32: error: ‘struct ieee80211_conf’ has no member named ‘channel’
       rx_status.freq = hw->conf.channel->center_freq;
                                ^
/home/david/Downloads/rtl8188ce-linux-driver/base.c:886:32: error: ‘struct ieee80211_conf’ has no member named ‘channel’
       rx_status.band = hw->conf.channel->band;
                                ^
/home/david/Downloads/rtl8188ce-linux-driver/base.c: In function ‘rtl_send_smps_action’:
/home/david/Downloads/rtl8188ce-linux-driver/base.c:1451:24: error: ‘struct ieee80211_conf’ has no member named ‘channel’
   info->band = hw->conf.channel->band;
                        ^
make[2]: *** [/home/david/Downloads/rtl8188ce-linux-driver/base.o] Error 1
make[1]: *** [_module_/home/david/Downloads/rtl8188ce-linux-driver] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.11.0-12-generic'
make: *** [all] Error 2

Как я могу зафиксировать это?

7
задан 13 December 2013 в 22:14

2 ответа

Очевидно, что заголовки Linux изменились достаточно с 13.04, чтобы сломать этот драйвер. После многих дней работы я наконец исправил проблемы с компиляцией и заставил драйвер работать. Вы можете найти исправленный драйвер вместе со всеми моими изменениями по сравнению с оригинальной версией, выпущенной Realtek, в моем репозитории Github здесь: https://github.com/FreedomBen/rtl8188ce-linux-driver

Для тех, кто заинтересован, самыми большими изменениями было удаление create_proc_entry() и других связанных функций, которые помещают информацию об отладке в каталог /proc. Я еще не преобразовал код для использования функций замены, поэтому на данный момент отладочная информация не будет сообщаться. Это никак не влияет на производительность драйвера.

Другим большим изменением была реструктуризация struct ieee80211_hw , struct ieee80211_conf и добавление struct cfg80211_chan_def , которое заменило то, что раньше channel член ieee80211_conf.

Существует также новая вспомогательная функция cfg80211_get_chandef_type() для получения типа канала вместо старого прямого метода.

0
ответ дан 13 December 2013 в 22:14

rtl8188ce больше не поддерживается в ядре 3.9 & amp; вверх.

У меня была та же карта WIFI для моего рабочего стола.

Лучшая карта для поддержки с открытым исходным кодом, которую я сейчас использую, - это Atheros.

  • Вариант № 1 использует «Ubuntu 12.04 LTS», так как он поддерживает rtl8188ce через драйвер rtl8192ce.

  • Вариант №2 - исследовать карты Wi-Fi, поддерживающие ядра с открытым исходным кодом.

  • Вариант № 3 после проведения исследования используйте карту, которая будет работать с новейшим ядром 3.12 & amp; до.

После опыта работы с Realtek я больше не буду их использовать, так как rtl8188ce - плохая карта для Windows & amp; Linux.

0
ответ дан 13 December 2013 в 22:14

Другие вопросы по тегам:

Похожие вопросы: