お問い合わせ

コース概要

1. Linuxカーネル入門

  • 組み込みLinuxの概要
  • Linuxカーネルのアーキテクチャ
  • ユーザー空間とカーネル空間の違い
  • カーネルの役割
  • カーネル開発ワークフロー
  • サポートされている組み込みプラットフォームの概要

2. 開発環境のセットアップ

  • 開発ワークステーションの準備
  • クロスコンパイルの概念
  • 必要な開発ツールのインストール
  • BeagleBone Black開発ボードのセットアップ
  • シリアルコンソールの設定
  • ターゲットデバイスのブート

3. カーネルソースの取得と理解

  • Linuxカーネルソースツリー
  • 安定版カーネルと長期サポート(LTS)カーネル
  • カーネルソースのダウンロード
  • ソースコード構造の探索
  • カーネルドキュメント
  • カーネルバージョンの管理

4. カーネルの構成、コンパイル、ブート

  • menuconfigを用いたカーネル構成
  • カーネル機能の選択
  • カーネルのクロスコンパイル
  • カーネルイメージのビルド
  • カーネルモジュールのインストール
  • ブートローダーの概要
  • カスタムカーネルのブート

5. デバイスツリーの基礎

  • デバイスツリーの目的
  • デバイスツリーソース(DTS)ファイル
  • デバイスツリーブラブ(DTB)
  • ハードウェア記述の概念
  • デバイスツリーファイルの変更
  • デバイスツリーのビルドとデプロイ

6. Linuxカーネルモジュール

  • カーネルモジュールのアーキテクチャ
  • ロード可能カーネルモジュールのビルド
  • モジュールのロードとアンロード
  • モジュールパラメータ
  • モジュール間の依存関係
  • カーネルモジュールとのインタラクション
  • モジュールデバッグのテクニック

7. Linuxカーネルのデバッグ

  • printk()を用いたカーネルログ出力
  • dmesgの使用
  • 動的デバッグ
  • カーネルパニックの分析
  • Oopsメッセージ
  • GDBを用いたデバッグ
  • 基本的なパフォーマンストレーシングツール

8. 文字デバイスドライバー

  • Linuxデバイスドライバーモデル
  • 文字デバイス
  • ドライバーの登録
  • ファイル操作
  • 読み取りと書き込み操作
  • IOCTLインターフェース
  • メモリ管理
  • ドライバーのクリーンアップ

9. ドライバーの統合とハードウェアアクセス

  • プラットフォームデバイスとドライバー
  • GPIOプログラミング
  • 割り込みの処理
  • タイマーとディフェラードワーク
  • ハードウェアレジスターへのアクセス
  • メモリマップドI/Oの扱い

10. Gitによるバージョン管理

  • Gitの基礎
  • カーネルソースコードの管理
  • ブランチとマージ
  • パッチの作成
  • 変更内容のレビュー
  • カーネル開発におけるコラボレーション

11. 実践的カーネル開発ラボ

  • カスタムカーネルの構成
  • カーネルのビルドとデプロイ
  • シンプルなカーネルモジュールの作成
  • 基本的な文字デバイスドライバーの開発
  • デバイスツリーファイルの変更
  • BeagleBone Blackにおけるカーネル問題のデバッグ

12. ベストプラクティスとまとめ

  • カーネルコーディングスタイル
  • メンテナンスしやすいドライバーの作成
  • 開発における一般的な落とし穴
  • カーネルドキュメントのリソース
  • オープンソース貢献ワークフロー
  • 主要コンセプトの復習
  • 質疑応答
  • Linuxカーネル開発の次のステップ

要求

GNU/Linuxシステムの基本的な利用経験

 14 時間

参加者の人数


参加者1人あたりの価格

お客様の声 (2)

今後のコース

関連カテゴリー