From 67e2dbd8da4c7d8ec04f91cb0730b79d90cf91df Mon Sep 17 00:00:00 2001 From: Takumi Sueda Date: Wed, 21 Apr 2021 03:57:43 +0900 Subject: [PATCH] =?UTF-8?q?Add=20Linux>=E9=96=8B=E7=99=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Home.md | 1 + Linux>開発.md | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++ _Sidebar.md | 1 + 3 files changed, 64 insertions(+) create mode 100644 Linux>開発.md diff --git a/Home.md b/Home.md index acdc9f8..4fb58fc 100644 --- a/Home.md +++ b/Home.md @@ -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) diff --git a/Linux>開発.md b/Linux>開発.md new file mode 100644 index 0000000..65f0593 --- /dev/null +++ b/Linux>開発.md @@ -0,0 +1,62 @@ + + +### 目次 + +- [足りないドライバを追加する](#%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) + + + +# 足りないドライバを追加する + +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 + diff --git a/_Sidebar.md b/_Sidebar.md index a1fdb17..8cb1e41 100644 --- a/_Sidebar.md +++ b/_Sidebar.md @@ -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)