mirror of
https://github.com/kou029w/megabit-os.git
synced 2025-01-18 16:07:58 +00:00
USBマスストレージとして認識可能なRaspberry Pi Zero用のNode.js実行環境のためのSDカードイメージを作るPoC
.github/workflows | ||
apkovl | ||
bin | ||
.gitignore | ||
docker-compose.yml | ||
fstab | ||
LICENSE | ||
overlay.img.gz | ||
README.md | ||
usercfg.txt |
Megabit OS
Megabit をすぐに試せる実行環境とそれをビルドするためのツール群
使い方
- Releases から OS イメージをダウンロード
- イメージを microSD カードに書き込み
- Raspberry Pi Zero とパソコンを USB で接続し、1-3 分ほど待つと起動
- 自動的に認識される USB マスストレージのルートに index.js を作成することで自動的に実行
- 注意: index.js 以外の node_modules/ などは無視されます
サンプルコード
index.js
const { gpio } = require("megabit");
const sleep = require("util").promisify(setTimeout);
async function blink() {
for (;;) {
await gpio(26).write(1);
await sleep(1000);
await gpio(26).write(0);
await sleep(1000);
}
}
blink();
詳細
- Alpine Linux v3.14 ベース (armhf)
- Node.js v14.17.6
ビルド
bin/build
SD カードのフォーマット
- FAT32 (LBA)
- boot フラグ付ける
- ボリュームラベル付けない
SD カードに書き込み
tar xf megabit-armhf.tar.gz -C /path/to/sd/
前提条件
- Linux Kernel 4.8+
- binfmt-support 2.1.7+
- Docker
- Docker Compose
- curl
- grep
- gzip
- jq
- ruby
- ssh-keygen
- bash
- qemu-user-static
WiFi の設定
apkovl/etc/wpa_supplicant/wpa_supplicant.conf
配置後ビルド
bin/conf-gen | tee apkovl/etc/wpa_supplicant/wpa_supplicant.conf
ssh の設定
apkovl/root/.ssh/authorized_keys
をパーミッション 600 で配置後ビルド
ライセンス
イメージに含まれているソフトウェアのライセンス情報を参照してください。 本リポジトリ内のソフトウェアは CC0-1.0 ライセンスです。