Handspring VisorをWindows10で同期
ネットにもつながる高画質ディスプレイ、パワフルなCPUなスマートホンを毎日使ってますが、西暦2000年前後ネットにもつながらないモノクロ、貧弱なCPUでも快適なガジェット(ハンドヘルドデバイス)がありました。
US Robotics と 3com がリリースした PDA(パーソナル データ アシスタント) Palm。
今回は、この Palm OS で低コストで独自のバスを搭載したガジェット Handspring社 の Visor を Windows10 64bit環境で同期(Hot-Sync)してみました。
※)この記事を読んでる方に Palm が何かを説明するのは、蛇足かもしれませんが…念のため。
Handspring Visor(Palm OS 3.1)
![]()
Palmの開発者が新しく立ち上げた Handspring社で発売された Palm OS搭載のハンドヘルドデバイス Visor。
独自の拡張スロットSpringboard(スプリングボード)を搭載した製品です。
Springboard のコネクタは、68pinで実際には PCMCIA のコネクタピッチと互換がありました。
ピンアサインは異なりますが、マイク端子が直接でていたり、データラインで双方向のやりとりができたので、GPSユニットやバックアップモジュールなども発売されていました。
VisorのUSB接続クレードルは、それまでのPalmのシリアル通信ではなくUSBのデータ(USB+/-)が直接出ていましたので、高速に同期(Hot-Sync)ができたのも魅力です。
Windows 10 で同期してみる
この Visor を Windows10 で使えるように環境を整えました。
手元には Visor 本体があったのですが、母艦となるWindowsやMac,Linuxと同期するための USBクレードルがありませんでした。
たまたまメルカリで、出品されている方から USBクレードルを譲ってもらったのが今回の発端です。
Palm Desktop環境を整える
母艦と同期するための Palm Desktop や Windows10 64bit環境で同期するためのドライバは、PalmDBという海外のサイトで入手できます。
PalmDB には、PalmDesktop の他に、プログラミング環境の 「Metrowerks Codewarrior」 や 「NSBasic IDE」なども配布されています。
今回は、NSBasic IDE(Github)も一緒にダウンロードして、環境を構築しました。
- [PalmDB] Aceeca USB Drivers for Windows 64bit版をダウンロード
- [PalmDB] Palm Desktop Ver.4.1 をダウンロード
palm Desktop は、PalmOS 4以降をサポートする Ver.6 も配布されていますが、Visor のOSは、Palm OS 3.1ですので、Palm Desktop 4.1 を使用します。
palm Desktopで日本語フォントを指定する
Palm Deaktop Ver.4.1 は、英語フォントが標準で指定されているので、そのままでは日本語データの表示で文字化けします。
メモやカレンダーの日本語データを表示するには、Palm Desktop の レジストリ データベース を変更します。

変更するレジストリは、以下の4項目です。英語フォントが指定されていますが、今回は「メイリオ」を指定しました。
1 2 | レジストリの場所 コンピューター\HKEY_CURRENT_USER\SOFTWARE\U.S. Robotics\Pilot Desktop\Core |
- FontCard
- FontGeneral
- FontSmall
- FontUser
上のレジストリを変更して Palm Desktop を再起動すると、日本語のメモやアドレス帳、カレンダーの表示が日本語対応になります。
メニューは、英語の表示のままですが利用上は問題ありません。

お手軽な開発環境: NSBasic IDE
Visorの同期ができたので、ついでに開発環境である NSBasic IDEもインストールして環境を作りました。

June 18, 2021 にオープンソースで Github でソースコードも公開されています。
NSBasic IDEの機能すべてと、Palm OS エミュレータも動作するので、実機に転送せずに開発もできます。
Palm OSってナニ? とりあえず動いているところをみてみたいと言う場合には、NSBasic IDEはお手軽で良い環境です。
Zen of Palm : シンプルな使いかって
なぜ今回 古くてネットにもつながらない Palm Visor を復活させたかというと「Zen Of Palm」の再確認のためです。
「Zen Of Palm」は、Palm の機能ではありません。
Palm OS ハンドヘルドデバイスの操作感、使用感、アプリケーションの設計に関しての文章です。
原文と 日本語訳のリンクは、以下のリンクをたどってください。
- Zen of Palm 原文(PDF)
- Zen of Palm の日本語訳
アプリケーションやシステムの開発をしていますが、最近のデバイスは非常に高性能で色々なことができます。
反面 開発者は「ナニを実現して、ナニを実装しないのか」を考えないと「色々なことができるが、ユーザーはどう使ったら良いか判らない(何もできない)」ことが発生します。
当然、プロダクトのコンセプトも、使う人に伝わりにくくなりブレブレになってきます。
Zen of Palm によって開発された Visor で再確認したかったのは、この「なんでもできる」は「何もできない」のと同じになりがちなスマートホンやアプリの開発のスタイルに対しての確認でした。
Handspring社はすでに無くなっており、Palm OSの開発も止まってしまっていますが、この Zen of Palm という考え方は、リッチコンテンツを扱えるようになった今からの課題になるような気がします。
NanoPi NEO2 最新に再構築 (Armbian 21.04 Buster)
RaspberryPiよりも小型の NanoPi NEO2。
CPUやメモリーが RaspberryPi よりも低性能ですが、NanoPi NEO2 の魅力は小ささです。
秋月電子などで入手がしやすいことも魅力です。
今までは ベンダーが提供するOSを使用していましたが、今回は NanoPi NEO2 を新しいバージョンで再構築しました。
NanoPi には NanoPi NEO (Cortex-A7 @1.2GHz) もあります。
こちらは、Cortex-A7 になりますが、価格が安くなりますので更にコスパヨシです。
NanoPi NEO 2
NanoPi NEO
NanoPi NEO2 のおさらい
NanoPi NEO2は、FriendlyArm が販売している ARM Cortex-A53 を使用した小型のLinuxマシンです。
- CPU : Allwinner H5 (クアッドコア Cortex-A53 )
- MEM : DDR3 512MB
- Ethernet : 10/100/1000
- USB 2.0 x1
- microSD
- GPIO 24ピン
- シリアル x2
- HDMI接続は存在しない
- 基板サイズ:40x40mm
- 動作電源:5V2A (microUSB)
スペック的には RaspberryPi 3 よりも劣りますが、サイズが非常に小さくネットワークサーバーとして使用するように割り切った仕様のため使いやすい場面も多くあります。
2021年現在 入手が難しくなっている RaspberryPi 3 や 4 の代わりに 小型Linux を試してみたい場合にも重宝します。
HDMI出力がないので、OSのセットアップには USBシリアル のモジュールを使用します。
![]()
これも秋月電子で入手できるパーツで簡単に接続できます。
FT234X 超小型USBシリアル変換モジュール
シリアルポートのプロトコルは、次の通り。
- ボーレート: 115200bps
- データ: 8bit
- パリティ: none
- ストップビット: 1bit
- フロー制御: none
Buster のインストール
公式のOSもありますが、コミュニティが開発している Armbian が新しいOSに対応していますので、今回は armbian で Buster をセットアップします。
すでに bullseye もリリースされていますが ユーザースペース(ユーザーランド) のステータスが unstable でしたので、今回はユーザースペースが stable な Buster を採用しました。
今後、Bullseye のユーザースペースが stable になった場合でも、同じ方法で再構築ができます。
Armbian Buster OSイメージの書き込み
最初に Armbian 公式サイトの NanoPi NEO2 のページから OSイメージを取得します。
今回は、次のOSイメージを取得しました。
「 Armbian_21.08.1_Nanopineo2_buster_current_5.10.60.img.xz 」
取得したイメージを microSD に書き込みますが、RaspberryPi を使用している方は、 「Raspberry Pi Imager」アプリで読み込んで microSD にイメージを作成するのが簡単です。
![]()
Raspberry Pi Imager を使用していない場合には、 rufus などを使用して microSD にイメージを書き込みます。
Armbian 初期の起動
イメージを書き込んだ microSD を NanoPi NEO2 にセットして、USBシリアルを接続したら 電源をつないで起動します。
最初に ファイルシステムのリサイズがあり自動で再起動 します。
![]()
NanoPiのメッセージが表示されたら、rootで自動ログインして初期の設定に入ります。
- root アカウントのパスワード設定
- 使用する シェルの選択 (bash/zsh)
- 通常使用するアカウントの追加
- ロケールの設定
ここまでを初期の起動で設定します。
Armbian のコマンドをラップしているだけですので、後から修正もできます。
Armbian の設定
armbian が起動したら、armbian-config (BusterではBeta版) コマンドを使用してシステムの設定ができます。
Raspberry Pi の raspi-config と同じようなメニューですので迷わないと思います。
1 2 | $ sudo armbian-config |
- IPアドレスの固定(必要であれば)
- sshサーバーの起動設定
- I2Cの有効化
これくらいを設定しておくと NanoPi をディスプレイ無しで運用するには十分です。
これで最低限の設定が完了しました。後は通常の Debian と同じように操作ができます。
NanoPi NEO 2
RaspberryPi HDMIを快適にする
RaspberryPi 4 を普段使いしていますが、HDMIのディスプレイは接続せずに使っています。
ただ、たまに RaspberryPi にマウスとキーボードを接続して画面を操作しようとすると…
起動時にHDMI接続していないのでHDMIに表示できない という問題。
RaspberryPiの状態を確認したいのに、起動時にHDMIを有効にしていないためにディスプレイ確認できないのは不便です。
RaspberryPi のHDMI接続 問題
RaspberryPiの標準設定では、起動時に HDMI が接続されていない場合、HDMI表示が無効になります。
その他にも HDMI の安定動作のために標準ではHDMIの音声が無効になる場合もあります。
- 起動した後に HDMI 接続したときに認識して表示して欲しい
- HDMI 接続時にはサウンドもHDMIに出力して欲しい
この問題を解決するための設定を追加しました。
起動時にHDMI接続がなくても認識させる : ホットプラグ対応
RaspberryPi の起動時に HDMI 接続がなく、使いたい時に HDMI 接続が有効になるように、HDMIのホットプラグを有効にします。
設定方法は、 /boot/config.txt を変更します。
1 2 3 4 5 6 | $ sudo vi /boot/config.txt # uncomment if hdmi display is not detected and composite is being output hdmi_force_hotplug=1 |
hdmi_force_hotplug のコメントを外して、 1 を設定します。
設定したら RaspberryPi を再起動します。
hdmi_force_hotplug
Setting
hdmi_force_hotplugto1pretends that the HDMI hotplug signal is asserted, so it appears that a HDMI display is attached. In other words, HDMI output mode will be used, even if no HDMI monitor is detected.
引用元: Video options in config.txt – Raspberry Pi Documentation
これで「起動時に HDMIを接続していなくても、起動後にHDMI接続するとディスプレイ表示」ができるようになります。
HDMI の音声出力問題の解決
RaspberryPi の HDMIは、互換性を優先するために サウンド出力が無効になる場合があります。
これは DVI接続モードも考えての対応のようです。
これを HDMI 接続するときには、必ず サウンドも出力するように設定するには、同じように /boot/config.txt を変更します。
1 2 3 4 5 6 7 | $ sudo vi /boot/config.txt # uncomment to force a HDMI mode rather than DVI. This can make audio work in # DMT (computer monitor) modes hdmi_drive=2 |
hdmi_driver のコメントを外して、モードを 2 に設定します。
hdmi_drive
The
hdmi_drivecommand allows you to choose between HDMI and DVI output modes.
hdmi_drive result 1 Normal DVI mode (no sound) 2 Normal HDMI mode (sound will be sent if supported and enabled)
引用元: Video options in config.txt – Raspberry Pi Documentation
これで RaspberryPi のHDMIポートは、常に 通常のHDMIとして動作するようになります。
RaspberryPi 接続時にディスプレイをオンにしない
RaspberryPi のHDMI管理機能は、RaspberryPi を接続して起動すると自動的にディスプレイの表示をオンにします。
HDMIのホットプラグを有効にしつつ、RaspberryPiの起動で自動的にディスプレイをオンにしないようにするためには、以下の設定を追加します。
1 2 3 4 5 | $ sudo vi /boot/config.txt hdmi_ignore_cec_init=1 |
ただ、マニュアルには記述があるのですが、私の RaspberryPi4 では、この機能は上手く機能しませんでした。
「HDMIのホットプラグ」は、環境を切り替えて使っている人には、インストール後に設定しておいた方が良い便利設定です。
複数のRaspberryPiやJetSon Nano、ゲーム機などを接続している場合には HDMI切り替え機も良いのですが Blackmagic Design の ATEM mini もオススメです。
RaspberryPi 4 Docker 環境の構築
先日 Raspberry Pi 4 に M.2 SATA を追加してストレージの問題も解決しました。
ストレージに余裕ができたので RaspberryPi 4 の能力を最大限に使うために Docker 環境を構築してみました。
RasbianOS の 64 bit化
すでに M.2 SATA を搭載したときに RasbianOS を 64bit カーネルで動作するように設定しています。
1 2 3 4 5 | $ sudo vi /boot/config.txt [all] arm_64bit=1 |
config.txt で arm_64bit の設定を追加したら、以下のコマンドで RaspberryPi のファームウェアをアップデートします。
1 2 3 | $ sudo rpi-update $ sudo reboot |
アップデートが完了したら、再起動して 64bit カーネルを有効にします。
これで RasbianOS が 64bit で動作するようになりました。
設定後の環境は、次の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | pi@raspberrypi:~ $ lsb_release -a No LSB modules are available. Distributor ID: Raspbian Description: Raspbian GNU/Linux 11 (bullseye) Release: 11 Codename: bullseye pi@raspberrypi:~ $ cat /etc/os-release PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)" NAME="Raspbian GNU/Linux" VERSION_ID="11" VERSION="11 (bullseye)" VERSION_CODENAME=bullseye ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs" pi@raspberrypi:~ $ uname -a Linux raspberrypi 5.10.82-v8+ #1493 SMP PREEMPT Wed Dec 1 11:40:12 GMT 2021 aarch64 GNU/Linux |
Docker Engine 環境の構築
64bit 化ができたら、 Docker 環境を構築していきます。
Docker Engine のインストール
多くのディストリビューションでは、yum,apt,dnfなどのパッケージ管理からインストールしますが、RasbianOSでは 別の方法でインストールします。
1 2 3 | $ curl -fsSL https://get.docker.com -o get-docker.sh $ sudo sh get-docker.sh |
pi ユーサーに Docker 実行権限の付与
Docker Engine のインストールが完了したら、 pi ユーザーで docker の管理ができるように権限を追加します。
1 2 | $ sudo usermod -aG docker pi |
これで pi ユーザーで、docker コマンドの実行ができるようになりました。
1 2 3 | pi@raspberrypi:~ $ docker -v Docker version 20.10.11, build dea9396 |
docker のインストールは完了しましたが、今後のアップデートで docker のバージョンが変わってしまうと環境違いの問題なども発生するので、アップデートから除外しておきます。
1 2 3 4 | pi@raspberrypi:~ $ sudo apt-mark hold docker-ce docker-ce-cli docker-ce はすでに保留に設定されました。 docker-ce-cli はすでに保留に設定されました。 |
イメージとコンテナの保存場所の変更
Docker イメージとコンテナは増えていきますので、ローカルの microSDではなく、拡張した M.2 SATA に保存するように設定を変更します。
RasbianOS ではプロセスの管理で systemd を使用しますので、 systemd の設定ファイルを変更します。
1 2 | $ sudo vi /lib/systemd/system/docker.service |
docker.service ファイルを開いたら ExecStart のパラメータに -g [path] を追加します。
今回は M.2 SATA でマウントした /mnt/opt01 以下を指定しています。
1 2 | ExecStart=/usr/bin/dockerd -H fd:// -g /mnt/opt01/docker --containerd=/run/containerd/containerd.sock |
ここまでの設定が完了したら systemd の設定を再読込して docker を再起動します。
1 2 3 | $ sudo systemctl daemon-reload $ sudo systemctl restart docker.service |
docker の動作確認
以下のコマンドを実行して docker の最初の動作確認(Hello World)をします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | pi@raspberrypi:~ $ docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 9b157615502d: Pull complete Digest: sha256:cc15c5b292d8525effc0f89cb299f1804f3a725c8d05e158653a563f15e4f685 Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (arm32v7) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/ |
Docker の基本的なコマンド
この記事を読んでいる人は、 docker を使いこなしている方が多いと思いますが、念のため docker コマンドの基本的な利用方法を記載しておきます。
コンテナの一覧は docker ps -a を使用します。
1 2 3 4 | pi@raspberrypi:~ $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ee89203aed18 cpuminer-multi "./cpuminer -a lyra2…" 2 days ago Exited (0) 2 days ago mona |
コンテナの状況を確認したら、以下のコマンドで コンテナを管理できます。
| コマンド | 内容 |
|---|---|
| docker ps | 起動しているコンテナを表示 |
| docker ps -a | 起動・停止しているコンテナ すべてを表示 |
| docker run [名前] | docker pull, create, start を実行 |
| docker pull [名前] | コンテナイメージを取得 |
| docker create -it [名前] | イメージからコンテナを作成 |
| docker container ls -a | コンテナの一覧を表示 |
| docker start [コンテナID] | コンテナの起動 |
| docker stop [コンテナID] | コンテナの停止 |
| docker restart [コンテナID] | コンテナの再起動 |
| docker rm [コンテナID] | コンテナの削除 |
docker-compose のインストール
これで Docker Engine が利用できるようになりましたが、 Docker の管理を簡単にするために docker-compose をインストールします。
1 2 3 4 5 | $ sudo pip3 install docker-compose pi@raspberrypi:~ $ docker-compose -v docker-compose version 1.29.2, build unknown |
docker-compose も docker 同様に、バージョンを固定するためにアップデートの対象から外します。
1 2 3 | pi@raspberrypi:~ $ sudo apt-mark hold docker-compose docker-compose は保留に設定されました。 |
docker-compose で nginx,postgresql のコンテナ利用
docker の基本が確認できたので docker-compose で nginx,postgresql の動作を確認します。
準備
docker-compose で docker を管理するために作業ディレクトリを作成します。
1 2 3 | $ mkdir -p ~/src/lamp-nginx $ cd ~/src/lamp-nginx |
docker-compose.yaml 作成と起動
作業ディレクトリに移動したら docker-compose で指定する docker-compose.yaml を作成してコンテナを起動します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $ vi docker-compose.yaml version: '3' services: db: image: postgres:latest environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: password ports: - 5432:5432 web: image: nginx:latest ports: - 8080:80 |
docker-compose.yaml を作成したら docker-compose で nginx と PostgreSQL のコンテナを起動します。
1 2 3 4 5 | pi@raspberrypi:~/workspace/lamp-nginx $ docker-compose up -d Creating network "lamp-nginx_default" with the default driver Creating lamp-nginx_db_1 ... done Creating lamp-nginx_web_1 ... done |
これで nginx と PostgreSQL のコンテナが起動しました。
1 2 3 4 5 | pi@raspberrypi:~/workspace/lamp-nginx $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1e5ae59e9d52 nginx:latest "/docker-entrypoint.…" 53 seconds ago Up 51 seconds 0.0.0.0:8080->80/tcp, :::8080->80/tcp lamp-nginx_web_1 965a92ef736d postgres:latest "docker-entrypoint.s…" 53 seconds ago Up 51 seconds 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp lamp-nginx_db_1 |
docker-compose コンテナの停止
使わないコンテナは docker-compose.yaml のディレクトリで、以下のコマンドを実行することで、すべて停止することができます。
1 2 | $ docker-compose down |
これで RaspberryPi 4 で、docker を使う環境が整いました。
RaspberryPi4 大容量ディスクで快適空間: M.2 SATAボード
RaspberryPiを使っていて毎回悩むのが、microSDの容量。
ネットワークを構築している場合には、NFSサーバーを別に用意してストレージを拡張できますが、本体だけで持ち運びして大容量はなかなか難しい。
USB3.0 の外付けディスクもありますが、ケーブルが邪魔で収まりも良くないです。
M.2 SATAボードをRaspberryPi4に追加することで、 1 ユニットで大容量の M.2 SATA を RaspberryPi4 に追加できました。
M.2 SATA 拡張ボード
M.2 SATA 拡張ボードを使用すると、 RaspberryPi 4 の下に M.2 SATA を追加できるようになります。
付属の USB3.0 コネクタで RaspberryPi 4 の USB3.0 ポートに接続できます。
![]()
M.2 SATA は、別に用意する必要があります。
接続できる M.2 SATA は、 22mm の長さのものです。120GB から 960GB まで容量を選べますので、予算と用途に応じて使い分けできます。
M.2 SATA にデータを保存することで、OS の入っている microSD とデータを分離できるのは便利です。
ヒートシンクなど追加のパーツが無い場合には、キットに付属のネジとスペーサーで RaspberryPi4 に M.2 SATA ボードを拡張できます。
私の環境では RaspberryPi 4 に、ヒートシンクをつけていますので M2.5(2.5mm)のスペーサーで M.2 SATAボードとヒートシンクを接続しました。
![]()
RaspberryPi や JetSon Nano などは、M2.5 のスペーサーが使えますので、RaspberryPi のハードウェアをカスタマイズをする場合には、スペーサーを用意しておくと便利です。
RaspberryPi 4 64bit化
この作業は必須ではありませんが、RaspberryPi 4 は、64bit OSでの動作ができます。
せっかくパワーのある RaspberryPi 4 ですので、 64bit カーネルで動作するように config.txt の最後に 64bit 設定を追加します。
1 2 3 4 | $ sudo vi /boot/config.txt [all] arm_64bit=1 |
config.txt で arm_64bit の設定を追加したら、以下のコマンドで RaspberryPi のファームウェアをアップデートします。
1 2 | $ sudo rpi-update $ sudo reboot |
アップデートが完了したら、再起動して 64bit カーネルを有効にします。
接続とディスクのフォーマット
物理的な接続ができたら RaspberryPi 4 の OS で使えるようにパーティッションとフォーマットをしていきます。
この辺りは、他の Linux と変わりありませんので なれている方は迷わないと思います。
1 | $ sudo fdisk /dev/sda |
fdisk ツールで /dev/sda にパーティションを作成します。
パーティッションを作成したら、ext4 でフォーマットします。
1 | mkfs.ext4 /dev/sda1 |
フォーマットが完了して再起動すると /media 以下に追加した M.2 SATA がマウントされますが、システムで使用するには使い勝手が悪いので、 fstab で指定した場所にマウントするように設定します。
今回は、今後のディスクの拡張も考え /mnt/opt01 に、 M.2 SATA を割り当てました。
1 2 3 4 5 6 7 8 9 10 11 | $ sudo mkdir /mnt/opt01 $ sudo vi /etc/fstab proc /proc proc defaults 0 0 PARTUUID=7a1d58bf-01 /boot vfat defaults 0 2 PARTUUID=7a1d58bf-02 / ext4 defaults,noatime 0 1 /dev/sda1 /mnt/opt01 ext4 defaults,noatime 0 0 # a swapfile is not a swap partition, no line here # use dphys-swapfile swap[on|off] for that $ sudo mount -a |
これで再起動した後に RaspberryPi 4 で M.2 SATA のストレージが使用できるようになりました。
RaspberryPi 4 は、Dockerなどの仮想化ツールもつかえましし、NAS OSもありますので、持ち運びできるNASや、別記事で紹介している Minecraft, ゲームエミュレーションの端末としても活躍できそうです。
ディスク圧迫 Steamファイルを移動
以前は PS4 や Vita や Switch でゲームをしていましたが、最近ではすっかり Steam でゲームする時間が長くなりました。
そして Steamセールなどで安くなっているゲームを購入していると、いつのまにかSSDの容量が圧迫。
最近のゲームはディスクを圧迫しますね。
Steamの初期設定では、システムディスクに ゲームデータ(Steamコンテンツ)を保存します。
今回は、このSteamのゲームデータを大容量の別ディスクに移動してシステムディスクの圧迫を回避しました。
Steam ゲームの保存場所の追加
Steamは、ゲーム保存場所を追加することで、指定した場所にゲームデータを保存できます。
Steamを開いて「Steam」から「設定」を選択します。
![]()
左のメニューの「ダウンロード」で「STEAMライブラリフォルダ」をクリック。
![]()
ストレージマネージャー が開いたら「+」をクリクして、Steamコンテンツを保存する場所を追加します。
![]()
Steamコンテンツのインストールを、追加したディスクに保存するには、ドライブを選択して
「歯車」アイコンから「デフォルトに設定」を選択します。
ドライブの右側に ★マークが表示され、今後インストールする Steamコンテンツは、追加したフォルダーに保存されるようになります。
これでシステムディスクを圧迫することなくゲームが楽しめます。
Steamコンテンツを移動する
すでにインストールしてある ゲームの Steamコンテンツを移動することもできます。
移動させたい ゲームの「プロパティ」を選択します。
![]()
「ローカルファイル」メニューから「インストールフォルダーの移動…」を選択します。
![]()
追加したフォルダーを指定して「移動」を選択すると ゲームの Steamコンテンツが、別ディスクの場所に移動します。
データが大きい場合には時間がかかりますので、気長に待ちます。
SSD か HDD か
Steamコンテンツを移動させる先ですが、SSDとHDDで悩むところです。
手元には 4TB の HDD と 2TB の SSD。
HDDの方が容量はかせげますが、ゲームのロード時間などが遅くなるのも嫌だったので SSD を指定しました。
HDDは、ゲームのプレイ動画や撮影データ,写真のローカル保存場所として「多少時間がかかっても良いデータ置き場」にしました。
自宅に NAS もあり、そちらは 8TB ありますので、完全な保存データは NASで管理しています。
SUNTORY ピュアモルトボールペンの芯をカスタム
もう何年も前ですが、長野県にある サントリー白州 工場の見学に行きました。
まだ、国産ウイスキーが流行る前、工場見学の他 試飲や限定アイテムもあり楽しい工場見学。
ウイスキー&お酒好きにはたまらない体験でした。
その時に買ったのが、「サントリー ピュアモルト 白州工場版 1015ボールペン」。
ウイスキーのタルを再利用したボディのボールペンです。
多機能ペンやシルバーキャップタイプもあり、シャープペンシルもあります。
ピュアモルト 1015 の替え芯 とボールの復活?
ピュアモルト 1015ボールペンの替え芯は、 uni S-7L (98mm) を使用します。
インクがなくなったときには、三菱鉛筆 (uni) の S-7L (98mm) を購入すれば、交換できます。
![]()
長年愛用してきましたが、最近 ボールの滑りがわるくなり、かすれてかけないな書き心地が良くなくなってきました。
インクは十分に残っているので、ペン芯のボールにインクやゴミが詰まったなどで回転が良くないようです。
ボールペンのボール復活
ホールペンのボール復活の方法はいくつかあります。
- 重ねたティッシュペーパー で円を描くように滑らせてボールのゴミを拭き取る
- 消しゴム で円を描いて芯のゴミを取り除く
ただ、一度 堅くなったインクとボールの書き味はなかなか戻りません。
![]()
S-7L-89 (98mmの長さ) の替え芯を買ってくれば、直ぐに元のペンに戻るのですが、ピュアモルトの他のモデルでは uni の JetStream の芯を採用したモデルもあります。
ということで、ピュアモルト 1015 ボールペンのペン先を JetStream 0.5mm に交換してみました。
ピュアモルト 1015 に JetStream 替え芯を使う
ここからは、あくまで私が試した方法なので、実際に試してみたい場合でも自己責任でお願いいたします。
ボールペンの替え芯は、おおよその太さがあっていれば他のものでも使い回しが聞く場合があります。
ピュアモルト ボールペンのバリエーションには、多機能型で ジェットストリーム の芯を使ったモデルもあります。
S-7L-89 を使う 1015 でもジェットストリームのペン先が使えるかもと思ったのが出発点です。
今回私が購入したのは 「uni STYLE FIT JET STREAM 0.5mm」SXR-89-05 の青です。
購入した SXR-89-05 を、そのまま使用したいのですが、ピュアモルト 1015 で使う S-7L-89 リフィルは、ノック式のためスプリングを止める出っ張りがあります。
SXR-89-05 には、出っ張りがないため スプリングを止めておくことができません。
これを解決するために、SXR-89-05 リフィルにを細工しました。
細工と行っても非常に簡単な工作です。
S-7L-89 のペン先から出っ張りまでの長さを測り、SXR-89-05 のペン先から同じくらいの長さに マスキングテープを巻いてスプリングの引っかかりを作ります。
![]()
工作はこれで完了。
後は、ピュアモルト 1015 ボールペン の本体に、細工した SXR-89-05 リフィルをいれて、スプリングとキャップを戻します。
![]()
カスタマイズした結果は、非常に良好。
今回は JET STREAM 0.5mm 青 にしましたが、書き味も良くなりハッキリとした文字が書けるようになりました。
これで、また お気に入りの ピュアモルト ボールペンを使い続けることができそうです。
RaspberryPiで環境センサーを作る
2022/08/04 暑さ指数(WBGT)を疑似的に計算 を追記
2022/08/09 ここで使用したスクリプトを、 GitHub で公開しました
自宅でリモートワークも多くなり、閉め切った部屋で仕事をしていると、なんとなく息苦しくなる瞬間。
部屋の二酸化炭素(Co2)の濃度が高くなっている??
定期的な換気を心がけましょうと言うことで、実際に 作業部屋の二酸化炭素濃度と気温・湿度・気圧などを測れる環境センサーをRaspberryPiで作ってみました。
動作させるプログラムもできる限り簡単にします。
使用する部材
今回 RaspberryPi環境センサーで使用した部材は次の通りです。
- RaspberryPi 4(3でも問題ありません)
- microSD RaspbberyPi OS インストール済み
- BME280 DIP センサー(i2c接続)
- MH-Z19B DIP センサー(シリアル接続)
環境センサーの作成
簡単に動作させるためにブレッドボードで作りました。
回路図は、次のような簡単な接続です。
![]()
二酸化炭素(Co2)センサーの準備: MH-Z19B
二酸化炭素(Co2)センサーには、MH-Z19B を使用しました。
ピンも実装されているタイプを購入しましたので、ジャンパーケーブルで簡単に接続できます。
接続できたら RaspberryPi でMH-Z19を使うための準備をします。
raspi-config で、シリアルポートが使えるように設定します。
1 | sudo raspi-config |
![]()
3 Interface Options を選択します。
![]()
P6 Serial Port を選択して、シリアルポートが使えるようにします。
有効にするために、一度再起動します。
次ぎに、MH-Z19をPythonで使うためのモジュールがありますので、pip3でインストールします。
1 | sudo pip3 install mh-z19 |
ソースコードやマニュアルは、GitHub で公開されています。
これで 二酸化炭素(Co2)センサーの値が取得できるようになります。
コマンドラインから python3 でmh_z19の動作を確認します。
1 | sudo python3 -m mh_z19 |
![]()
二酸化炭素(Co2) 濃度の取得ができるようになりました。
部屋の中と言うこともあり、Co2 濃度が 556 ppm と若干高めですが、厚生労働省が換気の目安ととしている1000 ppm には余裕がありそうです。
Python3 で、 Co2 の値だけを取得するには、mh_z19.read_all() で、co2 を指定すると int の数値だけ取得できます。
1 2 3 4 | import mh_z19 if __name__ == "__main__": co2 = mh_z19.read_all()["co2"] |
温度・湿度・気圧センサー(BME280) の準備
次ぎに 温度、湿度、気圧を取得するための BME280 の環境を整えていきます。
BME280 は、すでに多くの方が記事を作成されていますが、Python3 で初期化をしたり値を取得したりと、実際に使おうとするとかなり手間がかかります。
MH-Z19と同様に、i2cでBME280にアクセスしますので、raspi-config で i2cが使えるようにしておきます。
![]()
i2cを有効にしたら、RaspberryPi で BME280 にアクセスするためのモジュールを追加します。
1 2 | sudo apt-get install i2c-tools sudo apt-get python-smbus |
モジュールの追加ができたら BME280 を認識しているかを確認するために i2cdetect を実行します。
1 2 3 4 5 6 7 8 9 10 | pi@raspberrypi:~ $ i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- 76 -- |
スイッチサイエンスさんが、Githubでサンプルを公開してくださっていますので、git clone してテストしてみます。
python27/bme280_sample.py を実行するのですが、今回は python3 の環境ですので、print の記述を変更します。
1 2 | 修正前:print "pressure : %7.2f hPa" % (pressure/100) 修正後:print( "pressure : %7.2f hPa" % (pressure/100) ) |
温度、湿度、気圧の出力で 3ヶ所 print がありますので、python3 の print の記述に変更します。
1 2 3 4 | $ python3 bme280_sample.py temp : 28.04 ℃ pressure : 1002.47 hPa hum : 30.42 % |
これで BME280 から温度・湿度・気圧が取得できるようになりました。
BME280に簡単にアクセスする : Linux IIO
BME280 にアクセスできるようになりましたが、初期化や値の取得などで結構な手間がかかります。
BME280 は、 Linux の Industrial I/O Subsystem ( 以下、 Linux IIO ) というドライバも対応しているので、こちらを使ってアクセスできるようにします。
Linux IIO を使用すると、i2c 接続の BME280 のデータを簡単に取得できるようになります。
Linux IIO で BME280 の有効化
Linux IIO で BME280 を扱えるようにするために /boot/config.txt の最後の行に、次の1行を追加します。
1 | dtoverlay=i2c-sensor,bme280 |
追加したらドライバを有効にするために再起動します。
再起動後に、モジュールを認識しているかを確認するため、次のコマンドを実行します。
1 2 | pi@raspberrypi:~ $ cat /sys/bus/iio/devices/iio\:device0/name bme280 |
BME280 を認識していると ‘bme280’ という文字が取得できます。
今までプログラムでアクセスしていた値が、ファイルシステムの内容を確認するだけで取得できるようになりました。
| 温度 | in_temp_input | 実際の値の 1000 倍の値を取得 |
| 湿度 | in_humidityrelative_input | 実際の値の 1000 倍の値を取得 |
| 気圧 | in_pressure_input | kPa の値を取得。hPha にするには、値を 10 倍する |
実際にデータを取得すると次のようになります。
![]()
ファイルの内容を取得するだけで値が取れますので、Python3 からも簡単にアクセスできるようになります。
注意点
この Linux IIO を使用して BME280 を管理すると、サンプルプログラムが動作しなくなります。
また、 Linux IIO を有効にすると i2c デバイスをすべて Linux IIO の管理下になります。
他の i2c デバイスを接続させている場合には、注意が必要です。
暑さ指数(WBGT)を疑似的に計算:2022年追記
温度と湿度が取得できてますので、暑い夏の対策として 暑さ指数(WBGT)も計算して記録するようにしました。
ただ、正確な 暑さ指数は 複数の条件の 湿度と温度が必要になります。
そこで、「通常観測気象要素を用いたWBGTの推定」という日本生気象学会雑誌の情報から疑似的な計算式を採用して記録してみます。
この計算式を使うと「推定誤差 1.0°C 以内:98.3~99.8%」という精度で 暑さ指数を計算できるようです。
Pythonで記述した計算式は、次の通りです( Ta が温度、RHが湿度です)。
室内(indoor)と屋外(outdoors)では、係数が異なりますのでセンサーを配置する場所によって計算を変えます。
1 2 3 4 | # indoor wbgt = round( float( Ta *0.725 + RH *0.0368 + 0.00364* Ta * RH - 3.246 ), 2 ) # outdoors wbgt = round( float( Ta *0.735 + RH *0.0374 + 0.00292* Ta * RH - 4.064 ), 2 ) |
暑さ指数の詳しい内容は、以下のWEBページで確認できます。
基本的には、28以上 と 31以上 が注意が必要になる値なので、28 と 31 以上を閾値として監視します。
定期的な値の取得
MH-Z19 で Co2 の値、 BME280 で温度・湿度・気圧 が取得できるようになったので、後は定期的に値を取得するプログラムを作成してモニタリングします。
私は、すべての値を CSV形式で出力して、グラフのプロットなどに使っています。
1 2 3 4 5 6 | pi@iotdev001:~ $ tail -5 /tmp/sensor.log 2022/08/04 11:30:02,26.51,79.55,997.6,463.0,26.58 2022/08/04 12:00:02,26.67,76.84,997.6,483.0,26.38 2022/08/04 12:30:02,26.69,81.95,997.5,456.0,27.08 2022/08/04 13:00:02,26.77,77.12,997.4,461.0,26.52 2022/08/04 13:30:02,26.92,75.88,997.1,439.0,26.5 |
値は、左から次の通りです。
- 日時
- 温度
- 湿度
- 気圧
- Co2濃度
- 暑さ指数
2022/08/09 : ここで使用したスクリプトを、 GitHub で公開しました
温度や湿度・気圧は目安ですが、Co2濃度(1000ppm以上) と 暑さ指数(28以上)は数字を確認して、超過したら警告をTwitterのDMと Slackにポストするようにしています。
今回使用した MH-Z19 と BME280 は、すべて秋月電子さんの通販で購入することができます。
最後にこのセンサーを作った経緯や今までの内容などをまとめた「せいさくのおと」も作成しました。
万年筆ケースを新調 大容量で安全に保管
ペンケースや収納棚に保管していた万年筆。
アレ?何処にやったっけかなとか管理しにくかったので、万年筆ケースを新調しました。
上下あわせて23本を保管できるケースです。
よく万年筆売り場とかで使われているケースと同じ感じのものです。
![]()
メーカーの箱に入れて保管しているモノもあったのですが、箱だとかさばるし、使いたいときに取り出すのも面倒になります。
ケースに入れて眺めるのも良いですね。
最近では高い万年筆を買うことも少なくなりプチプラ万年筆と呼ばれる数千円台の万年筆が普段使いになっていますが、たまには昔からなれた万年筆を使うのも楽しみです。
リモートワークが多くなり、自宅でメモをとるときやアイディアを書き留めるときには、万年筆を使っています。
オフィス仕事の時には、取り扱いの面倒さから万年筆の出番は少なかったのですが、自宅の仕事場でゆっくりと万年筆を使って物書きをするのは楽しいですね。
Minecraft Mini Serverを作ってどこでも楽しむ
今回は RaspberryPi 4でMinecraftサーバーを作ってみました。
RaspberryPi 4で、Minecraft Java版のサーバーを作ることで、無線LANアクセスポイント化すれば何処でもMinecraftをグループで楽しむことができます。
モバイルバッテリーでRaspberryPi4を動かせば、インターネットにつながなくても課金がなくてもグループでオリジナルの世界で遊ぶことができます。
当然 MOD を入れたオリジナルのサーバーを作ることもできます。
Minecraftには、統合版もありますが、統合版のサーバー(アルファ版)が正式には非公開となったことと、MODをインストールしたかったこともあり、今回はJava版での構築になります。
Minecraft Serverの環境
Minecraftサーバーは、RaspberryPi3B+などでも動作しますが、CPUパワーなどを考えて RaspberryPi4 でサーバーを作ります。
使用した環境は次の通り。
- RaspberryPi4 4GB
- Rasbian 32-bit
- microSD 128GB
RaspberryPi4は、発熱も多いので大きな冷却ケースを使うのが良いです。
本格的に使うのであれば、RaspberryPi4 Ubuntu Server 20.04 LTS 64-bitに変更して、無線LANをアクセスポイント化するとグループで無線LANで何処でも楽しむことができます。
事前にパッケージを最新にしておきます。
1 2 | sudo apt update sudo apt upgrade |
今回は、Minecraft サーバーを /opt/minecraft/1.16.5/ ディレクトリに作っていきます。
minecraft サーバーを一般ユーザーで動作させるため、minecraftユーザーを追加します。
1 2 3 | sudo useradd -m -r -d /opt/minecraft minecraft sudo mkdir /opt/minecraft/1.16.5 sudo chown -Rf minecraft:minecraft /opt/minecraft/1.16.5 |
Minecraft Serverのインストール
RaspberryPi4の準備ができたら Minecraft サーバーを作っていきます。
Javaのインストール
Minecraft サーバー Java版を動かすために OpenJDKをインストールします。
今回インストールしたバージョンは、Rasbianでサポートされている Open-JDK 11
1 2 | sudo apt install openjdk-11-jre* openjdk-11-jdk* sudo apt install wget screen |
Minecraft サーバーの入手
Minecraftサーバーの最新版は、次のURLからダウンロードできます。
今回は、Minecraft forge(MOD)が 1.16.5に対応していたので、公開時点で最新の 1.16.5 のサーバ-を使用しました。
1 2 3 | cd /opt/minecraft/1.16.5/ sudo wget -O minecraftserver.jar https://launcher.mojang.com/v1/objects/1b557e7b033b583cd9f66746b7a9ab1ec1673ced/server.jar |
過去のバージョンが必要なときには、次のURLから指定のバージョンのサーバー(jar)を入手できます。
EULAの設定
Minecraftサーバーを使用するには EULA(End User License Agreement)に許諾する必要があります。
以下のテキストファイルを作成して許諾します。
1 | sudo bash -c "echo eula = true> /opt/minecraft/1.16.5/eula.txt" |
テスト起動
forgeのインストールなどの前に、動作するかテストします。
追加の設定をしていませんので シード値は自動選択で バニラ状態で起動します。
1 2 | cd /opt/minecraft/1.16.5/ sudo java -Xmx1024M -Xms1024M -jar /opt/minecraft/1.16.5/minecraftserver.jar nogui |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | pi@raspberrypi:/opt/minecraft/1.16.5 $ sudo java -Xmx2048M -Xms2048M -jar /opt/minecraft/1.16.5/minecraftserver.jar nogui [06:00:01] [main/INFO]: Environment: authHost='https://authserver.mojang.com', accountsHost='https://api.mojang.com', sessionHost='https://sessionserver.mojang.com', servicesHost='https://api.minecraftservices.com', name='PROD' [06:00:04] [main/WARN]: Ambiguity between arguments [teleport, destination] and [teleport, targets] with inputs: [Player, 0123, @e, dd12be42-52a9-4a91-a8a1-11c01849e498] [06:00:04] [main/WARN]: Ambiguity between arguments [teleport, location] and [teleport, destination] with inputs: [0.1 -0.5 .9, 0 0 0] [06:00:04] [main/WARN]: Ambiguity between arguments [teleport, location] and [teleport, targets] with inputs: [0.1 -0.5 .9, 0 0 0] [06:00:04] [main/WARN]: Ambiguity between arguments [teleport, targets] and [teleport, destination] with inputs: [Player, 0123, dd12be42-52a9-4a91-a8a1-11c01849e498] [06:00:04] [main/WARN]: Ambiguity between arguments [teleport, targets, location] and [teleport, targets, destination] with inputs: [0.1 -0.5 .9, 0 0 0] [06:00:04] [main/INFO]: Reloading ResourceManager: Default [06:00:09] [Worker-Main-6/INFO]: Loaded 7 recipes [06:00:12] [Worker-Main-6/INFO]: Loaded 927 advancements [06:00:19] [Server thread/INFO]: Starting minecraft server version 1.16.5 [06:00:19] [Server thread/INFO]: Loading properties [06:00:19] [Server thread/INFO]: Default game type: SURVIVAL ... [06:01:21] [Worker-Main-4/INFO]: Preparing spawn area: 87% [06:01:21] [Worker-Main-5/INFO]: Preparing spawn area: 92% [06:01:22] [Worker-Main-6/INFO]: Preparing spawn area: 92% [06:01:22] [Server thread/INFO]: Preparing spawn area: 92% [06:01:23] [Server thread/INFO]: Preparing spawn area: 96% [06:01:23] [Server thread/INFO]: Preparing spawn area: 96% [06:01:23] [Server thread/INFO]: Time elapsed: 61659 ms [06:01:23] [Server thread/INFO]: Done (61.980s)! For help, type "help" [06:01:26] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 2090ms or 41 ticks behind [06:01:54] [Server thread/WARN]: Can't keep up! Is the server overloaded? Running 13156ms or 263 ticks behind |
![]()
起動した後は、ディレクトリに ワールドデータやログなどのファイルが自動的に作成されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | pi@raspberrypi:/opt/minecraft/1.16.5 $ pwd /opt/minecraft/1.16.5 pi@raspberrypi:/opt/minecraft/1.16.5 $ ls -l 合計 37112 -rw-r--r-- 1 root root 2 6月 8 06:06 banned-ips.json -rw-r--r-- 1 root root 2 6月 8 06:06 banned-players.json -rw-r--r-- 1 root root 12 6月 8 05:55 eula.txt drwxr-xr-x 2 root root 4096 6月 8 06:05 logs -rw-r--r-- 1 root root 37962360 1月 15 01:09 minecraftserver.jar -rw-r--r-- 1 root root 2 6月 8 06:06 ops.json -rw-r--r-- 1 root root 1084 6月 8 06:05 server.properties -rw-r--r-- 1 root root 108 6月 8 06:08 usercache.json -rw-r--r-- 1 root root 2 6月 8 05:56 whitelist.json drwxr-xr-x 11 root root 4096 6月 8 06:18 world |
ワールドを作り直したいときには、minecraftserver.jar と eula.txt 以外を削除すれば綺麗な環境からワールドを作り直せます。
バニラで遊びたい人は、ここまででインストールは終わりになります。
最後の「自動起動の設定」をすれば、RaspberryPi4の電源をいれると自動的にMinecraftサーバーが立ち上がるようになります。
forge server(MOD対応サーバー)の置き換え
Minecraftサーバーをバニラで起動できましたので、MOD対応のサーバーに入れ替えていきます。
1 2 3 | cd /opt/minecraft/1.16.5 sudo wget -O forge-installer.jar https://maven.minecraftforge.net/net/minecraftforge/forge/1.16.5-36.1.0/forge-1.16.5-36.1.0-installer.jar sudo java -jar forge-installer.jar nogui --installServer |
forge-1.16.5-36.1.0.jar ができあがっていることを確認します。
上手く forge対応の Minecraft Serverの jarができあがったら、今までの minecraftserver.jar と置き換えます。
1 2 | sudo cp minecraftserver.jar minecraftserver-1.16.5-vanilla.jar sudo cp forge-1.16.5-36.1.0.jar minecraftserver.jar |
後はバニラと同じようにminecraftserver.jarを起動するだけで forge対応のサーバーが起動します。
![]()
試しに「豆腐craft Reloaded」のワールドMODを入れてみました。
「豆腐craft Reloaded」は、1.16.5に対応した TofuCraft のMODです。
ローカルのMinecraftにも forgeをインストールして、TofuCraftが起動することを確認。
確認した TofuCraftの jar をサーバーのmodディレクトリにコピーして再起動します。
草を刈ったら大豆がでてきたので、TofuCraftもサーバーで動いているようです。
自動起動の設定
バニラやforge対応のサーバでの起動が確認できたら、自動起動の設定をします。
1 | sudo nano /etc/systemd/system/minecraft.service |
minecraft.service の内容は次の通り。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | [Unit] Description=Minecraft Server: %i After=network.target [Service] WorkingDirectory=/opt/minecraft/%i User=minecraft Group=minecraft Restart=always ExecStart=/usr/bin/screen -DmS mc-%i /usr/bin/java -Xmx2G -jar minecraftserver.jar nogui ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "say SERVER SHUTTING DOWN IN 5 SECONDS. SAVING ALL MAPS..."5' ExecStop=/bin/sleep 5 ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "save-all"5' ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "stop"5' [Install] WantedBy=multi-user.target |
これでRaspberryPi4 Rasbianが起動したときのスクリプトが完成しました。
次のコマンドを実行して、起動時に自動的に立ち上げるようにします。
1 2 3 | sudo systemctl daemon-reload sudo systemctl enable minecraft@1.16.5 sudo systemctl start minecraft@1.16.5 |
どこでも遊べるMinecraftサーバー
これで何処でも手軽に遊べる Minecraftサーバーができあがりました。
今のところ 有線LANでの接続ですので、無線LANをアクセスポイントにしてノートPCなどから簡単に接続できるようにすれば、もっと便利になりそうです。
[2021年版]RaspberryPi 簡単インストール
今までRaspberryPiのインストールというと、NOOBSを使ったりOSイメージをツールを使ってmicroSDに書き込むのが王道でした。
最近、また新しくRaspberryPi4にOSをインストールする機会があり、メジャーなOSはさらに簡単にインストールできるようになってました。
サポートされているOSなら、最新版のISOファイルを「探してダウンロード」する必要も無く「メニュー選択で3ステップ」で簡単にmicroSDのブートメディアを作ることができます。
RaspberryPi Imager
今までの NOOBS は廃止になり、新しく RaspberryPi OS Imager というツールが提供されるようになりました。
![]()
このツールは、サポートしているOSならイメージの取得からmicroSDの作成まで簡単な手順で終わります。
サポートOS
サポートしているOSは次のようなものです(2021年6月 現在)
- RaspberryPi OS (32-bit) Desktop (間違いない標準環境)
- RaspberryPi OS (other)
- RaspberryPi OS Lite (32-bit)
- RaspberryPi OS Full (32-bit)
- Other General purpose OS
- Ubuntu (32-bit/64-bit) 64bit環境ならコレがオススメ
- Majaro ARM Linux (64-bit)
- RISC OS Pi (32-bit)
- Media Player – kodi OS
- LibreELEC
- Emulation and game OS
- RetroPie (SNESなどのゲーム・エミュならコレ)
- Recalbox
- Other specific purpose OS
- OctoPi
- info-beamer digital signage
- Homebridge
- Home Assistant
- TLXOS (30-day trial)
- Other Language-specific OS
- ALT,Simply Linux…
以前作成したレトロゲームのエミュレータ環境の「RetoroPie」もRaspberryPi OS Imagerで簡単に作ることができるようになりました。
インストール方法
RaspberryPi のインストールメディアを作成するには、RaspberryPi OS Imager からインストーラーをダウンロードします。
![]()
起動すると「インストールするOS」と「メディアを作成するドライブ」を指定します。
後は「WRITE」を選択して、メディアの書き込みが終わるまで待ちます。
![]()
この簡単な手順で RaspberryPi のOSメディアができあがります。
非常に簡単な手順でOSのインストールができるようになりました。
インストールオプションの指定
RaspberryPi Imager の画面で 「CTRL + Shift + X」を入力することでインストールオプションを指定できます。
![]()
このオプション画面で次のような追加の設定を書き込むことができます。
- RaspberryPiのホスト名
- SSHサーバーの有効化
- 無線LAN(WiFi)の接続設定
- ロケールの設定(タイムゾーンとキーボード設定)
初期設定の面倒な内容を OSイメージ作成時点で指定できますので、起動後の設定も簡単になります。
簡単にOS入れ替え
これで、RaspberryPiで手軽に色々なOSを試せるようになりました。
違うOSを試したいときには、microSDを差し替えて起動するだけ。
microSDも安くなってきたので、最近は128GBのmicroSDを使ってます。
低価格なノートPCやタブレットと同じくらいの容量ですね。
Jetson Nano Tensorflwoインストール
Jetson Nano のJetPack OS環境の準備が整いましたので、いよいよ Tensorflowの環境を構築していきます。
Tensorflow GPU版のインストール
Jetson NanoにTensorflowをインストールする方法は、公式サイトに記述があります。
基本的には公式サイトの説明に従いインストールを行うことでTensorflow GPU版の構築ができます。
以下、Jetson Nano にTensorflowをインストールしたときに手順を記載しますが、最新のインストール方法は公式サイトを参照ください。
パッケージの準備
最初に Tensorflow環境を構築するためのパッケージをインストールしていきます。
1. Tensorflowが必要とするパッケージのインストール
1 2 3 | $ sudo apt update $ sudo apt upgrade $ sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran |
2. pip3のインストール
1 2 | $ sudo apt-get install python3-pip $ sudo pip3 install -U pip testresources setuptools==49.6.0 |
3. pythonの依存パッケージのインストール
1 | $ sudo pip3 install -U numpy==1.16.1 future==0.18.2 mock==3.0.5 h5py==2.10.0 keras_preprocessing==1.1.1 keras_applications==1.0.8 gast==0.2.2 futures protobuf pybind11 |
TensorFlow GPU版のインストール
今までは TensorFlow GPU版のパッケージは「tensorflow-gpu」でしたが、20.02のリリースから 「tensorflow」に名前が変わったようです。
今回は、JetPack 4.5系の tensorflow をインストールしました。
1 | $ sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v45 tensorflow==2.3.1 |
追記:2021/03/03
JetPack環境を再構築したあと TensorFlow をインストールしたところ「2.4.0+nv21.2」というバージョンになっていました。しかし、この2.4.0+nv21.2だと tensorflowを読み込んだ後に CoreDumpすることを確認したため 「==2.3.1」のパラメータを追加しました。
インストールが終わったら、以下のコマンドを実行して tensorflow のバージョン情報を取得しておきます。
1 2 3 4 5 | $ python3 -c 'import tensorflow as tf; print(tf.__version__)' ↓ 以下実行結果 2021-03-01 09:54:39.759908: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.2 2.3.1 |
TensorFlow 2.3.1 がインストールできて環境構築が完了しました。
TensorFlowの動作確認
Jetson Nanoに TensorFlowの環境ができあがりましたので、簡単な動作確認をします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | $ cat mnist.py import tensorflow as tf mnist = tf.keras.datasets.mnist (x_train, y_train),(x_test, y_test) = mnist.load_data() x_train, x_test = x_train / 255.0, x_test / 255.0 model = tf.keras.models.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(512, activation=tf.nn.relu), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(10, activation=tf.nn.softmax) ]) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) model.fit(x_train, y_train, epochs=5) model.evaluate(x_test, y_test) |
この mnist.py を実行すると次のような結果になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | $ python3 ./mnist.py 2021-03-01 09:55:50.798158: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.2 2021-03-01 09:56:09.285338: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcuda.so.1 2021-03-01 09:56:09.408203: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:1046] ARM64 does not support NUMA - returning NUMA node zero 2021-03-01 09:56:09.408683: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1742] Found device 0 with properties: pciBusID: 0000:00:00.0 name: NVIDIA Tegra X1 computeCapability: 5.3 ... (略) 1875/1875 [==============================] - 27s 14ms/step - loss: 0.2217 - accuracy: 0.9351 Epoch 2/5 1875/1875 [==============================] - 27s 14ms/step - loss: 0.0971 - accuracy: 0.9704 Epoch 3/5 1875/1875 [==============================] - 26s 14ms/step - loss: 0.0688 - accuracy: 0.9781 Epoch 4/5 1875/1875 [==============================] - 26s 14ms/step - loss: 0.0526 - accuracy: 0.9837 Epoch 5/5 1875/1875 [==============================] - 23s 13ms/step - loss: 0.0427 - accuracy: 0.9860 2021-03-01 09:58:57.959772: W tensorflow/core/framework/cpu_allocator_impl.cc:81] Allocation of 31360000 exceeds 10% of free system memory. 313/313 [==============================] - 2s 8ms/step - loss: 0.0683 - accuracy: 0.9810 |
これで Jetson NanoでCUDAを使用した GPU版 TensorFlowが使えるようになりました。
JETSON NANO モナコイン マイニング
GPU搭載のボードコンピュータ JETSON NANO。
CUDA命令をサポートしていますので、他の環境との比較もかねてモナコインのマイニング環境を作ってみました。
ただし、実験的なものであり実用的ではないと思われます。
最初に Jetson Nano の環境を整えておきます。
セットアップの方法などは、以下の記事を参照ください。
ccminerのセットアップ
以下の手順でccminerをセットアップしていきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | $ sudo apt install git build-essential libssl-dev libcurl4-openssl-dev $ mkdir -p src $ cd src $ git clone -b linux https://github.com/tpruvot/ccminer $ cd ccminer $ ./build.sh $ ./ccminer --version *** ccminer 2.3.2 for nVidia GPUs by tpruvot@github *** Built with the nVidia CUDA Toolkit 10.2 64-bits Originally based on Christian Buchner and Christian H. project Include some kernels from alexis78, djm34, djEzo, tsiv and krnlx. BTC donation address: 1AJdfCpLWPNoAMDfHF1wD5y8VgKSSTHxPo (tpruvot) ccminer v2.3.2 libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3 |
ccminerのコンパイルが終わったら実行しやすいように ~/bin などのディレクトリを作成して保存してきます。
GPUマイニングの実行
今回は VIPPOOL を使用してGPUマイニングをしてみました。
起動を簡単にするように、次のようなスクリプトを用意しました。
1 2 3 | #!/bin/bash ~/bin/ccminer -a lyra2rev2 -o stratum+tcp://stratum1.vippool.net:8888 -u [ユーザー名].[ワーカー名] -p [ワーカーパスワード] -i 16 |
-i パラメータは、CUDAのスレッド数の指定です。このスレッド数を指定しない場合、ccminerが Segmentation Faultする場合があったので追加しています。
8~31まで指定可能ですが、今回は16を指定しています。
また、実行前に VIPPOOL のワーカー設定で、「指定Difficulty」値を0.25位に設定しておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | *** ccminer 2.3.2 for nVidia GPUs by tpruvot@github *** Built with the nVidia CUDA Toolkit 10.2 64-bits Originally based on Christian Buchner and Christian H. project Include some kernels from alexis78, djm34, djEzo, tsiv and krnlx. BTC donation address: 1AJdfCpLWPNoAMDfHF1wD5y8VgKSSTHxPo (tpruvot) [2021-02-28 15:06:54] Starting on stratum+tcp://stratum1.vippool.net:8888 [2021-02-28 15:06:54] GPU monitoring is not available. [2021-02-28 15:06:54] 1 miner thread started, using 'lyra2v2' algorithm. [2021-02-28 15:06:54] Stratum difficulty set to 32768 (128.00000) [2021-02-28 15:06:54] lyra2v2 block 2259869, diff 3942325.429 [2021-02-28 15:06:54] GPU #0: Intensity set to 16, 65536 cuda threads [2021-02-28 15:07:07] Stratum difficulty set to 0.25 (0.00098) [2021-02-28 15:07:43] GPU #0: NVIDIA Tegra X1, 626.86 kH/s [2021-02-28 15:07:48] GPU #0: NVIDIA Tegra X1, 654.76 kH/s [2021-02-28 15:07:48] accepted: 1/1 (diff 0.001), 654.76 kH/s yes! [2021-02-28 15:07:56] GPU #0: NVIDIA Tegra X1, 679.62 kH/s [2021-02-28 15:07:56] accepted: 2/2 (diff 0.002), 667.19 kH/s yes! [2021-02-28 15:08:00] GPU #0: NVIDIA Tegra X1, 678.83 kH/s [2021-02-28 15:08:00] accepted: 3/3 (diff 0.006), 671.07 kH/s yes! [2021-02-28 15:08:01] accepted: 4/4 (diff 0.001), 671.83 kH/s yes! [2021-02-28 15:08:07] GPU #0: NVIDIA Tegra X1, 679.73 kH/s [2021-02-28 15:08:19] GPU #0: NVIDIA Tegra X1, 678.77 kH/s [2021-02-28 15:08:19] accepted: 5/5 (diff 0.002), 674.30 kH/s yes! ... |
ccminerでのマイニングがはじまると「NVIDIA Tegra X1, 679.73 kH/s」という感じで NVIDIA Tegra X1でのマイニングができていることが確認できます。
ハッシュ値は、679.73kH/s。
Windows10 GTX1070 SLIの環境でのマイニングの様子は以下の通り。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | *** ccminer 1.8.3 for nVidia GPUs by tpruvot@github *** Built with VC++ 2013 and nVidia CUDA SDK 8.0 Originally based on Christian Buchner and Christian H. project Include some of the work of djm34, sp, tsiv and klausT. BTC donation address: 1AJdfCpLWPNoAMDfHF1wD5y8VgKSSTHxPo (tpruvot) [2021-02-28 15:10:13] Starting on stratum+tcp://stratum1.vippool.net:8888 [2021-02-28 15:10:13] NVAPI GPU monitoring enabled. [2021-02-28 15:10:13] 2 miner threads started, using 'lyra2v2' algorithm. [2021-02-28 15:10:13] Stratum difficulty set to 32768 (128.00000) [2021-02-28 15:10:13] lyra2v2 block 2259872, diff 3893340.217 [2021-02-28 15:10:13] GPU #1: Intensity set to 21, 2097152 cuda threads [2021-02-28 15:10:13] GPU #0: Intensity set to 21, 2097152 cuda threads [2021-02-28 15:10:19] GPU #0: GeForce GTX 1070, 36.28 MH/s [2021-02-28 15:10:20] GPU #1: GeForce GTX 1070, 35.80 MH/s [2021-02-28 15:10:48] Stratum difficulty set to 16 (0.06250) [2021-02-28 15:11:07] lyra2v2 block 2259873, diff 4097562.509 [2021-02-28 15:11:07] lyra2v2 block 2259874, diff 4120072.286 [2021-02-28 15:11:07] lyra2v2 block 2259875, diff 4282355.796 [2021-02-28 15:11:11] GPU #0: GeForce GTX 1070, 36.03 MH/s [2021-02-28 15:11:11] accepted: 1/1 (diff 0.067), 71.83 MH/s yes! [2021-02-28 15:11:15] GPU #0: GeForce GTX 1070, 35.40 MH/s [2021-02-28 15:11:15] accepted: 2/2 (diff 0.238), 71.52 MH/s yes! [2021-02-28 15:11:17] GPU #1: GeForce GTX 1070, 36.67 MH/s [2021-02-28 15:11:17] accepted: 3/3 (diff 0.273), 72.39 MH/s yes! [2021-02-28 15:11:19] GPU #0: GeForce GTX 1070, 34.67 MH/s [2021-02-28 15:11:19] accepted: 4/4 (diff 0.072), 72.04 MH/s yes! [2021-02-28 15:11:29] GPU #1: GeForce GTX 1070, 36.33 MH/s [2021-02-28 15:11:29] accepted: 5/5 (diff 0.068), 71.87 MH/s yes! [2021-02-28 15:11:32] GPU #0: GeForce GTX 1070, 34.37 MH/s [2021-02-28 15:11:32] accepted: 6/6 (diff 2.431), 71.62 MH/s yes! [2021-02-28 15:11:32] GPU #1: GeForce GTX 1070, 35.89 MH/s [2021-02-28 15:11:32] accepted: 7/7 (diff 0.068), 71.42 MH/s yes! |
Windows10 GTX1070 SLIの消費電力が、約600W。かたやJetson Nanoは10W。
消費電力を考えると Jetson Nanoは頑張っていると思いますが、1台だけでマイニングするのは現実的ではないですね。
| コンピュータ | 計算量 | 消費電力 | GPU温度 |
| Jetson Nano 2G | 679.73 kH/s | 10W | 40度 |
| Windows10 GTX1070 SLI | 35.89 MH/s | 600W | 82度 |
Jetson Nano 60台まわして消費電力が同じで…単純かけ算で 40680kH/s(40MH/s)。微妙。
同じ消費電力までもっていって、ほぼ同じ計算量。CUDAの同じエンジンですので当たり前といえば当たり前。
2,3台でお小遣い稼ぎくらいなら楽しいかもしれませんが、本格的なマイニングには難しいかな~と思います。
25Wのソーラーパネルあるので、日中はモバイルバッテリーに充電しながら夜間はバッテリーを使ってマイニングならロマンあり??
本当の目的は Tensorflowの環境構築なので、横道はこれくらいにして本筋の環境構築に進んでいきます。
ちなみに、ccminerでマイニングすると、GPUを酷使するので急激に本体の温度が上昇します。約3分くらいで50度以上になりますので、冷却ファンは必須です。
JETSON NANO 2G GPU演算を手に入れる
今まで TensorflowやDeepLearningの環境として Windows10にGTX1070 SLIや RaspberryPiに Movidius Neural Compute Stickなどを使ってました。
![]()
ただ、どうしても WindowsでPythonの環境が使いにくかったり、Movidius NCSは学習させる時間がなど一長一短。
もっとnVIDIAのCUDAを手軽に使ってTensorFlowやDeepLearningしたいということで nVIDIA JETSON NANO 2Gを購入しました。
nVIDIA JETSON NANO 2G
nVIDIA JETSON NANO 2Gは、nVIDIAのシングルボードコンピュータでGPUを搭載してCUDAが使用できます。
JETSON NANOは、メモリーが4GBでUSBポートが豊富に用意されていますが、2Gモデルは メモリーが2Gになっており USB3.0が1つ、USB2.0が2つ、RaspberryPi カメラポートが1つになっています。
目的はGPUでTensorflowの実行環境を構築することでしたので、JetSon Nanoで十分という判断です。
※)記事中も JetSon Nano と記述します。
Jetson Nanoセットアップ
JetSon Nanoのセットアップは、RaspberryPiのセットアップと大きくは変わりません。
セットアップ方法は、公式サイトに載っています。
公式サイトから OSのイメージを取得して、microSDに書き込んでHDMI,マウス,キーボードを接続して起動すると初期設定がはじまります。

本格的に使う前に追加の装備
最初はJetSon Nanoをそのまま使っていましたが、ちょっとした演算をすると特徴的な放熱フィンが触れないほど熱くなります。
内部温度も50度くらいまで上がっているようです。
この状態で長時間使用するのは寿命を縮めることにもなりそうですので、本格的に使う前に冷却ファンを追加しました。
JetSon Nanoには、メインボードの接続コネクターの近くに冷却ファン用のジャンパー(J15)が用意されています。
ここに40mmの大きさの4pin 5Vタイプの冷却ファンを接続します。
![]()
ただ、JetSon Nanoの放熱フィンが特殊な形状なので、冷却ファンをネジ止めするのに結構苦労しました。
セットアップで一番苦労するのは、この冷却ファンの取付かもしれません。
JetSon Nano 冷却ファンのコントロール
冷却ファンを取り付けただけでは、ファンは回転しません。
OSが起動したら次のコマンドでファンを制御する必要があります。
1 2 3 | # 冷却ファンの状態を取得 (0~255) cat /sys/devices/pwm-fan/target_pwm 0 |
初期状態では冷却ファンは停止しており、値は 0 になります。
冷却ファンを回転されるには、次のコマンドを実行します。
1 2 3 4 5 6 7 8 9 | # Jetson Nano 冷却ファンの制御 # 冷却ファンを停止する sudo sh -c 'echo 0 > /sys/devices/pwm-fan/target_pwm' # 冷却ファンを 50% の速度で回転させる sudo sh -c 'echo 128 > /sys/devices/pwm-fan/target_pwm' # 冷却ファンを 100% の速度で回転させる sudo sh -c 'echo 255 > /sys/devices/pwm-fan/target_pwm' |
毎回コマンドを入力するのも面倒なので、起動時に50%の速度で回転するように設定してあります。
VisualStudio Codeをインストール
ターミナルで使う分には emacs や vim で十分なのですが、GUI画面でつかうとなると VisualStudio Code(VScode)などが欲しくなります。
Jetson NanoはARMベースですので、VScodeを使うには、以下のコマンドを実行してインストールします。
1 2 3 4 5 6 | $ cd /tmp $ wget -O insider.deb https://update.code.visualstudio.com/latest/linux-deb-arm64/insider $ sudo apt install ./insider.deb ↓ 最後に起動しやすいように code-insiders を vscode にリネーム $ sudo mv /usr/bin/code-insiders /usr/bin/vscode |
GUI画面で起動したらランチャーに貼り付けておけば、簡単に起動できます。

これで JetSon Nanoを使う準備ができました。
TensorFlowの環境などを整備して、本格的な環境に仕上げていきます。
ただ、噂によると JetSon Nanoは、予測は高速化するものの 学習フェーズはそれほどの速度は期待できないとのこと。
学習フェーズは Windows GTX1070 SLIなどで実行して、予測をJetSonで連続で行うという使い方になっていくかもしれません。
SIMなしRakuten miniにeSIM 新機契約
2021年1月末に楽天モバイルの新プラン「Rakuten UN-LIMIT VI」が発表になりました。
データ通信量が1GB未満であれば0円という破格のプラン。
※) データ通信量のカウントに注意が必要ですので、最後まで確認してください。
サービス開始後は、今の「Rakuten UN-LIMIT V」から自動でアップグレードされるようです。
また、当初キャンペーンの300万回線 12ヶ月無料も 2021年2月上旬現在もキャンペーン継続中です。
実は以前、回線解約状態で譲り受けた Rakuten miniが手元にあり、WiFiのみで使っていたのですが、この機会に Rakuten回線のeSIMを新規に契約してみました。
オンライン申込からeSIM開通まで
申し込みはスマートフォンからの申し込みもできるのですが、小さなRakuten mini端末では誤入力が怖かったのと情報を確実に確認したかったので、パソコンからオンラインで申し込みました。
![]()
2021年1月末段階では、楽天モバイルのWEBサイトの「申し込み」を選択して回線の契約を始めます。
楽天アカウントを作成して、必要情報を入力、eSIMを選択して申し込みをするだけ。
申し込みまでは 10分程度です。
ちょっと気をつけなければいけないのが、本人確認のデータ(運転免許証のコピーなど)をデータデーアップロードするか、受け取り時に本人確認するかを選択する部分。
事前に 運転免許証をスキャンしてファイルを用意しておくと手間取らなくてよいです。
eSIMなので、すぐにeSIMのアクティベートコードが発行されるかと思いましたが、実際には開通に関する書類が届いてから開通処理がはじまると言うこと。
書類が発送されるまで数日間待ちました。
届いた書類は、契約情報の紙などではなく「START GUIDE」という冊子。
この冊子に、SIMやeSIMの開通方法が詳しく書いてあります。
![]()
この冊子の受け取り確認ができるると、My楽天モバイルで開通処理ができるようになります。
この時も eSIMのQRコードを表示させ Rakuten miniで読み込む必要がありますのでパソコンで開通処理を進めます。
この冊子の手順に従って開通すれば、簡単に回線が使えるようになりました。
楽天回線とパートナー回線
回線が開通するとスマホの左上には「Rakuten」の文字が。
無事に使えるようになりましたが、この表示だけでは「楽天回線」なのか「パートナー回線」なのかを判断することはできません。
楽天回線であればデータム制限なので気にしなくてよいですが、パートナー回線の場合、データ使用量が気になるところです。
確認するには「My楽天モバイル」アプリを立ち上げます。
楽天回線の表示
![]()
パートナー回線の表示
![]()
アプリを表示させないと確認できないのは、不便ですが外出先などで大きなデータをやりとりするときには、My楽天モバイルで確認するといいかもしれません。
楽天回線エリアかパートナー回線エリアかを確認できるアプリも出ているようなので、不安ならアプリで確認するのも良いかもしれません。
※)「Gadget in Pocket」マストドンで教えていただきました。
楽天回線ならホボ0円生活? いや注意点があります
ただし、Rakuten UN-LIMIT VIからは「全てのデータ通信」がカウントの対象となります。
パートナー回線なのかデータ回線なのかを気にするのは、UN-LIMIT Vの時だけで UN-LIMIT VIになったら回線の種別は関係なくカウントされます。
自動アップグレードでRakuten UN-LIMIT VIになった後はデータ通信量を管理する必要がありそうです。
とはいえ、どれだけ使っても 2980が最大。そして12ヶ月の無料期間があるので、それまでは自由に使って回線の動向をみていく予定です。
RaspberryPiのモデル情報とピンアサイン確認 : pinout
気がついたら自宅や職場には、RaspberryPiが7,8コころがってます。
Model 2,3,3B+,4 と色々なモデルが混ざり合っており、Rasbianを使っている分には余り変わりませんが特定のモデルで動作するHATなどを使うときにはケースを外してモデルを確認してと面倒でした。
コンソールからモデル情報とピンアサインを確認
RaspberryPiを初期の頃から使っていましたが、このモデルとピンアサインは毎回本体を見るかリファレンスを見ていました。
そして、最近知ったのが「コンソールからモデル情報とピンアサインなどを確認できる」コマンドがあるという事実。
コマンドは 「pinout 」そのものズバリ。
![]()
pinoutコマンドを実行するだけでモデル名やピンアサイン,WifiやBluetoothのアリ/ナシまで確認できます。
もっと早くに知りたかった。
これでRaspberryPiのモデル情報を確認するためにケースをあけたりリファレンスを見る必要がなくなりそうです。
RaspberryPi4で仮想システムを作る : VMware ESXi
実験的なリリースとなっていますが ARM用のVMware ESXiがリリースされました。
RaspberryPi4 4GB(8GBを推奨)で動作させることができます。
RaspberryPi4をESXiホストにすることで、ARM用の Ubuntu やCentOSをESXiの仮想環境で使えるようになりました。
RaspberryPi4 VMware ESXiインストール
RaspberryPi4でVMware ESXiを動作させるには、次のものを用意します。
- RaspberryPi 4
- ブート用の microSDカード 4GB程度で十分
- ESXi起動用のUSBメモリー 16GB程度で十分
- ストレージ用にNASなどでNFSサービス
インストール方法は、公式サイトでドキュメントが公開されています。
インストール手順
- 公式サイトから必要ファイルをダウンロード
- VMwareアカウントを作成し、
ESXi for ARMページから「ESXi for Arm ISO image」をダウンロード - ブート用microSDカードの作成
- latest official Raspberry Pi Firmware ファイルをダウンロードし解凍
- latest community Raspberry Pi 4 UEFI firmware ファイルをダウンロードし解凍
official Raspberry Pi Firmware のbootフォルダ内の以下4ファイルを削除します。
- kernel.img
- kernel7.img
- kernel7l.img
- kernel8.img
community Raspberry Pi 4 UEFI firmware の中身を official Raspberry Pi Firmware のboot フォルダーにコピーします。
FAT32でフォーマットした microSDカードにofficial Raspberry Pi Firmwareのbootフォルダの内容をコピーします。
4GB版のRaspberryPi 4の場合には、config.txtに次の内容を追記します。
1gpu_mem=16
- ESXi USBメモリーの作成
- 最初にダウンロードした ISOファイル「ESXi for Arm ISO image」を、USBメモリーに書き込みます。
Windowsであれば rufus などを使用してISOイメージを書き込みます。 - RaspberryPi 4の接続
- RaspberryPi4に、作成したMicroSDカードとUSBメモリーを接続してHDMIとキーボードを接続します。
- 初回起動とUEFIの設定変更
- RaspberryPi 4の電源をいれたら、ESCキーを押して設定画面を表示させます。
Device Manager → Raspberry Pi Configuration → Advanced Configuration → Limit RAM to 3GB をDisabledに変更します。 - ESXiのインストール
- 再起動したら UEFIの Boot Managerから インストール用USBメモリーを選択して、ESXiインストーラを起動します。
後は指示に従いインストールを実行します。
![]()
RaspberryPi4 VMware ESXi での仮想マシン起動
RaspberryPi4にESXiをインストールすると、x86と同じようにWebブラウザからESXiの管理ができます。
インストールできる仮想マシンは、ARM版のOSのみです。
RaspberryPiにHDDなどを接続すると管理が面倒になるので、今回は QNAPのNASでNFSサービスを起動し、ESXiからはNFSマウントしてストレージとして利用しました。
Ubuntu Server for ARM
![]()
CentOS for ARM
![]()
実験的リリースとなっており、どこまで安定して動くか不明ですが、RaspberryPiで手軽に仮想マシンが使えるのは、今後の可能性が広がりそうです。
RaspberryPiで音楽サーバーを楽しむ : Volumio
最近はリモートワークが多くなり、自宅で音楽を聴きながら仕事しています。
今までは Windows端末に Fostex HP-A8 のハイレゾDACをつないで音楽を聴いていましたが、仕事でWindowsを使うこともあり、音楽再生は別にしたい。
といっても、もう一台コンピュータを増やすのは場所をとります。
省スペースでNASに入った音楽ファイルやネットラジオ、ストリーミングを再生するために RaspberryPiを音楽サーバーにしてみました。
Volumio : RaspberryPi 音楽サーバー
Volumio は、RaspberryPiで音楽再生する環境をつくるディストリビューションです。
![]()
Volumioを使うと、さまざまな音楽を再生することができます。
- ローカルの音楽ファイルを再生
- USB接続されたストレージの音楽ファイルを再生
- NASなどのファイルサーバー上の音楽ファイルを再生
- ネットラジオの再生
- DLNA 対応・Airplay に対応。iPad, iPhone, PC+iTunes などで再生している音楽をネットワーク経由で再生
- Spotifyのストリーミング再生
再生の方法も次の通り。
- I2S(Inter-IC Sound)接続のDAC HATからの音楽再生
- USB DACからの音楽再生
- HDMIからの音楽再生
- ステレオジャックからの音楽再生
RaspberryPiに直接接続するI2S接続のDACからの再生が省スペースにはなりますが、今回は色々なUSB DACを試したかったので、RaspberryPiにUSB接続でDACを接続して環境を作ります。
Volumioのインストールと接続
Volumioのインストールは、他のディストリビューションを大きく変わりません。
![]()
VolumioのダウンロードページからRaspberryPi用のイメージをダウンロードします。
「.zip」形式のファイルでイメージが圧縮されていますのでZIPを解凍して「.img」ファイルを取り出します。
後はいつもの手順で RefusなどでmicroSDにイメージを書き込みます。
![]()
イメージを書き込んだmicroSDでRaspberryPiを起動するとインストールが実行されます。
無線LANの設定もできますが、通信品質や速度の課題などもあるので、ネットワークの接続は有線LANでの接続にしました。
Volumioを起動する前に、使用するUSB-DACを接続して電源を入れておきます。
後から変更もできますが、次の初期セットアップのウィザードで、使用する音声出力をきかれますので事前にUSB-DACを接続しておくと手間が減ります。
volumioを起動したらWebブラウザから「http://volumio.local」にアクセスします。
![]()
volumioにアクセスすると、初期セットアップのウィザードが開始されます。
もし volumio.local がつながらなかったら
ローカルネットワークの設定によっては、volumio.localにつながらない場合があります。
その時には、RaspberryPiにHDMIディスプレイとキーボードを接続してログインしてIPアドレスを確認します。
1 2 3 | Username: volumio Password: volumio root : volumio |
ログインができたら ifcofnig などでIPアドレスを確認して接続します。
Volumioプラグイン
Volumioには、色々なプラグインを追加でインストールすることができます。
私は Spotify のプラグインをインストールしました。
![]()
USB DACの選択
今回は、USB DACとして2つのDACを使用してみました。
- Fostex HP-A8
- SONY PHA-2(ポータブルアンプ)
DACを変更する場合には、システム設定で「初期ウィザード」を実行します。
ここで使用するDACを変更します。
![]()
これで省スペースなネットワーク・オーディオ・サーバーの構築ができました。
自宅での仕事は、まだまだ続きそうですので Volumioで音楽をかけながら過ごしていきたいと思います。
懐かしいゲームをRaspberryPiで遊ぶ: RetroPie
ふと部屋の掃除をしていたらスーパーファミコンのカセットやPlayStation(プレステ)のゲームCDがザクザクと発掘されました。
![]()
すでにゲーム機本体はなくなっているのですが、RaspberryPiならエミュレータで遊べる。
多くのエミュレータを集めた「RetroPie」をRaspberryPi 3 B+ にインストールしてゲーム環境を構築しました。
多彩なエミュレータの RetroPie
RetroPieは、色々なエミュレータを手軽に使えるディストリビューションです。
実行できるエミュレータで、日本国内でなじみのあるゲーム機やコンピュータは次のようなモノがあります。
- ファミコン (NES)
- スーパーファミコン (SNES)
- PCエンジン
- セガサターン
- ゲームボーイ/ゲームボーイカラーなど
- PlayStation
- PlayStation2
- X68000
- PC-8800
- PC9800
その他にも AMIGA やAppleなど、様々なエミュレータをRaspberryPi(RetroPie)で実行できます。
詳しくはRetroPieのサイトで確認してください。
今回は手元にあったスーパーファミコンとPlayStationのゲームをRetroPieで動かしてみました。
RetroPie を使うために必要なもの
RetroPieでエミュレータ環境を構築するには次のものを用意します。
- RaspberryPi 3 B+ もしくは RaspberryPi 4 B
- USBゲームパッド
- microSD
- インターネット接続
- WindowsやmacOSなどRetroPieイメージを作成するコンピュータ
- 自分で所有している遊びたいゲーム
RetroPieのイメージとしては、RaspberryPi 1/2のイメージも用意されていますが、PlayStationなどの最近のゲームを楽しむ場合には、RaspberryPi3 もしくは RaspberryPi4 などパワーのあるハードウェアを使った方が良いです。
RetroPie インストール
※) 2021年6月:「RaspberryPi OS Imager」で、もっと簡単にRetroPieのインストールができるようになりました。
RetroPieをインストールするには、RetroPieのサイトから使用するRaspberryPiのイメージをダウンロードします。
RaspberryPi 0/1, 2/3, 4用のそれぞれのイメージがありますので、使用するRaspberryPiのイメージをダウンロードします。
![]()
![]()
ダウンロードしたファイルは、「.gz」ファイルになっていますので解凍します。
解凍ができたら Win32 Disk Imager や Rufus などのツールを使って、microSDにイメージを書き込みます。
![]()
ここまでできたら前準備は完了です。
スーパーファミコンやPlayStationのゲームデータの取り出しは、ここでは割愛します。
決して自分が所有していないゲームのイメージを、ダークウェブなどで入手したりしないようにしてください。
RetroPie にゲームを保存
RetroPieにゲームデータを保存するには、RetroPieの設定画面でSAMBAを有効にします。
SAMBAを有効にすると、RetroPieにファイルサーバーのように接続して直接イメージファイルを保存することができます。
コピーした直後は、RetroPieが認識しませんので、RetroPieを再起動します。
再起動すると、保存したゲームが一覧に出てきて遊ぶことができます。
今回は、スーパーファミコン(SNES)の「ドラクエ1,2」「ドラクエ3」「ドラクエ5」「ドラクエ6」の他にPlayStationのリッジレーサー 「R4」などをRetroPieにインストールしてみました。
![]()
PlayStationのゲームは、RaspberryPiで快適にエミュレーションできるか心配でしたが、R4やTOBALなど動きの速いゲームでも遊ぶことができました。
動作速度とパフォーマンス
スーパーファミコン(SNES)は、非力なコンピュータでも実行できるのですが、PlayStationのエミュレーションがRaspberryPiで快適に動くのが心配でした。
実際にPlayStationのCDイメージを動かしてみると、なかなか快適に動作しています。
RasbianなどLinuxマシンとしての利用がメインのRaspberryPiですが、RetroPieはRaspberryPiの可能性を広げてくれました。
ちょっと時間のあるときに、ドラクエなどを楽しみたいと思います。
RaspberryPiのX68000ケースは、プラモデルですが購入できます。ただし、ケースはRaspberryPi 2/3用なので、X68000ケースの場合には、RaspberryPi3B+を使う必要があります。
X68000のケースでスーパーファミコンやPlayStationというのも楽しいです。
macOS Catalinaでファンが高速回転 accountsd高負荷の対策
2020年 9月下旬にリリースされた macOS Catalina 10.15.7 にアップグレードしたら、MacBook Airのファンが爆音を鳴らして高速回転するようになりました。
そろそろMacBook Airも買い換えなのかなと思ったのですが、アクティビティモニターでCPUを占有しているプロセスを確認すると「accountsd」というシステムのプロセスが200%のCPUを使い切っていました。
ファン爆音の犯人 acountsd
accountsdは、Appleの情報をみると Accounts frameworkという、ユーザーのログイン認証を管理して、アプリから外部アカウントへのアクセスを管理するプロセスのようです。
The Accounts framework provides access to user accounts stored in the Accounts database, which is managed by the system. An account stores the login credentials of a particular service, such as Twitter, and you use those credentials to authenticate with the service. When you integrate the Accounts framework into your app, you don’t need to store account logins yourself. Instead, the user grants your app access to use their account login credentials, bypassing the need to type their username and password. If no account for a particular service exists in the user’s Accounts database, you can let them create and save an account from within your app.
accountsdの高負荷の対策
英語のコミュニティなどでは、すでにいくつかの対策がでており、その内容に従って対策してみました。
- Apple IDのサインアウトと再サインイン
- MacのSMCとNVRAMをリセット
- Spotlightの設定の変更
- accountsdのデータベースの再構築
この中で最後のaccountsdのデータベースの再構築は、データ破損の恐れもあり、この対策をしなくても結果手にはCPU高負荷はおさまりました。
Apple IDのサインアウトと再サインイン
一番簡単な方法で、効果がある内容のようです。
Apple IDからサインアウトますので、事前にアカウント名とパスワードは確認しておいてください。
「システム環境設定」アプリから、Apple ID > 概要 > サインアウト を実行します。
サインアウトした状態で、Macを再起動します。
MacのローカルにあるiCloudのデータを削除するかときかれるので、私は念のためデータを残した状態でサインアウトしました。
再起動後に、「システム環境設定」から、Apple ID をクリックして サインイン します。
SMC/NVRAMのリセット
Macの調子が悪くなると SMC と NVRAMのリセットを1回はやるというくらい定番の SMC/NVRAMリセット。
アップデートの後や、タッチパッド,ディスプレイのコントロールがおかしくなったときにもお世話になっています。
NVRAMのリセットは簡単で、Macをシャットダウンして、起動時に「optoin」+「Command」+「P」+「R」を同時に押しながら電源を入れます。
電源を入れた後も 20秒くらい押し続けると、Macが再起動してNVRAMのリセットが完了します。
詳しくは、サポートのページをご覧ください。
SMCのリセット方法は、機種によってことなります。
基本的には、シャットダウンした状態で「左(機種によっては右)シフト」+「Control」+「Option」を押したまま、電源をいれます。
こちらも詳しくはサポートのページで確認してください。
accountsdの対策の結果
この2つの対策をして、最後に再起動したところ、accountsdの高負荷問題は再発せずに解決できました。
いつもの環境をUSBメモリーで持ち歩く
デスクトップやノートPCなど複数のWindowsを使っていると面倒になってくるのがアプリの環境や設定の同期。
こっちのWindowsではSSHの鍵が無いとか接続設定していない。
あっちのWindowsには、必要なアプリが入っていなかったのでインストールが必要。
せっかく設定した項目を、別の環境に作り直すのが面倒くさい。
そもそもレジストリに設定が入っているので、設定画面でポチポチと設定しなくてはいけない。
こんな悩みを解決するために、最低限の作業ができるアプリをUSBメモリーにインストールして使っています。
いつもの環境を持ち歩ける PortableApps
PortableAppsは、インストーラ形式で提供されているアプリをUSBメモリーに配置して、設定などもレジストリを使用しないようにしたアプリを提供しています。
多くのアプリが提供されていますが、Google ChromeやFirefox、GIMP、PuTTY,WinSCP,Filezillaなど有名なアプリなどもインストーラを使用しないでUSBメモリーから起動することができます。
登録アプリは400を越えています。
今回は、32GBのUSBメモリーにPortableAppsの環境を作って、いつも使う環境を持ち運べるようにします。
![]()
PortableAppsのインストール
PortableAppsをUSBメモリーにインストールするのは非常に簡単です。
PortableAppsのサイトの「DOWNLOAD NOW – Free」でインストーラーをダウンロードして実行します。
最初に言語の選択がありますので、日本語を選択します。
![]()
「インストールの種類」で新規インストールを選択します。
![]()
USBメモリーやSDカードに環境を作る場合には、「インストール場所」で「ポータブル」を選択します。
この時、DropboxやGoogleドライブにPortableAppsの環境を作ることもできます。
容量に余裕があって、USBメモリーの持ち運びはしたくないという場合には、クラウドを選択するのも良い方法です。
![]()
「インストールポータブル」で、使用するUSBメモリーを選択します。
![]()
確認画面で<インストール>をクリックすると 指定した場所に PortableAppsの環境ができあがります。
![]()
アプリの追加
アプリを追加するには、PortableAppsのメニュー画面から「アプリの管理」を選択します。
最初の起動の時にも、インストールするアプリ一覧が表示されます。
![]()
私がインストールしているアプリは次のようなモノです。
![]()
インストールしているのは、外出先やちょっとしたサポートをするときに必要になるツールがほとんどです。
VeraCryptは、大切な情報を暗号化して持ち運ぶために使っています。
- Mozilla Firefox
- 定番のWebブラウザ
- PuTTY
- SSHクライアント
- WinSCP
- SFTP/SCPクライアント
- Rufs
- USBイメージ作成ツール
- VeraCrypt
- 暗号ディスク管理ツール
- CrystalDiskInfo/CrystalDiskMark
- ストレージ情報/ベンチ ツール
- CPU-Z
- CPU情報確認ツール
アプリを使いたいときには、メニューからクリックするだけで起動します。
使わなくなったアプリは、右クリックでアンインストールもできます。
PortableApps メリットとデメリット
いつでも環境を持ち運べる PortableApps。便利な部分と注意する部分があります。
デメリット: セキュリティ対策を忘れずに
USBメモリーに多くの情報を保存しますので、USBメモリーの管理には注意が必要です。
特に個人情報やシステムの接続情報、大切なファイルなどを無くしてしまうと情報漏えいの危険もあります。
本格的に使う場合には、ハードウェアで指紋やパスコードロックなどの認証機能をもったUSBメモリーを使うことを考えた方が良さそうです。
メリット: システムドライブを圧迫しない
PortableAppsは、USBメモリーやSDカードにアプリをインストールできます。
システムドライブ(C:)の容量が少ない環境の場合には、外付けのUSBメモリーやSDカードにPortableAppsを準備することで、システムドライブを圧迫せずにすみます。
メリット:クラウドの活用
PortableAppsは、DropboxやGoogleドライブ、OneDriveに環境を作ることもできます。
USBメモリーを持ち運ぶのがセキュリティリスクがあると感じる場合には、クラウドのネットワークドライブにPortableAppsをインストールして使うことも良い方法です。
Windows ディスクの無駄を見つける WinDirStat
気がつくとWindowsのディスク(ストレージ)が減っていて驚くことがあります。
Windowsのシステムファイルが肥大したり、余計なゴミファイルが貯まっていたりと理由は様々ですが、どこにどれくらいのデータがあるのか手探りで探すのは大変です。
簡単で使いやすいディレクトリ可視化アプリ
WinDirStat(Windows Directory Statistics)は2003年にリリースされたディレクトリ可視化アプリです。最終アップデートは2016年。
![]()
このWinDirStatは、指定したドライブを解析して、ファイルが占める割合をボックスの大きさで表示してくれます。
ファイルの場所とディレクトリもまとめて表示してくれるので、思わぬ所に巨大なゴミファイルが残っていても直ぐに発見できます。
WinDirStat (PORTABLE)インストール
標準のWinDirStatは、インストーラー形式ですが、今回は 実行ファイルだけで使用できる WinDirStat Portable を使用します。
USBメモリーなどに Portable版を保存しておくことで必要なときにアプリを実行できます。
Portable版にはインストーラがついていますが、Windowsのレジストリなどに情報を書き込みませんので、持ち運びがしやすいパッケージになっています。
今回は他のWindowsでもメンテナンス用にWinDirStatを使いたかったので USBメモリー(E:ドライブ)にアプリを配置しました。
ダウンロードした実行ファイルをダブルクリップしインストーラーに従って進めていきます。
![]()
インストール先で、USBメモリーを選択しました。
![]()
これだけでWinDirStatが使用できます。
サイズの大きなファイル、ファイルが貯まっているディレクトリを可視化できます。
WinDirStatを使ってみる
WinDirStat Portableを起動すると、解析するディスクの選択画面が表示されます。
![]()
ここで解析するディスクを選択して
![]()
ディスクの解析がはじまりますので、解析が終わるまで待ちます。
解析が終わった結果が、次のような画像になります。
![]()
四角(ボックス)には次のような意味があります。
- ボックスの大きさ
- ファイルのサイズ
- ボックスの色
- 拡張子
ボックスをクリックすると、上のエクスプローラーのツリーでパスが表示されます。
ファイルサイズが大きいモノを直ぐに見つけたり、どこかに残っている消し忘れのファイルなどを素早く見つけられます。
今回 WinDirStatを持ち運びように使ったUSBメモリーは、「ソニー USBメモリ USB3.0 32GB ゴールド 高速タイプ USM32GQXN」という32GBの USBメモリーです。
ゴールドだと無くしにくいし、気分的にアゲアゲで。
[セキュリティ]無料S/MIME Actalis証明書の再発行が必要 期限は2020/10/30
昨年 紹介した「無償で入手できるS/MIME証明書」の記事で紹介した Actalis SpA のS/MIME証明書。
この Actalis SpAからメールが届いていました。
※)全文は記事の一番下に英語版を引用します。
S/MIME証明書の再発行が必要
要約すると、以下のような重要な問題が発生したので再発行が必要ということでした。
- 2020年7月31日以前のSubCA G2で発行した証明書が対象
- 緊急の問題が発生したので再発行が必要
- 2020年10月30日で、今の証明書は無効になる
- 証明書を置き換えるため再発行が必要
再発行手順は、前回の記事と同じ内容です。
2020年10月30日に証明書が無効になりますので、それまでに発行したS/MIME証明書を更新する必要があります。
S/MIME証明書を発行したメールアドレスには、記事最後のメールが届いているはずです。
可能な限り早く S/MIME証明書を再発行して安全な状態に保ちましょう。
無償のS/MIME 発行手順は、以下の記事をご覧ください。
Actalisからのメール(英語版)
Actalis S/MIME certificates: reissue required by 30/10
Dear Customer,
We inform you that, in order to ensure compliance, all Actalis S/MIME certificates issued before 13 July 2020 with SubCA G2 need to be reissued as a matter of urgency.
This needs to be done no later than 30 October 2020.
As a precautionary measure following an incident involving a large number of CAs including Actalis (see the detailed list and the public discussion on the subject), all publicly trusted Actalis SSL Certificates, including free S/MIME Certificates, have already been issued by new Intermediate CAs (the new intermediate CA for S/MIME certificates are indicated on the Actalis website).
As required by CAB Forum rules, all CAs involved in said incident are revoking, or are planning to revoke, the affected intermediate CA certificates, which will invalidate all the end-entity certificates they have issued. Therefore, to avoid disruption of services, all Subscribers are urged to replace their certificates with new ones, issued by new intermediate CAs.
A new S/MIME certificate, to replace the current one, must be requested by following the free procedure available on the website actalis.it.
Please do this within a few days of receiving this message and in any case no later than 30 October 2020. After this date, we will automatically revoke the old certificates.
We apologize for any inconvenience, and would like to thank you for your cooperation. Please contact us if you need anything via the support channel you normally use.
Kind regards
Actalis S.p.A.
Trust Services Support
動画/画像の編集がはかどるコントローラー tourbox
動画編集や画像の編集などは、キーボードとマウス。
ただ、微妙なスライダーを調整しながらなどの操作ではやりにくい時があります。
いまはなきSONY VAIO GEAR USBジョグコントローラ
実は今から20年以上まえ、動画の編集に特化したUSBのジョグコントローラーがSONYのVAIOの関連アイテムとして発売されていました。
VAIO GEAR USBジョグコントローラというもので、Adobe Premiereのカット割りや再生・コマ送りなどをホイール(ジョグ/シャトル)でまわしながら直感的に操作できるガジェットです。
対応OSは WIndows98 や Windows 2000。
簡単に操作でき編集も素早くできる優れものでした。
ただ、シリーズ化することなく、その後のOS対応もなかったため使えなくなったのです。
その後、Adobe Premiereは使い続けていますが、ジョグ/シャトルの代わりになるデバイスがなく編集作業がやりにくいと感じていました。
マルチメディア編集の最強パートナー tourbox
tourboxはクラウドファンディングではじまったプロジェクトで、PhotoshopやLightroomなど画像編集や、プロファイルを拡張することで Premiere などの動画編集をサポートしてくれるコントローラです。
![]()
OSは、WIndows10の他にMacOSにも対応しています。
- 画像処理ソフト
- Adobe Photoshop
- Adobe Lightroom
- Adobe Illustrator
- ペイントソフト
- Clip Studio Paint
- Comic Studio
- Sai
- 映像・音声処理ソフト
- Final Cut Pro
- Premiere
- Affter Eccects
- DaVinci
- Audition
公式サイトでは、こういったアプリケーションの操作を快適にするデバイスであると紹介されています。
細かな操作をするためのダイヤルとボタン
tourboxは、マウスでは難しかったパラメータの上下などをダイヤルに割り当てたり、ワンタッチでカット/ペーストその他の操作が簡単にできます。
![]()
マウス操作やカスタマイズできる左手キーボードとの一番の違いは、2つ配置された「ダイアル」と「ノブ」です。
「スクロール」は、マウスのホイールと同じ動きができます。
この「ダイアル」と「ノブ」は、マウスのホイールのように回転しますので細かな数字の調整ができます。
- 明るさやコントラストをプレビューしながら調整したい
- フィルターのかかり具合を細かく素早く調整したい
- タイムラインを1フレームごとに簡単に移動したい
マウスではクリックしたりスライダーをドラックしたり、数字入力で指定していた操作を「ダイアル」と「ノブ」をまわすだけで操作できます。
マウスや数字入力では面倒だった操作が、tourboxでは まわすだけで実現できます。
これが、tourboxが欲しかった一番の理由です。
VAIO GEAR USBジョグコントローラの快適な動画の編集環境が戻ってきそうです。
プロファイルの切り替えで様々な操作に対応
tourboxは、アプリケーションごとのキーアサインを変えることができます。
![]()
それぞれのキーマップは、アプリケーションに「関連」付けることにより、アプリがアクティブになると自動的にプロファイルが切り替わります。
公式サイトでは、いくつかのアプリケーションのプロファイルが公開されていますので、自分で設定しなくてもスグにアプリケーションの設定ができます。
![]()
Premiereなど動画編集で使いたいコントローラ
はたして、tourboxを導入してpremiereの動画編集やphotoshopのRAW現像や画像処理が劇的に変わりました。
今まで「あと1フレ」「もっと素早くフレーム移動したい」「現像のパラメータ調整が面倒」と思っていたことがtourboxの「ダイアル」と「ノブ」をまわすだけ。
カットや設定変更も、ボタンでワンタッチで切り替え。
マウスを操作して、細かな指定にイライラしていたことがワンタッチで終わってしまう。
動画編集や画像処理に、このtourboxは最高のサポートデバイスです。
昔の VAIO GEAR USBジョグコントローラーの快適な編集環境が戻ってきたようで満足しています。
動画編集される方、写真の現像が画像加工、同人誌などでマンガを描かれている方にはオススメです。

















