Как мне установить драйвер ath9k для backports-3.12-8, установленный на Xubuntu 13.10?

Я скачал файлы ядра 3.12-8 linux-headers-all.deb, linux-headers-generic_i368.deb; linux-image-generic_i386.deb из kernel.org и установил их через:

 dpkg -i *.deb

Сейчас я пытаюсь устранить некоторые пропадания сигнала Wi-Fi, которые, вероятно, вызваны самим драйвером. Судя по всему, были исправлены драйверы ath9k, поэтому я бы хотел заменить версию по умолчанию на backports.

Я скачал backports-3.12.8-1.tar.gz с kernel.org и попытался подготовить модуль ath9k:

cd ~/.source/backports-3.12.8-1/
sudo apt-get install build-essential
sudo apt-get build-dep linux-image-$(uname -r)
sudo ln -s /usr/src/linux-headers-$(uname -r) /usr/src/linux
make defconfig-ath9k

Это оставляет меня со следующими "ОШИБКАМИ пропущенных прототипов":

cc -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer   -c -o conf.o conf.c
cc -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer   -c -o zconf.tab.o zconf.tab.c
cc   conf.o zconf.tab.o   -o conf

Но когда я продолжу:

sudo modprobe -r ath9k
sudo make
sudo checkinstall

все работает!!!

Итак, мои вопросы:

  • Зависит ли этот модуль от некоторых других модулей ядра?

    Да, следующая команда говорит вам:

    modinfo ath9k

  • Если так, где информация об этом материале?

    Загляните на wireless.kernel.org/en/users/Drivers/ath9k.

  • Есть ли правильный способ установить этот модуль ядра соотв. Водитель?

    Вероятно, получив опыт в компиляции ядра:-).

Спасибо

2 ответа

Для тех, кто может наткнуться на этот вопрос, как я только что сделал:

Это оставляет меня со следующими "ОШИБКАМИ пропущенных прототипов":

cc -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer   -c -o conf.o conf.c
cc -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer   -c -o zconf.tab.o zconf.tab.c
cc   conf.o zconf.tab.o   -o conf

Эти строки на самом деле не являются ошибками. make команда запускает кучу других команд, как указано в файле с именем Makefile, По умолчанию, make запишет эти команды в терминал перед запуском. Например, если Makefile говорит бежать foo затем bar затем bazДай напишу foo в терминал, затем запустите foo команда; тогда напишу bar в терминал и беги bar; тогда напишу baz в терминал и беги baz,

В этом случае те cc строки - это команды, которые make было сказано, чтобы бежать Makefile, cc Команда запустит системный компилятор C по умолчанию, который, вероятно, является GCC. Те вещи, начинающиеся с - это параметры, которые влияют на поведение компилятора C.

Для таких компиляторов, как GCC, параметры начинаются с-W скажите компилятору выдавать предупреждения, когда он видит код, который технически допустим, но часто является плохой идеей (например, некоторый шаблон в коде, который, как думают многие программисты, будет действовать каким-то образом, но фактически будет действовать другим).

В этом случае -Wall включает многие (не совсем все!) предупреждения GCC. -Wmissing-prototypes а также -Wstrict-prototypes включить дополнительные предупреждения, чтобы определить проблемы, связанные с функцией прототипа функции C.

Следовательно, эти сообщения действительно говорят нам, что cc команда должна быть запущена, и что (среди прочего) она должна предупредить нас, если думает, что код хитрый; в частности, если прототипы функций используются не по назначению.

Предупреждения GCC выглядят примерно так:

main.c: In function ‘main’:
main.c:1:5: warning: traditional C rejects ISO C style function definitions [-Wtraditional]
 int main(int argc, char **argv) {
     ^

Поскольку в вашем выводе ничего подобного не появляется, предупреждений или ошибок не возникало; даже с этими дополнительными -W проверки включены.

Я бы порекомендовал установить более новое ядро, хотя оно должно работать корректно, начиная с 2.6.30 или подобной версии. Я использую это как AP в ядре 3.13.0-24-generic, хотя я знаю, что лучше установить новое ядро. Я использовал это на http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.18.12-vivid/ или подобный (пока мой HDD не сломался). Я могу дать вам детали того, что использовалось в упомянутом ядре.

  1. зависит: ath9k_hw,mac80211,ath9k_common,cfg80211,ath
  2. Я видел информацию и аппаратные возможности где-то, но я не помню, где это было
  3. Это точно есть:) Ищите Compat-Wireless
Другие вопросы по тегам