-
Notifications
You must be signed in to change notification settings - Fork 2
00. Build
Building a gentoo 64-bit system for Raspberry Pi 4. I'm using a laptop with Ubuntu 20.04 as a host machine. You need following packages installed:
sudo apt-get install build-essential gawk gcc g++ gfortran git texinfo bison libncurses-dev flex libssl-dev gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
cd
mkdir rpi-64
cd rpi-64
git clone --depth=1 https://github.com/raspberrypi/firmware -b stable
git clone --depth=1 https://github.com/raspberrypi/linux -b rpi-5.15.y
wget http://distfiles.gentoo.org/releases/arm64/autobuilds/current-stage3-arm64-desktop-openrc/stage3-arm64-desktop-openrc-20220227T233703Z.tar.xz
wget https://mirror.leaseweb.com/gentoo/snapshots/portage-latest.tar.bz2
as decribed here (gentoo wiki).
sudo mkdir /mnt/gentoo
sudo mount /dev/mmcblk0p3 /mnt/gentoo
sudo mkdir /mnt/gentoo/boot/
sudo mount /dev/mmcblk0p1 /mnt/gentoo/boot
sudo tar xpfv stage3-arm64-desktop-openrc-20220227T233703Z.tar.xz --xattrs-include='*.*' --numeric-owner -C /mnt/gentoo/
sudo mkdir /mnt/gentoo/var/db/repos/gentoo
sudo tar xvpf portage-latest.tar.bz2 --strip-components=1 -C /mnt/gentoo/var/db/repos/gentoo
cd linux
ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make distclean
ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make bcm2711_defconfig
ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make -j4 Image modules dtbs
sudo ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make modules_install INSTALL_MOD_PATH=/mnt/gentoo
cd ..
sudo cp -vr firmware/boot/* /mnt/gentoo/boot/
sudo cp -vr firmware/modules /mnt/gentoo/lib
sudo cp -vr linux/arch/arm64/boot/dts/overlays/*.dtbo /mnt/gentoo/boot/overlays
sudo cp -v linux/arch/arm64/boot/dts/broadcom/bcm2711-rpi-4-b.dtb /mnt/gentoo/boot/
sudo cp -v linux/arch/arm64/boot/Image /mnt/gentoo/boot/kernel8.img
get some config files:
wget https://github.com/mck-sbs/gentoo-rpi-64-bit/raw/main/fstab
wget https://github.com/mck-sbs/gentoo-rpi-64-bit/raw/main/inittab
wget https://github.com/mck-sbs/gentoo-rpi-64-bit/raw/main/config.txt
wget https://github.com/mck-sbs/gentoo-rpi-64-bit/raw/main/cmdline.txt
sudo mv /mnt/gentoo/etc/fstab /mnt/gentoo/etc/fstab_bak
sudo mv fstab /mnt/gentoo/etc/
sudo mv /mnt/gentoo/etc/inittab /mnt/gentoo/etc/inittab_bak
sudo mv inittab /mnt/gentoo/etc/
sudo mv /mnt/gentoo/boot/config.txt /mnt/gentoo/boot/config_txt_bak
sudo mv config.txt /mnt/gentoo/boot/
sudo mv cmdline.txt /mnt/gentoo/boot/
List the timezones:
ls /mnt/gentoo/usr/share/zoneinfo
and choose one:
sudo cp /mnt/gentoo/usr/share/zoneinfo/Europe/Berlin /mnt/gentoo/etc/localtime
sudo echo "Europe/Berlin" > /mnt/gentoo/etc/timezone
clrear root password:
sudo sed -i 's/^root:.*/root::::::::/' /mnt/gentoo/etc/shadow
set keymap:
sudo sed -i 's/^keymap="us"/keymap="de"/' /mnt/gentoo/etc/conf.d/keymaps
sudo umount /mnt/gentoo/boot
sudo umount /mnt/gentoo
Before you put in your SD card and boot the rpi, you should back up your sd card:
sudo dd if=/dev/mmcblk0 of=image.img
ToDo shrink
https://medium.com/platformer-blog/creating-a-custom-raspbian-os-image-for-production-3fcb43ff3630
https://wiki.gentoo.org/wiki/Raspberry_Pi_3_64_bit_Install
https://wiki.gentoo.org/wiki/Raspberry_Pi4_64_Bit_Install
https://github.com/sakaki-/gentoo-on-rpi-64bit
https://wiki.gentoo.org/wiki/Raspberry_Pi/Quick_Install_Guide
https://deardevices.com/2019/04/18/how-to-crosscompile-raspi/
https://raspberrypi.stackexchange.com/questions/311/how-do-i-backup-my-raspberry-pi
https://wiki.gentoo.org/wiki/Raspberry_Pi/Kernel_Compilation