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に設定するプロセス全体

推薦する

この記事ではCSSボーダーの使い方を説明します

境界線のスタイルborder-style プロパティは、表示する境界線の種類を指定します。 bord...

Navicateを使用してAlibaba Cloud Server上のMySQLに接続する

1. まず、サーバーの mysql にアクセスして権限を変更します。 GRANT オプション付きで、...

JavaScriptの詳細な説明 thisキーワード

目次1. はじめに2.これを理解する3. これは誰ですか? 4.矢印関数はさらに読む要約する1. は...

Linux での Docker のインストールと展開の例

以下の記事を読んだ後、プロジェクトをサーバーにデプロイできます。Tomcat、JDK、MySQL な...

iview権限管理の実装

目次iview-admin2.0 組み込み権限管理権限に基づいてコンポーネントの表示を制御するカスタ...

calc() で全画面背景の固定幅コンテンツを実現

ここ数年、Web デザインには「全幅背景と固定幅コンテンツ」というトレンドが生まれています。このデザ...

MySQL での挿入効率のいくつかの例の比較

序文最近、仕事の都合で、約 1000w の大量のデータを MySQL に挿入する必要があり、時間がか...

Python 仮想環境のインストールとアンインストールの方法と発生する問題

Ubuntu16.04 のインストールとアンインストール pip実験環境Ubuntu 16.04; ...

CSSスプライトの応用の詳細な説明

CSS Sprite は、CSS スプライトとも呼ばれ、画像結合技術です。この方法は、複数の小さなア...

CentOS のデフォルトの SSH ポート番号を変更する方法の例

LinuxサーバーのデフォルトのSSHポート番号は通常22なので、ほとんどのユーザーはセキュリティ上...

Windows 7 での MySQL 8.0.18 の導入とインストールのチュートリアル

1. 事前準備 (windows7+mysql-8.0.18-winx64) 1. ダウンロードアド...

URLに基​​づいてリクエストを転送するnginxの実装の実践経験

序文これは fastdfs を使用してイントラネット外部に展開された分散ファイルシステムであるためで...

Tomcatのクラスロードメカニズムを説明する記事

目次- 序文 - - JVM クラスローダー - 1. JVMクラスローダー2. クラスローダーのソ...

Windows Server 2008 R2 に MySQL 5.7.10 をインストールする手順

MSIインストールパッケージを使用してインストールするご使用のオペレーティング システムに応じて、対...