はじめに
久しぶりにRaspberry Piを使うためにRaspberry Pi OS(いわゆるRaspbian)とnodejsをアップグレードしたのでここにメモしておきます。
自分のためのメモですが、私のような初心者の方にも参考になるかもしれません。
私の環境
- Raspberry Pi 400
- メモリ 4GB
- SDカード 16GB
- もともとRaspberry Pi OS10と nodejs16が入っていた。
- LANケーブルでWindows 10パソコンにつないだ(PowerShellからsshで操作)
手順
0. ラズパイの起動、sshで接続
LANケーブルでパソコンとRaspberry Piをつないだ後、電源を入れました。そのあとWindowsのPowershellを使って、sshでRaspberry Piにログインしました。
ssh pi@hostname
1. Wifiにつなぐ
アップデートを行うので、Wifiネットワークの設定をしておきます。
いつもと違ったWifi環境でやったので、wpa_supplicant.confのSSIDとパスワードを更新しました。/etc/dhcpcd.confはそのままで大丈夫でした。
cat /etc/wpa_supplicant/wpa_supplicant.conf
sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
2. Raspberry Pi OSのアップデート
久しぶりに使うので、以下のコマンドでアップデートしようとしました。
sudo apt update
sudo apt upgrade
suto apt autoremove
これで作業が終わるといいかなぁと思っていたのですが、OSのバージョンが、10.10が10.13になっただけだったので、もう少し作業を進めます。
lsb_releaseで見てみると、現在のOSはRaspbian 10でコードネームbusterになっています。11では、コードネームがbusterではなくbullseyeになるそうです。なお、Raspbianと呼ばれていたOSは最近は Raspbery Pi OS と呼ばれるようになったそうですね。
/etc/apt/sources.list と /etc/apt/sources.list.d/raspi.list にbusterというコードネームが見えます。この二つのファイル中にあるbusterをbullseyeに置き換えるそうです。
viエディタで編集してもいいですし、以下のようにコマンドラインでやっても大丈夫です。
sudo sed -i 's/buster/bullseye/g' /etc/apt/sources.list
sudo sed -i 's/buster/bullseye/g' /etc/apt/sources.list.d/raspi.list
これができたら以下のようにしてアップデートします。フルアップグレードのためには、gcc-8というものが必要なのだそうです。アップグレードの後にはautoremoveもしておきます。
sudo apt update
sudo apt install libgcc-8-dev gcc-8-base
sudo apt full-upgrade
sudo apt autoremove
しかし、上のコマンドを実行してもアップグレードが出来ていなかったので、今度は以下を試します。終わったあとにautoremoveもやっておきます。
sudo apt dist-upgrade -y
sudo apt autoremove
再起動した後、次の作業をしようとしたらWifiネットワークが切れていたようなので調整しました。
sudo raspi-config
コンフィグの設定から、Advanced optionのnetwork configでdhcpcdを有効にして、Systetm optionsでwifiのパスワードもいれなおしたら大丈夫になりました。
3. nodejsのアップグレード
npm と nodejsもアップグレードしてみようと思います。nodejsは16から18にしてみようと思うので、以下のような感じでアンインストールしてから、再インストールしました。
sudo apt remove -y nodejs npm
sudo curl -sL https://deb.nodesource.com/setup_18.x | sudo bash -
sudo apt list availale nodejs
sudo apt-get install -y nodejs
おまけ:USBメモリのマウント
今後のためにUSBメモリのマウントも練習しておきます。USBメモリは電源を入れる前に接続しています。
接続デバイスの確認
まずはデバイスの確認をします。
sudo fdisk -l
/dev/sdaと認識されています。これはsdaのあとに番号が付いていないので、パーティションではなくてディスクです。パーティションを作っておくことが必要です。
パーティションの作成
以下のようにfdiskコマンドを使ってパーティションを作ります。私はUSBメモリにデータを入れていたのですが、この過程でどこかに消えてしまいました。空のUSBメモリを使った方が良いかもしれません。
sudo fdisk /dev/sda
dでパーティションを削除してから、nで新しくパーティションを作ります。パーティションの数やセクタの長さはデフォルトの設定で進めます。
最後にqでなくてwで終わりにしないと保存されませんから気をつけましょう。パーティションができるとsda1ができています。
フォーマット
vfatにフォーマットします。名前はTILEにしてみます。パーティションをつくらずsdaをフォーマットしようとするとうまくいかなかったのですが、sda1のパーティションを対象にするとうまくいきました。
sudo mkfs.vfat /dev/sda1 -n TILE
マウント
/mntの中にtileというディレクトリを作って、それをdev/sda1につなげます。以下のようにマウントしていきます。
sudo mkdir /mnt/tile
sudo mount -t vfat /dev/sda1 /mnt/tile
これをアンマウントするには
sudo umount /mnt/tile
か
sudo umount /dev/sda1
でよいようです。
下の画面のように実験してみました。Windows PCでもファイルが見られますし、だいたい大丈夫そうです。
(毎回シャットダウンするときにアンマウントしたほうが良いのかはまだよくわかりません。→再起動すると勝手にアンマウントされているので、どちらかというと起動時に自動的にマウントするようにした方がよいかもしれません。ただし、sdaになるか、sdbになるか、接続順が影響するかもしれないので、ちょっと方策を考えます。(or調べます。))
まとめ
ここでは、Raspberry Pi OSを10から11にした記録と、nodejsを16から18にした記録をメモしています。
また、USBメモリのマウントについても少しメモしておきました。
参考にしたページ