===== Summary of my issues with self compiled kernels =====
* Raspberry 4.19.* kernels, plain from Raspbian or recompiled: haven't seen issues
* any 5.4 and 5.6 kernels from the Raspbian trees, or the 5.4 kernel from Raspbian repos: Can not run the raspi4 with power from the Thinkpad via usb3 (the raspi is not booting then). [[https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=269769&start=200#p1658595|Its a known issue]]
* recompiled Raspberry 5.6 kernels: temperature reading not possible: "cat: /sys/devices/virtual/thermal/thermal_zone0/temp: Invalid argument"
===== Recompiling the Raspbian kernel on Fedora =====
dnf -y install gcc flex make bison openssl-devel elfutils-libelf-devel ncurses-devel
cd /usr/src
wget https://github.com/raspberrypi/linux/archive/raspberrypi-kernel_1.20200212-1.tar.gz
tar zxf raspberrypi-kernel_1.20200212-1.tar.gz
ln -nfs linux-raspberrypi-kernel_1.20200212-1 linux
modprobe configs
zcat /proc/config.gz > /usr/src/linux/.config
cd /usr/src/linux
make oldconfig
# make menuconfig
make -j5 Image
make -j5 modules
make -j5 modules_install
# If you hit this error:
# modules_install/usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x10): multiple definition of `yylloc'; scripts/dtc/dtc-lexer.lex.o:(.bss+0x38): first defined here
# ..then execute this:
sed -i 's/^YYLTYPE yylloc;$/extern YYLTYPE yylloc;/' /usr/src/linux/scripts/dtc/dtc-lexer.l
mv /boot/kernel8.img /boot/kernel8.img.org
cp -vrfp /usr/src/linux/arch/arm64/boot/Image /boot/kernel8.img
cp -vrfp /usr/src/linux/System.map /boot/System.map
reboot
===== Trying to run the Fedora kernel =====
I have no serial adapter connected, not even HDMI output active, so was just shooting in the dark here. This does not work for me.
echo 'kernel=vmlinuz-5.6.10-300.fc32.aarch64' >>/boot/config.txt
===== Compiling the Raspberry 5.4.y kernel on Fedora =====
* https://www.raspberrypi.org/documentation/linux/kernel/building.md
# First, on a plain Rasbperry (not Fedora32), install the 5.4
# Raspberry kernel. Along with that, firmware upgrades are done
BRANCH=master rpi-update
# Then create a tarfile of /lib/modules/* to capture the
# 5.4 kernel modules, and copy the tarfile to a remote system.
# The Fedora installation steps will create a new second partition,
# overwriting the modules.
# Then install Fedora, so you will come up with a deployed
# Fedora32 with 64bit kernel, 5.4.35-v8+
dnf -y install gcc flex make bison openssl-devel \
elfutils-libelf-devel ncurses-devel
# I did not see tarballs, so cloning latest 5.4..
cd /usr/src
# git clone https://github.com/raspberrypi/linux/tree/rpi-5.4.y
wget https://github.com/raspberrypi/linux/archive/rpi-5.4.y.zip
unzip rpi-5.4.y.zip
ln -nfs rpi-5.4.y linux
modprobe configs
zcat /proc/config.gz > /usr/src/linux/.config
cd /usr/src/linux
make oldconfig
# make menuconfig
vi .config
# CONFIG_LOCALVERSION="-v8ch"
make -j5 Image
make -j5 modules
make -j5 modules_install
make dtbs
cp /boot/bcm2711-rpi-4-b.dtb /boot/bcm2711-rpi-4-b.dtb.org
cp arch/arm64/boot/dts/broadcom/bcm2711-rpi-4-b.dtb /boot/
cp -r /boot/overlays/ /boot/overlays.org
\cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
\cp arch/arm/boot/dts/overlays/README /boot/overlays/
cp arch/arm64/boot/Image /boot/kernel8ch.img
cp System.map /boot/System.map
echo 'kernel=kernel8ch.img' >>/boot/config.txt
reboot
===== Compiling the Raspberry 5.6.y kernel on Fedora =====
* https://www.raspberrypi.org/documentation/linux/kernel/building.md
# First, install Fedora with the 5.4.y kernel as per above.
cd /usr/src
wget https://github.com/raspberrypi/linux/archive/rpi-5.6.y.zip
unzip rpi-5.6.y.zip
rm linux
ln -nfs rpi-5.6.y linux
modprobe configs
zcat /proc/config.gz > /usr/src/linux/.config
cd /usr/src/linux
make oldconfig
# make menuconfig
vi .config
# CONFIG_LOCALVERSION="-v8ch"
make -j5 Image
make -j5 modules
make -j5 modules_install
make dtbs
cp /boot/bcm2711-rpi-4-b.dtb /boot/bcm2711-rpi-4-b.dtb.org5.4
cp arch/arm64/boot/dts/broadcom/bcm2711-rpi-4-b.dtb /boot/
cp -r /boot/overlays/ /boot/overlays.org5.4
\cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
\cp arch/arm/boot/dts/overlays/README /boot/overlays/
cp arch/arm64/boot/Image /boot/kernel8-5.6ch.img
cp System.map /boot/System.map
vi /boot/config.txt
# 'kernel=kernel8-5.6ch.img'
reboot
===== Compiling the Fedora kernel =====
* https://fedoraproject.org/wiki/Building_a_custom_kernel