wi-fi драйвер

Настройка, программирование, распределённые вычисления

Модераторы: Olej, bellic, vikos

andrey874
Активист
Сообщения: 12
Зарегистрирован: 19 фев 2015, 18:22
Контактная информация:

wi-fi драйвер

Непрочитанное сообщение andrey874 » 19 фев 2015, 18:33

здравствуйте! скажите кто сталкивался с этой проблемой и её решением-в чём ошибка? 3 дня устанавливаю root@kali:~# cd Desktop
root@kali:~/Desktop# ls
BCM43142 BCM43142-amd64 (2).tar.gz BCM43142-amd64.tar.gz iceweasel.desktop
root@kali:~/Desktop# cd BCM43142
root@kali:~/Desktop/BCM43142# make
KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
make[1]: Entering directory `/usr/src/linux-headers-3.18.0-kali1-amd64'
CFG80211 API is prefered for this kernel version
Using CFG80211 API
LD /root/Desktop/BCM43142/built-in.o
CC [M] /root/Desktop/BCM43142/src/shared/linux_osl.o
CC [M] /root/Desktop/BCM43142/src/wl/sys/wl_linux.o
/root/Desktop/BCM43142/src/wl/sys/wl_linux.c: In function ‘wl_alloc_linux_if’:
/root/Desktop/BCM43142/src/wl/sys/wl_linux.c:1348:64: error: macro "alloc_netdev" requires 4 arguments, but only 3 given
/root/Desktop/BCM43142/src/wl/sys/wl_linux.c:1348:8: error: ‘alloc_netdev’ undeclared (first use in this function)
/root/Desktop/BCM43142/src/wl/sys/wl_linux.c:1348:8: note: each undeclared identifier is reported only once for each function it appears in
make[4]: *** [/root/Desktop/BCM43142/src/wl/sys/wl_linux.o] Ошибка 1
make[3]: *** [_module_/root/Desktop/BCM43142] Ошибка 2
make[2]: *** [sub-make] Ошибка 2
make[1]: *** [all] Ошибка 2
make[1]: Leaving directory `/usr/src/linux-headers-3.18.0-kali1-amd64'
make: *** [all] Ошибка 2
root@kali:~/Desktop/BCM43142# скачал -распаковал-зашёл в этот каталог через терминал-ввёл make,,,,,и вы сами видите что вышло

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: wi-fi драйвер

Непрочитанное сообщение Olej » 20 фев 2015, 01:41

andrey874 писал(а):здравствуйте! скажите кто сталкивался с этой проблемой и её решением-в чём ошибка? 3 дня устанавливаю
Элементарно, Ватсон!
:lol:

Кстати, об этом здесь на форуме описано: Wi-Fi Broadcom

Но идея то, коротко, в том, что прототипы (синтаксис) 2-х вызовов сетевого API начиная с ядра 3.17 поменялись.
Поменялись синтаксически.
И теперь нужно взять исходный код модуля-драйвера и поменять:

Код: Выделить всё

dev = alloc_netdev(sizeof(priv_link_t), intf_name, ether_setup);
поменять на

Код: Выделить всё

dev = alloc_netdev(sizeof(priv_link_t), intf_name, NET_NAME_ENUM, ether_setup);
+

Код: Выделить всё

cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
поменять на

Код: Выделить всё

cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, NULL, GFP_KERNEL);
Дистрибьюторы (майнтейнеры) дистрибутивов этого не заметили, и тупо продолжают тулить коды старых драйверов.

А мне лень обращать их внимание на такие мелочи. :lol:

P.S. Если вам не лень, то вы можете этим заняться. ;-)

andrey874
Активист
Сообщения: 12
Зарегистрирован: 19 фев 2015, 18:22
Контактная информация:

Re: wi-fi драйвер

Непрочитанное сообщение andrey874 » 20 фев 2015, 11:14

здравствуйте! если у вас будет время напишите как мне это сделать поменять коды....просто я ещё мало знаком с этой системой....cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);-такого у меня в wl_linux.c вообще нету

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: wi-fi драйвер

Непрочитанное сообщение Olej » 20 фев 2015, 12:02

andrey874 писал(а):здравствуйте! если у вас будет время напишите как мне это сделать поменять коды....просто я ещё мало знаком с этой системой....cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);-такого у меня в wl_linux.c вообще нету
Как сделать?

1. Ну, модуль ядра нужно собрать по-новой (драйвер)...
Но вы это уже начали делать ... значит знаете как и зачем это делаете?

2. Я так понимаю, что драйвер вы скачали последний? ... на странице Broadcom 802.11 Linux STA driver...
32-bit driver 6.30.223.141 09/10/2013 Download Zip File 1.1MB
64-bit driver 6.30.223.141 09/10/2013 Download Zip File 1.2MB
README.txt 6.30.223.141 09/10/2013 Download Text File 14KB
3. Теперь 1-ю правку делаете в файле wl_linux.c:

Код: Выделить всё

#if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24))
        dev = MALLOC(wl->osh, sizeof(struct net_device));
...
#elif (LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0))
        dev = alloc_netdev(sizeof(priv_link_t), intf_name, ether_setup);
...
#else
        dev = alloc_netdev(sizeof(priv_link_t), intf_name, NET_NAME_ENUM, ether_setup);
...
4. А 2-ю правку - в файле wl_cfg80211_hybrid.c (в другом файле исходников):

Код: Выделить всё

#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0)
                        cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, GFP_KERNEL);
#else
                        cfg80211_ibss_joined(ndev, (u8 *)&wl->bssid, NULL, GFP_KERNEL);
#endif
5. Компилируете и наслаждаетесь работой своего Broadcom :lol:

P.S. Заметьте, что если вы будете обновлять версию или хотя бы модификацию ядра (из репозитария пакетной системы) - вам необходимо будет пересобирать драйвер заново.

andrey874
Активист
Сообщения: 12
Зарегистрирован: 19 фев 2015, 18:22
Контактная информация:

Re: wi-fi драйвер

Непрочитанное сообщение andrey874 » 20 фев 2015, 12:13

по написанному понятен ход....только драйвер я скачал вот этот-http://www....md64.tar.gz вот что я делал Пробуйте скачать архив отсюда:
http://www....md64.tar.gz
Я уже пропатчил исходники под вашу ось.
Распакуйте и зайдите терминалом в получившийся каталог BCM43142
Дайте команду make внутри этого каталога
И далее по списку:
cp wl.ko /lib/modules/`uname -r`/kernel/net/wireless/
depmod
rmmod bcma
echo "blacklist bcma" >> /etc/modprobe.d/blacklist.conf
modprobe wl

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: wi-fi драйвер

Непрочитанное сообщение Olej » 20 фев 2015, 13:02

andrey874 писал(а):по написанному понятен ход....только драйвер я скачал вот этот-http://www....md64.tar.gz вот что я делал Пробуйте скачать архив отсюда:
http://www....md64.tar.gz
Ссылка битая!
Вставлять ссылки нужно через тег <URL> (кнопка над экраном редактирования) ... а не просто вкопируя www-каракули ;-)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: wi-fi драйвер

Непрочитанное сообщение Olej » 20 фев 2015, 17:31

andrey874 писал(а): Дайте команду make внутри этого каталога
И далее по списку:
cp wl.ko /lib/modules/`uname -r`/kernel/net/wireless/
depmod
rmmod bcma
echo "blacklist bcma" >> /etc/modprobe.d/blacklist.conf
modprobe wl
А это традиционная установка модуля в системе Linux.

Могу только подсказать в уточнение:

1.После того, как вы соберёте модуль (если соберёте ;-) ), прежде чем его устанавливать "на постоянку" depmod, сначала лучше просто проверьте то что вы собрали однократной загрузкой, в каталоге где вы делали make выполняете:

Код: Выделить всё

# insmod wl.ko

Проверяете что драйвер нормально встал:

Код: Выделить всё

$ lsmod | grep wl
wl                   6363567  0
cfg80211              493592  1 wl
Проверяете работу нового созданного WiFi интерфейса, что-то типа:

Код: Выделить всё

$ ping -I wlo1 8.8.8.8
PING 8.8.8.8 (8.8.8.8) from 192.168.1.21 wlo1: 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=44 time=80.6 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=44 time=81.3 ms

(вы как можете видеть - это я с протокола реальной загрузки драйвера копирую, а не по памяти).

2. И если всё нормально работает (поработайте через загруженный модуль час-другой) - то устанавливайте его как написано в вашей инструкции.
Модуль bcma нужно удалять и заносить в blacklist только если чип неправильно определился и этот модуль загружен (об этом показано в теме форум про Broadcom, которую я показывал выше).

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: wi-fi драйвер

Непрочитанное сообщение Olej » 20 фев 2015, 17:47

А в ядре 3.18 - я вас поздравляю:

Код: Выделить всё

[Olej@modules hybrid_wl]$ uname -a
Linux modules.localdomain 3.18.5-101.fc20.x86_64 #1 SMP Mon Feb 2 20:58:23 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

[Olej@modules hybrid_wl]$ make
KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`
make[1]: Вход в каталог `/usr/src/kernels/3.18.5-101.fc20.x86_64'
CFG80211 API is prefered for this kernel version
Using CFG80211 API
  LD      /home/Olej/2015-WORK/devices/hybrid_wl/built-in.o
  CC [M]  /home/Olej/2015-WORK/devices/hybrid_wl/src/shared/linux_osl.o
  CC [M]  /home/Olej/2015-WORK/devices/hybrid_wl/src/wl/sys/wl_linux.o
  CC [M]  /home/Olej/2015-WORK/devices/hybrid_wl/src/wl/sys/wl_iw.o
  CC [M]  /home/Olej/2015-WORK/devices/hybrid_wl/src/wl/sys/wl_cfg80211_hybrid.o
...
/home/Olej/2015-WORK/devices/hybrid_wl/src/wl/sys/wl_cfg80211_hybrid.c:2015:3: ошибка: несовместимый тип аргумента 3 функции «cfg80211_inform_bss»
   (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);
   ^
...
/home/Olej/2015-WORK/devices/hybrid_wl/src/wl/sys/wl_cfg80211_hybrid.c:2015:3: ошибка: слишком мало аргументов в вызове функции «cfg80211_inform_bss»
   (const u8 *)notify_ie, notify_ielen, signal, GFP_KERNEL);
...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: wi-fi драйвер

Непрочитанное сообщение Olej » 20 фев 2015, 18:02

Olej писал(а):А в ядре 3.18 - я вас поздравляю:
Только разгребать я это буду уже не здесь, а продолжая тему Wi-Fi Broadcom.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: wi-fi драйвер

Непрочитанное сообщение Olej » 20 фев 2015, 18:29

Olej писал(а):
Olej писал(а):А в ядре 3.18 - я вас поздравляю:
Только разгребать я это буду уже не здесь, а продолжая тему Wi-Fi Broadcom.
Я там всё сделал и показал, для:

Код: Выделить всё

[Olej@modules ~]$ uname -a
Linux modules.localdomain 3.18.5-101.fc20.x86_64 #1 SMP Mon Feb 2 20:58:23 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Вот новый линк WiFi:

Код: Выделить всё

[Olej@modules ~]$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether a0:1d:48:f4:93:5c brd ff:ff:ff:ff:ff:ff
3: wlo1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DORMANT group default qlen 1000
    link/ether 34:23:87:d6:85:0d brd ff:ff:ff:ff:ff:ff
[Olej@modules ~]$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.1     0.0.0.0         UG    1024   0        0 wlo1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 wlo1
Сейчас пишу сюда через этот новый WiFi.

Ответить

Вернуться в «Сети»

Кто сейчас на конференции

Сейчас этот форум просматривают: FAST WebCrawler [Crawler] и 11 гостей