Add Linux>開発

Takumi Sueda 2021-04-21 03:57:43 +09:00
parent f459863162
commit 67e2dbd8da
3 changed files with 64 additions and 0 deletions

@ -9,6 +9,7 @@
# Linux
- [SDカードにコピー](Linux%EF%BC%9ESD%E3%82%AB%E3%83%BC%E3%83%89%E3%81%AB%E3%82%B3%E3%83%94%E3%83%BC)
- [ビルド](Linux%EF%BC%9E%E3%83%93%E3%83%AB%E3%83%89)
- [開発](Linux%EF%BC%9E%E9%96%8B%E7%99%BA)
# Tips
- [OTG ケーブル](Tips%EF%BC%9EOTG-%E3%82%B1%E3%83%BC%E3%83%96%E3%83%AB)
- [Swap](Tips%EF%BC%9ESwap)

62
Linux>開発.md Normal file

@ -0,0 +1,62 @@
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
### 目次
- [足りないドライバを追加する](#%E8%B6%B3%E3%82%8A%E3%81%AA%E3%81%84%E3%83%89%E3%83%A9%E3%82%A4%E3%83%90%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B)
- [実機上で開発する](#%E5%AE%9F%E6%A9%9F%E4%B8%8A%E3%81%A7%E9%96%8B%E7%99%BA%E3%81%99%E3%82%8B)
- [ヘッダーパッケージを用意しインストールする](#%E3%83%98%E3%83%83%E3%83%80%E3%83%BC%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%82%92%E7%94%A8%E6%84%8F%E3%81%97%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B)
- [実機上でモジュールを書いて Hello World する](#%E5%AE%9F%E6%A9%9F%E4%B8%8A%E3%81%A7%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%82%92%E6%9B%B8%E3%81%84%E3%81%A6-hello-world-%E3%81%99%E3%82%8B)
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
# 足りないドライバを追加する
WIP
# 実機上で開発する
バージョン 2021-04-19-195555 現在、配布されている Brainux の SD イメージにはフルセットの GCC その他が含まれるため、そのまま実機上で Linux kernel の開発をすることができます。実機では主にデバイスドライバの開発を想定しています。非常に時間がかかると思われますが、 brain-hackers/linux-brain を pull すればカーネル全体のビルドも理論的には可能です。
実機上でのカーネルモジュールの開発には、今動いているカーネルへの API のほか必要な定義が記載されたヘッダーファイルが必要です。ヘッダーファイルはヘッダーパッケージをインストールすることで利用可能になります。2021年4月21日現在ではまだヘッダーパッケージは配布されていないため、手で用意する必要があります。
## ヘッダーパッケージを用意しインストールする
先に必要なものとして、[Linuxビルド](https://github.com/brain-hackers/README/wiki/Linux%EF%BC%9E%E3%83%93%E3%83%AB%E3%83%89)のページに従って buildbrain をクローンしておいてください。
1. buildbrain のディレクトリに入ります
2. 最新のリリースを取得するため `git pull` を実行します
3. お手元の Brain で動かしている Brainux のバージョンと合う buildbrain の状態へ巻き戻します
たとえば、Brainux のバージョンが 2021-04-19-195555 だった場合:
```
$ git tag -n1
...
2021-04-19-195555 Merge pull request #16 from brain-hackers/ci-next
$ git checkout --recurse-submodules 2021-04-19-195555
```
4. パッケージをビルドします
```
$ make ldebpkg
```
5. できたパッケージを何らかの方法で実機にコピーし、インストールします
注意!以下のコマンドは実機上で実行するものです。お使いのパソコン上では実行しないでください。
```
$ dpkg -i linux-headers-*.deb
```
## 実機上でモジュールを書いて Hello World する
WIP

@ -7,6 +7,7 @@
# Linux
- [SDカードにコピー](Linux%EF%BC%9ESD%E3%82%AB%E3%83%BC%E3%83%89%E3%81%AB%E3%82%B3%E3%83%94%E3%83%BC)
- [ビルド](Linux%EF%BC%9E%E3%83%93%E3%83%AB%E3%83%89)
- [開発](Linux%EF%BC%9E%E9%96%8B%E7%99%BA)
# Tips
- [OTG ケーブル](Tips%EF%BC%9EOTG-%E3%82%B1%E3%83%BC%E3%83%96%E3%83%AB)
- [Swap](Tips%EF%BC%9ESwap)