遠隔地でやむを得ずWiFiのみで運用しているRaspberry Piに繋がらなくなってしまったので、遠隔修理してみました。
初代Raspberry PiにDVB-Tドングルを挿し、FlightAwareから配布されているPiAware入りのRaspbianシステムを入れ、窓際に置いて定点カメラや環境ステーションとしても活躍しているこの機器は、ルータからも遠い位置にあることからWiFiリピータを経て、USB接続のWiFiドングルのみでネットワーク接続していました。
あらためてモデルを確認、Raspberry Pi Model B Rev2 でした。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
$ cat /proc/cpuinfo processor : 0 model name : ARMv6-compatible processor rev 7 (v6l) BogoMIPS : 797.66 Features : half thumb fastmult vfp edsp java tls CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xb76 CPU revision : 7 Hardware : BCM2835 Revision : 000e Serial : 00000000f57881f7 $ cat /etc/os-release PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)" NAME="Raspbian GNU/Linux" VERSION_ID="9" VERSION="9 (stretch)" VERSION_CODENAME=stretch ID=raspbian ID_LIKE=debian |
原因はWiFi USBドングル
ある日、Ping応答が不安定になり、再起動させてみると遂にはPingもタイムアウト。電源はスマートコンセントを介すことにより遠隔操作が可能で、このスマートコンセントもWiFi接続にもかかわらず、こちらは操作に問題が無いことから、設置場所におけるWiFiのカバレッジには問題は無いようです。
こうなると有人に頼るしかないので現地に寄ってもらった際、WiFiドングルとSDカードを外し、適当なWIndows10 PCに挿してもらいました。
まずWiFiドングルはデバイスマネージャにも全く現れません。不明なデバイスにもならないことから、既に電気的に死んでいる線が濃厚。このドングルはドライバ類のインストールが不要でRaspberry Piとの親和性の高いことで知られる、Buffalo WLI-UC-GNM(11bgn対応最大150Mbps, Ralink製チップ搭載)で、とても小さな筐体なので金属部分は触れない程に発熱することでも知られています。正常に動いていた当時のログは以下の通り。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
$ lsmod rt2800usb 19102 0 rt2800lib 96994 1 rt2800usb rt2x00usb 12740 1 rt2800usb rt2x00lib 48239 3 rt2800lib,rt2800usb,rt2x00usb mac80211 686850 3 rt2800lib,rt2x00lib,rt2x00usb cfg80211 596688 2 rt2x00lib,mac80211 rfkill 22462 3 cfg80211 crc_ccitt 2797 1 rt2800lib $ dmesg [ 2.320804] usb 1-1.2: New USB device found, idVendor=0411, idProduct=01a2, bcdDevice= 1.01 [ 2.320829] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 2.320842] usb 1-1.2: Product: 802.11 n WLAN [ 2.320855] usb 1-1.2: Manufacturer: Ralink [ 2.320867] usb 1-1.2: SerialNumber: 1.0 [ 20.614067] ieee80211 phy0: rt2x00_set_rt: Info - RT chipset 3070, rev 0201 detected [ 21.715639] ieee80211 phy0: rt2x00_set_rf: Info - RF chipset 0005 detected [ 21.993807] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht' [ 21.998256] usbcore: registered new interface driver rt2800usb [ 26.947153] ieee80211 phy0: rt2x00lib_request_firmware: Info - Loading firmware file 'rt2870.bin' [ 26.951618] ieee80211 phy0: rt2x00lib_request_firmware: Info - Firmware detected - version: 0.36 [ 32.125723] wlan0: authenticate with ##:##:##:##:##:## [ 32.277377] wlan0: send auth to ##:##:##:##:##:## (try 1/3) [ 32.279206] wlan0: authenticated [ 32.293687] wlan0: associate with ##:##:##:##:##:## (try 1/3) [ 32.299634] wlan0: RX AssocResp from ##:##:##:##:##:## (capab=0x811 status=0 aid=5) [ 32.346413] wlan0: associated |
他にシステム上に問題は無かったか、SDカードを読み取るべく、Win32 Disk Imagerを使って、ディスクイメージを作成しました。Image File欄に、出力イメージファイルをフルパスで入力し、Device欄でSDカードの2つあるパーティションのうち、FATでWindowsでも認識出来るBootパーティションに付与されているドライブ名を指定します。これでBootパーティションだけではなく、SDカード全体のディスクイメージを得ることが出来ました。更に圧縮してから手元へ転送、詳細な解析に臨みました。
障害当時のシステムログをトレースしてみますが、突然接続が切れたり、再接続したりを繰り返しているのみ。接続断を誘発する別の要因は見当たりません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
Jan 13 15:11:30 piaware1 wpa_action: WPA_IFACE=wlan0 WPA_ACTION=CONNECTED Jan 13 15:11:30 piaware1 wpa_action: WPA_ID=0 WPA_ID_STR=wireless WPA_CTRL_DIR=/var/run/wpa_supplicant Jan 13 15:11:31 piaware1 wpa_action: ifup wlan0=wireless Jan 13 15:11:41 piaware1 wpa_action: creating sendsigs omission pidfile: /run/sendsigs.omit.d/wpasupplicant.wpa_supplicant.wlan0.pid Jan 13 15:11:41 piaware1 wpa_action: bssid=##:##:##:##:##:## Jan 13 15:11:41 piaware1 wpa_action: freq=2437 Jan 13 15:11:41 piaware1 wpa_action: ssid=######## Jan 13 15:11:41 piaware1 wpa_action: id=0 Jan 13 15:11:41 piaware1 wpa_action: id_str=wireless Jan 13 15:11:41 piaware1 wpa_action: mode=station Jan 13 15:11:41 piaware1 wpa_action: pairwise_cipher=CCMP Jan 13 15:11:41 piaware1 wpa_action: group_cipher=TKIP Jan 13 15:11:41 piaware1 wpa_action: key_mgmt=WPA2-PSK Jan 13 15:11:41 piaware1 wpa_action: wpa_state=COMPLETED Jan 13 15:11:41 piaware1 wpa_action: ip_address=###.###.##.### Jan 13 15:11:41 piaware1 wpa_action: address=##:##:##:##:##:## Jan 13 15:11:41 piaware1 wpa_action: uuid=########-####-####-####-############ Jan 13 15:15:23 piaware1 wpa_action: WPA_IFACE=wlan0 WPA_ACTION=DISCONNECTED Jan 13 15:15:23 piaware1 wpa_action: WPA_ID=0 WPA_ID_STR=wireless WPA_CTRL_DIR=/var/run/wpa_supplicant Jan 13 15:15:23 piaware1 wpa_action: ifdown wlan0 Jan 13 15:15:25 piaware1 wpa_action: removing sendsigs omission pidfile: /run/sendsigs.omit.d/wpasupplicant.wpa_supplicant.wlan0.pid Jan 13 15:15:28 piaware1 kernel: [15499.478837] wlan0: authenticate with ##:##:##:##:##:## Jan 13 15:15:28 piaware1 kernel: [15499.517721] wlan0: send auth to ##:##:##:##:##:## (try 1/3) Jan 13 15:15:28 piaware1 kernel: [15499.533069] wlan0: authenticated Jan 13 15:15:28 piaware1 kernel: [15499.538404] wlan0: associate with ##:##:##:##:##:## (try 1/3) Jan 13 15:15:28 piaware1 kernel: [15499.546333] wlan0: RX AssocResp from ##:##:##:##:##:## (capab=0x811 status=0 aid=5) Jan 13 15:15:28 piaware1 kernel: [15499.560753] wlan0: associated Jan 13 15:15:29 piaware1 wpa_action: WPA_IFACE=wlan0 WPA_ACTION=CONNECTED Jan 13 15:15:29 piaware1 wpa_action: WPA_ID=0 WPA_ID_STR=wireless WPA_CTRL_DIR=/var/run/wpa_supplicant Jan 13 15:15:29 piaware1 wpa_action: ifup wlan0=wireless Jan 13 15:15:42 piaware1 wpa_action: creating sendsigs omission pidfile: /run/sendsigs.omit.d/wpasupplicant.wpa_supplicant.wlan0.pid Jan 13 15:15:42 piaware1 wpa_action: bssid=##:##:##:##:##:## Jan 13 15:15:42 piaware1 wpa_action: freq=2437 Jan 13 15:15:42 piaware1 wpa_action: ssid==######## Jan 13 15:15:42 piaware1 wpa_action: id=0 Jan 13 15:15:42 piaware1 wpa_action: id_str=wireless Jan 13 15:15:42 piaware1 wpa_action: mode=station Jan 13 15:15:42 piaware1 wpa_action: pairwise_cipher=CCMP Jan 13 15:15:42 piaware1 wpa_action: group_cipher=TKIP Jan 13 15:15:42 piaware1 wpa_action: key_mgmt=WPA2-PSK Jan 13 15:15:42 piaware1 wpa_action: wpa_state=COMPLETED Jan 13 15:15:42 piaware1 wpa_action: ip_address=###.###.##.### Jan 13 15:15:42 piaware1 wpa_action: address=##:##:##:##:##:## Jan 13 15:15:42 piaware1 wpa_action: uuid=########-####-####-####-############ Jan 13 16:05:42 piaware1 wpa_action: WPA_IFACE=wlan0 WPA_ACTION=DISCONNECTED Jan 13 16:05:42 piaware1 wpa_action: WPA_ID=0 WPA_ID_STR=wireless WPA_CTRL_DIR=/var/run/wpa_supplicant Jan 13 16:05:42 piaware1 wpa_action: ifdown wlan0 Jan 13 16:05:44 piaware1 wpa_action: removing sendsigs omission pidfile: /run/sendsigs.omit.d/wpasupplicant.wpa_supplicant.wlan0.pid |
ファイルシステムに異常も無いことから、代替のWiFiドングルへ交換して解決を図ります。
IODATA WN-G300UAへ交換
代替品の絶対条件は、挿すだけで使えること。結局、Raspberry Piでの利用者の多さ、価格や入手性から、IODATA WN-G300UA (11bgn対応最大300Mbps, Realtek製RTL8192CU搭載)にしました。商品到着後、早速取り付けてもらいます。思ったより本体に厚みがある為、下のUSBポートに挿しているDVB-Tドングルのキャパシタに当たりそうでしたが、無事に挿して電源投入、挿すだけで再びWiFi接続することが出来ました。
I-O DATA Wi-Fi 無線LAN 子機 11n/g/b 300Mbps アンテナ型 WN-G300UA
早速、システムにどのように認識されているか確認してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
$ lsmod Module Size Used by 8192cu 614218 0 cfg80211 596688 1 8192cu rfkill 22462 3 cfg80211 $ lsusb Bus 001 Device 005: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838 DVB-T Bus 001 Device 004: ID 0bda:8178 Realtek Semiconductor Corp. RTL8192CU 802.11n WLAN Adapter Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub $ lsusb -t /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/5p, 480M |__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=smsc95xx, 480M |__ Port 2: Dev 4, If 0, Class=Vendor Specific Class, Driver=rtl8192cu, 480M |__ Port 3: Dev 5, If 0, Class=Vendor Specific Class, Driver=usbfs, 480M |__ Port 3: Dev 5, If 1, Class=Vendor Specific Class, Driver=, 480M $ dmesg [ 2.306007] usb 1-1.2: New USB device found, idVendor=0bda, idProduct=8178, bcdDevice= 2.00 [ 2.306035] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 2.306047] usb 1-1.2: Product: WN-G300UA [ 2.306060] usb 1-1.2: Manufacturer: I-O DATA DEVICE, INC. [ 2.306071] usb 1-1.2: SerialNumber: 00e04c000001 [ 23.694118] usbcore: registered new interface driver rtl8192cu |
iwコマンドによりWiFi性能を確認しましたが、対応していないはずの5GHz帯の表記があるのがちょっと怪しみ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 |
$ iw list Wiphy phy0 max # scan SSIDs: 9 max scan IEs length: 2304 bytes max # sched scan SSIDs: 0 max # match sets: 0 max # scan plans: 1 max scan plan interval: -1 max scan plan iterations: 0 Retry short limit: 7 Retry long limit: 4 Coverage class: 0 (up to 0m) Supported Ciphers: * WEP40 (00-0f-ac:1) * WEP104 (00-0f-ac:5) * TKIP (00-0f-ac:2) * CCMP-128 (00-0f-ac:4) Available Antennas: TX 0 RX 0 Supported interface modes: * IBSS * managed * AP * monitor * P2P-client * P2P-GO Band 1: Capabilities: 0x1862 HT20/HT40 Static SM Power Save RX HT20 SGI RX HT40 SGI No RX STBC Max AMSDU length: 7935 bytes DSSS/CCK HT40 Maximum RX AMPDU length 65535 bytes (exponent: 0x003) Minimum RX AMPDU time spacing: 16 usec (0x07) HT Max RX data rate: 300 Mbps HT TX/RX MCS rate indexes supported: 0-15, 32 Bitrates (non-HT): * 1.0 Mbps * 2.0 Mbps * 5.5 Mbps * 11.0 Mbps * 6.0 Mbps * 9.0 Mbps * 12.0 Mbps * 18.0 Mbps * 24.0 Mbps * 36.0 Mbps * 48.0 Mbps * 54.0 Mbps Frequencies: * 2412 MHz [1] (20.0 dBm) * 2417 MHz [2] (20.0 dBm) * 2422 MHz [3] (20.0 dBm) * 2427 MHz [4] (20.0 dBm) * 2432 MHz [5] (20.0 dBm) * 2437 MHz [6] (20.0 dBm) * 2442 MHz [7] (20.0 dBm) * 2447 MHz [8] (20.0 dBm) * 2452 MHz [9] (20.0 dBm) * 2457 MHz [10] (20.0 dBm) * 2462 MHz [11] (20.0 dBm) * 2467 MHz [12] (20.0 dBm) * 2472 MHz [13] (20.0 dBm) * 2484 MHz [14] (disabled) Band 2: Capabilities: 0x1862 HT20/HT40 Static SM Power Save RX HT20 SGI RX HT40 SGI No RX STBC Max AMSDU length: 7935 bytes DSSS/CCK HT40 Maximum RX AMPDU length 65535 bytes (exponent: 0x003) Minimum RX AMPDU time spacing: 16 usec (0x07) HT Max RX data rate: 300 Mbps HT TX/RX MCS rate indexes supported: 0-15, 32 Bitrates (non-HT): * 6.0 Mbps * 9.0 Mbps * 12.0 Mbps * 18.0 Mbps * 24.0 Mbps * 36.0 Mbps * 48.0 Mbps * 54.0 Mbps Frequencies: * 5170 MHz [34] (disabled) * 5180 MHz [36] (23.0 dBm) * 5190 MHz [38] (23.0 dBm) * 5200 MHz [40] (23.0 dBm) * 5210 MHz [42] (23.0 dBm) * 5220 MHz [44] (23.0 dBm) * 5230 MHz [46] (23.0 dBm) * 5240 MHz [48] (23.0 dBm) * 5260 MHz [52] (23.0 dBm) (radar detection) * 5280 MHz [56] (23.0 dBm) (radar detection) * 5300 MHz [60] (23.0 dBm) (radar detection) * 5320 MHz [64] (23.0 dBm) (radar detection) * 5500 MHz [100] (disabled) * 5520 MHz [104] (disabled) * 5540 MHz [108] (disabled) * 5560 MHz [112] (disabled) * 5580 MHz [116] (disabled) * 5600 MHz [120] (disabled) * 5620 MHz [124] (disabled) * 5640 MHz [128] (disabled) * 5660 MHz [132] (disabled) * 5680 MHz [136] (disabled) * 5700 MHz [140] (disabled) * 5745 MHz [149] (30.0 dBm) * 5765 MHz [153] (30.0 dBm) * 5785 MHz [157] (30.0 dBm) * 5805 MHz [161] (30.0 dBm) * 5825 MHz [165] (30.0 dBm) * 5920 MHz [184] (disabled) * 5940 MHz [188] (disabled) * 5960 MHz [192] (disabled) * 5980 MHz [196] (disabled) * 6000 MHz [200] (disabled) * 6020 MHz [204] (disabled) * 6040 MHz [208] (disabled) * 6060 MHz [212] (disabled) * 6080 MHz [216] (disabled) Supported commands: * new_interface * set_interface * new_key * start_ap * new_station * set_bss * join_ibss * set_pmksa * del_pmksa * flush_pmksa * remain_on_channel * frame * set_channel * connect * disconnect Supported TX frame types: * IBSS: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0 * managed: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0 * AP: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0 * AP/VLAN: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0 * P2P-client: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0 * P2P-GO: 0x00 0x10 0x20 0x30 0x40 0x50 0x60 0x70 0x80 0x90 0xa0 0xb0 0xc0 0xd0 0xe0 0xf0 Supported RX frame types: * IBSS: 0xd0 * managed: 0x40 0xd0 * AP: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0 * AP/VLAN: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0 * P2P-client: 0x40 0xd0 * P2P-GO: 0x00 0x20 0x40 0xa0 0xb0 0xc0 0xd0 software interface modes (can always be added): * monitor interface combinations are not supported Device supports scan flush. |
そしてネットワーク接続情報は以下の通り、信号強度-54dBmとまずまずの感度で安定した接続が確立されていました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ iwconfig wlan0 wlan0 IEEE 802.11bgn ESSID:"####" Nickname:"<WIFI@REALTEK>" Mode:Managed Frequency:2.437 GHz Access Point: ##:##:##:##:##:## Bit Rate:144.4 Mb/s Sensitivity:0/0 Retry:off RTS thr:off Fragment thr:off Power Management:off Link Quality=100/100 Signal level=78/100 Noise level=0/100 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 $ iw wlan0 link Connected to ##:##:##:##:##:## (on wlan0) SSID: ######## freq: 2437 signal: -57 dBm tx bitrate: 144.4 MBit/s |