Skip to content

Release v1.5.2

Compare
Choose a tag to compare
@sakaki- sakaki- released this 27 Nov 22:35
· 15 commits to master since this release

This is an update release to v1.5.1. If you are already on v1.5.1, you can upgrade by following the instructions below (or wait for the automated weekly update to do (most of) this for you; note however, that a few manual steps are still required for full v1.5.2 functionality, so you may wish to just follow the manual route anyway.

Changes in this release (see main project page for further details):

  • Added a service, rpi4-eeprom-updater, to automate the upgrading of the RPi4's bootloader and VL805 (USB) EEPROM firmware, patterned on the official rpi-eeprom deb. This service has no effect on the RPi3. For further details, please see this post.

  • Added (preliminary!) MMAL 64-bit userland support, via the inclusion of 6by9's pointer-wrangling PR#586 into media-libs/raspberrypi-userland (he tagged it "RFC", but as the functionality provided is useful and reasonably orthogonal, I've merged it anyway ^-^). As a result, tools such as raspivid and raspistill are now bundled with the image! (So now if, for example, you have the optional camera module attached, you should be able to issue e.g. raspivid -v -o test.h264 -t 10000 -g 1). (For those interested, OpenMAX-IL is not yet supported in 64-bit.)

    • Also turned on the mmal USE flag for media-video/ffmpeg, as the necessary support libraries and headers are now present (thanks to the above PR). So, for example, you could play back the above test.h264 file using ffplay -vcodec h264_mmal -i test.h264 (as well as via e.g. ffplay -vcodec h264_v4l2m2m -i test.h264 of course, since the V4L2-M2M h/w codec endpoints remain supported too).
  • In line with Gentoo upstream, migrated a number of core system paths, as follows (for more details, please see this post):

    • /usr/portage -> /var/db/repos/gentoo ($PORTDIR)
    • /usr/portage/distfiles -> /var/cache/distfiles ($DISTDIR)
    • /usr/portage/packages -> /var/cache/binpkgs ($PKGDIR)
    • /usr/local/portage/<overlay> -> /var/db/repos/<overlay>

    and added a fixup to effect the migration for updating users as well.

  • Added the rpi-onetime-startup service. This runs the script startup.sh from the top-level directory of the FAT filesystem in partition 1, if present, on the first boot (after partition resizing), having first disabled itself from future invocation. It is particularly intended to allow e.g. initial networking to be configured for users of headless systems, and to that end the bundled (/boot/)startup.sh script contains a number of (commented) examples of configuring the wired and wireless interfaces (using nmcli). To use, edit the startup.sh script (on e.g. a Windows or Linux desktop box) on the microSD card to which you have just written the image, prior to first using the card to boot your headless RPi3/4 (users booting the image on a system with attached mouse, keyboard and monitor do not need to do use this facility of course, since networking can be configured via the GUI, once booted).

  • Added support for the Pimoroni Fan SHIM (a neat, solderless active-cooling daughtercard for the RPi4) to pyconfig_gen (which allows you to set the temperature setpoint for spin-up; the driver has a built-in 10°C hysteresis); also added support for hdmi_enable_4kp60 (allows 60Hz modes on (one) 4K HDMI output). Accessed via ApplicationsSettingsRPi Config Tool on the image.

  • In line with the deprecation (by its author) of wiringpi, removed this from the image, and in its place added dev-libs/pigpio's pigpiod daemon to the default runlevel. Its counterpart command-line tool pigs may be used to access the Pi's GPIO (a set of python library bindings for the underlying C library is provided also). wiringpi remains in the binhost, for now (so you can still emerge it if you wish).

  • Following a suggestion by arizonadrscott (and the pattern used by Raspbian), set up groups and udev rules for GPIO, I2C and SPI, and made demouser a member of these groups. Also added some video group and serial-port aliasing udev rules, again following Raspbian. See sys-apps/rpi-gpio, sys-apps/rpi-i2c and sys-apps/rpi-spi; also sys-apps/rpi-serial and sys-apps/rpi-video for details. Added migration pkg_postinst() rules to join all wheel group members to the gpio, i2c and gpio groups, and dropped the (largely Pi-Top-specific) rpi3-i2cdev and rpi3-spidev services.

  • Adopted more aggressive MAKEOPTS and MAKE_DEFAULT_OPTS values in /etc/portage/make.conf, as the restricted parallelism (conservatively) enforced in the last release turned out to be confusing for many new users.

  • Added a fixup to turn off Xfce4-driven DPMS monitor power down, as this was causing (sometimes unrecoverable) monitor blanking during e.g. long genup runs. Thanks to Heeboo for the suggestion.

  • As of v1.5.0 of the image, the custom x11-misc/arandr on the image installs an /etc/xdg/autostart entry, which invokes the config file ~/.screenlayout/default.sh (if one has previously been saved (from the arandr GUI) by the user). This is useful to create e.g. persistent dual-monitor layouts, but there was no (user-facing) way to stop it running if the commands therein were somehow inappropriate. However, in this release, any default.sh script is not run if the Ctrl key is held down during graphical login.

  • Added usbhid.mousepoll=0 to /boot/cmdline.txt to improve mouse lag (reported for some setups); thanks to k3lt for the suggestion.

  • Upgraded the shipped kernels, to bcm{rpi3,2711}-kernel-bis-bin-4.19.86.20191126, and boot firmware, to sys-boot/rpi3-64bit-firmware-1.20190925. Inter alia, the kernels now have CONFIG_STRICT_DEVMEM unset.

  • Various minor ebuild tidy-ups (including making OpenRC deps conditional on -systemd USE (as requested by Avamander) etc.).

    Note: the affected services do not yet have systemd unit files and so forth; this change is just to allow those who wish to e.g. cut over the 'lite' image to systemd boot, more easily so to do.

  • All packages brought up-to-date against the Gentoo tree, as of 16 November 2019. So e.g., chromium bumped to 78.0.3904.50-r2, firefox to 70.0.1, libreoffice to 6.3.3.2 etc.

Upgrading from an Earlier Release of the Image

Users downloading this v1.5.2 image directly can of course omit the instructions below; as all settings have been correctly set up for you already.

Users on releases earlier than v1.5.1 should follow the manual upgrade instructions to 1.5.1 below; the final step genup therein will actually bring you (most of the way) to v1.5.2 now. Once done, continue at the "Finalizing the upgrade" section, below.

To upgrade manually (from v1.5.1), simply issue (working as root):

pi64 ~ # emaint sync --repo sakaki-tools
pi64 ~ # emerge -v --oneshot --update app-portage/genup
pi64 ~ # genup

Let this run to completion. Once done, reboot to start using the updated kernel, and once back up again run:

pi64 ~ # dispatch-conf

to review any modified configuration files. If in doubt, press u when prompted, to use the new copy of the file (you can learn more about using the dispatch-conf tool here).

Once that's done, verify you are on >=v1.5.2, by issuing:

pi64 ~ # eix rpi-64bit-meta

Finalizing the upgrade

There are two small, final steps required to complete the upgrade to v1.5.2 (which genup cannot do for you).

The first step is to enable, and start, the pigpiod daemon. This allows easy access to the RPi's GPIO, most straightforwardly via the pigs command-line program. It replaces wiringpi (which has been deprecated by its author, and removed from the image).

To do so, issue:

pi64 ~ # rc-update add pigpiod default
pi64 ~ # rc-service pigpiod start

The second step is to ensure that, following Gentoo upstream, certain system paths are correctly migrated (please see this post for further details). To do so, issue

pi64 ~ # /etc/cron.weekly/fixup

and wait for it to complete.

If you have disabled the weekly-genup USE flag on dev-embedded/rpi-64bit-meta (and this won't apply to most readers, for avoidance of doubt), you can download the migration script directly from here.

After migration, the following paths will have changed:

  • /usr/portage -> /var/db/repos/gentoo ($PORTDIR)
  • /usr/portage/distfiles -> /var/cache/distfiles ($DISTDIR)
  • /usr/portage/packages -> /var/cache/binpkgs ($PKGDIR)
  • /usr/local/portage/<overlay> -> /var/db/repos/<overlay>

However, symlinks are also created from the old directories to the new locations (so, e.g., /usr/portage becomes a symlink to /var/db/repos/gentoo) to ease migration. Your /etc/portage/make.conf script will also be automatically updated with the new definitions of $DISTDIR, $PORTDIR and $PKGDIR, as part of the fixup run.

And that's it: congratulations, you should now be running v1.5.2!