LINUX.ORG.RU

compat-wireless не собирается


0

1

Доброго всем!
Проблема обстоит вот в чём:
Есть самосборное ядро 2.6.38.2-8.dsdt1201n.fc14.i686.PAE на RFR14 (Fedora), но в 2.6.38 сломали драйвер ath9k (на дистрибутивном из F15 тоже не работает wi-fi, чип AR9285). Поэтому было принято решение установить compat-wireless, отмеченный как стабильный, взятый из ядра 2.6.37 (на ядре 2.6.37 моя карта wi-fi работает отлично). Но в ходе компиляции вылетает ошибка. Порядок действий таков:

$ ./scripts/driver-select ath9k
Processing new driver-select request...
Backing up makefile: Makefile.bk
Backup exists: Makefile.bk
Backup exists: Makefile.bk
Backup exists: Makefile.bk
Backing up makefile: drivers/net/wireless/Makefile.bk
Backing up makefile: drivers/net/wireless/ath/Makefile.bk
Backing up makefile: net/wireless/Makefile.bk
Backing up makefile: drivers/net/Makefile.bk
Backing up makefile: drivers/ssb/Makefile.bk
Backing up makefile: drivers/misc/eeprom/Makefile.bk
Backup exists: Makefile.bk

$ make
...
/home/carasin/Distrib/Drivers/compat-wireless/compat-wireless-2.6.37-4-sn/net/wireless/util.c: В функции ‘cfg80211_change_iface’:
/home/carasin/Distrib/Drivers/compat-wireless/compat-wireless-2.6.37-4-sn/net/wireless/util.c:790:2: ошибка: неявная декларация функции ‘br_port_exists’
make[3]: *** [/home/carasin/Distrib/Drivers/compat-wireless/compat-wireless-2.6.37-4-sn/net/wireless/util.o] Ошибка 1
make[2]: *** [/home/carasin/Distrib/Drivers/compat-wireless/compat-wireless-2.6.37-4-sn/net/wireless] Ошибка 2
make[1]: *** [_module_/home/carasin/Distrib/Drivers/compat-wireless/compat-wireless-2.6.37-4-sn] Ошибка 2
make[1]: Выход из каталога `/usr/src/kernels/2.6.38.2-8.dsdt1201n.fc14.i686.PAE'
make: *** [modules] Ошибка 2
Смотрим в /home/carasin/Distrib/Drivers/compat-wireless/compat-wireless-2.6.37-4-sn/net/wireless/util.c, видим такое:
789|	/* if it's part of a bridge, reject changing type to station/ibss */
790|	if (br_port_exists(dev) &&
791|	    (ntype == NL80211_IFTYPE_ADHOC ||
792|	     ntype == NL80211_IFTYPE_STATION ||
793|	     ntype == NL80211_IFTYPE_P2P_CLIENT))
794|		return -EBUSY;
Что бы это могло значить (ни разу не кодер, код не понимаю) и как решить эту проблему?
P.S.: Пробовал и compat-wireless, и compat-wireless-sn - результат один и тот же. Вот немного инфы:
$ uname -a
Linux berlogue 2.6.38.2-8.dsdt1201n.fc14.i686.PAE #1 SMP Mon Mar 28 21:12:32 MSD 2011 i686 i686 i386 GNU/Linux

$ yum list installed gcc
Установленные пакеты
gcc.i686               4.5.1-4.fc14               @fedora

★★★★★

Последнее исправление: carasin (всего исправлений: 1)

compat-wireless как это ни странно привязан к интерфейсу ядра, так что если он от 37 версии, то он ни разу не обязан собираться с 38 версией.

blind_oracle ★★★★★
()
Ответ на: комментарий от blind_oracle

Описание на их сайте, а также ридми в тарболе говорят, что можно использовать на любых ядрах 2.6.24 и новее. Тем более, ошибка по-русски гласит:

/home/carasin/Distrib/Drivers/compat-wireless/compat-wireless-2.6.37-4-sn/net/wireless/util.c:790:2: ошибка: неявная декларация функции ‘br_port_exists’

То есть компилятор как бэ намекает, что дело в этой функции, а не в невозможности привязать драйвер к ядру. С другой стороны, народ, посоветовавший мне compat-wireless, удачно применял произвольно выдернутые в определённый момент из git'а снапшоты к, опять-таки, произвольным версиям ядра.

carasin ★★★★★
() автор топика
Ответ на: комментарий от Komintern

Как вариант можно, но не сейчас. Сначала я хочу разобраться с compat-wireless, ибо этот вариант более привлекателен, т.к. затрагивает только нужное ядро (из-под которого производится сборка). madwifi же, насколько я понимаю, будет подменять собой драйвера во всех ядрах. Или не так?

carasin ★★★★★
() автор топика
Ответ на: комментарий от carasin

Компилятор кагбэ намекает, что функции br_port_exists в интерфейсе твоего ядра НЕТУ. В более поздних compat-wireless это обходят так:
http://www.spinics.net/lists/linux-wireless/msg63903.html

В общем либо юзай последний compat-wireless, в надежде что там починят твой вайфай, либо откатывай ядро на .37

P.S.
Кстати у меня на ноутбуке карточка AR9285 (ath9k), ядро 2.6.38.1, работает в режиме точки доступа (hostapd) c WPA2, проблем никаких. В чем его сломанность проявляется?

blind_oracle ★★★★★
()
Ответ на: комментарий от blind_oracle

blind_oracle

Кстати у меня на ноутбуке карточка AR9285 (ath9k), ядро 2.6.38.1, работает в режиме точки доступа (hostapd) c WPA2, проблем никаких. В чем его сломанность проявляется?

Вот топик с описанием моей проблемы.

carasin ★★★★★
() автор топика

Всем спасибо. Скомпилилось нормально compat-wireless версий 2011-02-10 - 2011-02-16. Действительно, привязка к определённым версиям ядра имеет место. Поставил 2011-02-16 - заработало!
Ещё раз всех благодарю.

carasin ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.