カーネルは git で管理されていますので、ソースコードを取得するために git を導入します。
user1@max3xx-devel:~$ sudo apt install git パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: git-man libbrotli1 libcurl3-gnutls liberror-perl libnghttp2-14 libpsl5 librtmp1 libssh-4 publicsuffix 提案パッケージ: gettext-base git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-cvs git-mediawiki git-svn 以下のパッケージが新たにインストールされます: git git-man libbrotli1 libcurl3-gnutls liberror-perl libnghttp2-14 libpsl5 librtmp1 libssh-4 publicsuffix アップグレード: 0 個、新規インストール: 10 個、削除: 0 個、保留: 0 個。 6,431 kB のアーカイブを取得する必要があります。 この操作後に追加で 41.2 MB のディスク容量が消費されます。 続行しますか? [Y/n]
u-boot 形式のイメージを作成するときに必要になりますので、u-boot-tools を導入します。
user1@max3xx-devel:~$ sudo apt install u-boot-tools パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: device-tree-compiler libfdt1 以下のパッケージが新たにインストールされます: device-tree-compiler libfdt1 u-boot-tools アップグレード: 0 個、新規インストール: 3 個、削除: 0 個、保留: 0 個。 432 kB のアーカイブを取得する必要があります。 この操作後に追加で 1,281 kB のディスク容量が消費されます。 続行しますか? [Y/n]
ファイルシステムのイメージを作成するときに必要となりますので、squashfs-tools を導入します。
user1@max3xx-devel:~$ sudo apt install squashfs-tools パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: liblzo2-2 以下のパッケージが新たにインストールされます: liblzo2-2 squashfs-tools アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 0 個。 172 kB のアーカイブを取得する必要があります。 この操作後に追加で 544 kB のディスク容量が消費されます。 続行しますか? [Y/n]
Kernel の config 時に必要となりますので、bison および flex を導入します。
user1@max3xx-devel:~/work$ sudo apt install bison flex パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: libfl-dev libfl2 libsigsegv2 m4 提案パッケージ: bison-doc flex-doc m4-doc 以下のパッケージが新たにインストールされます: bison flex libfl-dev libfl2 libsigsegv2 m4 アップグレード: 0 個、新規インストール: 6 個、削除: 0 個、保留: 0 個。 1,204 kB のアーカイブを取得する必要があります。 この操作後に追加で 3,557 kB のディスク容量が消費されます。 続行しますか? [Y/n]
Kernel の script で必要になりますので、OpenSSL の開発用パッケージを導入します。
user1@max3xx-devel:~$ sudo apt install libssl-dev パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 提案パッケージ: libssl-doc 以下のパッケージが新たにインストールされます: libssl-dev アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。 1,582 kB のアーカイブを取得する必要があります。 この操作後に追加で 8,005 kB のディスク容量が消費されます。 取得:1 http://ftp.riken.go.jp/Linux/ubuntu focal/main amd64 libssl-dev amd64 1.1.1f-1ubuntu2 [1,582 kB] 1,582 kB を 0秒 で取得しました (6,113 kB/s) 以前に未選択のパッケージ libssl-dev:amd64 を選択しています。 (データベースを読み込んでいます ... 現在 28755 個のファイルとディレクトリがインストールされています。) .../libssl-dev_1.1.1f-1ubuntu2_amd64.deb を展開する準備をしています ... libssl-dev:amd64 (1.1.1f-1ubuntu2) を展開しています... libssl-dev:amd64 (1.1.1f-1ubuntu2) を設定しています ...
user1@max3xx-devel:~$ sudo apt install bc パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下のパッケージが新たにインストールされます: bc アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。 86.3 kB のアーカイブを取得する必要があります。 この操作後に追加で 231 kB のディスク容量が消費されます。 取得:1 http://ftp.riken.go.jp/Linux/ubuntu focal/main amd64 bc amd64 1.07.1-2build1 [86.3 kB] 86.3 kB を 0秒 で取得しました (872 kB/s) 以前に未選択のパッケージ bc を選択しています。 (データベースを読み込んでいます ... 現在 28872 個のファイルとディレクトリがインストールされています。) .../bc_1.07.1-2build1_amd64.deb を展開する準備をしています ... bc (1.07.1-2build1) を展開しています... bc (1.07.1-2build1) を設定しています ...
lz4, zip, unzip を導入しておきます。
user1@max3xx-devel:~$ sudo apt install lz4 zip unzip パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下のパッケージが新たにインストールされます: lz4 unzip zip アップグレード: 0 個、新規インストール: 3 個、削除: 0 個、保留: 0 個。 419 kB のアーカイブを取得する必要があります。 この操作後に追加で 1,458 kB のディスク容量が消費されます。 取得:1 http://ftp.riken.go.jp/Linux/ubuntu focal/main amd64 lz4 amd64 1.9.2-2 [82.7 kB] 取得:2 http://ftp.riken.go.jp/Linux/ubuntu focal/main amd64 unzip amd64 6.0-25ubuntu1 [169 kB] 取得:3 http://ftp.riken.go.jp/Linux/ubuntu focal/main amd64 zip amd64 3.0-11build1 [167 kB] 419 kB を 0秒 で取得しました (1,608 kB/s) 以前に未選択のパッケージ lz4 を選択しています。 (データベースを読み込んでいます ... 現在 28889 個のファイルとディレクトリがインストールされています。) .../archives/lz4_1.9.2-2_amd64.deb を展開する準備をしています ... lz4 (1.9.2-2) を展開しています... 以前に未選択のパッケージ unzip を選択しています。 .../unzip_6.0-25ubuntu1_amd64.deb を展開する準備をしています ... unzip (6.0-25ubuntu1) を展開しています... 以前に未選択のパッケージ zip を選択しています。 .../zip_3.0-11build1_amd64.deb を展開する準備をしています ... zip (3.0-11build1) を展開しています... unzip (6.0-25ubuntu1) を設定しています ... zip (3.0-11build1) を設定しています ... lz4 (1.9.2-2) を設定しています ... mime-support (3.64ubuntu1) のトリガを処理しています ...
ソースをダウンロードするディレクトリを作成しておきます。
user1@max3xx-devel:~$ mkdir src user1@max3xx-devel:~$ cd src/ user1@max3xx-devel:~/src$
“git clone” により、カーネルスースのリポジトリをローカルに clone します。
user1@max3xx-devel:~/src$ git clone https://github.com/centurysys/linux-kernel-MAE.git linux-kernel Cloning into 'linux-kernel'... remote: Enumerating objects: 10235021, done. remote: Counting objects: 100% (325226/325226), done. remote: Compressing objects: 100% (61208/61208), done. remote: Total 10235021 (delta 263333), reused 324941 (delta 263233), pack-reused 9909795 Receiving objects: 100% (10235021/10235021), 2.24 GiB | 25.89 MiB/s, done. Resolving deltas: 100% (8707229/8707229), done. Updating files: 100% (71202/71202), done. user1@max3xx-devel:~/src$
ソースコードが以下の通り取得できました。
user1@max3xx-devel:~/src$ ls -l total 4 drwxrwxr-x 27 user1 user1 4096 Apr 12 16:57 linux-kernel user1@max3xx-devel:~/src$
ダウンロードした時点では、デフォルトのブランチが MA-X3xx シリーズ用になっているはずですが、一応確認しておきます。
user1@max3xx-devel:~/src/linux-kernel$ git branch * MAX3xx/ti-linux-5.10.y <--- MA-X3xx 用だが、古い branch になっている。 user1@max3xx-devel:~/src/linux-kernel$
user1@max3xx-devel:~/src/linux-kernel$ git branch -a|grep MAX3 * MAX3xx/ti-linux-5.10.y remotes/origin/HEAD -> origin/MAX3xx/ti-linux-5.10.y remotes/origin/MAX3xx/ti-linux-5.10.y remotes/origin/MAX3xx/ti-linux-6.1.y <--- この branch が新しい
user1@max3xx-devel:~/src/linux-kernel$ git checkout MAX3xx/ti-linux-6.1.y Updating files: 100% (53484/53484), done. Branch 'MAX3xx/ti-linux-6.1.y' set up to track remote branch 'MAX3xx/ti-linux-6.1.y' from 'origin'. Switched to a new branch 'MAX3xx/ti-linux-6.1.y' user1@max3xx-devel:~/src/linux-kernel$