megabit-os/README.md

70 lines
1.7 KiB
Markdown
Raw Normal View History

2021-07-25 13:56:57 +09:00
# Megabit OS
2020-07-21 01:06:43 +09:00
2021-07-25 19:04:53 +09:00
[Megabit](https://github.com/kou029w/megabit) をすぐに試せる実行環境とそれをビルドするためのツール群
2020-07-21 01:06:43 +09:00
2021-07-25 20:48:30 +09:00
## 使い方
1. [Releases](https://github.com/kou029w/megabit-os/releases) から OS イメージをダウンロード
2. イメージを microSD カードに書き込み
2021-09-05 17:54:10 +09:00
3. Raspberry Pi Zero とパソコンを USB で接続し、2 分待つ
2021-07-25 20:48:30 +09:00
4. 自動的に認識される USB マスストレージのルートに index.js を作成することで自動的に実行
- 注意: index.js 以外の node_modules/ などは無視されます
## サンプルコード
index.js
```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)
2021-09-04 20:27:09 +09:00
- Node.js v14.17.6
2020-07-21 01:06:43 +09:00
## ビルド
```sh
bin/build
2021-09-05 13:47:00 +09:00
bin/img-gen
2020-07-21 01:06:43 +09:00
```
### 前提条件
2020-08-09 00:57:57 +09:00
- Linux Kernel 4.8+
- binfmt-support 2.1.7+
- Docker
2020-07-21 01:06:43 +09:00
- Docker Compose
- qemu-user-static
2021-09-05 15:41:38 +09:00
- awk, bash, curl, fallocate, grep, gzip, gzip, losetup, mkfs.fat, parted, ruby, ssh-keygen, tar, xargs
2020-07-21 01:06:43 +09:00
### WiFi の設定
`apkovl/etc/wpa_supplicant/wpa_supplicant.conf` 配置後ビルド
```sh
bin/conf-gen | tee apkovl/etc/wpa_supplicant/wpa_supplicant.conf
```
### ssh の設定
`apkovl/root/.ssh/authorized_keys` をパーミッション 600 で配置後ビルド
2021-07-17 13:34:45 +09:00
## ライセンス
イメージに含まれているソフトウェアの[ライセンス情報](https://pkgs.alpinelinux.org/packages)を参照してください。
本リポジトリ内のソフトウェアは CC0-1.0 ライセンスです。