ドン・キホーテの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のインストール
- ISOイメージをダウンロードし、起動用USBメモリに書き込む
- ISOイメージを書き込んだUSBメモリで起動してインストール
- 初ログイン時にシステムのアップデートや言語設定を実施
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のインストール
- Chromeブラウザに"Chromebook リカバリ ユーティリティ"拡張機能をインストールする
- Chromebook リカバリ ユーティリティを実行し、"リストからモデルを選択"で、
- メーカー名を選択:Google ChromeOS Flex
- 製品を選択:ChromeOS Flex
- USBドライブを挿入し、起動ディスクを作成
- 起動ディスクを挿したままPCを再起動し、Windowsが立ち上がる前に"F2"を連打でUEFIを起動
- 作成したUSBドライブで起動するように設定し、"Save&Exit"
- ChromeOS Flexが立ち上がるのでChromeOS Flexをインストールする
- 言語、WiFiとGoogle accountを設定
Chromeリモートデスクトップのインストール
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製品ページから辿った。
インストール
- インストーラをダウンロードし、インストール。
- Open the Arduino IDE, select File->Preferences->Settings
- 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
- Select Tools->Board->Boards Manager...: M5Stackをインストール
- Select Tools->Board->M5Stack, and select the corresponding board (M5AtomS3).
- Select Sketch->Include Library->Libraries Management...
- Search for M5AtomS3 and install it.
スケッチの作成とアップロード
pragma message "No hardware SPI pins defined. All SPI access will default to bitbanged output"
なんて出てくる場合があるが、意味不明なウォーニングらしく、無視して良いらしい。
- AtomS3のリセットボタンをLEDが緑になるまで長押しし、アップロードモードにする(*)
- スケッチをアップロード
- アップロードが完了したらリセットボタンを(短く)押すと、プログラム実行モードになる() ()アップロードモードにしなくても、アップロードできる時もある。
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ボタンをクリック
- 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の公式開発フレームワーク
インストール
- Pythonをインストール
- Getting Started with ESP-IDFからMCUを選択
- S3: ESP-IDF Programming Guideから Get Startedをクリック
- VSCode Extensionを選択(Eclipse Pluginが好きな人はそちらへ。Windowsコマンドプロンプトでの開発環境もある。)
- Visual Studio Codeをダウンロード&インストール
- VSCodeにてESP-IDF Extensionをインストール
- "View"-"Command Palette"-"configure esp-idf extension" and setup
プロジェクトの作成とアップロード
参考: "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はWifiとBluetoothを搭載し、開発キットが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) UltraLowPower SoC with RISCV SingleCore CPU, Supporting IEEE 802.11b/g/n (2.4 GHz WiFi) 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}は、それぞれWindowsのIPアドレスと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.comRevisions
The latest privacy policy, as amended, will always be posted on this page.Date of Enactment/Revision
Enacted: Aug. 7, 2023
アプリSimple Timersにおける個人情報の取扱いについて、以下のとおりにプライバシーポリシーを定めます。