LeavaTailの日記

LeavaTailの日記

Linuxエンジニアを目指した技術者の備忘録

DevEnv

Visual Studio Code で Linuxカーネルのコードリーディング

概要 はじめに 環境 VSCode のインストール Remote Development のインストール リモートマシンに公開鍵を追加する リモートマシンのVSCodeに拡張機能をインストールする インテリセンスを設定する VSCode でソースコードを確認する 関数定義を参照する 関数…

Ubuntu-base-20.04 を QEMU から NFSRootで起動する

概要 はじめに 実行環境 手順 起動確認 補足 おわりに 変更履歴 参考 概要 QEMUでエミュレートした armhfプロセッサ に Linuxを起動させ 、Ubuntu-base-20.04イメージをNFS mountする。 はじめに Ubuntu baseは、最低限のUbuntuのrootfsである。 そのため、L…

QEMUでARM用Linuxカーネルを起動する

関連記事 x86_64の場合は こちら ARM64の場合は こちら 概要 はじめに initramfs とは 環境構成 ARM用のLinuxを構築する ARM用のinitramfsを構築する U-Bootからカーネルをロードする 作成ファイル置き場 おわりに FAQ 変更履歴 参考 概要 x86_64の開発PCで…

QEMUでx86_64用Linuxカーネルを起動する

関連記事 ARMの場合は こちら ARM64の場合は こちら 概要 はじめに 環境構成 クロスコンパイラ環境の構築手順 ルートファイルシステムの構築 カーネルの起動 おわりに 変更履歴 参考 概要 x86_64用にLinuxカーネルをビルド、BuildRootで構築したルートファイ…

組込みLinuxディストリビューションを構築する(Yocto編)

関連記事 BuildRootの場合は こちら 概要 はじめに Yoctoについて 環境構成 実行環境の準備 システム構築のためのセットアップ Yoctoによるビルド実行 最小システムのビルドと起動 デスクトップ環境を構築する ツールチェインの生成 ツールチェインの利用 お…

組込みLinuxディストリビューションを構築する(BuildRoot編)

関連記事 Yoctoの場合は こちら 概要 はじめに 環境構成 依存パッケージ システム構築の手順 Linuxの起動 ツールチェインの取得 おわりに 変更履歴 参考 概要 BuildRootでARM64用のLinuxディストリビューション一式 (Linuxカーネル、U-Boot、ルートファイル…

QEMUでARM64用Linuxカーネルを起動する

関連記事 x86_64の場合は こちら ARMの場合は こちら 概要 はじめに 環境構成 クロスコンパイル環境の構築 QEMUでカーネルを起動させる initramfsを用意する おわりに 変更履歴 参考 概要 x86_64の開発PCでARM64用にLinuxカーネルをビルド、busyboxで簡易ini…

Vimの導入プラグインを見直す

概要 はじめに 見直し前の環境 プラグインマネージャ カラースキーム LSP 検索 表示 プラグイン削除 Vimの標準コマンドで代用できるプラグインの削除 最近あまり使用していなかったプラグインの削除 見直し後の環境 おわりに 変更履歴 参考 概要 deinプラグ…

trace-cmdでカーネルの関数のコールフローを取得する

概要 はじめに 準備 内部ネットワークの構築 ftraceの設定 trace-cmdのインストール トレースの取得 コマンドのトレースを取得する プロセスのトレースを取得する イベントのトレースを取得する おわりに 変更履歴 参考 概要 trace-cmdは、Linuxカーネルの機…

Linuxカーネルのビルドの一部最適化を無効化する

関連記事 VirtualBox上にカーネルデバッグ環境の構築 Linuxカーネル(一部)の最適化オプションの無効討 概要 はじめに 現状の問題点 ファイル単位で最適化を無効化する 関数単位で最適化を無効化する おわりに 変更履歴 参考 補足 マシン命令に変換してレジス…

VirtualBox上の仮想マシン同士でkgdbを使ってカーネルをデバッグする

関連記事 VirtualBox上にカーネルデバッグ環境の構築 Linuxカーネルの最適化オプションの無効化検討 概要 はじめに 目標 環境の構築 VirtualBoxのインストール Vagrantのインストール(任意) 仮想マシンの作成 シリアルコンソールの設定 kgdbの設定 デバッ…