Проблемы с Wi-Fi

Здравствуйте!

После первой загрузки не создаётся Wi-Fi точка доступа.
В системном логе присутствуют строки:

r8188eu 1-1.5:1.0: Direct firmware load failed with error -2
r8188eu 1-1.5:1.0: Falling back to user helper
SIOCSIFFLAGS: Operation not permitted

Вот доп. информация:

root@wirenboard:~# lsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0bda:8179 Realtek Semiconductor Corp.

root@wirenboard:~# ifconfig wlan0
wlan0 Link encap:Ethernet HWaddr 44:33:4c:cc:dc:45
inet addr:192.168.42.1 Bcast:192.168.42.255 Mask:255.255.255.0
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

root@wirenboard:~# iwconfig wlan0
wlan0 unassociated Nickname:"<WIFI@REALTEK>"
Mode:Auto Frequency=2.412 GHz Access Point: Not-Associated
Sensitivity:0/0
Retry:off RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0

root@wirenboard:~# ifconfig wlan0 up
[ 697.520000] r8188eu 1-1.5:1.0: Direct firmware load failed with error -2
[ 697.530000] r8188eu 1-1.5:1.0: Falling back to user helper
SIOCSIFFLAGS: Operation not permitted

root@wirenboard:~# hostapd /etc/hostapd
Configuration file: /etc/hostapd
rfkill: Cannot open RFKILL control device
[ 811.160000] Loading kernel module for a network device with CAP_SYS_MODULE (deprecated). Use CAP_NET_ADMIN and alias netdev- instead.
[ 811.230000] Loading kernel module for a network device with CAP_SYS_MODULE (deprecated). Use CAP_NET_ADMIN and alias netdev- instead.
Could not read interface flags: No such device
[ 811.310000] Loading kernel module for a network device with CAP_SYS_MODULE (deprecated). Use CAP_NET_ADMIN and alias netdev- instead.
Could not read interface flags: No such device
nl80211 driver initialization failed.

Кстати, в образе по-умолчанию почему-то не было утилиты hostapd.
Пробовал обновить всё, не помогло.

Кто знает как настроить Wi-Fi хоть в каком-нибудь режиме?

Вот так же часть из консоли с отладочного порта, тоже возможно имеет отношение к делу:

[ ok ] Setting kernel variables …done.
[…] Configuring network interfaces…udhcpc (v1.20.2) started
[ 57.870000] smsc95xx 1-1.1:1.0 eth0: hardware isn’t capable of remote wakeup
[ 57.880000] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 57.890000]
[ 57.890000] =============================================
[ 57.890000] [ INFO: possible recursive locking detected ]
[ 57.890000] 3.13.0-imxv5-x0.1 #52 Tainted: G C
[ 57.890000] ---------------------------------------------
[ 57.890000] ip/1803 is trying to acquire lock:
[ 57.890000] (pmutex){+.+…}, at: [<bf0a7638>] usbctrl_vendorreq.constprop.8+0xa4/0x330 [r8188eu]
[ 57.890000]
[ 57.890000] but task is already holding lock:
[ 57.890000] (pmutex){+.+…}, at: [<bf0b96b8>] netdev_open+0x1c/0x3c [r8188eu]
[ 57.890000]
[ 57.890000] other info that might help us debug this:
[ 57.890000] Possible unsafe locking scenario:
[ 57.890000]
[ 57.890000] CPU0
[ 57.890000] ----
[ 57.890000] lock(pmutex);
[ 57.890000] lock(pmutex);
[ 57.890000]
[ 57.890000] *** DEADLOCK ***
[ 57.890000]
[ 57.890000] May be due to missing lock nesting notation
[ 57.890000]
[ 57.890000] 2 locks held by ip/1803:
[ 57.890000] #0: (rtnl_mutex){+.+.+.}, at: [<c0359644>] rtnetlink_rcv+0xc/0x24
[ 57.890000] #1: (pmutex){+.+…}, at: [<bf0b96b8>] netdev_open+0x1c/0x3c [r8188eu]
[ 57.890000]
[ 57.890000] stack backtrace:
[ 57.890000] CPU: 0 PID: 1803 Comm: ip Tainted: G C 3.13.0-imxv5-x0.1 #52
[ 57.890000] [<c0014554>] (unwind_backtrace+0x0/0xf0) from [<c0011d7c>] (show_stack+0x10/0x14)
[ 57.890000] [<c0011d7c>] (show_stack+0x10/0x14) from [<c004e214>] (__lock_acquire+0x140c/0x1a64)
[ 57.890000] [<c004e214>] (__lock_acquire+0x140c/0x1a64) from [<c004eda8>] (lock_acquire+0x9c/0x104)
[ 57.890000] [<c004eda8>] (lock_acquire+0x9c/0x104) from [<c0486264>] (mutex_lock_interruptible_nested+0x50/0x340)
[ 57.890000] [<c0486264>] (mutex_lock_interruptible_nested+0x50/0x340) from [<bf0a7638>] (usbctrl_vendorreq.constprop.8+0xa4/0x330 [r8188eu])
[ 57.890000] [<bf0a7638>] (usbctrl_vendorreq.constprop.8+0xa4/0x330 [r8188eu]) from [<bf0a7b94>] (usb_write16+0x4c/0xac [r8188eu])
[ 57.890000] [<bf0a7b94>] (usb_write16+0x4c/0xac [r8188eu]) from [<bf052624>] (_rtw_write16+0x44/0xa4 [r8188eu])
[ 57.890000] [<bf052624>] (_rtw_write16+0x44/0xa4 [r8188eu]) from [<bf0a5fa4>] (rtl8188eu_hal_init+0x25c/0xdc8 [r8188eu])
[ 57.890000] [<bf0a5fa4>] (rtl8188eu_hal_init+0x25c/0xdc8 [r8188eu]) from [<bf08dd7c>] (rtw_hal_init+0x20/0xfc [r8188eu])
[ 57.890000] [<bf08dd7c>] (rtw_hal_init+0x20/0xfc [r8188eu]) from [<bf0b92f4>] (_netdev_open+0x90/0x438 [r8188eu])
[ 57.890000] [<bf0b92f4>] (_netdev_open+0x90/0x438 [r8188eu]) from [<bf0b96c0>] (netdev_open+0x24/0x3c [r8188eu])
[ 57.890000] [<bf0b96c0>] (netdev_open+0x24/0x3c [r8188eu]) from [<c034c80c>] (__dev_open+0xb0/0x114)
[ 57.890000] [<c034c80c>] (__dev_open+0xb0/0x114) from [<c034ca78>] (__dev_change_flags+0x88/0x160)
[ 57.890000] [<c034ca78>] (__dev_change_flags+0x88/0x160) from [<c034cb70>] (dev_change_flags+0x18/0x48)
[ 57.890000] [<c034cb70>] (dev_change_flags+0x18/0x48) from [<c0359bbc>] (do_setlink+0x374/0x7f8)
[ 57.890000] [<c0359bbc>] (do_setlink+0x374/0x7f8) from [<c035acb4>] (rtnl_newlink+0x2b4/0x450)
[ 57.890000] [<c035acb4>] (rtnl_newlink+0x2b4/0x450) from [<c035a964>] (rtnetlink_rcv_msg+0x158/0x1f4)
[ 57.890000] [<c035a964>] (rtnetlink_rcv_msg+0x158/0x1f4) from [<c0366b4c>] (netlink_rcv_skb+0xac/0xc0)
[ 57.890000] [<c0366b4c>] (netlink_rcv_skb+0xac/0xc0) from [<c0359650>] (rtnetlink_rcv+0x18/0x24)
[ 57.890000] [<c0359650>] (rtnetlink_rcv+0x18/0x24) from [<c0366240>] (netlink_unicast+0xf8/0x15c)
[ 57.890000] [<c0366240>] (netlink_unicast+0xf8/0x15c) from [<c0366604>] (netlink_sendmsg+0x2bc/0x65c)
[ 57.890000] [<c0366604>] (netlink_sendmsg+0x2bc/0x65c) from [<c0335244>] (sock_sendmsg+0x8c/0xac)
[ 57.890000] [<c0335244>] (sock_sendmsg+0x8c/0xac) from [<c033608c>] (___sys_sendmsg.part.23+0x268/0x278)
[ 57.890000] [<c033608c>] (___sys_sendmsg.part.23+0x268/0x278) from [<c0337498>] (__sys_sendmsg+0x48/0x78)
[ 57.890000] [<c0337498>] (__sys_sendmsg+0x48/0x78) from [<c000ef40>] (ret_fast_syscall+0x0/0x44)
Sending discover…
[ 58.290000] r8188eu 1-1.5:1.0: Direct firmware load failed with error -2
[ 58.300000] r8188eu 1-1.5:1.0: Falling back to user helper
[ 59.380000] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 59.390000] smsc95xx 1-1.1:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1
S

DreamNik, это проблемы с firmware для чипа.
Надо взять отсюда https://github.com/lwfinger/rtl8188eu/blob/master/rtl8188eufw.bin и положить в /lib/firmware/rtlwifi/

Где вы брали карту памяти? Записывали сами или покупали у нас?

Не помогло, но на что-то повлияло:

  1. DEADLOCK по прежнему присутствует в логе
  2. ошибока при “ifconfig wlan0 up” исчезла
  3. точки доступа по прежнему не видно
  4. hostapd не стартует:
Stopping advanced IEEE 802.11 management: hostapd.
Starting advanced IEEE 802.11 management: hostapd[  387.960000] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
 failed!

Может с установкой что не так сделал? При установке он ругался на то что хочет перехаписать конфигурационный файл, я оставил вариант от пакета “wb-configs”.

  1. “iw” в упор не видит устройства:
root@wirenboard:~# iw list
root@wirenboard:~# iw dev wlan0 info
command failed: No such device (-19)

а вот iwconfig видит:

root@wirenboard:~# iwconfig wlan0
wlan0     unassociated  Nickname:&quot;&lt;WIFI@REALTEK&gt;&quot;
          Mode:Auto  Frequency=2.412 GHz  Access Point: Not-Associated
          Sensitivity:0/0
          Retry:off   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Записывал “sdcard_20140614.img” на свою карту по инструкции.

Может работа с Wi-Fi каким-то другим образом осуществляется, не так как я пытаюсь?

Вот лог hostapd:
root@wirenboard:/# hostapd -dd /etc/hostapd.conf
random: Trying to read entropy from /dev/random
Configuration file: /etc/hostapd.conf
Could not open file /sys/class/net/wlan0/phy80211/name: No such file or directory
rfkill: Cannot open RFKILL control device
nl80211: RFKILL status not available
netlink: Operstate: linkmode=0, operstate=6
nl80211: Set mode ifindex 6 iftype 2 (STATION)
[ 2271.530000] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
nl80211: Failed to set interface 6 to mode 2: -19 (No such device)
nl80211: Try mode change after setting interface down
nl80211: Set mode ifindex 6 iftype 2 (STATION)
nl80211: Failed to set interface 6 to mode 2: -19 (No such device)
nl80211: Interface mode change to 2 from 0 failed
nl80211 driver initialization failed.

Может это как-то связано с тем, что:

root@wirenboard:/# iwlist wlan0 scanning
wlan0     Scan completed :
          Cell 01 - Address: CC:5D:4E:99:27:A8
                    ESSID:&quot;MEZ&quot;
                    Protocol:IEEE 802.11bg
                    Mode:Master
                    Frequency:2.412 GHz (Channel 1)
                    Encryption key:on
                    Bit Rates:54 Mb/s
.......

но

root@wirenboard:/# iw --debug dev wlan0 scan
-- Debug: Sent Message:
--------------------------   BEGIN NETLINK MESSAGE ---------------------------
  [HEADER] 16 octets
    .nlmsg_len = 36
    .nlmsg_type = 19 &lt;0x13&gt;
    .nlmsg_flags = 5 &lt;REQUEST,ACK&gt;
    .nlmsg_seq = 1412691858
    .nlmsg_pid = 2556
  [PAYLOAD] 20 octets
    21 00 00 00 08 00 03 00 06 00 00 00 08 00 2d 00 04 00 !.............-...
    01 00                                                 ..
---------------------------  END NETLINK MESSAGE   ---------------------------
-- Debug: Received Message:
--------------------------   BEGIN NETLINK MESSAGE ---------------------------
  [HEADER] 16 octets
    .nlmsg_len = 56
    .nlmsg_type = 2 &lt;ERROR&gt;
    .nlmsg_flags = 0 &lt;&gt;
    .nlmsg_seq = 1412691858
    .nlmsg_pid = 2556
  [ERRORMSG] 20 octets
    .error = -19 &quot;No such device&quot;
  [ORIGINAL MESSAGE] 16 octets
    .nlmsg_len = 16
    .nlmsg_type = 19 &lt;0x13&gt;
    .nlmsg_flags = 5 &lt;REQUEST,ACK&gt;
    .nlmsg_seq = 1412691858
    .nlmsg_pid = 2556
---------------------------  END NETLINK MESSAGE   ---------------------------
command failed: No such device (-19)

По какой-то причине “netlink” не видит устройство!

У нас новая ревизия wifi (S/N начиная с 300), в инструкции забыли дать ссылку на новый образ - из-за этого и проблемы.

Поставьте вот этот hostapd: https://github.com/contactless/wirenboard/tree/master/contrib/rtl8188_hostapd , всё заработает.

Кривые драйвера от Realtek, в ядре ещё не успели починить для этого чипа. Deadlock из-за того же, на работу не влияет.

Добрый вечер.
Сделал по этой инструкции, но при старте появляется такая ошибка:

[ ok ] Stopping advanced IEEE 802.11 management: hostapd.
[....] Starting advanced IEEE 802.11 management: hostapdioctl[SIOCSIWMODE]: Invalid argument
 failed!

Андрей,
покажите пожалуйста вывод lsmod и lsusb, а также скажите S/N устройства (написан сверху на крышке и внутри корпуса на реле).

кстати, результат того, что должно получиться по упомянутой инструкции, лежит тут: https://github.com/contactless/wirenboard/tree/master/contrib/rtl8188_hostapd

Вроде 124 на крышке, карандашом. Внутри, на реле, не нашел. Покупал где-то в начале ноября.

root@wirenboard:~# lsmod
Module                  Size  Used by
w1_therm                2878  0
ppp_deflate             3927  0
bsd_comp                5385  0
tun                    18734  2
sc16is7x2              10782  0
rtl8192cu              96271  0
rtl_usb                14208  1 rtl8192cu
smsc95xx               19097  2
rtlwifi                88715  2 rtl_usb,rtl8192cu
rtl8192c_common        65331  1 rtl8192cu
option                 27091  2
usb_wwan                7997  1 option
usb_storage            44456  0
scsi_mod              152466  1 usb_storage
mcp251x                10745  0
can_dev                10091  1 mcp251x
w1_gpio                 2946  0
wire                   25336  2 w1_gpio,w1_therm
cn                      4802  1 wire
root@wirenboard:~# lsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 005: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem
Bus 001 Device 004: ID 0bda:018a Realtek Semiconductor Corp.

А образ сами записывали или покупали записанную флешку у нас?

В любом случае,

apt-get remove hostapd
apt-get install --reinstall hostapd

должно помочь.

С чипом rtl8192cu как раз работает стандартный hostapd, без всяких патчей и т.д.

Сам записывал, брал обновленный образ.

При попытке установить:

Unpacking hostapd (from .../hostapd_1%3a1.0-3+deb7u1_armel.deb) ...
dpkg: error processing /var/cache/apt/archives/hostapd_1%3a1.0-3+deb7u1_armel.deb (--unpack):
 trying to overwrite &#039;/etc/default/hostapd&#039;, which is also in package wb-configs 1.041
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/hostapd_1%3a1.0-3+deb7u1_armel.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

с установкой поборол

dpkg -i --force-overwrite &lt;filename&gt;
apt-get -f install

потом удалил и сделал через apt-get
подскажите, как выглядит конфигурационный файл.

сейчас сделал вот такой:

interface=wlan0
driver=rtl8192cu
ssid=test
channel=1

И еще, подменил этот файл, на работу не влияет?
https://github.com/lwfinger/rtl8188eu/blob/master/rtl8188eufw.bin

У вас rtl8192cu, так что файл rtl8188eufw.bin на работу не повлияет. Если вы заменили прошивку для rtl8188cu этим файлом, то повлияет.

hostapd.conf:

interface=wlan0
#driver=nl80211
ssid=WirenBoard
channel=1

У меня S/N как раз 300, дедлок присутствует, но wifi при этом работает (и как точка доступа и как клиент). Мне нужно о чем-то беспокоиться, или то, что установилось с update/upgrade - правильные варианты?

Нет, его не менял, просто скачал rtl8188eufw.bin и обновил. Сейчас вернул обратно.

При старте такая ошибка.

root@wirenboard:~# hostapd /etc/hostapd/hostapd.conf
Configuration file: /etc/hostapd/hostapd.conf
drv-&gt;ifindex=5
l2_sock_recv==l2_sock_xmit=0x0x353648
ioctl[SIOCSIWMODE]: Invalid argument
Could not set interface to mode(3)!
Could not set interface to master mode!
rtl871xdrv driver initialization failed.

hamster, там даже не настоящий дедлок, а, как я понимаю, warning от ядра, который дедлок поймал и предотвратил.
Драйвера родные от Realtek, лучше нет. На работе это не сказывается.

Андрей, попробуйте пожалуйста просто образ правильный накатить заново, без newwifi3 в названии.
Видимо у вас что-то в процессе переписываний hostapd и конфигов осталось в неправильном состоянии.

Евгений, добрый день.
Все починил, /etc/init.d/hostpad добавил путь до hostpad.conf и заработало.

Вот с этим беда.

root@wirenboard:~# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
FATAL: Module ip_tables not found.
iptables v1.4.14: can&#039;t initialize iptables table 

nat’: Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.`