skb_in.cとskb_out.cの詳細解析

skb_in.cとskb_out.cの詳細解析 NetFilter_Skb_modプロジェクトは、Netfilterが提供するフック関数メカニズムを利用して、カーネルレベルでのパケットキャプチャと再送信を実現します。主にC言語でNF_IP_LOCAL_INおよびNF_IP_LOCAL_OUTの2つの段階におけるSKBネットワークパケット処理を実装しており、パケット内容の印刷、長さ測定、チェックサムの再計算を含みます。Netf ...

6月20日 19:56 投稿

regulator-fixedとregulator-gpioの活用

1、regulator-fixed 概要:固定電圧のレギュレータを作成します。通常はGPIOで制御される電源ラインであり、有効(enable)と無効(disabled)の2つの状態のみサポートします。 device-treeノードの例 io_vdd_en: regulator-JW5217DFND { compatible = "regulator-fixed"; pinctrl-names = "default"; pinctrl-0 = ; gpios = ; regulator-name = "j ...

6月6日 17:36 投稿

CubieBoard2 向けの Linux カーネル クロスコンパイル環境構築

開発環境の設定とツールチェーン導入 CubieBoard2 の ARM コア向けに Linux カーネルをビルドするには、適切なクロスコンパイラが必要です。まずは開発ホスト上でコンパイライメージを準備します。 # パッケージマネージャ経由でのインストールを試みます sudo apt update sudo apt install gcc-arm-linux-gnueabihf # インストールされたか確認(バージョン出力が期待さ ...

6月5日 22:12 投稿

Linux プロセス管理とシステムコールの実装詳細

プロセス識別子と階層構造 Linux 環境において、プロセスは固有の識別子(PID)によって管理されます。カーネルは各プロセスに一意な PID を割り当てますが、これはシステム起動からの通し番号であり、長時間稼働すると再利用される可能性があります。デフォルトの最大値は 32768 程度に設定されていることが多いです。 プロセス間には親子関係が存在します。新しいプロセ ...

5月28日 04:09 投稿

Linux USBドライバー開発(後編)デバイス挿入時のKernel処理フローの詳細解説

USBバスドライバー(ホストドライバー)の役割 USBバスドライバーは、LinuxカーネルにおけるUSBサブシステムの核心的なコンポーネントです。その主要な機能は次の3点に集約されます。 1.1 USBデバイスの識別 デバイス識別プロセスは、複数のステップから構成されています。まず、カーネルは新デバイスに一意のアドレスを割り当てます。次に、割り当てられたアドレスをデ ...

5月14日 09:09 投稿