はじめに (対象読者・この記事でわかること)
本記事は、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 をダウンロード
手順
-
ブラウザまたは
wget/curlで最新安定版のページにアクセス
bash wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.6.31.tar.xz(バージョンは執筆時点の最新 LTS 例です) -
ダウンロードしたファイルを展開
bash tar -xf linux-6.6.31.tar.xz cd linux-6.6.31 -
make mrproperでビルド環境をクリーンにする(オプション)
bash make mrproper
ポイント
https://cdn.kernel.org/は公式 CDN で、ミラーサーバへ自動的にリダイレクトされます。tar.xzは圧縮率が高く、ダウンロードサイズが小さく抑えられますが、展開に時間がかかることがあります。
2. Git リポジトリから取得する方法
手順
-
Git の公式リポジトリをクローン
bash git clone https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git cd linux -
必要なブランチ(例:
linux-6.6.y)へチェックアウト
bash git checkout linux-6.6.y -
特定のタグ(例:
v6.6.31) に移動したい場合
bash git checkout v6.6.31 -
取得したソースを最新の状態に保つには
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 でクローン)
Bashgit 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-essential や libncurses-dev などの依存関係をインストール |
6. まとめと次のステップ
- 公式サイト (kernel.org) の tarball は手軽で初心者向き。
- Git リポジトリ は履歴管理や特定コミットの取得に最適。
- ミラーや GitHub は地域的な速度問題を回避できる。
取得後は make defconfig → make -j$(nproc) の流れでビルドし、必要に応じてカスタマイズします。実際にカーネルをビルドすれば、ソースコードの構造やビルドシステムの仕組みが肌で感じられるはずです。
まとめ
本記事では Linux カーネルのソースコード取得方法 と 実際のビルド手順 を体系的に解説しました。
- 公式 tarball と Git リポジトリ の取得手順を比較
- ミラーや GitHub など代替手段の活用法
- ハマりやすいポイント とその対処法を具体例で提示
これらを理解すれば、どんな環境でも安心してカーネルソースを取得し、ビルド・カスタマイズできるようになります。次回は「取得したカーネルに自作モジュールを組み込む方法」や「パッチの作成・適用フロー」について詳しく解説する予定です。
参考資料
- kernel.org – Linux Kernel Archives
- Git - Linux kernel source repository
- GitHub mirror of Linux kernel
- Robert Love, Linux Kernel Development, 3rd Edition, Addison‑Wesley, 2010
- Jonathan Corbet, Alessandro Rubini, Greg Kroah‑Hartman, Linux Device Drivers, 3rd Edition, O'Reilly, 2005
