ndiswrapper и Broadcom BCM43231 [SOLVED]
Всем привет!
Купил себе usb wi-fi адаптер Netgear WNA3100. в windows 7 работает отлично, никаких проблем. начал настраивать в Gentoo, и вот тут-то все и встало: драйверов в ядре под этот чип нет, сторонних тоже. несколько часов гугления дали только информацию что единственный способ - скачать исходники с sourceforge.net, подправить их слегка (там указано что для моего адаптера необходимо подправить конкретный файл и написано конкретно как править http://sourceforge.net/apps/mediawiki/ndiswrapper/index.php?title=Netgear_WNA3100), затем собрать, и уже только потом натравливать ndiswrapper на виндовый драйвер.
Проблема возникла на этапе сборки ndiswrapper из исходников:
localhost ndiswrapper-1.56 # make make -C driver make[1]: Вход в каталог `/home/alex/ndiswrapper-1.56/driver' make -C /usr/src/linux-3.0.6-gentoo M=/home/alex/ndiswrapper-1.56/driver make[2]: Вход в каталог `/usr/src/linux-3.0.6-gentoo' CC [M] /home/alex/ndiswrapper-1.56/driver/loader.o /home/alex/ndiswrapper-1.56/driver/loader.c:834:2: ошибка: неизвестное поле ‘ioctl’ в инициализаторе /home/alex/ndiswrapper-1.56/driver/loader.c:834:2: предупреждение: несовместимый тип указателя в инициализации make[3]: *** [/home/alex/ndiswrapper-1.56/driver/loader.o] Ошибка 1 make[2]: *** [_module_/home/alex/ndiswrapper-1.56/driver] Ошибка 2 make[2]: Выход из каталога `/usr/src/linux-3.0.6-gentoo' make[1]: *** [modules] Ошибка 2 make[1]: Выход из каталога `/home/alex/ndiswrapper-1.56/driver' make: *** [all] Ошибка 2
После еще часа нашел что возможно надо пропатчить исходники. Скачал 2 патча по ссылкам отсюда http://sourceforge.net/projects/ndiswrapper/forums/forum/323168/topic/3965193 пропатчил как там написано, но результата это тоже не дало.
Пробовал ставить ndiswrapper из portage, и оно ставится, но этот вариант не содержит фикса для моего адаптера. однако заметил, что в /usr/portage/net-wireless/ndiswrapper/files лежат несколько патчей.
в связи со всем этим 2 вопроса:
1) можно ли как то поправить исходник ndiswrapper из portage? скачать его куда нить, подправить и подсунуть emerge
2) как все таки заставить собраться ndiswrapper из исходников с sourceforge.net? может можно как то использовать те самые патчи которые есть в portage? если можно, то какой командой и как конкретно надо патчить?
если кто то с подобным сталкивался, очень прошу помочь! задолбался уже нещадно..
из lsusb:
Bus 001 Device 002: ID 0846:9020 NetGear, Inc. WNA3100(v1) Wireless-N 300 [Broadcom BCM43231]
- Для комментирования войдите или зарегистрируйтесь
Правильный вариант - дописать
Правильный вариант - дописать ебилд из portage что бы он применял нужные вам патчи и запостить результат в багзилу или если для предыдущего способа не хватает сил/времени/квалификации, то запостить в багзилу вашу просьбу и ссылки на патчи, а потом подождать результата(может даже кто-нибудь из этого форума сварганит)
Если ждать не хочется, то можно наложить ваши патчи на версию из portage не правя ebuild. Для этого почитайте man ebuild. Это комманда позволяет выполнить сборку и установку пошагово, т.е. на нужном этапе вы наложите свои патчи, а потом дадите комаду дособрать и установить.
спасибо за ваш ответ, но мне
спасибо за ваш ответ, но мне кажется вы меня не совсем правильно поняли. смысл в чем: взять исходники ndiswrapper и поправить там руками файл ntoskernel_io.c, и с этим измененным файлом собрать.
вот можно ли как то поправить исходники в portage?
или, как правильно собрать с помощью make исходники с sourceforge? в таком виде как они там есть, они не собираются, ошибку постил выше.
Я же предложил два варианта
Я же предложил два варианта 1) разобраться в синтаксисе ебилдов, что бы emerge сам применил ваши патчи.
2) использую команду ebuild сделать сборку пошагово, например до unpack, потом применить патчи вручную, а потом продолжить сборку
(*)
Во втором пункте _SerEga_ говорит о http://www.gentoo.org/doc/ru/handbook/handbook-x86.xml?part=3&chap=6
(см также
man ebuild
)Второй пункт легче быстрее проще первого
спасибо за то что точно
спасибо за то что точно послали куда нужно)
получилось достать из portage исходники, подправить и установить.
в конечном итоге, сумел заставить работать свой адаптер Netgear WNA3100 с помощью ndiswrapper и wpa_supplicant) так что рад безмерно.
если кому то понадобится, то вот примерный список моих действий:
1) используя ebuild достал исходники ndiswrapper из portage
2) подкорректировал их, в соответствии с sourceforge.net (ссылку на конкретные изменения в исходном коде для адаптера Netgear WNA3100 давал выше)
3) с помощью того же ebuild скомпилировал и установил эту измененную версию ndiswrapper
4) ndiswrapper -i путь/до/драйвера_из_windows.inf
ndiswrapper -l показал что драйвер нормально установлен
5) проделал пункты 1-3 для wpa_supplicant. пришлось лезть и сюда по информации отсюда: http://sourceforge.net/apps/mediawiki/ndiswrapper/index.php?title=WPA_HowTo
без этого у меня не работало подключение до моей точки доступа, шифрование стоит WPA-PSK
правда возможно добавлять в исходник файл .config было необязательно, я не проверил что будет если только подправить конфиг файл wpa_supplicant
6) после всех этих действий стало возможно нормальное подключение интерфейса к точке доступа с помощью wpa_supplicant и dhcpcd
теперь другой вопрос: как заблокировать все изменения относительно пакетов ndiswrapper и wpa_supplicant? так чтобы он даже перекомпиливать их не хотел, и вообще не трогал. Ведь если он их перекомпилит, все придется делать заново. я прав?
Да, правы. Как запретить
Да, правы. Как запретить emerge трогать пакеты не знаю, возможно помогут маневры с package.mask, package.provided и еще есть файл куда можно дописать свои скрипты на bash которые будут выполнятся при сборке.(забыл его название)
лучше отписаться в багзилу, что бы сделали исправленный ebuild.
Решаем так: Пишем-таки свой
Решаем так:
Пишем-таки свой ебилд для своего варианта пакета. Кладем его в локальный оверлей. Даем ему уникальный, не пересекающийся с портаге номер версии. Задаем приоритет для нашего локального оверлея выше, чем приоритет репозитория портаге. Либо маскируем пакеты, лежащие в портаге. И все.
Пользуясь моментом, хочу передать привет друзьям, которые также пользуются "Моментом"
(*)
Не напомните, как именно это делается?
Так вроде же по умолчанию
Так вроде же по умолчанию так, нет?
добавлю немного инфы, кому
добавлю немного инфы, кому интересно, наверно будет полезной.
Сегодня наконец то пересобрал мир. Естесственно, portage мне обновил как ndiswrapper, так и wpa_supplicant. В их исходники я не лазил в этот раз. решил посмотреть что будет если он установит мне так. Итог такой: после обновления сначала в ifconfig вообще не было интерфейса wlan0, но это решилось очень просто - /etc/init.d/net.wlan0 start. после чего появляется интерфейс, и соединение сразу устанавливается.
из этого делаю вывод, что те шаманства с исходниками были не нужны, видимо самое важное было установить правильный драйвер ndiswrapper'ом и правильно написать конфиг /etc/wpa_supplicant/wpa_supplicant.conf, в котором точно указать тип шифрования (в моем случае это WPA+TKIP). вот сам конфиг wpa_supplicant.conf:
а вот /etc/conf.d/net:
после добавления net.wlan0 в автозагрузку, все теперь даже лучше чем было раньше)
Надеюсь, это кому-нибудь поможет)
Всем спасибо за ваши ответы)
>сначала в ifconfig вообще не
>сначала в ifconfig вообще не было интерфейса wlan0
ifconfig -a и iwconfig тебя спасут в следующий раз.
Ubuntu is an African Word that means "Gentoo is too hard for me"
спасибо за супер совет, кэп.
спасибо за супер совет, кэп. если я говорю что интерфейса не было - значит его и там не было.
До сего момента мы не знали,
До сего момента мы не знали, что вы проверяли "ifconfig -a", а не "ifconfig". Да и скрипты net.* подгрузкой модулей не занимаются.