ドン・キホーテの2万円PCことストイックPC3がLinuxで復活

リモートデスクトップ端末専用と化していたドンキのストイックPC3だが、 ChromeOS Flexを入れたらリモートデスクトップ端末だけでなく、 Linuxコンテナもなかなか使える子になった。 それなら、ということで、Linuxをネイティブで入れたら、普通に使える子になったので、その備忘録。

1. 軽量Linuxディストロの選択

軽量Linuxにもいくつかあるが、 今回はUbuntuベースのLinux Lite 6.6を入れてみた。 Linux Liteよりも軽量なディストロはあるが、ストイックPC3のリソースはそれほど貧弱ではない。 小さくするためには、何かしら削ぎ落としているものだ。 ちなみに、Lubuntuも入れてみたが、お任せではWifiモジュールを認識してくれなかったし、 Q4OSはGoogle Driveが難しかった。

2. Linux Liteのインストール

  1. ISOイメージをダウンロードし、起動用USBメモリに書き込む
  2. ISOイメージを書き込んだUSBメモリで起動してインストール
  3. 初ログイン時にシステムのアップデートや言語設定を実施

3. サスペンド復帰時のキーボード不具合への対処

サスペンドから復帰した際に、キーボードとタッチパッドのクリックが効かなくなる不具合が生じたが、 /etc/default/grubを下記のように修正したら機能するようになった。 なお、ハイバネートが効かないのは未解決。

GRUB_CMDLINE_LINUX="i8042.nopnp"

4. 日本語環境

日本語入力はiBus-Mozcを使用

5. リモートデスクトップクライアント

Remminaを使用

6. Google Driveのマウント

sudo add-apt-repository ppa:alessandro-strada/ppa
sudo apt update
sudo apt upgrade
sudo apt install google-drive-ocamlfuse
google-drive-ocamlfuse
cd
mkdir G
google-drive-ocamlfuse /home/<user_name>/G

ChromeOS Flexの環境作り備忘録

ドンキのストイックPCをリモートデスクトップ端末にしたら(ChromeOS Flex版) 思いの外、ChromeOSが軽くて、ストイックPCがストイックにしなくても普通に使えるようになったので環境作りの備忘録。

Windows keyboard shortcutsとの違い一覧

ショートカットキーがWindowsと異なる場合があるので、ついつい間違えてしまう。

機能 ChromeOS Windows
ウィンドウ最大化on/off Alt- = Win- ↑
ウィンドウ最小化 Alt- - Win- ↓
ウィンドウを左(右)に配置 Alt-[(]) Win- ←(→)
仮想デスクの移動左[右] Win-[(]) Win-Ctrl- →(←)
ファイルアプリ Alt-Shft- m Win- e
クイック設定 Alt-Shft- s Win- i
通知 Alt-Shft- n Win- n
Shelf icon Alt- 1〜9 Win-(Shft,Ctrl,Alt) 1〜9
Task manager Win-Esc Ctrl-Shft-Esc
Screen Shot:F(SW) Ctrl-(Shft,Alt) F5 Win-Shft- s
ウィンドウとデスク一覧 F5 Win-Tab

Linux

ChromeOSとの連携

  • ファイルアプリで"My Files"を右クリックして「Linuxと共有」
  • ファイルアプリで"Google Drive/My Drive"を右クリックして「Linuxと共有」
  • Linuxを立ち上げて
cd
ln -s /mnt/chromeos/MyFiles C
ln -s /mnt/chromeos/GoogleDrive/MyDrive G

ドンキのストイックPCをリモートデスクトップ端末に(ChromeOS Flex版)

(この記事を書いた後、Linuxを入れたリモートデスクトップ端末だけではなく、普通に使えるようになったので、Windowsが重くなってきたなぁ、っと思うようになったらLinuxに入れ替えましょう。)


ドン・キホーテのMUGAストイックPC3(以下、MUGA3)はWindows11に対応していないのでWindows10のサポート期限である2025年まで使って、その後は新しいノートPC でも買おうかと思っていたが、minisforumのUM773 Liteをを購入してからはMUGA3はほぼほぼリモートデスクトップ端末になっていたので、いっそのことChoromebook化してしまおうかと思う。

ChromeOS Flexのインストール

  1. Chromeブラウザに"Chromebook リカバリ ユーティリティ"拡張機能をインストールする
  2. Chromebook リカバリ ユーティリティを実行し、"リストからモデルを選択"で、
  3. メーカー名を選択:Google ChromeOS Flex
  4. 製品を選択:ChromeOS Flex
  5. USBドライブを挿入し、起動ディスクを作成
  6. 起動ディスクを挿したままPCを再起動し、Windowsが立ち上がる前に"F2"を連打でUEFIを起動
  7. 作成したUSBドライブで起動するように設定し、"Save&Exit"
  8. ChromeOS Flexが立ち上がるのでChromeOS Flexをインストールする
  9. 言語、WiFiGoogle accountを設定

Chromeリモートデスクトップのインストール

  1. ChromeOS FlexChromeウェブストアで"Chrome Remote Desktop"をインストール
  2. ChromeOS FlexChromeブラウザでChrome Remote Desktop拡張機能を実行
  3. ホストWindowsChromeブラウザにもChrome Remote Desktop拡張機能をインストールし、実行
  4. Go to http://remotedesktop.google.com/access

ESP32の開発環境:Arduino IDE vs PlatformIO vs ESP-IDF

ESP32の開発環境にはArduino IDE, PlatformIO, ESP-IDFの3種類があるが(更に、PlatformIOとESP-IDFにはIDE版とCLI版がある)、 現時点(2024年2月)のワタシ的には手間やライブラリの豊富さからArduino IDEで行こうと思う。

PlatformIOとESP-IDFはコンソール版とVSCodeのExtension版があり、エディタをvim(風)にして編集効率を上げることができるのだが、 マイコンの世界ではArduinoの影響が強く、Arduino IDE用のライブラリや情報が最も多い。

今回、M5StackのAtomS3を購入したので、その時に開発環境を準備したときの備忘録。 なので、AtomS3限定の情報もあるが、ESP32デバイス全般にも参考になるかもしれない。 ちなみに、PlatformIOとESP-IDFはVSCodeのExtension版をインストールしてみた。

I. Arduino IDE

参考にしたのは、M5STACK ATOMS3製品ページから辿った。

インストール

  1. インストーラをダウンロードし、インストール。
  2. Open the Arduino IDE, select File->Preferences->Settings
  3. Copy the M5Stack board management URL below to the Additional Development Board Manager:
https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
  1. Select Tools->Board->Boards Manager...: M5Stackをインストール
  2. Select Tools->Board->M5Stack, and select the corresponding board (M5AtomS3).
  3. Select Sketch->Include Library->Libraries Management...
  4. Search for M5AtomS3 and install it.

スケッチの作成とアップロード

  1. AtomS3を接続し、ポートとボードを選択する
  2. スケッチを作成しコンパイル
    コンパイル時に赤い字で
pragma message "No hardware SPI pins defined.  All SPI access will default to bitbanged output"

なんて出てくる場合があるが、意味不明なウォーニングらしく、無視して良いらしい。

  1. AtomS3のリセットボタンをLEDが緑になるまで長押しし、アップロードモードにする(*)
  2. スケッチをアップロード
  3. アップロードが完了したらリセットボタンを(短く)押すと、プログラム実行モードになる() ()アップロードモードにしなくても、アップロードできる時もある。

HelloLCD.ino : AtomS3のLCDに文字を表示する

#include <M5AtomS3.h>
void setup() {
  M5.begin();
  M5.Lcd.println("Hello AtomS3 LCD!");
}
void loop() {}

参考

II. PlatformIO IDE for VSCode

インストール

参考にしたのは、EspressifのArduino-ESPチームのインストール方法のページから PlatformIO IDEを経て PlatformIO IDE for VSCode

  • VSCodeにてPlatformIO IDE Extensionをインストール

これだけ。実に簡単だ。

プロジェクトの作成とアップロード

  • VSCodeのサイドバーでPlatformIO IDEボタンをクリック
  • PlatformIO HomeにてCreate New Project - + New Project
  • Project WizardにてBoards: M5Stack AtomS3 / Framework: arduino
  • (プログラム作成)
  • PlatformIO Toolbarのコンパイルボタンでコンパイル
  • PlatformIO Toolbarのアップロードボタンでアップロード

Library/Package

PlatformIO Homeのサイドバーの"Libraries"にて、検索窓に入れたいライブラリ名を入力して検索し、インストールする。

しかし、プログラム毎にライブラリをインストールするので、PCの保存域をバカ食いするのは何とかならんもんか。

参考

III. ESP-IDF

Espressifの公式開発フレームワーク

インストール

プロジェクトの作成とアップロード

参考: "View"-"Command Palette"-"ESP-IDF: welcome"でESP-IDF Basic useより

  • サンプルプログラムは"View"-"Command Palette"-"ESP-IDF: Show Examples Projects"
  • 新規プロジェクト作成は"View"-"Command Palette"-"ESP-IDF: Create ESP-IDF Project"
  • "ESP-IDF: Set Espressif Device Target"でターゲットデバイスを選択
  • "ESP-IDF: Select Port to Use (COM, tty, usbserial)"で接続ポートを指定
  • "ESP-IDF: Build your Project"でビルド
  • "ESP-IDF: Flash Device"でアップロード

  • ESP-IDF: SDK Configuration Editor

  • ESP-IDF: Size Analysis of the Binaries

Library

ライブラリはどうするのだろう?

参考

趣味の電子工作向けには、どのESP32開発キットを選べば良いか?!Choosing the Right ESP32 Development Kit for Your Electronics Hobby

ESP32はWifiBluetoothを搭載し、開発キットが2,000円以下で購入できるコスパの良いマイコンだ。 そこで、購入して遊んでみようと思ったら、意外とバリエーションが豊富でどれを買えば良いのか、すぐには判断がつかなかったので情報をまとめておく。 用途としては、趣味の電子工作。

結論としては、M5Stack ATOMS3がCPUの性能が高く(600 DMIPS)、IPS液晶を始め機能が豊富なので良さげである。 2023年に発表されたESP32-P4がS3以上に高性能で楽しみだけど、キリが無いのでATOMS3をポチってしまった。高が$15だし。P4が出たら、そっちも買えば良い。


SoC

SoC Year CPU Core Clock RAM SROM
ESP8266 2014 L106 Single 160 MHz 112 kB -
ESP32 2016 LX6 Single/Dual 240 MHz 520 kB 448 kB
PICO D4 2022 LX6 Dual 240 MHz 520 kB 448 kB
S2 2020 LX7 Single 240 MHz 512 kB 384 kB
S3 2021 LX7+FPU Dual 240 MHz 512 kB 384 kB
C2 2020 RISC-V Single 120 MHz 272 kB 576 kB
ESP8684 2020 RISC-V Single 120 MHz 272 kB 576 kB
C3 2020 RISC-V Single 160 MHz 400 kB 384 kB
C6 2021 RISC-V Single 160 MHz 512 kB 320 kB
H2 2022 RISC-V Single 96 MHz 320 kB 128 kB
P4 2023 RISC-V+FPU Dual 400 MHz 768 kB ??? kB
  • ESP8266 ESP32の前に存在していた人気の組み込みCPU
  • ESP32(無印) ESP8266の後継
  • ESP32-Sシリーズ ESP32にUSB機能などを追加したシリーズでESP32の進化版
  • ESP32-Cシリーズ CPUコアは独自開発のRISC-Vに変更。シングル・コアの低価格な製品群
  • ESP32-S2 A Secure and Powerful Wi-Fi MCU with Numerous I/O Capabilities, ADC, SD
  • ESP32-S3 Designed for AIoT applications, 2.4 GHz Wi-Fi and Bluetooth 5 (LE), Powerful AI acceleration, Reliable security features, ADC, SD
  • ESP32-C2 Small-sized, cost-effective SoC, Equip your device with easy and robust wireless connectivity
  • ESP8684 C2と同じ?
  • ESP32-C3 A cost-effective RISC-V MCU with Wi-Fi and Bluetooth 5 (LE) connectivity for secure IoT applications, ESP8266とpin配置互換
  • ESP32-C6 A low-power and cost-effective 2.4 GHz Wi-Fi 6 + Bluetooth 5 (LE) + Thread/Zigbee SoC, with a 32-bit RISC-V core, for securely connected
  • ESP32-H Espressif’s IEEE 802.15.4 + Bluetooth 5 (LE) SoC, powered by a 32-bit RISC-V core, designed for low power and secure connectivity (No-Wifi)
  • ESP32-D0WDQ6-V3 ESP32シリーズの初期リリース製品
  • ESP32-D0WD ESP32-D0WDQ6に類似したパッケージの小型化
  • ESP32-pico ESP32(無印)の最新版

開発キット

  • ESP32-S2-DevKitM-1-N4R2 1,750円(2024)
  • ESP8684-DevKitM-1-H4 1,850円(2024)
  • ATOM S3 Lite 1,496(2023)
  • ESP32-C6-DevKitC-1 1,840円(2023)
  • Seeed Studio XIAO ESP32S3 1,300円(2023)
  • Seeed Studio XIAO ESP32S3 Sense 2,480円(2023)
  • ATOM S3 2,596円(2022)
  • ESP32-S3-DevKitC-1 2,300円(2022)
  • Seeed Studio XIAO ESP32C3 940円(2022)
  • ATOM Lite:ESP32-PICO-D4 1,600円(2022)
  • ESP-EYE(ESP32-D0WD) 2,980円(2021)
  • ESP32-DevKitC-32E ESP32-WROOM-32E開発ボード 4MB 1,600円(2020)
  • ESP32-DevKitC-VE ESP32-WROVER-E開発ボード 8MB 1,750円(2020)
  • ESP-WROOM-32D開発ボード 1,600円(2018)
  • ESP-WROOM-02開発ボード 1,280円(2017)

  • ESP32-S3-WROOM-1 ESP32-S3-DevKitC-1

  • ESP32-WROVER-E ESP32-DevKitC-VE ESP32-WROVER-E開発ボード 8MB(2020)
  • ESP32-DevKitC-32E ESP32-WROOM-32E開発ボード 4MB(2020)
  • ESP8684-DevKitM-1-H4(2024) Ultra­Low­Power SoC with RISC­V Single­Core CPU, Supporting IEEE 802.11b/g/n (2.4 GHz Wi­Fi) and Bluetooth 5 (LE), 2 MB or 4 MB flash in the 4×4 mm QFN package. C2の仲間?

SMTモジュール基板

ESP32モジュール基板はESP SoCを内蔵し他の基板上に容易に実装出来るように設計されている。

  • ESP32-WROOM-xx 18.0 × 19.2 × 3.2 mm
  • ESP32-WROVER-xx PSRAM 18.0 x 31.4 x 3.3 mm
  • ESP32-MINI-xx 13.2 × 19.0 × 2.4 mm
  • ESP32-S2-SOLO-xx
  • ESP32-WROOM-32 Flagship, public-release ESP32 module board created by Espressif.(2016)
  • ESP32-WROOM-32D
  • ESP32-WROOM-32E
  • ESP-WROOM-02 Limited distribution, pre-production module created by Espressif for beta testing purposes; this module used the ESP31B, the beta testing chip for the ESP32 series.(2016)

参考

wsl2にsshでアクセス

リモートデスクトップも良いのだが、画面データは重いのでwslを使うだけならsshの方が軽い。

1. systemdを起動

/etc/wsl.confファイルを作成し、下記を追加。

[boot]
systemd=true

PowerShellで下記を実行。

> wsl --shutdown

wslを起動。

2. WindowsファイアウォールTCP/22を開放

3. Windowsでポートフォワーディング

PowerShellの管理者モードで下記を実行。${ip_host}と${ip_wsl2}は、それぞれWindowsIPアドレスとwsl2のIPアドレス。 wsl2のIPアドレスは起動ごとに変わるので要注意。

netsh.exe interface portproxy add v4tov4 listenaddress=${ip_host} listenport=22 connectaddress=${ip_wsl2} connectport=22

上記コマンドで上手くいかない場合は、こっちを試してみるべし。

netsh.exe interface portproxy add v4tov4 listenport=22 connectaddress=${ip_wsl2}

4. SSHのインストール

$ sudo apt install ssh

Privacy policy of Simple Timers

The privacy policy regarding the handling of personal information on the application Simple Timers is as follows

  • Collection of approximate location
    Simple Timers collects no location of a user device.

  • Collection of Personal Information
    Simple Timers does not collect any personal information.

  • Contact Information
    For inquiries regarding Typrov's handling of personal information, please contact us at the following email address.
    Email: much.more.most@gmail.com

  • Revisions
    The latest privacy policy, as amended, will always be posted on this page.

  • Date of Enactment/Revision
    Enacted: Aug. 7, 2023


アプリSimple Timersにおける個人情報の取扱いについて、以下のとおりにプライバシーポリシーを定めます。

  • おおよその位置情報の収集
    Simple Timers はユーザ端末の位置情報を収集しません。

  • 個人情報の収集
    Simple Timers は一切の個人情報を収集しません。

  • お問い合わせ先
    Simple Timersでの個人情報の取扱いに関しては、以下のメールアドレスにお問い合わせください。
    Email: much.more.most@gmail.com

  • 改定
    改定された最新のプライバシーポリシーは常に本ページにて開示されます。

  • 制定日・改定日 制定:2023年8月7日