Как мне установить драйвер 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 не сломался). Я могу дать вам детали того, что использовалось в упомянутом ядре.
- зависит: ath9k_hw,mac80211,ath9k_common,cfg80211,ath
- Я видел информацию и аппаратные возможности где-то, но я не помню, где это было
- Это точно есть:) Ищите Compat-Wireless