このインストラクター主導の 組み込みLinux開発 このコースでは、組み込み Linux 製品を開発するためのフレームワークを段階的に説明します。クロスコンパイラーから始めて、開発システム、ブートローダー、カーネル、ドライバー、デバイスツリー、およびユーザースペースのルートファイルシステムを構築する際に必要なすべてのさまざまなソフトウェアと決定事項のセットアップについて学びます。家庭用電化製品、軍事、医療、工業、自動車産業で使用されているものなど。 RISC-V ベースのエミュレートされた開発ターゲットを使用した実践的なラボでは、学生は、授業で取り上げたシステムのさまざまな部分のコーディングと構築の両方を練習できます。
Embedded Linux Development (LFD450)

対象者
このコースは、組み込みLinux製品をゼロから開発する必要がある経験豊富な開発者を対象としています。
少なく読む
続きを読む

学習内容
このコースでは、カーネルをカスタム組み込みプラットフォームに適合させることに関連する重要なポイントを強調しながら、Linuxカーネルアーキテクチャについて学びます。このコースでは、プロジェクトの制約を満たすためにシステムのサイズを適切に設定する手法、組み込みプロジェクトのクロス開発環境を構築するために利用できる多数のリソース、組み込みシステムの目標と制約を満たすためにライブラリとアプリケーションのユーザー空間にデータを投入するために利用できるオプションについても説明します、 もっと。
少なく読む
続きを読む

身につく知識
このコースでは、組み込みLinuxデバイスの開発に必要なツールとテクニックを使用する準備をします。
少なく読む
続きを読む

- 対象受講者
- The Linux Foundation
-著作権および機密情報なし
- Linux Foundationトレーニング
- 認定プログラムおよびデジタルバッジ
- Linuxディストリビューション
- プラットフォーム
- システムの準備
- Linuxにおける変化
- ドキュメントとリンク

-仮想マシンのインストール
- プロシージャ
- 演習

-コードがどこから来ているかを知る:DCOとCLA
- メインラインの近くでセキュリティと品質を保つ
- プロジェクトのDNAを研究して理解する
- スクラッチするべき部分を見つけ出す
- メンテナーおよび彼らのワークフローやメソッドを特定する
- 早い段階で意見を訊き、オープンに作業する
- 大きなコード ダンプではなく、差分のコードをコントリビュートする
- エゴを捨てよう。敏感にならないように。
- 忍耐強く、長期的な関係を築き、助けの手を差し伸べよう

-保護の動機
-既製(OTS)
-埋め込まれた警告
-リアルタイムオペレーティングシステム
-リアルタイムLinux
-カスタムハードウェアアシスタンス
- リソース

-なんで難しいの?
-プロジェクトの目標に関する考慮事項
-追加のディスカッションへのリンク
- 演習

-Kbuild Makefile
-Kconfigの基本
-Kconfigの検索

-組み込みのLinuxディストリビューションクロスコンパイラ
-リナロ
-CodeSourcery
--crosstool-ng
-ビルドルート
-OpenEmbedded
-Yocto Project
-Clang
- 演習

-なぜQEMUを使用するのですか?
-エミュレートされたアーキテクチャ
-画像フォーマット
- 演習

-SWをuSDカードに取り込む
-フラッシュからの起動
-なぜuSDカードを使用するのは悪い考えですか?
- 演習

-開発するためのより簡単な方法
-TFTPおよびNFSrootを使用したブートシーケンス
-ラボの目的
- 演習

-一部のGPLBIOS
-一部のGPLブートローダー
-Das U-Boot
-U-Bootコマンドライン
-U-Boot環境
- 演習

- 演習

-デバイスノード
-キャラクタードライバー
- 例
- 演習

-デバイスツリーが実行することと実行しないこと
-デバイスツリーの構文
-デバイスツリーウォークスルー
-デバイスツリーバインディング
-ブートローダーでのデバイスツリーのサポート
-ドライバーでのデバイスツリーデータの使用
-古いドライバーの共存と変換
- 演習

-ディレクトリ:調査
-組み込みファイルシステムタイプ

- 演習

--udevとBusyBoxmdev
--Systemd
-Cライブラリの選択
- 演習

- 演習

-muslのBuildRootの構成
- 演習

-Buildrootと統合
- 演習

-Ftrace、Trace-Cmd、Kernelshark
-パフォーマンス
-perfの使用
-sysctl
-SysRqキー
--oopsメッセージ
-カーネルデバッガー
--debugfs

-カーネルサイズのインベントリを作成する

-NAND vs. NOR vs. eMMC
-ドライバーおよびユーザーモジュール
-フラッシュファイルシステム

-MTDパーティションへの展開
- 演習

-更新戦略
-構築済みのアップグレードシステム
- 演習

-PREEMPTRTプロジェクト
-リアルタイムチェックリスト


-モノリシックカーネルとマイクロカーネル
-メインカーネルタスク
-ユーザースペースとカーネルスペース

-カーネルブラウザ
-カーネル構成ファイル
-なんで難しいの?パート2

--kernel-doc
-一般的なカーネルルーチンとメソッドの使用
-エラー番号、カーネル出力の印刷、syslogd
-タスク構造
-メモリ割り当て
-ユーザーとカーネルスペース間でのデータの転送

-ささいな例
-モジュールのコンパイル
-モジュールと組み込み
-モジュールユーティリティ
-自動モジュールロード
-モジュール使用回数
-モジュールライセンス
-シンボルのエクスポート
-シンボルの解決**
- 演習

- 演習

- 演習

-TFTPおよびNFSrootを使用したブートシーケンス
-ラボの目的
- 演習
これらのセクションは、部分的にまたは全体を
オプションとして考えることができます。これらのセクションには、
背景となる参考資料、専門的なトピック、または高度なテーマが含まれています。
講師は、教室での経験や時間の制約に応じて、
これらをカバーするかしないかを選択することができます。
前提条件
2023年10月
私はベア メタル (RTOS) に関する多くの組み込み知識を持って入学したため、このコースは私のスキル レベルに適していたと思います。これは良い移行のように思え、私には馴染みのなかった組み込み Linux について多くを学ぶことができました。
2023年10月
私はインストラクターがとても気に入りました。彼はとても親切で、親切で、有益で、忍耐強い人でした。私は彼のトレーニングが楽しかったので、彼のためだけに別のコースも受講したいと思いました。
2023年10月
トムは素晴らしい人で、知識が豊富で、信じられないほど忍耐強い人だと思いました。
2023年10月
講師は知識が豊富で、とても丁寧に説明してくれました。興味のある分野の知識は確実に得られました。
2023年10月
インストラクターは非常に有能で、私たちのエラー(システム構成による)や、コース教材の管理者によって誤って作成されたエラーをすぐに修正することができました。
2023年10月
このコースは素晴らしく、取締役会の育成の重要な側面に焦点を当てており、それらのトピックを徹底的にカバーしていました。ラボは教育的であり、カットアンドペーストに過度に依存していないため、自分が何をしているのかを考える必要がありました。トムは講義を面白く保ち、質問がある場合にはとても親切にしてくれました。
2023年10月
ラボは、組み込み開発プロセスを理解する上で非常に役立ちました。 DNS サーバー、tftp を設定し、qemu を起動するための「devkit」ユーティリティは素晴らしかったです。実行中のエミュレーションのさまざまなバリエーションに対して、すべての qemu 引数を入力する必要がないのが気に入りました。新しいビルドを迅速にデプロイし、エミュレーションを再起動できるのは楽しかったです。