shinano
2015年6月23日 19時19分
お疲れ様です。
現在、
http://armadillo.atmark-techno.com/howto/11n-wlan-usb-module-gw-usmicron
http://armadillo.atmark-techno.com/node/970
https://users.atmark-techno.com/blog/750/832
https://armadillo.atmark-techno.com/forum/armadillo/1467
を参考に、USB無線LANアダプタ WLI-UC-GNM をArmadillo-810の Atmark-dist-20150424 で動かそうとしているのですが、
なんとか、コンパイルが始まる所まで行けたものの、
os/linux/rt_profile.c
ファイルで、
error: ‘struct task_struct’ has no member named ‘fsgid’
が幾つかでて、困ってしまいました。
察するに、これは、Linux2.6系用ドライバで、Atmark-dist-20150424は、3.4系のため、システムコールが変わってしまったためコンパイルが通らないのでは無いかと思っています。
現在、修正方法を調査中ですが、何か情報をお持ちの方がいましたら情報をお願いします。
Maikfileの システム関係の設定は、下の様にしました。
ifeq ($(PLATFORM),ARMADILLO) LINUX_SRC = /home/atmark/armadillo-810/atmark-dist-20150424/linux-3.x CROSS_COMPILE = /usr/bin/arm-linux-gnueabihf- endif
実際のエラーメッセージ(コンパイルしているフォルダの階層が深くて見づらくて申し訳ありません)
atmark@atde5:~/armadillo-810/WLI-UC-GNM/2008_0925_RT2870_Linux_STA_v1.4.0.0$ make ARCH=arm make -C tools make[1]: ディレクトリ `/home/atmark/armadillo-810/WLI-UC-GNM/2008_0925_RT2870_Linux_STA_v1.4.0.0/tools' に入ります gcc -g bin2h.c -o bin2h make[1]: ディレクトリ `/home/atmark/armadillo-810/WLI-UC-GNM/2008_0925_RT2870_Linux_STA_v1.4.0.0/tools' から出ます /home/atmark/armadillo-810/WLI-UC-GNM/2008_0925_RT2870_Linux_STA_v1.4.0.0/tools/bin2h cp -f os/linux/Makefile.6 /home/atmark/armadillo-810/WLI-UC-GNM/2008_0925_RT2870_Linux_STA_v1.4.0.0/os/linux/Makefile make -C /home/atmark/armadillo-810/atmark-dist-20150424/linux-3.x SUBDIRS=/home/atmark/armadillo-810/WLI-UC-GNM/2008_0925_RT2870_Linux_STA_v1.4.0.0/os/linux modules make[1]: ディレクトリ `/home/atmark/armadillo-810/linux-3.4-at13' に入ります CC [M] /home/atmark/armadillo-810/WLI-UC-GNM/2008_0925_RT2870_Linux_STA_v1.4.0.0/os/linux/../../common/rtmp_init.o /home/atmark/armadillo-810/WLI-UC-GNM/2008_0925_RT2870_Linux_STA_v1.4.0.0/os/linux/../../common/rtmp_init.c: In function ‘RTMPReadChannelPwr’: /home/atmark/armadillo-810/WLI-UC-GNM/2008_0925_RT2870_Linux_STA_v1.4.0.0/os/linux/../../common/rtmp_init.c:1029:16: warning: array subscript is above array bounds [-Warray-bounds] /home/atmark/armadillo-810/WLI-UC-GNM/2008_0925_RT2870_Linux_STA_v1.4.0.0/os/linux/../../common/rtmp_init.c:1035:16: warning: array subscript is above array bounds [-Warray-bounds] CC [M] /home/atmark/armadillo-810/WLI-UC-GNM/2008_0925_RT2870_Linux_STA_v1.4.0.0/os/linux/../../os/linux/rt_profile.o /home/atmark/armadillo-810/WLI-UC-GNM/2008_0925_RT2870_Linux_STA_v1.4.0.0/os/linux/../../os/linux/rt_profile.c: In function ‘RTMPReadParametersHook’: /home/atmark/armadillo-810/WLI-UC-GNM/2008_0925_RT2870_Linux_STA_v1.4.0.0/os/linux/../../os/linux/rt_profile.c:928:20: error: ‘struct task_struct’ has no member named ‘fsuid’ /home/atmark/armadillo-810/WLI-UC-GNM/2008_0925_RT2870_Linux_STA_v1.4.0.0/os/linux/../../os/linux/rt_profile.c:929:20: error: ‘struct task_struct’ has no member named ‘fsgid’ /home/atmark/armadillo-810/WLI-UC-GNM/2008_0925_RT2870_Linux_STA_v1.4.0.0/os/linux/../../os/linux/rt_profile.c:930:9: error: ‘struct task_struct’ has no member named ‘fsuid’ /home/atmark/armadillo-810/WLI-UC-GNM/2008_0925_RT2870_Linux_STA_v1.4.0.0/os/linux/../../os/linux/rt_profile.c:930:24: error: ‘struct task_struct’ has no member named ‘fsgid’ /home/atmark/armadillo-810/WLI-UC-GNM/2008_0925_RT2870_Linux_STA_v1.4.0.0/os/linux/../../os/linux/rt_profile.c:1593:9: error: ‘struct task_struct’ has no member named ‘fsuid’ /home/atmark/armadillo-810/WLI-UC-GNM/2008_0925_RT2870_Linux_STA_v1.4.0.0/os/linux/../../os/linux/rt_profile.c:1594:9: error: ‘struct task_struct’ has no member named ‘fsgid’ make[2]: *** [/home/atmark/armadillo-810/WLI-UC-GNM/2008_0925_RT2870_Linux_STA_v1.4.0.0/os/linux/../../os/linux/rt_profile.o] エラー 1 make[1]: *** [_module_/home/atmark/armadillo-810/WLI-UC-GNM/2008_0925_RT2870_Linux_STA_v1.4.0.0/os/linux] エラー 2 make[1]: ディレクトリ `/home/atmark/armadillo-810/linux-3.4-at13' から出ます make: *** [LINUX] エラー 2
よろしくお願いします。
コメント
at_takashi.sasayama
笹山です。
横から失礼します。
> Armadillo-810は使っていないため動作確認をしたわけではありませんが、
> Kernel-3.4-at14にも該当のソースコードが組み込まれていましたので
> make menuconfig から以下を設定して試してみてはどうでしょうか。
高木様が記載されていますように、linux-3.4-at では RT2800系のドライバが組み込まれていますので、
これを有効にすることで動作します。
カーネルコンフィギュレーションは以下となります。
Linux/arm 3.4-at Kernel Configuration [*] Networking support ---> <*> cfg80211 - wireless configuration API # チェックを入れます : 一部省略 <*> Generic IEEE 802.11 Networking Stack (mac80211) # チェックを入れます Device Drivers ---> [*] Network device support ---> [*] Wireless LAN ---> <*> Ralink driver support ---> # チェックを入れます <*> Ralink rt27xx/rt28xx/rt30xx (USB) support # チェックを入れます
別途ファームウェアが必要になりますので、以下からダウンロードし、ユーザーランドに含めます。
Package: firmware-ralink (0.43)
https://packages.debian.org/ja/jessie/all/firmware-ralink/download
[ATDE5]$ wget http://ftp.jp.debian.org/debian/pool/non-free/f/firmware-nonfree/firmware-ralink_0.43_all.deb [ATDE5]$ dpkg-deb -x firmware-ralink_0.43_all.deb ~/atmark-dist/romfs/ [ATDE5]$ cd ~/atmark-dist [ATDE5]$ make image ※上記では、念の為、全てのファームウェアをユーザーランドに含めていますが、 今回のデバイスで必要となるのは lib/firmware/rt2870.bin だけと思われます。
WLI-UC-GNM の VID,PID はドライバに登録されていますので、
上記の手順で作成したイメージで Armadillo-810 を起動すれば、
デバイスを接続すると wlan0 として認識されることが、
iwconfig で確認できると思います。
■参考情報
wikidevi Buffalo WLI-UC-GNM
https://wikidevi.com/wiki/Buffalo_WLI-UC-GNM
linux-3.x/drivers/net/wireless/rt2x00/rt2800usb.c
994 { USB_DEVICE(0x0411, 0x01a2) }, # 参考情報に記載されていた WLI-UC-GNM の VID,PID です。
shinano
高木様,高木様
いろいろ情報ありがとうございます。
教えていただいた方法で、認識させることは出来たのですが、まだ通信が出来ない状態です。
セキュリティ方式,パスフレーズの設定方法が分からず設定できないという感じです。
現在、認識は出来ておりifconfig, iwconfig で確認できます。
$ ifconfig lo Link encap:Local Loopback ... wlan0 Link encap:Ethernet HWaddr CC:E1:D5:17:5C:B0 inet addr:169.254.125.49 Bcast:169.254.255.255 Mask:255.255.0.0 UP 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) $ iwconfig lo no wireless extensions. ... wlan0 IEEE 802.11bgn ESSID:"TESTSSID" Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm Retry long limit:7 RTS thr:off Fragment thr:off Power Management:on
http://armadillo.atmark-techno.com/howto/a840-use-awl13
を参考に、設定しようとしましたが、
$ sudo iwpriv wlan0 wlan0 no private ioctls.
という表示され、iwpriv には対応していないようでした。
その他に、
https://sites.google.com/site/teyasn001/ubuntu-12-10/nettowaku-she-ding
を参考に設定してみましたが、interfaces (/etc/config/ の)にいろいろ設定を書きましたが
SSIDの設定も反映されない状態でした。
ファイルは読み込まれてこまれているようで、起動時に
udhcpc (v1.20.2) started Sending discover... ... Sending discover... killall: zcip: no process killed init wlan0 No lease, failing
が表示されます。
interfacesの中身は下の内容です。
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8) auto lo usb0 iface lo inet loopback iface eth0 inet dhcp iface usb0 inet manual up ifconfig usb0 up post-up zcip usb0 /etc/zcip.script > /dev/null down ifconfig usb0 down auto wlan0 iface wlan0 inet dhcp wpa-scan-ssid 1 # 0 or 1(ステルスESSID) wpa-proto WPA # WPA or RSN(WPA2) wpa-pairwise CCMP # TKIP or CCMP(AES) wpa-group CCMP # TKIP or CCMP(AES) wpa-key-mgmt WPA-PSK # WPA-EAP or WPA-PSK(pre-shared-key) wpa-ssid TESTSSID wpa-psk "TEST"
http://d.hatena.ne.jp/pasela/20121224/raspi_wlan
https://wiki.debian.org/WiFi/HowToUse
この辺を参考に設定しようと試みましたが、
結局、プリシェアドキーの設定がうまくできず、接続できませんでした。
ちなみ、
sudo iwlist wlan0 scan
で接続しようとしているアクセスポイントが見えていることは確認しています。
何か分かる方がいましたらアドバイスをお願いします。
at_takashi.sasayama
笹山です。
> セキュリティ方式,パスフレーズの設定方法が分からず設定できないという感じです。
wpa_supplicant を使用して 無線LANアクセスポイントへ接続する方法はいかがでしょうか?
Armadillo-810 で wpa_supplicant を使用する方法は以下をご参照ください。
ユーザーランドの変更
http://armadillo.atmark-techno.com/howto/a800-ieee80211ac-gw-900d#step1…
無線LANアクセスポイントへの接続
http://armadillo.atmark-techno.com/howto/a800-ieee80211ac-gw-900d#step3…
shinano
高木様,笹山様
緊急の仕事が入ったため試すのが遅くなってしまいました。
教えて頂いた方法で、wpa_supplicant を 試したのですが、まだ、接続出来ない状態です。
とりあえず、現状の報告をします。
[root@armadillo810-0 (ttySC2) ~]# wpa_supplicant -i wlan0 -c /etc/config/wpa_sup plicant.conf -Dwext -B ioctl[SIOCSIWAUTH]: Operation not supported WEXT auth param 4 value 0x0 - [root@armadillo810-0 (ttySC2) ~]# cfg80211: Calling CRDA to update world regulatory domain cfg80211: Calling CRDA to update world regulatory domain cfg80211: Calling CRDA to update world regulatory domain cfg80211: Calling CRDA to update world regulatory domain cfg80211: Calling CRDA to update world regulatory domain cfg80211: Calling CRDA to update world regulatory domain
と表示され、SIOCSIWAUTH に対応していないというエラーが出ていまいます。
また、実行後、"cfg80211: Calling CRDA to update world regulatory domain" が繰り返し表示されます。
この状態で、iwconfig を実行すると
wlan0 IEEE 802.11bgn ESSID:"TitanArumTest_BG" Mode:Managed Frequency:2.432 GHz Access Point: 00:0D:0B:D9:78:52 Bit Rate=1 Mb/s Tx-Power=20 dBm Retry long limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:on Link Quality=55/70 Signal level=-55 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
と表示されますので、SSIDは、思った通り設定されているようです。
ただし、ifconfig で見た時には、
wlan0 Link encap:Ethernet HWaddr CC:E1:D5:17:5C:B0 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:3 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:502 (502.0 B) TX bytes:417 (417.0 B)
となっており、雰囲気的にアクセスポイントにも接続されているようなのですが、IPアドレスがうまく取得できない状態と思われます。
https://armadillo.atmark-techno.com/forum/armadillo/721
等の過去の情報も参考にしながら、いろいろ試していますが、未だ接続出来ない状態です。
何かアドバイスがあればお願いします。
shinano
at_takashi.sasayama
笹山です。
> ただ、時々、コンソールに
> cfg80211: Calling CRDA to update world regulatory domain
> が表示されるのは、そのままでした。
> 今、これを解消する方法を調査中ですが、何か情報をお持ちでしたら教えてください。
もしも、10数秒毎に当該のメッセージが出力されているのでしたら
wpa_supplicant が複数起動していないかを ps コマンドで確認してみてください。
今回のデバイスとは別の物 (Planex GW-USMicroN) で試してみたのですが、
wpa_supplicant を2重に起動してしまった際に上記の問題が発生しました。
shinano
笹山 様
情報ありがとうございます。
早速、ps で確認しましたが、二重起動はしていなそうです。一応、結果を添付します。
※いろいろあって、atmark というユーザーを追加して使ってます。
1 root 0:01 init 2 root 0:00 [kthreadd] 3 root 0:02 [ksoftirqd/0] 6 root 0:00 [cpuset] 7 root 0:00 [khelper] 8 root 0:00 [netns] 9 root 0:01 [kworker/u:1] 221 root 0:00 [sync_supers] 223 root 0:00 [bdi-default] 224 root 0:00 [kintegrityd] 226 root 0:00 [kblockd] 237 root 0:00 [khubd] 259 root 0:00 [cfg80211] 342 root 0:00 [rpciod] 352 root 0:00 [kswapd0] 353 root 0:00 [fsnotify_mark] 354 root 0:00 [nfsiod] 965 root 0:00 [mtdblock0] 970 root 0:00 [mtdblock1] 975 root 0:00 [mtdblock2] 980 root 0:00 [mtdblock3] 985 root 0:00 [mtdblock4] 990 root 0:00 [mtdblock5] 996 root 0:00 [spi_sh_msiof.1] 1032 root 0:00 [irq/15-rtc-s353] 1051 root 0:00 [wdt_thread] 1055 root 0:00 [tmio_mmc] 1057 root 0:01 [kworker/u:2] 1073 root 0:00 [deferwq] 1077 root 0:00 [mmcqd/0] 1092 root 0:00 [kjournald] 1267 root 0:01 udevd --daemon 1301 root 0:00 syslogd -L 1370 root 0:00 klogd 3059 root 0:00 zcip usb0 /etc/zcip.script 3071 root 0:00 inetd 3099 avahi 0:00 avahi-daemon: running [armadillo810-0.local] 3100 avahi 0:00 avahi-daemon: chroot helper process 3111 www-data 0:00 lighttpd -f /etc/lighttpd.conf 3121 root 0:00 /sbin/sshd -f /etc/ssh/sshd_config 3130 atmark 0:00 -ash 3144 root 0:00 [flush-179:0] 3155 root 0:01 [kworker/u:0] 3157 root 0:00 [kworker/0:3] 3164 root 0:00 wpa_supplicant -i wlan0 -c /etc/config/wpa_supplicant.con 3184 root 0:00 udhcpc -R -n -T 5 -t 6 -p /var/run/udhcpc.wlan0.pid -i wl 3201 root 0:00 [kworker/0:2] 3205 root 0:00 [nfsv4.0-svc] 3220 root 0:00 [kworker/0:0] 3230 atmark 0:00 ps
表示される間隔も一定では無く、不定期です(数秒から、1分以上)。
個人的な感覚だと電波の状況によって変わるような気がしてます。
「cfg80211: Calling CRDA to update world regulatory domain」で検索するとたくさん情報がでてくるのですが、繰り返しでて困るというなものは、今のところ見つけられてないです。
もしかしたら、アクセスポイントによって違うのかもしれないと思い始めているところです。
また、何か情報がありましたらお願いします。
こちらで自己解決できた場合も情報を更新したいと思います。
takagi.sifi
2015年6月23日 20時12分
高木です。
Kernel-3.xにはRT2800系のドライバが組み込まれています。
別のARMプラットホームですがKernel-3.x付属のドライバでWLI-UC-GNMを動作させています。
Armadillo-810は使っていないため動作確認をしたわけではありませんが、
Kernel-3.4-at14にも該当のソースコードが組み込まれていましたので
make menuconfig から以下を設定して試してみてはどうでしょうか。
Device Drivers > Network device support > Wireless LAN > Ralink driver support
> お疲れ様です。
>
> 現在、
> http://armadillo.atmark-techno.com/howto/11n-wlan-usb-module-gw-usmicron
> http://armadillo.atmark-techno.com/node/970
> https://users.atmark-techno.com/blog/750/832
> https://armadillo.atmark-techno.com/forum/armadillo/1467
> を参考に、USB無線LANアダプタ WLI-UC-GNM をArmadillo-810の Atmark-dist-20150424 で動かそうとしているのですが、
> なんとか、コンパイルが始まる所まで行けたものの、
>
> os/linux/rt_profile.c
> ファイルで、
> error: ‘struct task_struct’ has no member named ‘fsgid’
> が幾つかでて、困ってしまいました。
> 察するに、これは、Linux2.6系用ドライバで、Atmark-dist-20150424は、3.4系のため、システムコールが変わってしまったためコンパイルが通らないのでは無いかと思っています。
> 現在、修正方法を調査中ですが、何か情報をお持ちの方がいましたら情報をお願いします。
>
> Maikfileの システム関係の設定は、下の様にしました。
>
>
> 実際のエラーメッセージ(コンパイルしているフォルダの階層が深くて見づらくて申し訳ありません)
>
>
> よろしくお願いします。