はじめに (対象読者・この記事でわかること)

本記事は、Linuxカーネルのソースコードを取得したいエンジニアや学生、OS開発に興味を持つ初心者を対象としています。具体的には、公式サイトやミラーサイトの場所、Gitリポジトリの取得手順、tarball のダウンロード方法 を学び、実際に手元でビルドできるようになることを目指します。カーネル開発の第一歩として、正しいソース取得の流れと注意点を把握できるように解説します。

前提知識

この記事を読み進める上で、以下の知識があるとスムーズです。
- 基本的な Linux のコマンド操作(curl, wget, git, make など)
- シェルスクリプトや Makefile の読み書き経験(必須ではありませんがあると便利)

カーネルソース取得の概要と背景

Linux カーネルはオープンソースとして世界中の開発者が共同で保守しています。公式に配布されているソースは kernel.org が中心で、ここから最新の安定版(stable)や長期サポート版(LTS)を取得できます。公式サイト以外にも、Git の公式リポジトリ (git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git) や、GitHub・GitLab のミラーが存在し、用途に合わせて選択が可能です。

取得手段には大きく分けて 2 つ あります。
1. tarball(圧縮アーカイブ):公式サイトから .tar.xz 形式で配布され、すぐに展開してビルドできます。
2. Git リポジトリ:履歴がすべて残るため、過去のバージョンに遡ったり、特定のコミットをチェックアウトしたりする場合に便利です。

本稿では、これらの取得方法を実際に手を動かしながら解説し、初心者でもつまずきにくいフローを提示します。

カーネルソース取得の具体的手順

1. 公式サイトから tarball をダウンロード

手順

  1. ブラウザまたは wget/curl で最新安定版のページにアクセス
    bash wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.6.31.tar.xz (バージョンは執筆時点の最新 LTS 例です)

  2. ダウンロードしたファイルを展開
    bash tar -xf linux-6.6.31.tar.xz cd linux-6.6.31

  3. make mrproper でビルド環境をクリーンにする(オプション)
    bash make mrproper

ポイント

  • https://cdn.kernel.org/ は公式 CDN で、ミラーサーバへ自動的にリダイレクトされます。
  • tar.xz は圧縮率が高く、ダウンロードサイズが小さく抑えられますが、展開に時間がかかることがあります。

2. Git リポジトリから取得する方法

手順

  1. Git の公式リポジトリをクローン
    bash git clone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git cd linux

  2. 必要なブランチ(例: linux-6.6.y)へチェックアウト
    bash git checkout linux-6.6.y

  3. 特定のタグ(例: v6.6.31) に移動したい場合
    bash git checkout v6.6.31

  4. 取得したソースを最新の状態に保つには git pull --rebase を定期的に実行

ポイント

  • git clone すると全履歴が取得されるため、最初は数 GB になることがあります。軽量化したい場合は --depth 1 オプションで浅いクローンが可能です。
    bash git clone --depth 1 https://git.kernel.org/... linux
  • 公式リポジトリは read‑only です。プッシュしたい場合は自分の fork を作る必要があります。

3. ミラーサイトや GitHub の利用

公式サイトが遅延したり、地域的にアクセスが難しいケースでは、以下のミラーが有用です。

ミラー URL 特徴
Ubuntu の kernel.org ミラー http://mirrors.edge.kernel.org/ 世界各地に配置、CDN で高速
GitHub の公式ミラー https://github.com/torvalds/linux UI が親しみやすく、Issue/PR が見やすい
GitLab のミラー https://gitlab.com/torvalds/linux CI/CD パイプラインを自前で作りたい人向け

使用例(GitHub でクローン)

Bash
git clone https://github.com/torvalds/linux.git cd linux git checkout v6.6.31

4. 実際にビルドしてみる

取得したソースをビルドするまでの流れを簡単に示します。

Bash
# 必要なパッケージをインストール(Debian/Ubuntu 系) sudo apt-get install build-essential libncurses-dev bison flex libssl-dev libelf-dev # コンフィグを生成(デフォルト設定で OK) make defconfig # カーネルのコンパイル(8 コアを使用例) make -j$(nproc) # インストール(root 権限が必要) sudo make modules_install install

注意:実際のビルドは数十分~数時間かかります。また、使用しているハードウェアや設定により必要なドライバ・オプションが変わりますので、make menuconfig でカスタマイズするとよいでしょう。

5. ハマりやすいポイントと対策

症状 原因 解決策
curl: (7) Failed to connect ネットワークの遮断やミラー側の障害 別のミラー URL に切り替える、VPN を使用
git clone が途中で止まる 大容量リポジトリの転送が途中でタイムアウト --depth オプションで浅いクローン、または git config --global http.lowSpeedLimit 0 でタイムアウト閾値を緩める
make: *** No rule to make target 'all' ソースディレクトリが正しく展開されていない tar の展開ディレクトリ構成を確認、make mrproper を実行
ビルド中に error: ... missing header files 必要な開発パッケージが未インストール build-essentiallibncurses-dev などの依存関係をインストール

6. まとめと次のステップ

  • 公式サイト (kernel.org) の tarball は手軽で初心者向き。
  • Git リポジトリ は履歴管理や特定コミットの取得に最適。
  • ミラーや GitHub は地域的な速度問題を回避できる。

取得後は make defconfigmake -j$(nproc) の流れでビルドし、必要に応じてカスタマイズします。実際にカーネルをビルドすれば、ソースコードの構造やビルドシステムの仕組みが肌で感じられるはずです。

まとめ

本記事では Linux カーネルのソースコード取得方法実際のビルド手順 を体系的に解説しました。

  • 公式 tarballGit リポジトリ の取得手順を比較
  • ミラーや GitHub など代替手段の活用法
  • ハマりやすいポイント とその対処法を具体例で提示

これらを理解すれば、どんな環境でも安心してカーネルソースを取得し、ビルド・カスタマイズできるようになります。次回は「取得したカーネルに自作モジュールを組み込む方法」や「パッチの作成・適用フロー」について詳しく解説する予定です。

参考資料