USBマスストレージとして認識可能なRaspberry Pi Zero用のNode.js実行環境のためのSDカードイメージを作るPoC
Find a file
2023-08-25 10:36:08 +09:00
.github add release job 2021-09-05 17:23:30 +09:00
apkovl enable serial 2021-09-04 20:26:35 +09:00
bin bin/version curl, jq → ruby 2021-09-05 15:48:35 +09:00
.gitignore add build job for disk image file 2021-09-05 15:48:30 +09:00
docker-compose.yml feat: megabit mode 2021-07-25 18:17:48 +09:00
fstab feat: megabit mode 2021-07-25 18:17:48 +09:00
LICENSE Create LICENSE 2021-07-06 07:15:30 +09:00
overlay.img.gz feat: megabit mode 2021-07-25 18:17:48 +09:00
README.md 開発終了 2023-08-25 10:36:08 +09:00
usercfg.txt enable i2c-dev 2021-07-24 22:30:54 +09:00

このプロジェクトは現在メンテナンスされていません。もしフィードバックあればMastodon/ActivityPubにてお寄せください。

Megabit OS

Megabit をすぐに試せる実行環境とそれをビルドするためのツール群

使い方

  1. Releases から OS イメージをダウンロード
  2. イメージを microSD カードに書き込み
  3. Raspberry Pi Zero とパソコンを USB で接続し、2 分待つ
  4. 自動的に認識される 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
bin/img-gen

前提条件

  • Linux Kernel 4.8+
  • binfmt-support 2.1.7+
  • Docker
  • Docker Compose
  • qemu-user-static
  • awk, bash, curl, fallocate, grep, gzip, gzip, losetup, mkfs.fat, parted, ruby, ssh-keygen, tar, xargs

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 ライセンスです。