ZynqのLinux kernelを更新する
ZynqのLinux kernelを更新する方法についてまとめておく.kernelのバージョンを確認するにはuname
コマンドを使う.
Xilinxが提供しているkernelでは
aho@zynq:~$ uname -r
4.10.0-xilinx
となり,4.10.0のkernelが動いていることがわかる(2019年1月現在).
Kernel Sourceの取得
kernelのソースコードを取得し再ビルドしてkernelのバージョンを更新する.stable versionのkernelリポジトリからソースを取ってくる.
git.kernel.org
開発マシン上にkernelのソースを取ってくる.かなりサイズが大きいので気長に待つ.
git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
cd linux-stable
git checkout -b my-kernel refs/tags/v4.14.34
Xilinxのkernelレポジトリにあるarch/arm/configs/xilinx_zynq_defconfig
をコピーし,コミットする.
cp ~/linux-xlnxarch/arm/configs/xilinx_zynq_defconfig ~/linux-stablearch/arm/configs git add arch/arm/configs/xilinx_zynq_defconfig git commit -m "Add zynq config file"
Kernelのビルド
ビルドする.手順はXilinxのレポジトリでやる方法と同じ.
ZYBO-Z7-20でUbuntu 16.04 LTSを動かす(5) : Linux kernelとデバイスツリーの作成 - メモ置き場
export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabihf- make xilinx_zynq_defconfig make bindeb-pkg #uImageだけ欲しい場合は飛ばしても良い make UIMAGE_LOADADDR=0x8000 uImage
これでarch/arm/boot
にuImageができるので,SDカードにコピーしてリブートすれば良い.
Zynq上でkernelを起動しバージョンを確認してみると
aho@zynq:~$ uname -r
4.14.34-xilinx
とカーネルのバージョンを更新することができた.
もし"xilinx"という文字列を消したい場合はxilinx_zynq_defconfig
の中にあるCONFIG_LOCALVERSION="-xilinx"
を削除するなり別の文字列に置き換えるなりすれば良い.