Gentoo overlay (ebuild repository) for the Raspberry Pi 3 Model B and B+, and Raspberry Pi 4 Model B. Used by my bootable gentoo-on-rpi-64bit
image.
NB: this repository has been renamed, from
rpi3-overlay
togenpi64-overlay
, to reflect its applicability to the new Pi4.30 Oct 2020: sadly, due to legal obligations arising from a recent change in my 'real world' job, I must announce I am standing down as maintainer of this project with immediate effect. For the meantime, I will leave the repo up (for historical interest, and since the ebuilds etc. may be of use for others looking to take forward Gentoo on 64-bit RPi systems); however, there will be no further updates to the underlying binhost etc., nor will I be accepting / actioning further pull requests or bug reports from this point. Email requests for support will also have to be politely declined, so, please treat this as an effective EOL notice.
For further details, please see my post here.
Gentoo itself on the aarch64 / 64-bit RPi platform remains very much a going concern of course; please see e.g. this forum for more details.
Many thanks for your interest in this project!
With sincere apologies, sakaki ><
The overlay provides the following ebuilds:
dev-embedded/rpi-64bit-meta
This is the main gentoo-on-rpi-64bit
metapackage - its version matches that of the image release. It replaces the prior gentoo-on-rpi3-64bit
metapackage. The features it pulls in (via other ebuilds) can be customized via the following USE flags (edit via /etc/portage/package.use/rpi-64bit-meta
):
USE flag | Default? | Effect |
---|---|---|
boot-fw |
Yes | Pull in the /boot firmware, configs and bootloader. |
kernel-bin |
Yes | Pull in the bcm{2711,rpi3}-kernel<-bis>-bin binary kernel package. |
porthash |
No | Pull in repo signature checker, for isshoni.org rsync . |
weekly-genup |
Yes | Pull in cron.weekly script, to run genup automatically. |
innercore |
Yes | Pull in essential system packages for image (RPi initscripts etc.) |
core |
Yes | Pull in main packages for image (clang etc.). Requires innercore . |
xfce |
Yes | Pull in packages for baseline Xfce4 system. Requires core . |
pitop |
No | Pull in Pi-Top packages (NB most users won't want this). Requires xfce . |
apps |
No | Pull in baseline desktop apps (libreoffice etc). Requires xfce . |
gentoo-on-rpi-64bit
imageNote that for historical reasons, many of these ebuilds may contain
rpi3-
in the name, but yet still be applicable on the RPi4.
- acct-group/gpio
- Similar to a
virtual
, this is an administrative package used to define thegpio
group (by default, gid 370).
acct-group/i2c
acct-group/spi
app-accessibility/onboard upstream
app-office/libreoffice upstream
libreoffice
. Retained in the overlay for historical interest only, as modern (>=6.2.8.2) main-tree versions build successfully under arm64
(and just such a main-tree build is currently used on the image).app-office/orage upstream
orage-4.12.1-r1.ebuild
, patched for bug 657542. Once this revbumps in the main Gentoo tree, orage
should revert to using that version instead.app-portage/rpi3-check-porthash
porthash
signed hash check for the isshoni.org rsync gentoo ebuild repository, implemented as a repo.postsync.d
hook. NB not used as of v1.3.0 of the image, as Gentoo's official gemato
signature check is used instead; please see the release notes here.app-portage/weekly-genup
genup
, and another, to run 'fixups' (small scripts to correct issues that may e.g. prevent correct genup
operation, effect upstream file hierarchy migrations etc.).dev-embedded/pitop-speaker upstream
ptspeaker
Python 3 package and accompanying OpenRC service, to initialize pitopSPEAKER add-on-boards. The init has been adapted from the original Debian package and does not use pt-peripherals-daemon
. Only installed on the image when the pitop
USE flag is set on rpi-64bit-meta
.dev-embedded/pitop-utils upstream
pt-poweroff
and pt-brightness
sbin
utilities for the Pi-Top. Only installed on the image when the pitop
USE flag is set on rpi-64bit-meta
.dev-embedded/rpi4-eeprom-images upstream
rpi4-eeprom-updater
(see below). A weekly build-server process automatically creates new ebuilds for this package, whenever upstream releases a new EEPROM deb. For further details, please see this post.dev-embedded/rpi4-eeprom-updater upstream
dev-embedded/wiringpi upstream
WiringPi
, a PIN based GPIO access library (with accompanying gpio
utility). Now deprecated, and will not work correctly on the RPi4 in any event; use e.g. the bundled dev-libs/pigpio
library instead (see below).dev-lang/pony upstream
pony
language. Not installed on the image. Please see this post, ff. for more background.dev-lang/python upstream
python
language interpreter (for slots 3.6 and 3.7) that have profile guided optimisation (pgo
) turned on, as this can yield a significant performance improvement (see e.g. these notes).dev-lang/rust upstream
rust
programming language. Retained for historical interest only - more modern (>=1.32.2) main tree versions are now used in the image.dev-libs/openssl upstream
openssl
with the Fedora EC patchset, that allow use / distribution in bindist
builds. These fixes are now present in the main tree ebuilds also (which are now used in preference), so this package is now retained on the overlay for historical interest only.dev-libs/pigpio upstream
pigpiod
), python
bindings and CLI client (pigs
), allowing control of the GPIOs on the RPi 3 and 4. A useful replacement for wiringpi
, the version included here includes the necessary patches to work on an arm64
system, and sets up the server to run, by default, on IPv4 127.0.0.1
, port 8888
only.dev-php/pthreads upstream
pthreads-3.2.0
, a threading extension for php
. Not required on the image, but used by some other packages, such as minecraft
(see this thread for further details).dev-python/pyopenssl upstream
pyopenssl
that can use with the above openssl
builds, with bindist
set. And, for the same reason as with dev-libs/openssl
(see below), the main tree versions are now used in preference.dev-util/cargo
cargo-0.20.0.ebuild
; now of historical interest only since cargo
has been merged into dev-lang/rust
. May be removed from the repo at some point in the future.mail-client/thunderbird upstream
--disable-elf-hack
configuration option under the clang
compiler are suppressed on arm64
(as this breaks the build otherwise).media-gfx/ufraw upstream
gimp
plugin. Now of historical interest only since the main-tree version (>=0.22-r3) now builds, and is used on the image.media-libs/gst-plugins-base upstream
gst-plugins-base-1.14.5-r1
) patched to build correctly under arm64
(prevents detection of the RPi platform, as not all interfaces are yet available within a 64-bit userland). Will be replaced by a main-tree variant on the image once one becomes available.media-libs/libsdl2 upstream
libsdl-2.0.10-r1
) patched to build correctly under arm64
. Will be replaced by a main-tree variant on the image once one becomes available.media-libs/mesa upstream
v3d
drivers are also built (for the RPi4) whenever vc4
is present in VIDEO_CARDS.media-libs/raspberrypi-userland upstream
-DARM64=ON
) of raspberrypi-userland
, forvcgencmd
etc. Now also (>=1.20191025-r1) includes 6by9's provisional patchset for 64-bit userspace MMAL (so, e.g. raspivid
and raspistill
can be used). The ebuild needs tidying, so please use with care ><media-sound/pulseaudio upstream
pulseaudio
supporting the extra rpi-deglitch
USE flag; this sets tsched=0
by default, as a workaround for choppy audio under certain 64-bit kernels.media-tv/kodi upstream
kodi-17.4_rc1.ebuild
, which is adapted to build correctly under arm64
. Retained for historical interest only - more modern (>=18.4) main tree versions are now used in the image.media-video/ffmpeg upstream
ffmpeg
that has been patched to allow leverage of the RPi3/4's hardware video codecs, via V4L2 M2M, and also (>=4.2.1-r3) can use MMAL from a 64-bit userspace.media-video/pi-ffcam
media-video/pi-ffplay
ffplay
) that uses the RPi3/4's V4L2 M2M hardware video codecs where possible.net-fs/nfs-utils upstream
nfs-utils-2.1.1-r2.ebuild
, which is adapted to build correctly under arm64
. Retained for historical interest only - more modern (>=2.4.1-r3) main tree versions are now used in the image.net-libs/nghttp2 upstream
nghttp2
that can work under bindist
, by using the EC-patched dev-libs/openssl
libraries (see above). Still in use on the image (as the main tree version unnecessarily forces -bindist
).net-libs/nodejs upstream
nodejs
that can work under bindist
, by using the EC-patched dev-libs/openssl
libraries (see above). Still in use on the image (for the same reason as net-libs/nghttp2
).net-misc/m-minerd upstream
m-minerd-2.4.ebuild
, a CPU pool miner for M7M/Magi, adapted to build correctly under arm64
. Not currently included on the image. Please see this issue thread for further details.net-misc/rpi3-ethfix
ethtool
) for the RPi3B+. It has no effect on the RPi3B or RPi4B.net-misc/xorgxrdp upstream
xrdp
(see below). Supplied on the image to allow RDP connectivity to Windows clients; see e.g. these notes.net-misc/xrdp upstream
xrdp-0.9.8.ebuild
for this open source Remote Desktop Protocol server. Supplied on the image with xorgxrdp
above.net-p2p/cpuminer-multi upstream
cpuminer-multi-1.3.3.ebuild
, a multi-algorithm CPU cryptocurrency miner adapted to build correctly under arm64
. Not currently included on the image. Please see this post ff. for further details.net-wireless/blueman upstream
blueman-2.0.4-r1.ebuild
; this has been removed from the main Gentoo tree, but is in use on the image (until the current version proves stable, at which point it will be unmasked, and blueman
will revert to using the main-tree ebuild).net-wireless/rpi3-bluetooth upstream
udev
rule for the RPi3/4's integrated Bluetooth transceiver. Adapted from the pi-bluetooth
package from ArchLinux.net-wireless/rpi3-wifi-regdom Provides a simple service to set the WiFi regulatory domain; the value set may be modified by editing the file /etc/conf.d/rpi3-wifi-regdom
.
sys-apps/openrc upstream
swclock-fix
USE flag. This flag (set on the image) patches the startup code to attempt to overcome annoying clock-skew messages that can occur at boot (the swclock
service is used on systems like the RPi, which has no RTC). Please see these notes for some further background.pitop
USE flag is set on rpi-64bit-meta
.sys-apps/portage upstream
portage
, Gentoo's package manager, adapted to build correctly under arm64
. Retained for historical interest only - more modern (>=2.3.66-r1) main tree versions are now used on the image.sys-apps/pyconfig_gen upstream
/boot/config.txt
file to be edited in a structured manner, together with some support services (to revert the new config automatically, unless ratified upon reboot).sys-apps/qdiskusage upstream
qdiskusage-1.99.ebuild
, a dummy, as this has now been removed from the main Gentoo tree, and the local copy no longer builds, due to missing deps.sys-apps/rpi-gpio
udev
rule to allow GPIO access (on the RPi3/4) for members of the gpio
group. On installation, all current members of wheel
are automatically made members of gpio
. Now installed for all users of the rpi-64bit-meta
package (with innercore
USE).sys-apps/rpi-i2c
rpi3-i2cdev
(see below), sets up a udev
rule to allow I2C access (on the RPi3/4) for members of the i2c
group, and ensures that the i2c_dev
module is modprobe
d. On installation, all current members of wheel
are automatically made members of i2c
(to allow for straightforward transition from rpi3-spidev
). Now installed for all users of the rpi-64bit-meta
package (with innercore
USE).sys-apps/rpi-onetime-startup
/boot/startup.sh
, if present. This script can be used to e.g., set up initial WiFi networking on a headless system, thereby allowing an ssh
connection to be established. The provided template /boot/startup.sh
script contains several (commented out) examples of NetworkManager configuration.sys-apps/rpi-serial
udev
rule to create appropriate serial port device aliases at /dev/serial0
and/or /dev/serial1
(using code borrowed from Raspbian).sys-apps/rpi-spi
rpi3-spidev
(see below), sets up a udev
rule to allow SPI access (on the RPi3/4) for members of the spi
group. On installation, all current members of wheel
are automatically made members of spi
(to allow for straightforward transition from rpi3-spidev
). Now installed for all users of the rpi-64bit-meta
package (with innercore
USE).sys-apps/rpi-video
udev
rule to allow members of the video
group access to /dev/rpivid*
and /dev/argon*
devices (using code borrowed from Raspbian).sys-apps/rpi3-expand-swap
/var/cache/swap/swap1
) to 1,024MiB on first boot (after the root filesystem has been expanded), subject to sufficient space.sys-apps/rpi3-i2cdev
udev
rule for I2C access on the RPi3/4. Ensures that the i2c-dev
module is modprobe
d, and that the /dev/i2c-[0-9]
devices are read/write for all members of the wheel
group, not just root
. Originally installed by the pitop
USE flag on rpi-64bit-meta
, it has since been superseded by rpi-i2c
, above.sys-apps/rpi3-init-scripts
sys-apps/rpi3-ondemand-cpufreq
rpi3-ondemand
OpenRC sysinit
service, to switch the RPi3 and RPi4 from its (bcmrpi3_defconfig
and bcm2711_defconfig
) default powersave
CPU frequency governor, to ondemand
, for better performance.sys-apps/rpi3-spidev
udev
rule for SPI access on the RPi3; ensures that the /dev/spidevN.M
devices are read/write for all members of the wheel
group, not just root
. Originally installed by the pitop
USE flag on rpi-64bit-meta
, it has since been superseded by rpi-spi
, above.sys-apps/rpi3-zswap
zswap
kernel facility to transparently compress, and cache in RAM, pages that are being evicted to swap. Can significantly improve responsiveness of the RPi3 (and smaller-memory variants of the RPi4) when a number of large applications are open. Configured via /etc/conf.d/rpi3-zswap
.sys-boot/rpi3-64bit-firmware upstream
/boot
to boot the RPi3/4 in 64-bit mode. Does not provide the kernel or DTBs (see sys-kernel/bcmrpi3-kernel<-bis>-bin
, above, for that). A weekly check is made to see if a new tag has been added to the official raspberrypi/firmware/boot
upstream, and, if so, a matching ebuild is automatically created here. With the dtbo
USE flag off (as forced by the profile, currently), does not provide or populate the /boot/overlays
directory - this then being the responsibility of the binary kernel package.sys-boot/rpi3-boot-config
/boot/cmdline.txt
and /boot/config.txt
(in both standard and Pi-Top trim).sys-devel/portage-distccmon-gui
distccmon-gui
(provided your user is a member of the portage
group).sys-firmware/bcm4340a1-firmware upstream
/etc/firmware/BCM43430A1.hcd
) for the RPi's integrated Bluetooth transceiver. Adapted from the pi-bluetooth
package from ArchLinux. Required by net-wireless/rpi3-bluetooth
package (see above).sys-firmware/brcm43430-firmware upstream
brcmfmac43430-sdio.txt
) that is required for the RPi3/4's integrated WiFi (the main firmware is provided already, by sys-kernel/linux-firmware
). Now also provides the equivalent file brcmfmac43455-sdio.txt
, for use with the RPi3 B+ / RPi 4 B's dual-band WiFi WiFi chip set (Cypress CYW43455), plus the matching brcmfmac43430-sdio.clm_blob
, and, when the 43455-fix
USE flag is set, also provides a more modern copy of the uploadable file /lib/firmware/brcm/brcmfmac43455-sdio.bin
(in preference to the older version shipped with sys-kernel/linux-firmware
; see below).sys-kernel/bcm2711-kernel-bin
bcm2711_defconfig
Linux kernels (for the Raspberry Pi 4 model B), which are updated weekly here.sys-kernel/bcm2711-kernel-bis-bin
Provides ebuilds to install the available binary packages for (slightly tweaked versions of) the 64-bit bcm2711_defconfig
Linux kernels (for the Raspberry Pi 4 model B), which are updated weekly here. This version is used by default in preference to bcm2711-kernel-bin
as of v1.5.0 of the image, as it includes some additional kernel configuration items such as KVM (but either is acceptable).
sys-kernel/bcmrpi3-kernel-bin
bcmrpi3_defconfig
Linux kernels (for the Raspberry Pi 3 model B and B+), which are updated weekly here.sys-kernel/bcmrpi3-kernel-bis-bin
bcmrpi3_defconfig
Linux kernels (for the Raspberry Pi 3 model B and B+), which are updated weekly here. This version is used in preference to bcmrpi3-kernel-bin
as of v1.2.2 of the bootable image, since it includes some additional kernel configuration items such as KVM (but either is acceptable).sys-kernel/linux-firmware upstream
43455-fix
USE flag, which when set does not install the file /lib/firmware/brcm/brcmfmac43455-sdio.bin
(allowing a more modern version to be supplied by sys-firmware/brcm43430-firmware
; see above).virtual/pam
virtual/pam-0-r1
, preparatory to this being removed from the main tree (announced but not yet effected at the time of writing) — as it is still a dep of some packages currently in use on the image.virtual/rust
rust
compiler. Retained for historical interest only - more modern (>=1.32.2) main tree versions are now used in the image.www-client/chromium upstream
chromium
, capable of being built in a bindist
compatible manner (by suppressing all software-based h264
codec inclusions). Also forces the use of clang
as the compiler.www-client/firefox upstream
firefox
browser. Retained in the overlay for historical interest only, as modern (>=68.2.0) main-tree versions of firefox
build successfully under arm64
(and just such a main-tree build is currently used on the image).x11-base/xorg-server upstream
xorg-server-1.19.6-r1.ebuild
for the X11 server, adapted to build correctly under arm64
. Retained for historical interest only - more modern (>=1.20.5) main tree versions are now used in the image.x11-misc/arandr upstream
arandr
screen configuration GUI, which automatically applies setup files saved as ~/.screenlayout/default.sh
upon login (incidentally, this autoload can be suppressed by holding down Ctrl during boot).x11-misc/rpi3-safecompositor
vc4-kms-v3d
) is in use.x11-misc/rpi3-safecursor
rpi3-safecursor
OpenRC service, which will install a rule to force software cursor blitting (rather than the hardware default) if the user has not set disable_overscan=1
in config.txt
. (Required because hardware cursor blitting in the open-source vc4 driver does not always take account of the overscan 'bezel' correctly on HDMI TVs, resulting in an offset cursor.) The service no-ops with any >= 4.14.y kernel however (e.g., the 4.19.y currently supplied with the image), as these have the fix already committed.x11-misc/twofing upstream
twofing
daemon, which converts touchscreen gestures into mouse and keyboard events. Included primarily for use with the offical 7" RPi (1,2,3) touchscreen (not sure if this is yet compatible with the RPi4?).x11-themes/gnome-icon-theme upstream
gnome-icon-theme-3.12.0-r1.ebuild
; this has been removed from the main Gentoo tree, but is still required for some icons on the image.x11-themes/gtk-engines-xfce upstream
gtk-engines-xfce-r{2,3}01
, preparatory to these being removed from the main tree (announced but not yet effected at the time of writing) — as still a dep of some packages currently in use on the image.xfce-extra/xfc4-mixer upstream
xfc4-mixer-4.99.0-r1
, a 'pseudo-package' replacing the original, treecleaned xfce4-mixer
with the (broadly equivalent) media-sound/volumeicon
package.xfce-extra/xfce4-battery-plugin upstream
xfce4-battery-plugin
gas gauge. It is patched with code from rricharz to query the status of the Pi-Top's battery over I2C; this code is activated by building rpi-64bit-meta
with the pitop
USE flag (NB - only for use on Pi-Top systems).xfce-extra/xfce4-cpugraph-plugin upstream
xfce-extra/xfce4-fixups-rpi3
/etc/xdg/autostart/xfce4-fixups-rpi3.desktop
entry.xfce-extra/xfce4-indicator-plugin upstream
xfce4-indicator-plugin-2.3.3-r2.ebuild
; this has been removed from the main Gentoo tree, and v2.3.4 is currently masked.xfce-extra/xfce4-keycuts-pitop
pitop
USE flag is set on rpi-64bit-meta
.xfce-extra/xfce4-noblank
/etc/xdg/autostart
script to prevent the xscreensaver
blanking the screen, even when it is notionally 'off'.xfce-extra/xfce4-notifyd upstream
xfce4-notifyd-0.4.0.ebuild
; this has been removed from the main Gentoo tree, but is still used on the image. Upgrades masked because of message truncation, which causes problems with PIN notification during Bluetooth device setup. To be fixed / resolved.The following, non-ebuild directories may also be of interest:
metadata/news
profiles/...