上野家のホームページ
ナーマル,マリン,ココ
[
新規
|
一覧
|
検索
|
最新
|
ヘルプ
]
PC/RaspberryPi/Linuxを動かしてみる/オンボードWiFiが切れないようにする
のソース
資料室
PC
/
RaspberryPi
/
Linuxを動かしてみる
/
オンボードWiFiが切れないようにする
のソース
[
差分
|
バックアップ
|
リロード
]
[ ]
差分
を表示
PC/RaspberryPi/Linuxを動かしてみる/オンボードWiFiが切れないようにする
へ行く。
* オンボードWiFiが切れないようにする [#rd6b783b] Rspberry Pi Zero Wが1日程度経つとWiFiでの接続が出来なくなることがある。 なぜ通信ができなくなるのかわかっていなかったので,しょうがないのでcronを使って毎日04/05にrebootしていた。~ 5 4 * * * /sbin/reboot しかし,この対策ではこの時間前に通信ができなくなると,朝の04:05にならないと復帰しない ;( なので,なぜWiFi通信が出来なくなるのか考えてみた。~ - WiFi内蔵WiFiインターフェースのwlan0が省電力設定のため一定時間経つとサスペンド状態になってしまう。~ - 環境による理由で無線LANアクセスポイントとの接続が切断してしまう。~ これらの事が考えられたので,それぞれに対して対策を行ってみた。~ ** 内蔵WiFiインターフェースのwlan0が省電力設定のため一定時間経つとサスペンド状態になってしまう [#jb8d914c] iwconfigで確認してみたところ, # iwconfig wlan0 wlan0 IEEE 802.11 ESSID:"marin" Mode:Managed Frequency:2.427 GHz Access Point: 80:22:A7:5B:A6:02 Bit Rate=72.2 Mb/s Tx-Power=31 dBm Retry short limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:on Link Quality=60/70 Signal level=-50 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0 # iw dev wlan0 get power_save Power save: on Power Management:onになっていて,これだと一定時間が経過するとWiFiがサスペンドになってしまうようだ。~ この対策をしてみる。(どちらでも良い)~ - iwconfigでパワーマネージメントを無効にする~ ''/etc/dhcpcd.exit-hook''ファイルを以下の内容で作成した。~ #code(text,,nonumber){{ [ -n ${disable_pm} ] || return 0 if [ “${interface}” = “wlan0” ]; then case ${reason} in CARRIER | NOCARRIER) iwconfig ${interface} power off ;; STOP | STOPPED) iwconfig ${interface} power on ;; esac fi }} これで,reboot後もPower Management:offになった。~ これは,dhcpcdのフック機能を利用している。~ - systemdでパワーマネージメントを無効にする~ systemdを使ってもパワーマネージメントを無効にする事ができる。~ この場合,まず''services/rpiwlan0poweroff''ディレクトリを作成する。~ # cd ~ # mkdir -p services/rpiwlan0poweroff # cd services/rpiwlan0poweroff ''wlan0poweroff.sh''スクリプトファイルを以下の内容で''services/rpiwlan0poweroff''ディレクトリに作成する。~ #code(bash,,nonumber){{ #!/bin/bash LOG_FILE="/var/log/wlan0poweroff.log" echo "Setting wlan0 power management off in 5 sec..." > $LOG_FILE echo "Current wlan0 power management configuration" >> $LOG_FILE iwconfig wlan0|grep Power\ Management >> $LOG_FILE sleep 5 echo "Setting wlan0 power management off..." >> $LOG_FILE iwconfig wlan0 power off iwconfig wlan0|grep Power\ Management >> $LOG_FILE }} ''wlan0poweroff.sh''のパーミッションに実行権限を追加する。~ # chmod +x wlan0poweroff.sh ''wlan0poweroff.service''ファイルを作成する。~ #code(text,,nonumber){{ [Unit] Description=wlan0 power management disable service After=network.target [Service] ExecStart=/root/services/rpiwlan0poweroff/wlan0poweroff.sh [Install] WantedBy=multi-user.target }} ''wlan0poweroff.service''を''/etc/systemd/system/''にコピーする。~ # cp wlan0poweroff.service /etc/systemd/system/ その後,サービスを有効に設定する。~ # systemctl enable wlan0poweroff.service これで,reboot後systemdによりパワーマネージメントを無効にする事ができる。~ ~ 何らかの理由でパワーマネージメントを有効にしたい場合は, # systemctl disable wlan0poweroff.service とする。~ ** 環境による理由で無線LANアクセスポイントとの接続が切断してしまう [#gbf5da55] 今住んでいるところが6階建てのマンション(各階6部屋)なのだが,ある時インターネット対応マンションにするということで各部屋に安いWiFiルーターが設置された。~ これが2G帯しか対応しないWiFiルーターで電波が混信しまくってしまう。いいかげんなシステム屋だとこんなひどい商売をしている。~ このため,自前の無線LAN環境でのWiFi接続が不安定になり接続も切れてしまうことがある。どうも切れてしまうとRaspberry Piは自動でうまく再接続できないようだ。~ なので,この対策を行った。~ ''/root/reconnect_wifi''ファイルを以下のような内容で作成した。~ #code(bash,,nonumber){{ #!/bin/sh OSVER=`grep VERSION_ID /etc/os-release | awk -F '"' '{print $2}'` ping -c 1 `ip route | grep default | awk '{print $3;}'` >/dev/null 2>&1 if [ $? != 0 ] then logger "wifi connection error was occured. trying reconecct..." case $OSVER in "8") sudo sh -c "ifdown wlan0 && ifup wlan0" ;; "9") sudo systemctl restart dhcpcd ;; "10") sudo systemctl restart dhcpcd ;; esac sleep 10 if [ `ip route | grep default | wc -l ` -eq 0 ] then logger "wifi is not connected." else logger "wifi is connected." fi fi }} 実行パーミッションを設定する。~ # chmod 755 /root/reconnect_wifi それで,cronで毎分このスクリプトを実行するようにする。~ */1 * * * * /root/reconnect_wifi これで,もしWiFi接続が切れても自動で再接続してくれるようになった。~ この対策後はWiFi接続が切れることが無くなった。~
PC/RaspberryPi/Linuxを動かしてみる/オンボードWiFiが切れないようにする のバックアップソース(No. All)
現: 2023-04-01 (土) 12:59:10
yuji
Counter: 740, today: 3, yesterday: 2
Copyright©2008 Yuji Ueno All Rights Reserved.
ログイン
ユーザ名:
パスワード:
IDとパスワードを記憶
パスワード紛失
メインメニュー
ホーム
でぶlog
資料室
最新ページ一覧
全ページ一覧
ヘルプ
» 関連ページ
» Wikiソース
» 編集履歴
» バックアップ一覧
» 添付ファイル一覧
フォーラム
お問い合わせ