RaspberryPi RaspberryPi3Bで謎のKernel panic!?

 2016-05-18
なんでこんなバグが残ってんねん!
 
先日RaspberryPi3Bを手に入れました。さっそく内蔵のwifiを設定したりしていたのですが、突然下記の様なメッセージを出して止まってしまうようになりました。
Message from syslogd@raspberrypi at May 11 08:40:11 ...
kernel:[ 50.117947] Internal error: Oops: 5 [#1] SMP ARM

Message from syslogd@raspberrypi at May 11 08:40:11 ...
kernel:[ 50.288746] Process kworker/1:1 (pid: 42, stack limit = 0xbc72a210)

Message from syslogd@raspberrypi at May 11 08:40:11 ...
kernel:[ 50.295996] Stack: (0xbc72bcd0 to 0xbc72c000)

Message from syslogd@raspberrypi at May 11 08:40:11 ...
kernel:[ 50.301309] bcc0: 00000000 bab60160 000000de 000000de

Message from syslogd@raspberrypi at May 11 08:40:11 ...
kernel:[ 50.311358] bce0: 00000000 00000000 bc72bd7c bc72bcf8 7f10310c 7f102150 7f23dda0 00000431

Message from syslogd@raspberrypi at May 11 08:40:11 ...
kernel:[ 50.321475] bd00: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

Message from syslogd@raspberrypi at May 11 08:40:11 ...
kernel:[ 50.331670] bd20: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
ナニコレェ・・・

起動してログインもせず、放置するだけでこのようなエラーが出て、それ以降ウンともスンとも言わなくなってしまいます。
もちろん、起動後にログインして作業していても同様で、やはり50秒ぐらいでエラーが出ます。
エラーメッセージの Internal error: Oops はカーネルあるいはそれに近しいプログラムがコケたときに出るもののようです。たとえばデバイスドライバなどの例が多いようです。
今回は、RaspberryPi3BにキーボードとHDMIのモニタ以外は何も接続していないのに発生する状況になってしまいましたので、特定のデバイスドライバが悪いのかとか、絞り込みも出来ずにごちゃごちゃやっていました。
困ったもんだ。 でも結局はちょっとしたポカミスが残っていただけなようで、分かっていれば回避は可能でした。ヨカッタヨカッタ。 良くねえけど。

原因

kernel4.1系では使用できないwifiチャネルの接続設定をしたため

回避

rpi-updateでkernel4.4系にしてwifiチャネル12,13,14(←日本仕様)に接続可能になるまで、接続設定をしない

再現

  1. 最新のRaspbianイメージ(2016-03-18-raspbian-jessie-lite)を焼く。kernel4.1系が入っている。
  2. 通常通り立ち上げる。
  3. wifiのチャネル12,13,14いずれかへの接続の設定を行う。
    例:
    root@raspberry# wpa_passphrase "ESSID_ch13" "password" >> /etc/wpa_supplicant/wpa_supplicant.conf 
  4. しばらく待つか、rebootするとkernelがOopsするのを見ることができる。


Oopsが発生する状態を確認した後、rebootしOopsが発生する前に急いで(約50秒ほどの猶予がある)接続設定を削除すると、Oopsが収まりました。 そしてもう一度設定を書くとOopsするようになります。 Oops!!!

kernel4.1系で接続可能なwifiチャネル1~11に接続する場合は問題ないことを確認しました。
チャネル12,13,14への接続が対象です。


wifiのチャネル12,13,14は日本(と他に少し?)くらいでしか使用されていないため、初期状態では使用できません。これは下記のコマンドで確認できます。
[pi@raspi3b]% iwlist wlan0 freq
wlan0 11 channels in total; available frequencies :
Channel 01 : 2.412 GHz
Channel 02 : 2.417 GHz
Channel 03 : 2.422 GHz
Channel 04 : 2.427 GHz
Channel 05 : 2.432 GHz
Channel 06 : 2.437 GHz
Channel 07 : 2.442 GHz
Channel 08 : 2.447 GHz
Channel 09 : 2.452 GHz
Channel 10 : 2.457 GHz
Channel 11 : 2.462 GHz
この状態で、wifiチャネル12,13,14のESSIDへの接続設定を行うと… Oops!!!

本来であれば、使用できないチャネルへの接続要求に対しては然るべきエラーを発生させてそこでオシマイなはずですが、RaspberryPiの 2016-03-18-raspbian-jessie では、エラー処理がちょっとアレでOopsしちゃうようです。

これは rpi-update コマンドでKernel4.4系に更新することで解決します。更新後のiwlistは下記になります。
[pi@raspi3b]% iwlist wlan0 freq
wlan0 14 channels in total; available frequencies :
Channel 01 : 2.412 GHz
Channel 02 : 2.417 GHz
Channel 03 : 2.422 GHz
Channel 04 : 2.427 GHz
Channel 05 : 2.432 GHz
Channel 06 : 2.437 GHz
Channel 07 : 2.442 GHz
Channel 08 : 2.447 GHz
Channel 09 : 2.452 GHz
Channel 10 : 2.457 GHz
Channel 11 : 2.462 GHz
Channel 12 : 2.467 GHz
Channel 13 : 2.472 GHz
Channel 14 : 2.484 GHz
この通り、チャネル12,13,14が使用可能になっています。


というわけで。。。
ご自宅のwifiでチャネル12,13,14を使っている方は、wifiルータの設定を変更するか、有線で接続してRiのkernelを4.4にしてください。


うーん、原因が分かって良かったけど、ヘタしたら迷宮入りしてたかもしれないこれ。。。



2016/05/22 追記

2016-05-10版のraspbianイメージ(Kernel4.4)では、(当然ですが?)rpi-updateでkernel4.4へ更新しなくてもチャネル12,13,14が使用可能になっているのを確認しました。
ただし初回起動時に使用可能なのはチャネル12,13までで、raspi-configでwifiの国設定をJPに設定しrebootするとチャネル14まで使えます。


 
 
コメント












管理者にだけ表示を許可する
トラックバック
トラックバックURL:
http://wbbwbb.blog83.fc2.com/tb.php/228-1f4de361
≪ トップページへこのページの先頭へ  ≫