tag: raspberrypi4
アマゾンからモバイルディスプレイ到着。
いやー。15インチはデカイわw 一定の存在感はある。フォトフレームとは比較にならない。iPad Pro 10.5インチとも比較にならない。
(そりゃ固定ディスプレイよりは小さいけども。)
飛行機手荷物持ち込み可能トランク(30リットルくらい)の中に余裕で入るサイズではあるから、ギリギリモバイルと言える。たぶん。
でもコレだと持ち歩くならやっぱり屋内の部屋の間かなー。
ホテルまで21インチモニタを担いで行っているというPC Watchのライターの人マジ尊敬。
ちと電源を入れてみたが、「(映像)信号が入力されていません」という表示。
というわけで、ウチのRasberry Pi 4 Model B はのっけから暗礁に乗り上げましたww
Raspberry Pi 4 画面が真っ黒な場合の対処
tag: raspberrypi4
ケースが合ってない場合、電源ラインの USB Type-C とか、micro HDMI の差し込みが甘くなるので。 とりあえず裸で使う。
RECOVERY : 画面が真黒の場合には、EEPROMが壊れているかもしれない。 これを確認するには、RasPi4からMicro SDカードを抜いて、電源供給用のUSB Type-Cだけ接続する。 緑のLEDが点滅しない場合には、EEPROMを再プログラムする必要がある。
EEPROMを再プログラムするには、上のダウンロードからbootloaderのzipをダウンロードする。 FATフォーマットしたMicro SDにZIPファイルを置いてMicro SDをRasPiに装着。 Rasberry Pi 4 の電源を入れて緑のLEDが高速で点滅するのを待つ。
ウチの場合は、どっちが効いたのかよくわからんけど、ここまで試した時点でNOOBSのインストール画面表示が出るようになった。
千石電商のスターターキットの場合、16GBのmicro SDの中にはNOOBSが展開済みで入っているので、そのままインストールを実施。
p.s.
自分でインストールメディアを作る場合は以下。 12/01現在、sdcard.orgはwebサイトが消滅していて、Windows用のフォーマッタ(SDCardFormatterv5_WinEN.zip)が手に入らない。 web archiveを取っていた人がいたらしく、そこからダウンロードする。
NOOBSのダウンロード元は以下。2.45GBくらい。
ラズパイ4、空きディスク容量が2.5GBになる
tag: raspberrypi4
dockerとか入れて遊んでたらディスクがマッハでなくなった。
やはり16GB micro SDじゃダメか。
ちなみに、千石電商のスターターキットのパーティション構成は以下だった。
root@raspi4:/boot# fdisk -l Disk /dev/mmcblk0: 14.4 GiB, 15502147584 bytes, 30277632 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x0006f568 Device Boot Start End Sectors Size Id Type /dev/mmcblk0p1 8192 5017578 5009387 2.4G e W95 FAT16 (LBA /dev/mmcblk0p2 5017579 30277631 25260053 12G 5 Extended /dev/mmcblk0p5 5021696 5087229 65534 32M 83 Linux /dev/mmcblk0p6 5087232 5611517 524286 256M c W95 FAT32 (LBA /dev/mmcblk0p7 5611520 30277631 24666112 11.8G 83 Linux root@raspi4:/boot#
そんなわけで、128GB micro SD (1999円)をポチった。
順番が前後した気がするが、フォーマットとOSインストールから始めよう。
128GB micro SD card 到着。 Transcend microSDカード 128GB UHS-I U3 Class10 Nintendo Switch 動作確認済 5年保証 TS128GUSD300S-AE【Amazon.co.jp限定】 のヤツ。
tag: raspberrypi4
郵便受けに放り込まれてたwww自宅で待ってても来ないわけだwww待ちぼうけしてたわwww
micro SD card だと郵便ポストに余裕で入るサイズだからなぁ...。
さて、フォーマット。
32GBを超えるサイズのmicro SD cardを使う場合は、SD規格に従えばexFATにしないといけないのだが、現在のNOOBSのbootloaderはFAT16かFAT32しか対応してないので、FAT32で大容量SD cardをフォーマットできる特別なフォーマットツールを使え、という話のようだ。
公式で紹介しているツールは以下。
FAT32 Format ( guiformat.exe ) を実行すると、
Failed to open device GetLastError()=32 プロセスはファイルにアクセスできません。別のプロセスが使用中です。
というエラーになってフォーマット開始できない。
エクスプローラを含め、他のウィンドウを全部終了して、Windowsキー + R で guiformat.exe を直接指定して実行するとフォーマット開始できた。
フォーマットには大体1.1時間くらいかかるかな。
...。
59,791bytes
フォーマットが終わったら、NOOBSのzipをフォーマットしたmicro SD cardのルートディレクトリに展開してコピーする。ここは公式手順を参照。
NOOBSインストーラの操作は以下を参照。
パーティションをRaspBerryPi用にリサイズしたりするのはNOOBS側がやってくれる模様。
pi@raspi4:~ $ sudo fdisk -l Disk /dev/mmcblk0: 112.8 GiB, 121068584960 bytes, 236462080 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x000622ef Device Boot Start End Sectors Size Id Type /dev/mmcblk0p1 32768 5017578 4984811 2.4G e W95 FAT16 (LBA) /dev/mmcblk0p2 5017579 236462079 231444501 110.4G 5 Extended /dev/mmcblk0p5 5021696 5087229 65534 32M 83 Linux /dev/mmcblk0p6 5087232 5611517 524286 256M c W95 FAT32 (LBA) /dev/mmcblk0p7 5611520 236462079 230850560 110.1G 83 Linux pi@raspi4:~ $
ディスクの書き込みがやたら高速になったな...。前の16GBのヤツがダメなのか。
これならおうちサーバいける予感。
ラズパイ4用のdocker image(linux/arm/v7対応)
tag: raspberrypi4
ラズパイOS(Raspbian)は過去との互換性を保つためarmの32bitのlittle endian。
Docker Hub とか Git Lab に任せてdockerイメージビルドしてると、x86-64用のバイナリになってしまう。
linux/arm/v7 用のdocker imageを作るには、ローカルマシン(RaspBerryPi4)でビルドしてdocker pushすることになるのかな。
オレwikiはopenjdk11/tomcat9が動けばいいので、FROMをdebianにしてopenjdk11/tomcat9をapt install と書いておくと Dockerfile は x86-64 と linux/arm/v7 で同じもので 両アーキテクチャ対応ができる、はず。
Docker社も異なるアーキテクチャをサポートすると宣言しているが、Docker 19.03.5 だとまだcross docker build はベータ版のようだ。
ちなみに、jupyter/minimal-notebook は linux/arm/v7 版が あり ( 無かった ) 、RaspBerryPi4からdocker pull できる。
p.s.
ラズパイ4からpullできるんだけど、x86_64バイナリが落ちてくるということが判明したw
VirtualBox 6.1 出た
tag: virtualbox, vagrant, chocolatey
vagrant up したら悲しいメッセージが;;
vagrantは VirtualBox 6.0 しか知らんとな。
Oracle VM VirtualBox マネージャーからVMを起動してとりあえずssh接続でログインできたからまぁいいけど。
$ vagrant up The provider 'virtualbox' that was requested to back the machine 'node3' is reporting that it isn't usable on this system. The reason is shown below: Vagrant has detected that you have a version of VirtualBox installed that is not supported by this version of Vagrant. Please install one of the supported versions listed below to use Vagrant: 4.0, 4.1, 4.2, 4.3, 5.0, 5.1, 5.2, 6.0 A Vagrant update may also be available that adds support for the version you specified. Please check www.vagrantup.com/downloads.html to download the latest version. $
chocolateyでvagrant 6.0に強制的に戻す場合は以下。
# バージョン固定 vagrant 6.0系 強制インストールコマンド choco install virtualbox --version=6.0.14 --force --yes # アップデート用コマンド choco upgrade -y all --except="'virtualbox'"
raspbian GNOME keyring
tag: raspberrypi4, gnome-keyring
Raspbian OS の docker login は、GNOME keyring service を利用しているようだ。
ssh端末接続している時に docker login すると、ラズパイのGUI画面側にキーリングのロック解除画面が表示される...動作としては正しいけど....これはとても微妙...。
keyringのパスワードを空にすれば、いちいち聞いてこなくなる模様。(その代わり、パスワードは平文保存になるけど)
変更方法
seahorseというGNOME Keyring GUIから管理するソフトをインストール。
sudo apt install -y seahorse
インストールすると、GNOME Desktopのメニュー→アクセサリ→パスワードと鍵というメニューが増えているので、これを選択。
defaultキーリングの上で右クリックして、パスワードの変更を選択。パスワードの内容を空に変更する。
docker buildx build を使って linux/amd64 と linux/arm/v7 イメージを作ってみる
tag: raspberrypi4, docker, buildx
Docker for Desktop(Windows, Mac OS) には標準でdocker buildxプラグインが入っているけども、 Linux版のdocker-ceには標準ではbuildxプラグインは入っていないので、以下のコマンドでインストールする。
# install docker buildx plugin (Docker 19.03) export DOCKER_BUILDKIT=1 docker build --platform=local -o . git://github.com/docker/buildx mkdir -p ~/.docker/cli-plugins mv buildx ~/.docker/cli-plugins/docker-buildx chmod +x ~/.docker/cli-plugins/docker-buildx
※1 上の方法だとマジで開発中のソースを拾うので時々動かない日もあるww buildx公式リリースからbuildx pluginのバイナリを拾って ( https://github.com/docker/buildx/releases ) ~/.docker/cli-plugins/docker-buildx という名前で保存するのもあり。
※2 raspberrypi4 の場合、32bitカーネルで起動中に上のインストール操作を行う。 64bitカーネルで起動中だと対応するイメージが無いERRORになる...。
これで、docker buildx ls とかの buildx 系サブコマンドpluginが追加される。
上の記事で紹介されているエミュレータ(linuxkit/binfmt:v0.7)(binfmt_misc)を使う方法だと、 Java系のapt installが qemu: Unsupported syscall: 382 とか言われるので、 RaspBerryPi4を活用してみる。
■ docker context の設定
エミュレータを使わない場合、Dockerが動くマシンを2種類用意してdockerコンテキストとして登録する。
docker context create raspi4 --description "raspi4" --docker "host=ssh://pi@raspi4" docker context create aws3 --description "aws3" --docker "host=ssh://ubuntu@aws3" export DOCKER_HOST= unset DOCKER_HOST docker context ls
docker hostの指定はssh経由。
~/.ssh/config とか ~/.ssh/authorized_keys に色々記載して、 ssh -l pi raspi4 や ssh -l ubuntu aws3 とするだけでssh接続可能にしてある。
環境変数 DOCKER_HOST の方が docker context 指定よりも強いので、内容を空にしておく。
■ docker builder の設定
上で定義した2台のマシンをmybuilderとして登録する。
docker buildx create --name mybuilder aws3 docker buildx create --append --name mybuilder raspi4 docker buildx use mybuilder docker buildx ls docker buildx inspect docker buildx inspect --bootstrap docker buildx ls
inspect --bootstrap とやると、各マシンで buildkit daemon (daemon or container or Kubernetes Pod ?) が起動する。
こんな感じでmybuilderは色々なPLATFORMSを作れる具合に仕上がる。
$ docker buildx ls NAME/NODE DRIVER/ENDPOINT STATUS PLATFORMS mybuilder * docker-container mybuilder0 aws3 running linux/amd64, linux/386 mybuilder1 raspi4 running linux/arm/v7, linux/arm/v6 aws3 docker aws3 aws3 running linux/amd64, linux/386 raspi4 docker raspi4 raspi4 running linux/arm/v7, linux/arm/v6 default docker default default running linux/amd64, linux/386 $
これで準備OK。
docker buildx build -t username/hogehoge:latest --platform=linux/amd64,linux/arm/v7 --push .
とやれば、2種類のアーキテクチャ用のdocker imageができる。
現状では、複数種類のアーキテクチャをサポートするdockerコンテナイメージは buildx build 時点で docker registry に push するしか無いらしい。
(各マシンの buildkit は自分のアーキテクチャのイメージしか持って無いから仕方ない。統合はregistry上で行われているのだろう。)
registry上のイメージの確認。 Platformが複数表示される。
docker buildx imagetools inspect username/imagename:imagetag
GitHub連携とかで自動ビルドするとx86_64のみイメージが後から上書きされるので、自動ビルドはオフにしておく。
登録したmybuilderだが、マシンrebootとかがあるとstop状態になるので、使い終わったら消しておくのが良いのかな。
docker buildx rm mybuilder
感想。
さすがにラズパイ4側が遅くてビルドに10分近くかかるのが難点w
あと、ラズパイ側がbroken pipeエラーでちょいちょい失敗するので、原因探らないと。
ラズパイ4、 usb2-port-1: over-current change #xxx エラーがでて USB 使用不可能に ...
tag: raspberrypi4, over-current
なんか知らんけどUSBキーボード、USBマウスが効かなくなった;;
apt upgrade とかやっちゃマズかったかしらん?
(p.s. 新ラズパイ4購入したら解決した...基盤のハードウェア故障な模様...)
/var/log/messagesには以下のようなメッセージがゾロゾロでる。なんだろうこれ。
Dec 19 21:58:48 raspi4 kernel: [ 186.483507] usb usb2-port2: over-current change #194 Dec 19 21:58:48 raspi4 kernel: [ 186.483956] usb 1-1-port4: over-current change #193 Dec 19 21:58:49 raspi4 kernel: [ 186.723556] usb usb2-port3: over-current change #194 Dec 19 21:58:49 raspi4 kernel: [ 186.723941] usb 1-1-port1: over-current change #194 Dec 19 21:58:49 raspi4 kernel: [ 186.963523] usb usb2-port4: over-current change #194 Dec 19 21:58:49 raspi4 kernel: [ 186.963936] usb 1-1-port2: over-current change #193 Dec 19 21:58:49 raspi4 kernel: [ 187.203526] usb usb2-port1: over-current change #195 Dec 19 21:58:49 raspi4 kernel: [ 187.203926] usb 1-1-port3: over-current change #194
ぐーぐる先生に聞いてもあまり良い情報がない。
同じ事象に陥ったラズパイ2の記事のヒットが多くて、ハードウェア故障だから、はんだ付けしてUSB過電流検出部品取ってジャンパ線飛ばせとか書いてあるw
USBキーボード&マウスが使えないと、新しいOSはインストールできなくなるのが寂しい;;
ラズパイ4:64bitカーネルでも起動
tag: raspberrypi4
NOOBSでインストールしたRaspBianOSの場合、デフォルトは32bitなのだが、 /boot/config.txt に以下を書いてrebootすると、ラズパイ4 Model Bは64bitカーネルで起動する。
arm_64bit=1
64bitカーネルで起動した後、docker buildx で対応platformを見たら、raspi4 の所に linux/arm/v8 , linux/arm64 とか表示されててワロタw
これはどっちを使うか悩むなぁ・・・。とりあえず 32bit カーネルに戻しておいたけど。
FreeBSD 12.1-RELEASE 出てた
tag: FreeBSD-12.1-RELEASE, freebsd
まぁ11/05だからだいぶ古い話だけど
自宅だとx86物理マシンが足りないのでvirtualbox用イメージでインストール。
vagrantでboxをダウンロードする場合は以下。
vagrant box add freebsd/FreeBSD-12.1-RELEASE --provider virtualbox vagrant box add freebsd/FreeBSD-12.1-STABLE --provider virtualbox
新OSインストール記念に、 以前失敗していたzfs上の巨大ファイル作成 にチャレンジ。
今回は無事成功する。
今回の条件は以下。
前回と何一つバージョンが合ってないww
今のFreeBSD環境はvagrantとシェルと一部ansibleで設定している。
ホームディレクトリの内容はログインするときにtar.gzで持ち込み、 exitするときにtar.gzで持ち出す。
OSまるごと新規インストールしても、すぐに使える感じになりつつある。
モバイルマシンを駆使するnomadとは違うけど、VMを渡り歩くnomadになりつつある気がするw
ラズパイ4:2号機購入
tag: raspberrypi4
ラズパイ4Bの1号機は USB over-current が /var/log/messages に出続けるようになってしまったのでハードウェア故障を疑う。
千石電商に行ってラズパイ4B 4GBモデルを購入。7500円。(2回目)
今日行ったらRaspBerryPi 4 2GBモデルも売られていたし、冷却系のオプション品も色々増えてた。
以下を購入。
ラズパイ4はヒートシンクとかファンが色々出てて面白い。 (みんな放熱に苦労してるのね。)
家に戻ってラズパイ本体交換。 micro SD Card はそのまま移植。 おいおいこれだとマシン引っ越しがすげぇ楽だゾww
ヒートシンクは薄いヤツを試しに装着。
カメラとかディスプレイとか買ってあるから...。これで熱的に耐えられないようなら、ディスプレイとカメラを諦めて超巨大ヒートシンクにするしかない。
p.s. ケース型ヒートシンクの箱を開けて確認してみたら、ちゃんと専用ディスプレイ用とか専用カメラ接続用に、上面にも穴があいてた。 さすが専用ケース型ヒートシンク。 自分はまだ試してないけど、これが見た目通りの性能を発揮するならラズパイ4のケースはコレ一択になるかもしれん。
アイドル時、 48度から50度くらいの模様。 冬なのにこの調子ではダメかもわからんね...。
docker buildx 時は60度まで上昇。 うーん。ガチで使う場合は本当に超巨大なファン付きヒートシンク必要な予感...。
pi@raspi4:~ $ cat /sys/class/thermal/thermal_zone0/temp 50634 pi@raspi4:~ $ pi@raspi4:~ $ cat /sys/class/thermal/thermal_zone0/temp 60374 pi@raspi4:~ $
2号機に切り替えたら /var/log/messages には over-current は出力されなくなった。 USB周辺のマザーボード故障ってことだろう。 1号機も最初の2週間くらいは over-current は出てなかったので、しばらく様子見。
秋葉原の餃子屋さんで忘年会 / ラズパイ4:3号機購入
今日は秋葉原の餃子屋さんにて某所の忘年会。
その前に千石電商に寄ってラズパイ4の3号機を購入(3回目)
ラズパイ2号機は元気に動いてるけど、64bitカーネルで動かしたままの機体が欲しかったので追加購入。
tag: raspberrypi4
ラズパイ4の3号機はarmv8(arm64)イメージ焼きマシンにしようとたくらんでいたのだが、 なかなかdocker buildx inspect --bootstrapが成功しない。。。
うーん...。
むむ......。
お。成功した。よくわからんなwww
64bitモードで動かしたラズパイ4のdockerコマンド(armhf)は、docker buildする際のベースイメージとして debian:buster を指定すると、 dpkg --print-architecture の出力が armel というdockerイメージを拾ってくるのだが、なんぞこれ?
armhf でも arm64 でもない...。armelってなんや...。
download.docker.com にあるdocker-ce-cliパッケージでは arch=armel は用意されていないらしく、apt install docker-ce-cli がうまくいかずdocker buildは失敗する。
dpkgでのアーキテクチャの扱いをちと修行しないと64bitモードを活用できなさそうな雰囲気。
継続調査やね。
あと、今回はラズパイ4専用ケース型ヒートシンク(2200円)を装着してみた。
結論から言うとあんまり変わらない気がするというか...w
このケース型ヒートシンク、熱容量はかなり大きく、インストーラから行う各種アップデートが完走するほどの高性能を誇る(小型ヒートシンクだとアップデートは失敗に終わる)のだけど、 熱を空気に逃がす性能はちょい微妙で、熱平衡状態になるとあんまり性能変わらん気がする。 ケース型にすると熱が籠るのかな。
(というか、裸で基盤を立てて使ってるラズパイ4+専用薄型ヒートシンク(410円)が見た目に反してかなり空冷性能が高いのかも)
これ以上を狙うならファンが必要になってくるか。。。
以下3号機の結果。(ケース型ヒートシンク)
pi@raspi42:~ $ cat /sys/class/thermal/thermal_zone0/temp 46738 pi@raspi42:~ $
以下2号機の結果。(専用薄型ヒートシンク)
pi@raspi4:~ $ cat /sys/class/thermal/thermal_zone0/temp 46251 pi@raspi4:~ $