#author("2021-02-25T00:24:06+00:00","default:admin","admin") #author("2022-01-21T02:42:44+00:00","default:admin","admin") -[[Linux カーネルに関する知識 I:https://www.ipa.go.jp/files/000056288.pdf]] -[[Linux カーネルに関する知識 II:https://www.ipa.go.jp/files/000056289.pdf]] -[[第1章 カーネル - Linux技術トレーニング 基本管理コース II:https://users.miraclelinux.com/technet/document/linux/training/2_1_1.html]] -[[システムコールとLinuxカーネルのソース:http://www.coins.tsukuba.ac.jp/~yas/coins/os2-2011/2011-12-06/]] -[[動かしながら学ぶ「Linuxカーネル」の基本:https://xtech.nikkei.com/atcl/nxt/column/18/01448/]] -[[このKernel、どんなKernel?:https://qiita.com/takeoverjp/items/6f4f30cf634307fe25cc]] -[[Linuxカーネルの設定パラメータ:https://xtech.nikkei.com/it/article/COLUMN/20071025/285507/]] *バージョン [#t8f5bb65] **2.x [#n6317bd7] ***2.6 [#k1b5bdc6] -[[Linux 2.6.x:http://www.wdic.org/w/TECH/Linux%202.6.x]] -システムコールの仕様変更が存在しており、従来と互換性がなくなった -glibcも、glibc 2.4以降はLinuxカーネル2.6以降でなければ動かない **3.x [#f34a9003] -[[Linux 3.x:http://www.wdic.org/w/TECH/Linux%203.x]] -Linux 3.0は、元々はLinux 2.6.40として開発が進んでいたものだった -いわゆるメジャーバージョンが更新されたが、Linus Torvaldsの意向によるもので、従来のLinux 2.6.xからの大きな機能変更や非互換はない **4.x [#dcd46620] -[[Linux 4.x:http://www.wdic.org/w/TECH/Linux%204.x]] -[[Linuxカーネル4.0が登場 - 再起動せずにパッチ適用が可能に:http://news.mynavi.jp/news/2015/04/13/168/]] -ライブカーネルパッチの導入(再起動せずにパッチ適用を可能とする機能) -3.xとの互換性は保たれている *コンフィグレーション [#d5c033a9] -[[習得すればメリット大!Linuxカーネルをビルドできるようになろう:https://xtech.nikkei.com/atcl/nxt/column/18/01448/102000002/]] -[[組み込みLinuxカーネルの構築時にこれだけは知っておかなければならない項目:http://www.embedded.jp/article/linux_kernel_2-1.html]] **Kconfig [#yf010c2b] -[[kconfig-language.txt(for linux-2.6.23.8)(日本語訳):http://www.katsuster.net/contents/jp/kconfig-language-jp.txt]] ***書式 [#kede053b] menu [MENU名] config [CONFIG名] bool "説明" default [y|n] depends on [他のCONFIG名] select [他のCONFIG名] : endmenu menu [MENU名] : -config -bool -デフォルト値: "default" <expr> ["if" <expr>] --コンフィグオプションにはいくつものデフォルト値を設定できる --2つめ以降のデフォルト値が表示されるためには、最初のデフォルト値がアクティブである必要がある --デフォルト値はメニュー項目を定義した場所にしか書けないというわけではありません。別の場所に書いたり、事前に定義した値を上書きしたり出来ます。 --デフォルト値はユーザが何も値を設定しなかった(上記の "input prompt" で)ときに、コンフィグオプションに割り当てられます。もし見出しが見えていれば、ユーザに対してデフォルト値が表示され、ユーザは値を上書きできます。 --もしこのデフォルト値だけに対する依存関係がある場合は、"if" とともに条件を指定してください。 -依存関係: "depends on"/"requires" <expr> --メニュー項目の依存関係を定義 --複数の依存関係を定義したいなら、'&&' で繋げてください。 --依存関係はメニュー項目の属性全て("if" も含め)に適用されます。 -select **Tips [#e09f6c56] ***SPI [#jb1f2889] -GPIOをSPI化する方法 --[[Armadillo-X1:spi-gpioでGPIOをSPI化する(Linux-4.9版):https://armadillo.atmark-techno.com/blog/615/4270]] --「GPIO-based bitbanging SPI Master」を有効化する *関数 [#w5b79168] -include/linux/device.h でプロトタイプ宣言 -drivers/base/core.c で定義 -dev_emerg() -dev_alert() -dev_crit() -dev_err() -dev_warn() -dev_notice() -dev_info() -dev_dbg()