トレーニング > IoT&組み込み開発 >組み込みLinux開発(LFD450)
インストラクター主導のコース

組み込みLinux開発(LFD450)

このインストラクター主導のコースでは、組み込みLinux製品を開発するための段階的なフレームワークを提供します。 Linuxカーネルとユーザー空間のライブラリとユーティリティを特定の組み込み環境(家電製品、軍事、医療、産業、自動車産業で使用されている環境など)に適合させるために使用される方法を学びます。

対象者

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

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

このコースでは、組み込みLinuxデバイスの開発に必要なツールとテクニックを使用する準備をします。
あまり読まない 続きを読む
おもなテーマ
前書き
目的
あなたは誰ですか
The Linux Foundation
Linux Foundationのトレーニング
認定プログラムとデジタルバッジ
Linuxディストリビューション
プラットフォーム
システムの準備
Linuxで物事が変わる
ドキュメントとリンク
コース登録
予選
Linuxディストリビューション
仮想マシンのインストール
手続き
OSSプロジェクトでの作業方法**
適切に貢献する方法の概要
セキュリティと品質のためにメインラインの近くにとどまる
プロジェクトDNAの研究と理解
スクラッチしたいものを把握する
メンテナーとそのワークフローと方法を特定する
初期の入力を取得し、オープンで作業する
大きなコードダンプではなく、増分ビットを提供する
ドアにあなたのエゴを残してください:薄皮にしないでください
忍耐強く、長期的な関係を築き、助けになる
組み込みおよびリアルタイムシステムの概念
基本概念
保護の動機
オフザシェルフ(OTS)
組み込みの警告
リアルタイムオペレーティングシステム
リアルタイムLinux
カスタムハードウェアアシスタンス
リソース
クロス開発環境:目標とニーズ
前書き
なぜ難しいのですか?
プロジェクト目標の考慮事項
追加のディスカッションへのリンク
ラボ
Kbuildシステム
前書き
Kbuild Makefile
Kconfigの基本
Kconfigの検索
クロス開発ツールチェーン
コンパイラートリプレット
組み込みのLinuxディストリビューションクロスコンパイラ
リナロ
CodeSourcery
クロスツール-ng
ビルドルート
OpenEmbedded
ヨクトプロジェクト
クラン
ラボ
基本的なターゲット開発ボードのセットアップ
ラボの目的
ラボ
uSDからのターゲット開発ボードの起動
ラボの目的
ラボ
イーサネットを介したターゲット開発ボードの起動
より簡単な開発方法
ラボの目的
ラボ
ブートローダーとU-Boot
ブートコードステージ
一部のGPLブートローダー
Das U-Boot
U-Bootコマンドライン
U-Boot環境
ラボ
カーネル構成、コンパイル、起動
開発ボード用のカーネルの構成
ラボ
デバイスドライバ**
デバイスの種類
デバイスノード
キャラクタードライバー

ラボ
デバイスツリー
デバイスツリーとは何ですか?
デバイスツリーが行うことと行わないこと
デバイスツリーの構文
デバイスツリーウォークスルー
デバイスツリーバインディング
ブートローダーでのデバイスツリーのサポート
ドライバーでのデバイスツリーデータの使用
古いドライバーの共存と変換
ラボ
ターゲットファイルシステムのパッケージング
組み込みファイルシステムの目標
ディレクトリ:調査
埋め込みファイルシステムの種類
ターゲットルートファイルシステムのビルド
ラボの目的
ラボ
ルートファイルシステムの選択
SysV initとBusyBox init
udevとBusyBox mdev
システム化
Cライブラリの選択
uClibcの構成
NFS用のuClibcの構成
ラボ
別の代替Cライブラリ:musl **
Muslとは何ですか?
Musl用のBuildRootの構成
ラボ
BusyBoxユーティリティスイートを構築
基本的な仕組み
Buildrootと統合
ラボ
カーネルの監視とデバッグ
トレースとプロファイリング
Ftrace、Trace-Cmd、Kernelshark
性能
パフォーマンスの使用
sysctl
SysRqキーおよびoopsメッセージ
カーネルデバッガー
ラボ
適切なサイズ
必要な組み込みコンポーネント
カーネルサイズのインベントリを作成する
メモリテクノロジーデバイス(フラッシュメモリファイルシステム)
MTDデバイスとは何ですか?
NAND vs. NOR vs. eMMC
ドライバーとユーザーモジュール
フラッシュファイルシステム
ラボ
圧縮ファイルシステム
SquashFS
MTDパーティションに展開する
ラボ
システムのアップグレード
いつ更新する必要がありますか?
更新戦略
事前構築済みのアップグレードシステム
ラボ
リアルタイム拡張
予測可能性とプリエンプションおよびロック
PREEMPT_RTプロジェクト
リアルタイムチェックリスト
Closing and Evaluation Survey
評価調査
付録
カーネルアーキテクチャプレビュー
LinuxおよびUNIX
モノリシックカーネルとマイクロカーネル
メインカーネルタスク
ユーザースペースとカーネルスペース
カーネルソースツリーの概要
カーネルソースのインストールとレイアウト
カーネルブラウザ
カーネル構成ファイル
なぜ難しいのですか?パート2
カーネルプログラミングプレビュー
コーディングスタイル
kernel-doc
汎用カーネルルーチンとメソッドの使用
エラー番号、カーネル出力の印刷、syslogd
タスク構造
メモリ割り当て
ユーザーとカーネルスペース間でのデータの転送
モジュール
モジュールとは何ですか?
些細な例
モジュールのコンパイル
モジュールと組み込み
モジュールユーティリティ
モジュールの自動ロード/アンロード
モジュール使用数
モジュールのライセンス
シンボルのエクスポート
シンボルの解決**
{D.11Labs

**これらのセクションは、一部または全体をオプションと見なすことができます。これらには、背景の参考資料、専門的なトピック、または高度な主題が含まれています。インストラクターは、教室での経験と時間の制約に応じて、それらをカバーするかしないかを選択できます。
関連のコースや認定
このコースは、主にLinuxを組み込みシステムに適合させる方法を学ぶことに興味のある経験豊富な開発者、プログラマー、およびエンジニアを対象としています。基本的なLinuxユーティリティに精通し、Cプログラミング言語を理解し、LinuxまたはUNIX用の開発に慣れている必要があります。クラスの前に、クラス前の準備資料が提供されます。