LoginSignup
0
0

More than 3 years have passed since last update.

NanoPi Fire3 のkernelをBuildする

Last updated at Posted at 2019-09-27

はじめに

一般にLinux Kernel Buildは一仕事です。
訳あってNanoPi Fire3-LTSの独自カーネルを作りましたので、ここにまとめます。

摘要

通常,Linux Kernel Build是一项工作。
我翻译了NanoPi Fire3-LTS的原始内核,所以这里是一个总结。

資料を読む

まずこれをしっかり読んでください。

Kernel Sourceを入手する

資料を読んだ方は分かってますね。
kernel.org の生のSource ではダメです

git clone https://github.com/friendlyarm/linux.git -b nanopi2-v4.4.y --depth 1

gitでfriendlyarmの特製パッチが当たったものを入手してください。

時計を合わせる

makeを使う前には時計を合わせましょう。

ntpdate ntp.jst.mfeed.ad.jp

Build環境を整える

ここでは調達したNanoPi Fire3しかLinuxを持っていないという前提で行きます。もちろんx86_64のLinuxを持っていればクロスコンパイル環境を作りそちらでBuildすることは可能です、というかソースコードはそういう前提で作られています。

cd /usr/bin
ln -s gcc aarch64-linux-gcc
ln -s ld aarch64-linux-ld
ln -s nm aarch64-linux-nm
ln -s ar aarch64-linux-ar
ln -s objcopy aarc64-linux-objcopy

お分かりでしょう。
クロスコンパイラーの代わりにレジデントコンパイラーを充ててしまいます。

.config を作る

普通動いているkernelの/bootにbuildしたときのconfigが残してありこれを改造して独自カーネルを作りますが、fire3にはありませんし、kernel自身からconfigを取り出せるようにもなっていません。素から作っては見たものの案の定走りません。.configは自動生成されるのです。

touch .scmversion
make nanopi3_linux_defconfig

Kernel Huck する

作業に自信がある方はこの工程でconfigをいじり、ドライバーを整理します。
慎重な方はここはいじらず最後まで推奨カーネルが動くことを検査してから、2度目に行うが良いでしょう。

apt install ncurses-dev
make manuconfig

たくさんの項目があります。
肝心なものを削ると、立ち上がらなくなります。

build

make -k -j4

数時間かかります。-j8を指定したいところですが、memory不足でかえって遅くなるようです。
寝る前に仕掛けてさっさと寝ましょう。
起きたらエラーが出てました。
こういう時にmake -k を指定するとエラーが影響しないところは先に進めてくれます。
/usr/src/linux/arch/arm64/include/asm/vdso.h
です。
42行目に
#define vdso_offset_sigtamp 0x06c0
を書き加えたらおとなしくなりました。
まあ、この程度は気のせいでしょう (^^;

backupする

ここでおもむろにSDをバックアップします。
SDをreaderに挿します。

ddrescue -f /dev/mmcblk0 /dev/sda

backupのSDを抜き、安全なところに保管してから、

mount /dev/mmcblk0p1 /boot
make install
reboot

どうでしょう?上がりますか?

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0