Ubuntu 12.04 でカーネルツリーを構築する実装プロセスの詳細な説明

Ubuntu 12.04 でカーネルツリーを構築する実装プロセスの詳細な説明

まず使用しているカーネルのバージョンを確認してください

lin@lin-仮想マシン:~$ uname -r
3.2.0-23-ジェネリック

システムのインストール時にソースコードが自動的にインストールされる場合。 /usr/src ディレクトリには対応するバージョン ディレクトリがあります。

lin@lin-virtual-machine:~$ cd /usr/src
lin@lin-仮想マシン:/usr/src$ ls
linux-headers-3.2.0-23 linux-headers-3.2.0-23-ジェネリック

ダウンロード可能なソースパッケージを確認してください

lin@lin-virtual-machine:/usr/src$ apt-cache linux-sourceを検索
linux-source - Ubuntu パッチを適用した Linux カーネル ソース
linux-source-3.2.0 - Ubuntu パッチを適用したバージョン 3.2.0 の Linux カーネル ソース

直接インストールするには、「linux-source-3.2.0 - Linuxカーネルソースバージョン3.2.0(Ubuntuパッチ付き)」を選択します。

lin@lin-virtual-machine:/usr/src$ sudo apt-get install linux-source-3.2.0

ダウンロードが完了すると、ファイル名は /usr/src の linux-source-3.2.0.tar.bz2 になります。これは圧縮されたパッケージです。これを解凍すると、カーネル全体のソース コードを取得できます。

pwdを使用して現在のパスを表示します

ls でフォルダ内のファイルを確認する

lin@lin-仮想マシン:/usr/src$ pwd
/usr/src
lin@lin-仮想マシン:/usr/src$ ls
linux-ヘッダー-3.2.0-23 linux-ソース-3.2.0
linux-headers-3.2.0-23-generic linux-source-3.2.0.tar.bz2

解凍

lin@lin-virtual-machine:/usr/src#sudo tar jxvf linux-source-3.2.0.tar.bz2

ディレクトリに入ります (cd linux-source-3.2.0)

lin@lin-virtual-machine:/usr/src$ cd linux-source-3.2.0/
lin@lin-virtual-machine:/usr/src/linux-source-3.2.0$ pwd
linux-source-3.2.0 のソース

カーネルの設定を開始し、最も速い元の設定(デフォルト)方法を選択します。

lin@lin-virtual-machine:/usr/src/linux-source-3.2.0$ sudo make oldconfig

1時間以上待つ必要があります。 。 。

lin@lin-virtual-machine:/usr/src/linux-source-3.2.0$ sudo make

数時間後

...システムは4826kBです
CR d5a51584
カーネル: arch/x86/boot/bzImage が準備完了 (#1)
 モジュールの構築、ステージ 2。
 MODPOST 3304 モジュール
エラー: "__modver_version_show" [drivers/staging/rts5139/rts5139.ko] 未定義です!
警告: modpost: セクションの不一致が 4 つ見つかりました。
詳細を確認するには、次のコマンドを使用してカーネルをビルドします。
'CONFIG_DEBUG_SECTION_MISMATCH=y にする'
make[1]: *** [__modpost] エラー1
make: *** [モジュール] エラー 2

解決策: http://ubuntuforums.org/showthread.php?t=1931029 より

lin@lin-virtual-machine:/usr/src/linux-source-3.2.0$ sudo gedit .config

おそらくRTS5139ドライバの問題でしょう。いずれにせよ、このドライバは使用されていないので、コンパイルに追加しないでください。.configを編集して変更します。

CONFIG_RTS5139=m

これを次の形式に変更します。

CONFIG_RTS5139=n

作り続ける

カーネルを圧縮形式でコンパイルする

bzImageを作成する

モジュールをコンパイルします。

モジュールを作る

モジュールをインストールします。

モジュールをインストールする

実行が完了すると、/lib/modulesの下に新しいディレクトリが生成されます。

lin@lin-virtual-machine:/lib/modules$ ls
3.2.0-23-ジェネリック3.2.79

成功したら再起動してください。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Ubuntu 16.04 カーネルのアップグレード手順
  • Ubuntuで余分なカーネルを削除する方法
  • Ubuntu Android ソースコードとカーネルのダウンロードとコンパイル
  • Ubuntu で Android 用の Linux カーネル ドライバーにアクセスするためのハードウェア抽象化レイヤー (HAL) モジュールの追加
  • Android 用 Linux カーネル ドライバーをテストするために Ubuntu に組み込みの C 実行可能プログラムを実装する
  • Ubuntu で Android システム用の Linux カーネル ドライバーを作成する方法
  • UbuntuにAndroidカーネルソースコードをダウンロード、コンパイル、インストールする

<<:  MySQL で単一のデータベースまたはテーブルを復元する方法と、起こりうる落とし穴

>>:  HiveメタデータをMySQLに設定するプロセス全体

推薦する

Vueのウォッチリスナーの使い方を説明する記事

目次リスナーウォッチ形式リスナーを設定します。要約するリスナーウォッチ関数名は、リッスンする要素の名...

mysql MDLメタデータロックの詳細な分析

序文: MySQL で SQL 文を実行すると、予想した時間内に文が完了しません。このような場合、通...

htmlハイパーリンクaのクリックイベントの後、hrefで指定されたアドレスにジャンプします。

場合によっては、ジャンプを完了するために href の代わりにハイパーリンク <a> を...

MySQL InnoDBエンジンのインデックスとストレージ構造の詳細な説明

序文Oracle や SQL Server などのデータベースには、ストレージ エンジンが 1 つだ...

詳細なLinuxインストールチュートリアル

(Win7 システム) VMware 仮想マシンのインストール チュートリアルVMware は仮想マ...

HTML チュートリアル: 画像のサイズ、配置、間隔、境界線の属性を変更する方法

画像タグ: <img> ページに画像を挿入するには、「src」属性を持つ「img」タグを...

MySQL mysqldump の使い方の詳しい説明

1. mysqldump の紹介mysqldump は、MySQL に付属する論理バックアップ ツー...

Vue 開発者向けの VSCode 拡張機能ベスト 7

適切な VS Code 拡張機能を Visual Studio に追加すると、開発者としての作業がは...

Vue でのスロット配置と使用状況分析

このチュートリアルの動作環境: Windows 7 システム、vue 2.9.6 バージョン、DEL...

丸い角や鋭い角の代わりに文字を使用することに関する研究経験の共有

1. フォントと文字表示の関係左側と右側の鋭角部分は Songti フォントで表示されます: &l...

JavaScript にはすでに Object があるのに、なぜ Map が必要なのでしょうか?

目次1. オブジェクトをマップとして扱わない1. 未定義のプロパティはプロトタイプチェーンを通じてア...

CSS子要素選択親要素の実装

通常、CSS セレクターは上から下に選択し、親要素を介して子要素を選択します。では、子要素を介して親...

Nginx リバース プロキシから go-fastdfs へのケースの説明

背景go-fastdfs は、http プロトコルをサポートする分散ファイルシステムです。一般的なプ...

nginx+uwsgi で Django プロジェクトを開始するための詳細な手順

Django で Web プロジェクトを開発する場合、開発およびテストのプロセスでは Django ...

vuex ベースのショッピングカート機能の実装

この記事の例では、ショッピングカート機能を実装するためのvuexの具体的なコードを参考までに共有して...