====== カーネルおよび各種パッケージの準備 ====== MA-S1xx シリーズ用のカーネルも MA-E3xx シリーズと同様、GitHub(([[https://github.com/centurysys/linux-kernel-MAE]])) で公開しています。 {{:mae3xx_devel:build_kernel:github_00.png?900|GitHub}} \\ ===== パッケージの導入 ===== ==== git の導入 ==== カーネルは git で管理されていますので、ソースコードを取得するために git を導入します。 user1@mas1xx-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-tools の導入 ==== u-boot 形式のイメージを作成するときに必要になりますので、u-boot-tools を導入します。 user1@mas1xx-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 の導入 ==== ファイルシステムのイメージを作成するときに必要となりますので、squashfs-tools を導入します。 user1@mas1xx-devel:~$ sudo apt install squashfs-tools パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の追加パッケージがインストールされます: liblzo2-2 以下のパッケージが新たにインストールされます: liblzo2-2 squashfs-tools アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 0 個。 172 kB のアーカイブを取得する必要があります。 この操作後に追加で 544 kB のディスク容量が消費されます。 続行しますか? [Y/n] \\ ==== bison, flex の導入 ==== Kernel の config 時に必要となりますので、bison および flex を導入します。 user1@mas1xx-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] \\ ==== libssl-dev の導入 ==== Kernel の script で必要になりますので、OpenSSL の開発用パッケージを導入します。 user1@mas1xx-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) を設定しています ... \\ ==== bc の導入 ==== user1@mas1xx-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@mas1xx-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@mas1xx-devel:~$ mkdir src user1@mas1xx-devel:~$ cd src/ user1@mas1xx-devel:~/src$ \\ ==== リポジトリの clone ==== "git clone" により、カーネルスースのリポジトリをローカルに clone します。 user1@mas1xx-devel:~/src$ git clone https://github.com/centurysys/linux-kernel-MAE.git linux-kernel Cloning into 'linux-kernel'... remote: Enumerating objects: 5776, done. remote: Counting objects: 100% (5776/5776), done. remote: Compressing objects: 100% (2159/2159), done. remote: Total 7404640 (delta 4297), reused 4480 (delta 3614), pack-reused 7398864 Receiving objects: 100% (7404640/7404640), 1.56 GiB | 18.95 MiB/s, done. Resolving deltas: 100% (6278904/6278904), done. Updating files: 100% (62199/62199), done. user1@mas1xx-devel:~/src$ \\ ソースコードが以下の通り取得できました。 user1@mas1xx-devel:~/src$ ls -l 合計 4 drwxrwxr-x 27 user1 user1 4096 7月 29 06:58 linux-kernel user1@mas1xx-devel:~/src$ \\ ==== ブランチの変更 ==== ダウンロードした時点では、デフォルトのブランチが MA-E3xx シリーズ用になっていますので、git checkout によりブランチを切り替えます。 * ブランチの確認 user1@mas1xx-devel:~/src$ cd linux-kernel/ user1@mas1xx-devel:~/src/linux-kernel$ git branch * MA-E3xx/ti-linux-WireGuard-4.19.y-20200128 <---- MA-E3xx シリーズ用になっている * MA-S1xx シリーズ用のブランチを検索 user1@mas1xx-devel:~/src/linux-kernel$ git branch -a|grep MAS remotes/origin/MAS1xx/linux-kernel-at91-5.4.y remotes/origin/MAS1xx/linux-kernel-at91-WireGuard-5.4.y-20200712 * ブランチをチェックアウト user1@mas1xx-devel:~/src/linux-kernel$ git checkout MAS1xx/linux-kernel-at91-WireGuard-5.4.y-20200712 Updating files: 100% (50375/50375), done. Branch 'MAS1xx/linux-kernel-at91-WireGuard-5.4.y-20200712' set up to track remote branch 'MAS1xx/linux-kernel-at91-WireGuard-5.4.y-20200712' from 'origin'. Switched to a new branch 'MAS1xx/linux-kernel-at91-WireGuard-5.4.y-20200712' user1@mas1xx-devel:~/src/linux-kernel$