我已使用以下图像在 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