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

推薦する

MySQLの高性能最適化スキルの概要

データベースコマンド仕様すべてのデータベース オブジェクト名には小文字を使用し、アンダースコアで区切...

速度、読み込み、Web アプリケーションなどにおける div と table の違い。

1: 速度と読み込み方法の違いdivとtableの違いは速度ではなく、読み込み方法です。速度はネット...

MySQL の 3 つの浮動小数点型 (float、double、decimal) の違いと概要について簡単に説明します。

各浮動小数点型のストレージ サイズと範囲は、次の表に示されています。タイプサイズ範囲(符号付き)範囲...

Mysql SSHトンネル接続を使用するための基本的な手順

序文セキュリティ上の理由から、MySQL の root ユーザーはローカルにのみログインでき、外部ネ...

Unicode における CJK (中国語、日本語、韓国語の統合表意文字) 文字の概要

CJK は CJK Unified Ideographs の略称で、「中国語、日本語、韓国語の統一表...

jQueryで劇場の座席選択と予約の効果を実現

jQueryは劇場の座席選択と予約の効果を実現します。参考までに、具体的な内容は次のとおりです。効果...

Dockerコンテナは定期的にデータベースをバックアップし、指定されたメールボックスに送信します(設計アイデア)

目次1. 背景: 2. デザインのアイデア: 3. 起動スクリプトを書く4. イメージを構築する5....

エラー 1862 (HY000): パスワードの有効期限が切れています。ログインするには、..... を使用してパスワードを変更する必要があります。

エラーメッセージ:エラー 1862 (HY000): パスワードの有効期限が切れています。ログインす...

JS WebSocket 切断理由とハートビートの仕組みの詳しい説明

1. 切断理由WebSocket が切断される理由は多数あります。WebSocket が切断されたと...

CSS で text-align と margin: 0 auto を使用して中央に配置する例コード

CSSでtext-align、margin: 0 autoを使用して中央揃えにするtext-alig...

JavaScriptを使用してSMS認証コード間隔を送信する機能を実装する

多くのアプリやウェブサイトでは、ログインやアカウント登録の際にSMS認証コード1を送信する場所があり...

操作例 MySQL ショートリンク

MySQL ショートリンクの設定方法1. mysql 接続番号ステートメントコマンドを確認します。 ...

JavaScript における clientWidth、offsetWidth、scrollWidth の違い

1. コンセプトこれらはすべて Element の属性であり、要素の幅を示します。 Element....

MySQL 8.0.15 で MGR シングル マスターと複数スレーブを構成する方法

1. はじめにMySQL グループ レプリケーション (略して MGR) は文字通り MySQL グ...

MySQL の時間設定に関する考慮事項の詳細な要約

時間は本当に存在するのでしょうか?時間は人間が考え出した概念に過ぎず、物事の変化を測る基準に過ぎない...