在 Raspberry Pi 4 上使用 Ubuntu 20.04 LTS 定制内核 (arm64)

在 Raspberry Pi 4 上使用 Ubuntu 20.04 LTS 定制内核 (arm64)

我已使用以下图像在 Raspberry Pi 4 上成功安装了 Ubuntu 20.04 LTS: https://ubuntu.com/download/raspberry-pi/thank-you?version=20.04&architecture=arm64+raspi

我想自定义内核,但是我尝试了各种方法,但没有一种方法可以生成可启动的 5.4.0 内核。/boot 文件夹无论如何都不是标准的,所以我的问题是,有谁知道如何在 Raspberry Pi 4 上为 arm64 构建 Ubuntu 自定义内核?任何与 Ubuntu 和此硬件相关的 Ubuntu 文档都将不胜感激。

答案1

我理解你的痛苦。周围有大量的信息,其中大部分都很接近,但并不完全是你需要的。我最近成功为 pi 4 构建并运行了 20.04 内核。我的笔记附在这里。我没有进行交叉编译;我是在 pi 本身上构建的。这对我而言在 32 位和 64 位安装上都有效。

编辑于 2020-07-19: 下面我给出的原始 git 命令是:

git clone --depth=1 git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/focal -b raspi

在我执行此操作时,它让我获得了最新的代码,但此后它一直没有更新。目前,它仍处于内核版本 1009。

您可以通过执行以下操作获取当前已安装的确切内核的源代码:

apt-get source linux-image-$(uname -r)

如果你这样做,你将看到一条消息,表明你可以通过执行以下操作获取最新的源代码:

git clone git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux-raspi/+git/focal

我刚刚这样做了,并获得了内核版本 1012 的源代码,该版本较新但仍然不是最新版本。最新的系统更新在我的 pi 4 上安装了二进制内核版本 1013。

我已经用我掌握的最佳信息更新了下面的说明,但我仍然想知道是否有一个可公开使用的 git repo,其中包含更新的 pi 4 内核源。

以下是注释:

start with a 32GB card (might just barely fit on a 16GB card)

download, install, and update 32-bit or 64-bit Ubuntu Server 20.04 for Raspberry Pi (preinstalled image)

uncomment the following 2 lines in /etc/apt/sources.list:
deb-src http://ports.ubuntu.com/ubuntu-ports focal main restricted
deb-src http://ports.ubuntu.com/ubuntu-ports focal-updates main restricted

sudo apt update
sudo apt-get build-dep linux linux-image-$(uname -r)   # brings in nearly a gigabyte
sudo apt install libncurses-dev linux-tools-common fakeroot

# these notes assume your build tree will be in ~/kbuild.
# if you'd prefer to put it elsewhere, simply substitute your location for ~/kbuild in all that follows.

mkdir ~/kbuild
cd ~/kbuild
git clone --depth=1 git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux-raspi/+git/focal

# To customize, edit files under .../debian.raspi/config/

# intial build - takes 2 hours 20 minutes, creates 7 .deb files in ~/kbuild
cd ~/kbuild/focal
fakeroot debian/rules clean
fakeroot debian/rules binary-headers binary binary-perarch

# install and run the newly-built kernel:
sudo apt install libunwind8 linux-tools-common libdw1
cd ~/kbuild
sudo dpkg -i *.deb
sync; sudo reboot

# rebuild - takes 30 minutes
cd ~/kbuild/focal
rm debian/stamps/stamp-build*
rm -rf debian/linux-libc-dev/usr/include/arm-linux-gnueabihf
rm -rf debian/build/build-raspi/_____________________________________________dkms
# if you've changed any header files, add binary-headers to the following line:
fakeroot debian/rules binary binary-perarch

相关内容