ちょっと用があって、Raspberry Pi にさわれませんでした。久しぶりにログインして、再びアップデートしてみました。表示は適当に改行してあります。
# yum update .............................. ======================================================= Package Arch Version Repository Size ======================================================= Updating: raspberrypi-vc-demo-source armv6hl 20130711gitba8059e-3.rpfr18 pidora-rpfr-updates 30 M raspberrypi-vc-firmware armv6hl 20130711gitba8059e-3.rpfr18 pidora-rpfr-updates 1.4 M raspberrypi-vc-libs armv6hl 20130711gitba8059e-3.rpfr18 pidora-rpfr-updates 217 k raspberrypi-vc-libs-devel armv6hl 20130711gitba8059e-3.rpfr18 pidora-rpfr-updates 234 k raspberrypi-vc-static armv6hl 20130711gitba8059e-3.rpfr18 pidora-rpfr-updates 152 k raspberrypi-vc-utils armv6hl 20130711gitba8059e-3.rpfr18 pidora-rpfr-updates 111 k Transaction Summary ======================================================= Upgrade 6 Packages Total download size: 32 M Is this ok [y/N]: y ......................................................... Complete! #
6つのアップデートを適用してリブートしたところ、左から4番目の赤いランプが付くだけで、ネットワークの左から3つのランプがつきません。あわてて、ディスプレイ、キーボードをつないで立ち上げたところ何も表示されません。別のカードでは正常に動作するので、このアップデートで何らかの障害が起こったと思われます。
調べるための準備をします。正常に動作する別のカードでブートするときに、電源付きのUSBハブを付けて、USBカードリーダーをつなぎました。Pidora が正常に立ち上がってから、立ち上がらないSDカードを挿入します。dmesg コマンドなどで確認できますが、ここでは /dev/sdd として認識されました。早速マウントします。
# mount /dev/sdd2 /mnt # mount /dev/sdd1 /mnt/boot
画面が何も表示されないので、カーネルに制御が渡る前のトラブルと考えて、/mnt/bootの中身を調べてみ ます。 2013.07.11 の日付の、以下の3つのファイルが問題のようです。
boot/bootcode.bin boot/start.elf boot/fixup.dat
# yum provides /boot/bootcode.bin /boot/start.elf /boot/fixup.dat
で、調べてみますと、いずれも、raspberrypi-vc-firmware のアップデートで修正されています。
# yum info raspberrypi-vc-firmware ...................... Summary : GPU firmware for the Raspberry Pi computer ...................... Description : This package contains the GPU firmware for the Raspberry Pi : BCM2835 SOC including the kernel bootloader. # # rpm -ql raspberrypi-vc-firmware /boot/bootcode.bin /boot/fixup.dat /boot/start.elf /usr/share/doc/raspberrypi-vc-firmware-20130711gitba8059e /usr/share/doc/raspberrypi-vc-firmware-20130711gitba8059e/LICENCE.broadcom #
つまり、Raspberry Pi のGPUファームウェアの3つのファイルが原因のようです。仕方が無いので、3つのファイルを別のSDカードのものからコピーします。
# cp -R /boot/{bootcode.bin,start.elf,fixup.dat} /mnt/boot
これでリブートすると一応立ち上がりました。念のため、次のようにもう一度インストールします。
# yum reinstall raspberrypi-vc-firmware-20130711gitba8059e-3.rpfr18.armv6hl ........................... #
インストールされた3つのファイルをエラーになったものと比較すると同じでしたが、ここでリブートすると再起動されました。
しかし、もう一度同じように残りの5つを再インストールして、その後にもう一度 raspberrypi-vc-firmware を再インストールしてもリブートできませんでした。 つまり、3つのファイルが問題なのでは無く、このアップデートを6つ同時に行うと何故か3つのファイルがエラーになりブートできなくなるが、以前動いていたものを一度コピーしてブートしてから、raspberrypi-vc-firmware だけを改めて再インストールすると正常に起動できるようになるようです。
アップデート前に、ブート可能な予備のSDカードを作成して、/boot の中身をどこかに待避しておくことをお勧めします。