RaspberryPi4の2GB版が比較的安価に入手できるので試しに購入してみた。
購入の目的は
- 性能的にデスクトップPCとして使用できるの?
- XOJOでコンパイルしたバイナリが動作するか?
の検証です。
流行りのIOT的なことはあまり考えておりません。
IOTは旧式でも十分だからラズパイ2,3をもっと安くしてほしいですな。
正式名称は「Raspberry Pi 4 Model B/2GB(以下ラズパイ4)で私はスイッチサイエンス社より購入しました。
amazon等でも在庫は潤沢なようですので直ぐ手にはいります。
TypeCで5V 3Aで使用できそうな電源を持っていなかったので、あわせてラズパイ4用にamazonより適当な電源アダプタを購入しました。
私が購入したものはhttps://amzn.to/2C2odSZでON/OFFスイッチも付いていて使い勝手が良いです。
今のところ問題なく使用できています。
なんで2GBをチョイスしたかと言いますと、お試しだから安い方がイイ。
PC、Macなど一通り持っているのでラズパイデスクトップPCは常用はあり得ないし8GB版とかもありますけど現時点では不要、1万越えなので何か別のもの、例えばセンサー類を買った方が良いかなと思った次第。
ここではOSのインストールなど既に詳しく解説しているwebページが沢山あるので解説はしません。
公式のraspbianのインストールはずいぶん簡単になり、時間はそれなりにかかるものの難なく終了。
日本語の入力も難しい設定も無く出来ます。
私の場合はFHDのモニタに繋いで検証していますが旧版と比較して、GUIの操作に対するレスポンスは上がっておりなかなか良い。
ラズパイ4には比較的重いと思われるYoutube FullHDのフル画面表示も何とか見れる状況。
なりよりブラウザの起動がだいぶ早くなっていて贅沢を言わなければデスクトップPCとして使用できるレベルかもしれません。
DOS世代としては全然あり、LibreOfficeも実用可能なレベルだと思います。
現在むき出し運用なので、きちんとしたケースが欲しくなってきました。
今後、いろいろ試していこうと思いますがラズパイで心配なのがSDカードの寿命。
RAMディスクを使用するとかlogをどうこうするとか工夫すれば延命できますけど、面倒なのでなるべく長く試験環境を維持すべくOS部を外付けのSSDに入れる事にしました。
不要なmSATAのSSDを専用ケースに入れたものが上写真。
軽く調べてみたけどSSDから直接ブートするのは難しそうだし。
ケースはamazonで購入(https://amzn.to/37zXgC0)、USB-TypeCでケーブル付属で1200円。
めちゃ安い。
で、SDカード運用でのパーティション情報をチェック(環境依存)。
# blkid
/dev/mmcblk0p1: LABEL_FATBOOT=”boot” LABEL=”boot” UUID=”A764-6923″ TYPE=”vfat” PARTUUID=”7bc8c5ff-01″
/dev/mmcblk0p2: LABEL=”rootfs” UUID=”2f4adfbf-32e5-44ec-9323-1d08cbe8c29e” TYPE=”ext4″ PARTUUID=”7bc8c5ff-02″
/dev/mmcblk0: PTUUID=”7bc8c5ff” PTTYPE=”dos”
のrootfsの部分をSSD運用する形です。
PARTUUID=”7bc8c5ff-02″
をチェックしておきましょう。
あらかじめfdisk,mkfs.ext4でフォーマット済みのUSB-SSDを接続すると
/dev/sda1: UUID=”b523fef3-84d5-4cb7-9a08-fc8fcb4023ce” TYPE=”ext4″ PARTUUID=”a9e0dec9-01″
として認識します(細かな数値などは環境依存でーす)。
PARTUUID=”a9e0dec9-01″
をチェック。
そんで、SDカードのOS部/dev/mmcblk0p2をUSB-SSDの/dev/sda1にまるまるコピる。
# dd if=/dev/mmcblk0p2 of=/dev/sda1 bs=32 conv=noerror,sync
489340928+0 レコード入力
489340928+0 レコード出力
15658909696 bytes (16 GB, 15 GiB) copied, 3057.88 s, 5.1 MB/s
e2fsckを2,3回実行しエラーを修正
途中fixと出たらyを
# e2fsck -f /dev/sda1
# e2fsck -f /dev/sda1
次に
# resize2fs /dev/sda1
resize2fs 1.44.5 (15-Dec-2018)
Resizing the filesystem on /dev/sda1 to 15630422 (4k) blocks.
The filesystem on /dev/sda1 is now 15630336 (4k) blocks long.
OSの中身のコピーと後処理が完了したらbootを修正
/boot/cmdline.txt
を環境に合わせて修正します。
# vi /boot/cmdline.txt
などでテキストを編集する。cmdline.txtんの内容は
console=serial0,115200 console=tty1 root=PARTUUID=7bc8c5ff-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
赤字の部分をssdのPARTUUIDに編集、ここではa9e0dec9-01に変更。
console=serial0,115200 console=tty1 root=PARTUUID=a9e0dec9-01 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
変更したら保存。
最後にSSDにコピーしたfstabを編集。
# mount /dev/sda1 /mnt
でマウント後/mnt/etc/fstabを編集する。SDカード内のfstabを編集しないように注意。
#vi /mnt/etc/fstab
テキストエディタで内容を編集する。
proc /proc proc defaults 0 0
PARTUUID=7bc8c5ff-01 /boot vfat defaults 0 2
PARTUUID=7bc8c5ff-02 / ext4 defaults,noatime 0 1
# a swapfile is not a swap partition, no line here
# use dphys-swapfile swap[on|off] for that
先ほどと同様に7bc8c5ff-02の部分をSSDのUUID、a9e0dec9-01に変更して保存する。
そして再起動、問題なければSSDを使用するようになります。
既存のrootfsがオートマウントされて/mnt/rootfsとして認識されますが予備にそのままにしておくか、フォーマットしてデータ置き場にするとか。
USB-SSD化後の動作と言えばSDカードより更にレスポンスが良くなった気がします。
ちなみに初回ブラウザの起動は5秒くらい、2回目以降は3秒くらい、余裕で待てます。
あまりもののmSATAを使用したので最近のもっと高速のものなら更に早くなるかもですが、バスパワーなのでSSDの消費電力によっては正しく動作しないかも。