Release v1.6.0 -------------- This is a significant update release to v1.5.4. If you are already on v1.5.4, 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 since two update runs, plus some additional steps, are required to get to full v1.6.0 functionality, you may wish to just follow the manual route anyway). Changes in this release (see main project page for further details): * Switched kernel branch, from rpi-4.19.y to rpi-5.4.y, with the shipped kernels upgraded to bcm{rpi3,2711}-kernel-bis-bin-5.4.45.20200616, and boot firmware to sys-boot/rpi3-64bit-firmware-1.20200601_p64, respectively (the rpi3 name in the latter being an historical artifact; code for both the RPi3 and RPi4 is provided). This migration is slightly in advance of RPi engineers switching to rpi-5.4.y as their default branch, but stability now appears to be good, and a 5.4 kernel is already used in the beta version of PIOS64. * Following upstream, migrated from consolekit to elogind. As a result of this change, a large number of userland packages have had to be rebuilt wrt their v1.5.4 release versions. * As the upstream kernels now make each of HDMI-1, HDMI-2 and headphone outputs its own ALSA device, added a small, USE-flag gated workaround to media-sound/pulseaudio to counter an initialization issue (hopefully will be properly resolved soon - if you are a pulseaudio guru, please feel free to dig in!), whereby pulse can only use two of the three independent streams at any time (thanks to Gavinmc42 for reporting). The workaround allows audio on HDMI-1 (the HDMI0 port, confusingly!) and the headphone port so, if you are only using a single monitor, be sure to plug it into the HDMI0 socket (the one nearer the USB-C power connector); and if using two monitors, bear in mind that only the HDMI0-connected one will be able to play sound. (If your application requires sound out of both monitors, then disable the pi4-workaround USE flag on media-sound/pulseaudio and re-emerge it; your headphone port will then be disabled, and HDMI-1 and HDMI-2 enabled.) Note that the use of e.g. additional headset-to-USB adaptors etc is not affected by this workaround, and they should be fully useable. * Added the net-analyzer/etherape and net-analyzer/wireshark packages (a network traffic visualizer and analysis tool), as these have been repeatedly requested. * Added a fixup to ensure that the snd_bcm2835 module was still autoloaded on the RPi3. * Fixed an issue with the keyboard switcher panel item, which did not always set up the initial layout correctly on first boot. * Switched (for demouser) the default youtube streaming mechanism of media-video/smplayer to youtube-dl (since the 'internal' mechanism was no longer reliable), and added net-misc/youtube-dl to the core package set. Also setup media-video/smplayer to use auto-copy for hardware decoding (per feedback received; thanks Jimmy-Z) and to use 4 threads for software decoding, where possible. * Removed app-portage/porthole from the apps / shipped @world sets, as it has been dropped upstream (Gentoo bug #708096). * Migrated the XFCE desktop and associated tools to a mix of 4.14/4.15 (from 4.12). * Updated media-video/ffmpeg with a number of Libre-ELEC patches (thanks acroobat). This should improve video playback performance in certain cases. NB: the Libre-ELEC hevc patches have not been applied in this release. * Added an initial set of packages for the FOSS videoconferencing server, Jitsi. Please see [1] for further instructions on setup and use (although you can of course skip the "RPi4 64-bit Gentoo Install" section there, as the necessary packages are already present on the image). You'll realistically require a 2GiB RPi4B (or better) to run this application successfully. Note, though, that since Jitsi does not process the video streams, but acts simply as a meeting coordination point, selective forwarding unit and TURN server, the CPU requirements are not onerous - an RPi4 should be able to handle a reasonable number of simultaneous participants. * Updated the media-libs/raspberrypi-userland package to 1.20200520. As of this date, 64-bit MMAL userland support had (just ^-^) not yet been dropped, so in v1.6.0 of the image you can still use raspivid etc. * Various minor ebuild tidy-ups. * All packages brought up-to-date against the Gentoo tree, as of 11 June 2020. So e.g., www-client/chromium bumped to 84.0.4147.30, www-client/firefox to 77.0.1, app-office/libreoffice to 6.4.4.2, gcc to 10.1.0, clang to 10.0.0 etc. Users already on the prior 1.5.4 or earlier release can upgrade manually by following the instructions given below. Note: this version should also support boot-from-USB on the Pi4, but to enable this you will need (at the time of writing) a beta version of the Pi4's EEPROM software. To install this, set (at your own risk!) FIRMWARE_RELEASE_STATUS="beta" in /etc/default/rpi-eeprom-update, and reboot. Once back up, reboot again to reflash the new EEPROM payload. You should then be able to write a copy of the image to a USB target, and boot from this (provided the uSD card is not inserted). However, I have not fully tested this process. Upgrading from an Earlier Release of the Image ---------------------------------------------- Users downloading this v1.6.0 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.4 should follow the manual upgrade instructions to 1.5.4 below; the final step genup therein will actually bring you some of the way to v1.6.0 now. Once done, continue with the instructions immediately below. So, to upgrade manually (from v1.5.4), simply issue (working as root): pi64 ~ # emaint sync --repo genpi64 pi64 ~ # /etc/cron.weekly/fixup pi64 ~ # nice -n 19 genup Let this run to completion; it may take some time. Once done, reboot to start using the updated kernel, and then 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 at [2]). Once that's done, verify you are on >=v1.6.0, by issuing: pi64 ~ # eix rpi-64bit-meta Finalizing the Upgrade ---------------------- With that out of the way, there are still four small, final steps required to complete the upgrade to v1.6.0 (which genup cannot do for you). The first is to ensure that your copy of smplayer is correctly configured. To do so, select Applications->Multimedia->SMPlayer. When the application opens, select Options->Preferences. Select the Performance unit in the left-hand list, and navigate to the Performance tab, select 4 in the Threads for decoding (MPEG-1/2 and H.264 only) spinbox, and auto-copy in the Hardware decoding dropdown. Next, click on the Network unit (in the left-hand list) and there, ensure the Support for video sites dropdown is set to mpv + youtube-dl, and in the Preferred quality section below that, choose 1080p (RPi3B/B+ users, or those with a slower Internet connection, may wish to select 720p instead). With that done, click OK to save the settings, and close smplayer. Note, although confusingly there are a set of resolution settings in smtube's GUI also, they will not affect playback of YouTube videos sent to smplayer, so you need to make the changes above to have these apply. The second step is (at your option) to add the new applications for this release (unless of course - which is not the default - you have the apps USE flag set for rpi-64bit-meta, in which case they will already have been pulled in during the genup run above). To do so, as root issue: pi64 ~ # emerge -v --noreplace net-analyzer/etherape net-analyzer/wireshark net-im/jitsi-meet-server Let this run to completion; if all is well the required packages should all be available as binaries, so this shouldn't take too long. Then add demouser (or your default user(s)) to the wireshark group: pi64 ~ # usermod -a -G wireshark demouser Adapt as appropriate for non-demouser accounts, of course. The third step is to switch the default mixer for the notification area volume control. To do so, right-click on the volume icon in the notification area (near to the clock) and select Preferences. In the dialog that opens click Status Icon in the left-hand list and then enter pavucontrol in the External mixer field, replacing any existing contents. Then click Close to dismiss the dialog. The fourth and final step is to insert a spacer at the far right-hand side of the top panel, to ensure the text stays visible. To do so, right-click in any unoccupied grey area of the top bar, and in the drop-down that appears, select Panel->Add New Items.... In the dialog that appears select Separator and click the Add button. A visible separator should not have appeared at the far right of the top panel. Right-click on this, and select Properties from the drop-down that appears, and select Transparent from the Style drop-down in the resulting dialog. Then click Close. And that's it: reboot one more time (to ensure everything has taken) and congratulations, you should be running v1.6.0! References ---------- [1] https://forums.gentoo.org/viewtopic-p-8467370.html#8467370 [2] https://wiki.gentoo.org/wiki/Sakaki's_EFI_Install_Guide/Building_the_Gentoo_Base_System_Minus_Kernel#using_dispatch_conf Release v1.5.4 -------------- This is a straightforward update release to v1.5.3. If you are already on v1.5.3, 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.4 functionality, so you may wish to just follow the manual route anyway). Changes in this release (see main project page for further details): * Added the media-video/smtube package. This provides a simple web-based front end allowing YouTube videos to be searched and selected, which are then handed off to media-video/smplayer for playback. This, in turn, is configured to use media-video/mpv under the hood, and can play (on an RPi4 with a fast Internet connection) 1080p videos at 30fps without glitching (it can use both v4l2m2m and MMAL endpoints for appropriate video types). (It would be nice if the vanilla firefox or chromium browsers could make straightforward use of the v4l2m2m codec endpoints, but they currently cannot, in any straightforward manner, so this tool at least provides an option for those wishing to watch hi-res video in the near term.) * Dropped the suggested use of distcc-pump from /etc/portage/make.conf, following Gentoo bug 702146. * Added a first cut build of bzt's usbimager program (lightweight alternative to Etcher). * Turned on anti-aliasing and full hinting for screen fonts by default. * Made switching keyboard layouts more straightforward, by adding the xfce-extra/xfce4-xkb-plugin into the top panel bar, and pre-populating two simple layouts (gb and us) in the config accessed via Applications->Settings->Keyboard, Layout tab. Also added xfce-extra/xfce4-kbsetup; this package installs a service, activated upon graphical login, which initialises the user's preferred keyboard layouts (if these have been set up), as Xfce does not do that correctly at the moment. * Upgraded the shipped kernels, to bcm{rpi3,2711}-kernel-bis-bin-4.19.106.20200225, and boot firmware, to sys-boot/rpi3-64bit-firmware-1.20200212. * Various minor ebuild tidy-ups. * All packages brought up-to-date against the Gentoo tree, as of 4 Mar 2020. So e.g., chromium bumped to 82.0.4068.4, firefox to 73.0.1, libreoffice to 6.3.5.2 etc. Upgrading from an Earlier Release of the Image ---------------------------------------------- Users downloading this v1.5.4 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.3 should follow the manual upgrade instructions to 1.5.3 below; the final step genup therein will actually bring you (most of the way) to v1.5.4 now. Once done, continue at the "Finalizing the upgrade" section, below. To upgrade manually (from v1.5.3), simply issue (working as root): 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 at https://wiki.gentoo.org/wiki/Sakaki's_EFI_Install_Guide/Building_the_Gentoo_Base_System_Minus_Kernel#using_dispatch_conf). Once that's done, verify you are on >=v1.5.4, by issuing: pi64 ~ # eix rpi-64bit-meta Finalizing the upgrade ---------------------- There are three small, final steps required to complete the upgrade to v1.5.4 (which genup cannot do for you). The first is to ensure that your copy of smplayer is correctly configured. To do so, select Applications->Multimedia->SMPlayer. When the application opens, select Options->Preferences. In the General unit (in the left-hand list), General tab (the preferences should open here by default), select Other... from the Multimedia engine: dropdown, and enter /usr/bin/mpv in the text box immediately to the right of this. Then, click on the Video tab, select gpu in the Output driver: dropdown, and turn on the Direct rendering and Double buffering checkboxes. Next, click on the Network unit (in the left-hand list) and there, ensure the Support for video sites: dropdown is set to Auto, and in the Options for YouTube section below that, choose 1080p in the Playback quality: dropdown (RPi3B/B+ users, or those with a slower Internet connection, may wish to select 720p instead), and select the Use adaptive streams (resolution up to 4K) checkbox. It is generally better to leave the Use 60fps if available checkbox unselected. With that done, click OK to save the settings, and close smplayer. Note, although confusingly there are a set of resolution settings in smtube's GUI also, they will not affect playback of YouTube videos sent to smplayer, so you need to make the changes above to have these apply. The second step is to ensure your keyboard layouts are correctly configured for the switcher plugin (which you will also need to add to the top panel, per instructions following). Begin by adding any necessary layouts. To do so, click Applications->Settings->Keyboard, select the Layout tab, uncheck Use system defaults, and then, in the Keyboard layout section, click on Add to insert the layouts you need to use. For example, as shipped, the v1.5.4 the image has English (UK) and English (US) layouts provisioned, but you should obviously choose whatever works for your locale. Do not add more than four layouts (or the switcher plugin will not work correctly). You can use the arrow keys to re-order the list (if you have more than one layout); the one at the top will be the default at session startup. Lastly, select Win+Space in the Change layout option drop-down (for conformance with the shipped version; you can of course follow your own preferences here too). This is the 'hotkey' you can use to cycle between your provisioned keyboard layouts on the fly. Once done, click on Close to dismiss the dialog. You can now add the keyboard layout switcher plugin into the top panel bar. To do so, right-click in an empty area of that bar, and in the context menu that appears, choose Panel->Add New Items.... In the dialog that appears, select the Keyboard Layouts item from the list (you may need to scroll down to see it), and click Add. A flag icon should appear in the panel, most likely at the far right of your screen. Right-click on this, choose Move, place the cursor where on the top panel bar you want the keyboard layout chooser to be, and left-click to place it. Then, right-click on the flag icon again, and this time select Properties from the drop-down menu. In the dialog that opens, choose (for conformance with the shipped image - you may of course choose your own settings as desired) System from the Show layout as: drop-down, Country from the Layout name: drop-down, and globally from the Manage layout: drop-down. Then click Close to save the settings. You should now be able to use your new keyboard layouts! If you have more than one, clicking on the switcher plugin in the top panel bar will cycle through them, or, you can also use the "change layout option" key-combo you set-up earlier (by default, if you have been following these instructions, that will be Windows KeySpace). The third and final step is to turn on font anti-aliasing. To do this, select Applications->Settings->Appearance, select the Fonts tab, and select the Enable anti-aliasing checkbox. Then, selectFull from the Hinting: dropdown menu. Tip: if you know the sub-pixel ordering of your display, select it in the eponymous dropdown in this dialog - it can materially improve the quality of your display. When done, click Close to exit the dialog. And that's it: congratulations, you should now be running v1.5.4! Release v1.5.3 -------------- This is a minor, bugfix release to v1.5.2. If you are already on v1.5.2, you can upgrade simply by running genup (or waiting for the automated weekly update to do this for you), and rebooting your system once complete. Users on releases earlier than v1.5.2 should follow the manual upgrade instructions to 1.5.2 below; the final genup step therein will actually bring you to v1.5.3 now. You can easily check your current version at any time, by issuing: demouser@pi64 ~ $ eix rpi-64bit-meta Changes in this release (see main project page for further details): * Updated the uploadable firmware file /lib/firmware/brcmfmac43455-sdio.bin (for the RPi3B+/4B's CYW43455 WiFi/BT chip) to match that provided by the Raspbian distribution (by adding their newer version of this file to the sys-firmware/brcm43430-firmware package, controlled by the 43455-fix USE flag, removing it from sys-kernel/linux-firmware, basis the same USE flag, and adding the 43455-fix USE flag to the default profile). This change will (hopefully) improve WiFi performance / stability meaningfully, particularly on the RPi4B (where, for some APs, the older driver was preventing association entirely). Thanks to haaldemir for reporting. * Bumped media-libs/raspberrypi-userland, as 6by9's pointer-wrangling PR#586 (64-bit userland MMAL) has now been tidied up and merged into raspberrypi-userland upstream. * Upgraded the shipped kernels, to bcm{rpi3,2711}-kernel-bis-bin-4.19.89.20191217. * Various minor ebuild tidy-ups. * All packages brought up-to-date against the Gentoo tree, as of 14 December 2019 (so e.g., sys-devel/clang is now at 9.0.1_rc2). Release v1.5.2 -------------- 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 [1]. * Added (preliminary!) MMAL 64-bit userland support, via the inclusion of 6by9's pointer-wrangling PR#586 [2] 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 [3]): * /usr/portage -> /var/db/repos/gentoo ($PORTDIR) * /usr/portage/distfiles -> /var/cache/distfiles ($DISTDIR) * /usr/portage/packages -> /var/cache/binpkgs ($PKGDIR) * /usr/local/portage/ -> /var/db/repos/ 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. * 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 Applications -> Settings -> RPi 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 at [4]). 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 [3] for further details). To do so, issue pi64 ~ # /etc/cron.weekly/fixup and wait for it to complete. Note: 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 [5]. 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/ -> /var/db/repos/ 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! References ---------- [1] https://www.raspberrypi.org/forums/viewtopic.php?p=1557653#p1557653 [2] https://github.com/raspberrypi/userland/pull/586 [3] https://www.raspberrypi.org/forums/viewtopic.php?p=1569964#p1569964 [4] https://wiki.gentoo.org/wiki/Sakaki's_EFI_Install_Guide/Building_the_Gentoo_Base_System_Minus_Kernel#using_dispatch_conf [5] https://raw.githubusercontent.com/sakaki-/genpi64-overlay/master/app-portage/weekly-genup/files/fixup-0009-migrate-portage-paths.sh Release v1.5.1 -------------- This is a bugfix release to v1.5.0. If you are already on v1.5.0, you can upgrade by following the instructions below (or wait for the automated weekly update to do this for you; note however, that due to a required genup upgrade during this process, it will take two weekly runs to fully update your system, so you may wish to follow the manual route anyway to speed things along). Changes in this release (see main project page for further details): * Fixed a pulseaudio problem that was causing glitchy audio playback on some systems (by setting tsched=0 in /etc/pulse/default.pa; credit: Darksky). Thanks to Gazzy for reporting. * Reversed a change to the default /boot/config.txt that was causing monitor autodetection problems for some users (hdmi_drive=2 was uncommented in v1.5.0, my fault ><). Thanks to Gavinmc42 for reporting / testing the fix. * Upgraded the shipped kernels, to bcm{rpi3,2711}-kernel-bis-bin-4.19.67.20190827, and boot firmware, to sys-boot/rpi3-64bit-firmware-1.20190819 (which inter alia should hopefully also solve a number of HDMI issues; thanks to derders and MamiyaOtaru for reporting). The shipped RPi4 kernel contains a PR which fixes a rather serious under-load WiFi problem for >1GiB systems (thanks to jfikar for reporting / testing, and also to pY4x3g for testing). * Changed the pyconfig_gen WiFi regulatory domain setup code, so that it also sets cfg80211 ieee80211_regdom via an entry in /etc/modprobe.d/ (the original iw reg set approach is retained also, but it is reportedly not sufficient in all locales). Thanks to Gazzy for suggesting. The combination of this fix and updated kernel should hopefully address the WiFi connection problems that some have reported on the RPi4 (thanks to roylongbottom for providing diagnostic information on this, and to Mrsell for testing). * Fixed an (unrelated) bug in pyconfig_gen, which prevents it starting up if the framebuffer display driver was specified (by omission of an vc4-{f,}kms-v3d entry in /boot/config.txt). * Improved the build settings for dev-lang/python, by adopting the Debian approach of using -O3 and turning on profile-guided optimisation. This should significantly improve performance of e.g. emerge. Thanks to ejolson for drawing the relatively poor Python performance on the v1.5.0 image to my attention, and to InBetweenNames for the pgo-enabled ebuilds. * Added python3_7 to PYTHON_TARGETS, and unmasked for arm64. Following upstream, retained python:3.6 as the default interpreter for now (although you can easily change this if you wish, via eselect python list / sudo eselect python set <...>). * Various minor ebuild tidy-ups (including the addition of USE-flag control for a number of RPi-specific patches e.g. rpi-v3d to media-libs/mesa etc.). * Split out the core USE-controlled package group in rpi-64bit-meta, into the new innercore and a now-reduced core. This is to allow a minimal image to be more easily specified. * All packages brought up-to-date against the Gentoo tree, as of 24 August 2019. Pi-Top Image EOL; CLI-Only 'Lite' Image Added --------------------------------------------- Unfortunately, I have had to drop support for the Pi-Top specific image as of this v1.5.1 release. My Pi-Top v1's hub has recently suffered a hardware failure, leaving me unable to charge the internal battery, or boot an RPi3 in its chassis. As such, I am unable to test this variant of the image going forward - and I am not comfortable releasing images I haven't tested myself. You should still be able to bring up the Pi-Top specific drivers by setting the pitop USE flag globally, and then re-emerging rpi-64bit-meta however. My apologies for the inconvenience to users on this platform >< On a happier note, as of v1.5.1, a 'lite' 64-bit Gentoo image is also provided. This contains only the innercore (see above) package set and @system set plus deps, and boots to a CLI. No desktop environment is provided by default, nor are any of the heavyweight applications (Chromium etc.) bundled. The same dual (-bis) kernels and Pi-specific startup services as the main image are used. Note that for ease of binhost maintenance, this image still derives from the custom (desktop) profile as the 'full-fat' version, and as such contains quite a few more packages than a truly minimal stage 4 would do. But hopefully it should still be a useful starting point for those who want to e.g. build up a headless server. Feedback welcome. Miscellaneous Hints ------------------- Updated EEPROM Firmware If you are using a Pi4, don't forget to update your EEPROM firmware; there's an official fix released (version 0137a8) that will allow your system to use ~300mW less power. For more information, please see https://www.raspberrypi.org/forums/viewtopic.php?p=1490467#p1490467. Pimoroni Fan SHIM If you are using the Pimoroni Fan SHIM with your RPi4, note that you can easily have it turn on and off in a temperature-controlled manner. To do so, simply add the following to /boot/config.txt: dtoverlay=gpio-fan,gpiopin=18,temp=65000 The temp parameter controls the point at which the fan comes on (in the above, 65°C). Adapt as appropriate. The driver has a built-in 10°C hysteresis, so using the parameters above for example, it will switch off again at 55°C automatically. Thanks to PeterO for the hint. Upgrading from an Earlier Release of the Image ---------------------------------------------- Users downloading this v1.5.1 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.0 should follow the manual upgrade instructions to 1.5.0 below; the final step genup therein will actually bring you to v1.5.1 now. To upgrade manually (from v1.5.0), 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. Once that's done, verify you are on >=v1.5.1, by issuing: pi64 ~ # eix rpi-64bit-meta Release v1.5.0 -------------- This release marks a significant milestone for the project, as the RPi4 is now supported (in addition to the RPi3 model B and B+, which remain supported too). If you would like to upgrade an existing, older version of this image to v1.5.0 (rather than just downloading and using the latest v1.5.0 image directly), please see below. Thanks to rapid upstream progress on aarch64 kernel work for the new board, there are surprisingly few compromises required when running the Pi4 under a 'pure' 64-bit OS such as this one. Specifically, for the Pi4 in this 1.5.0 release: * V3D graphics acceleration is supported in X under vc4-fkms-v3d / Mesa; * the full 4GiB complement of memory is usable (if you are lucky enough to own a top-of-the-line model, that is ^-^); * the V4L2 M2M video codecs and optional plug-in camera module are both usable; * use of dual HDMI displays is supported; * Bluetooth, fast Ethernet, and dual-band WiFi work. Changes in this release (see main project page for further details): * Ground-up recompiled all software on the image (userland and kernel) using march=armv8-a+crc -mtune=cortex-a72 -O2 CFLAGS, meaning it should be optimized for the out-of-order execution provided by the newer Pi4's Cortex-A72 SoC, while still retaining backwards compatibility with the older RPi3 B/B+'s Cortex-A53. * Changed the project's GitHub name, from gentoo-on-rpi3-64bit to gentoo-on-rpi-64bit, to reflect the fact that the RPi4 is now also supported. Thanks to the way GitHub does things, people trying to find the old project should be automagically redirected to the renamed version. My bad in choosing an over-limiting moniker first time >< * Updated the RPi3 kernel (from the bcmrpi3-kernel-bis weekly autobuild) to version 4.19.66.20190816. * Added an additional kernel (from the bcm2711-kernel-bis weekly autobuild). This second kernel is used when booting the RPi4, lives at /boot/kernel8-p4.img, and is a tweaked version, as the name suggests, of a completely separate configuration: bcm2711_defconfig, as opposed to bcmrpi3_defconfig. The two kernels have distinguished release names, and so separate subdirectories in /lib/modules, but as they are built together, they share a common kernel tree tip commit. The kernel version used in this release includes (on the bcm2711 build) the recently-upstreamed PR#3144 (which allows the full 4GiB of RAM to be used, where present) and PR#3063 (which enables the use of V3D acceleration on the Pi4). The two kernels have auto-generated ebuilds by which they are installed: sys-kernel/bcmrpi3-kernel-bis-bin and sys-kernel/bcm2711-kernel-bis-bin, respectively. * Boot firmware updated to sys-boot/rpi3-64bit-firmware-1.20190718, and userland libraries to media-libs/raspberrypi-userland-1.20190808 (for dual-monitor aware tvservice utility etc.) * Size of the boot partition on the image expanded, from 63MiB to 255MiB, to accommodate the new dual-kernel setup just described (required for RPi3/4 booting). * Added dev-lang/go (it's been the most frequently requested package), and (an arm64 Pi4 patched version of) dev-libs/pigpio (for easy control of GPIOs) to the core package set. * Added sys-block/gparted (for disk management), net-misc/xorgxrdp and net-misc/tigervnc[server] (for remote access), media-sound/pavucontrol for pulseaudio (also made this a default USE flag), and x11-misc/arandr (for multi-screen layouts) to the xfce package set. (Also modified the arandr ebuild to add a login service that auto-loads layouts saved to ~/.screenlayout/default.sh). * Added app-office/abiword to the apps set (a lighter alternative to libreoffice writer - which remains bundled too - that some may prefer). * Included a slightly tweaked media-libs/mesa to allow v3d acceleration on the RPi4. Standard vc4 acceleration on the RPi3 is still supported. * Updated the pyconfig_gen application (found at Settings->RPi Config Tool): now supports configuring a second monitor (on the Pi4), and also setting the WiFi regulatory domain (RPi3/4). A simple overclocking "manettino" ^-^ for the Pi4 is also provided (all permitted settings should be warranty-safe, per RPF advice, but use at your own risk!). * Updated the media-video/pi-ffcam "camera live view" applet to work with the Pi4 (found in the Multimedia menu). * Also updated the media/video/pi-ffplay application for the Pi4 (again found in the Multimedia menu, this is a trivial app to illustrate accessing the Pi 3/4's hardware video codecs via v4l2m2m). * Moved 6by9's patches to media-video/ffmpeg (upon which the two apps above rely) forward to version 4.1.4, as these don't seem to be upstream yet. * Tidied up a number of boot-time services for RPi4 compatibility (e.g., x11-misc/rpi3-safecompositor etc.). Note that for simplicity I have not renamed these, so please don't disable or remove services just because their name starts with rpi3- (as for the most part, they still do something useful on an RPi4 too!). * I did change the name of the main repo used by the image though, from rpi3 to genpi64, and migrated the custom profile too. * Version bumped sys-boot/rpi3-boot-config, to update the baseline /boot/config.txt file for use with the Pi4 (while still retaining compatibility with the Pi3B/B+). * Renamed the master meta-package, from rpi3-64bit-meta to rpi-64bit-meta. * Added LLVM_TARGETS="WebAssembly BPF" (in addition to the default AArch64), to allow dev-lang/rust to be built with the wasm USE flag. * Various minor ebuild tidy-ups. * All packages brought up-to-date against the Gentoo tree, as of 10 August 2019 (which means e.g., www-client/firefox-68.0.1, www-client/chromium-76.0.3809.87-r1, app-office/libreoffice-6.3.0.4 etc. are bundled). Notes and Caveats ----------------- Updated EEPROM Firmware If you are using a Pi4, don't forget to update your EEPROM firmware; there's an official fix released that will allow your system to use ~300mW less power. For more information, please see https://www.raspberrypi.org/forums/viewtopic.php?p=1490467#p1490467. USB Shortcomings As this release comes early in the lifecycle of the RPi4, expect to find a number of bugs and issues with it! In particular, one major issue, (due, as I understand it, per this post by 6by9, to a lack of FIQ fast interrupt handling on aarch64) is that isochronous transfers over USB are likely to be pretty bad in 64-bit compared to 32-bit. For example, USB webcams etc will drop frames (bulk transfers, as you might get e.g. when copying large files to and from a storage device, work fine on USB under 64-bit however; as do low-speed peripherals such as mice and keyboards). Upgrading from an Earlier Release of the Image ---------------------------------------------- Users downloading this v1.5.0 image directly can of course omit the instructions below; as all settings have been correctly set up for you already. Users on earlier releases who wish to manually upgrade should follow the manual upgrade instructions to 1.4.2 below; the final step genup therein will actually do most of the work of getting you to v1.5.0. However, as v1.5.0 has a dual-kernel setup (to allow booting on the RPi4, which has a significantly different SoC to the RPi3), you next need to expand your boot partition, and then switch meta-package, to complete the upgrade. Let's begin by expanding the boot partition. On v1.4.2 and earlier, this is 63MiB in capacity, which is insufficient for a dual kernel system (something I should have anticipated, apologies ><). Since the root and boot (filesystems') partitions directly abut in v1.4.2, you need first to shrink, and then move forward, the root partition (and filesystem); and then expand the boot partition (and filesystem) to fill the space thus freed up. I recommend using the FOSS gparted graphical tool to do carry out these tasks - it is much less error-prone than using the command line. Begin by backing up your current Gentoo microSD card, then insert it into a Linux PC and run gparted (it is available in most distros). Select the second (root) partition of your card, and elect to shrink and move it, so it has 193MiB of preceding space. Then, select the first (boot) partition, and elect to expand it, from 63 to 256 Mib, with 0 space before and after (the tool will probably change its size to 255MiB automatically, to preserve alignment). Commit the operations, and wait for them to conclude (it may take up to half an hour or so). Once done, boot your image (on an RPi3) to ensure it is still functional, and check the amount of free space on /boot, using df -h. If all looks good, you can proceed to migrate to the new metapackage. Since you have just genup-ed, your overlays will be up-to-date, so now (working as root at your RPi3, booted into the image), issue: pi64 ~ # emerge -v --nodeps dev-embedded/rpi-64bit-meta We use --nodeps here, as we need both metapackages around at the same time for the next step. Next, copy across any uncommented custom settings from /etc/portage/package.use/rpi3-64bit-meta to /etc/portage/package.use/rpi-64bit-meta (being sure to change any references to rpi3-64bit-meta to rpi-64bit-meta when you do). Note that for most users, this will be a no-op, as all lines in /etc/portage/package.use/rpi3-64bit-meta will be commented, as originally shipped, but it is always best to check. Once done, remove the old metapackage from your @world set; issue: pi64 ~ # emerge --deselect dev-embedded/rpi3-64bit-meta With that, you're all set to finalize the upgrade. To do so, simply run: pi64 ~ # emaint sync --repo sakaki-tools pi64 ~ # emerge -v --oneshot --update app-portage/genup pi64 ~ # genup Let this run to completion. Once done, run: pi64 ~ # dispatch-conf to review any modified configuration files. Pay particular attention to /boot/config.txt, as the distributed version of this file contains changes that are critical to booting successfully on the RPi4 (if you haven't made any changes to this file, dispatch-conf will silently upgrade it: however, many users will have changed it, either directly or via the pyconfig_gen application, in which case the utility will ask you what to do). If in doubt, press u when prompted, to use the new copy of the file. Once that's done, issue: pi64 ~ # ls /boot/kernel8* and you should see that you now have a kernel8-p4.img (the Pi4 kernel) installed, as well as the more usual kernel8.img (the Pi3 kernel) in place. And, if you run: pi64 ~ # eix -I dev-embedded/rpi-64bit-meta you should see that you have >= v1.5.0 installed. If so, congratulations, your upgrade is complete! You can now try booting your image on an RPi4 if you like ^-^ Good luck! Release v1.4.2 -------------- This release is a straightforward update to v1.4.1. Changes in this release (see main project page for further details): * Kernel updated, to sys-kernel/bcmrpi3-kernel-bis-bin-4.19.49.20190611). Fixes some Bluetooth issues experienced with the prior 4.19 kernel, and adds POE fan and (built-in) btrfs support. * Per email request from @iugamarian, added the following applications to the image: media-video/mpv net-p2p/transmission sys-fs/ncdu app-misc/mc * Various minor ebuild tidy-ups. * All packages brought up-to-date against the Gentoo tree, as of UTC EOD 12 June 2019 (which means e.g., www-client/firefox-67.0, www-client/chromium-74.0.3729.169-r1, app-office/libreoffice-6.2.4.2 etc. are bundled). Upgrading from an Earlier Release of the Image ---------------------------------------------- Users downloading this v1.4.2 image directly can of course omit the instructions below; as all settings have been correctly set up for you already. Users on earlier releases who wish to manually upgrade should follow the manual upgrade instructions to v1.4.1 below; the final step genup therein will actually bring you to a baseline v1.4.2 now. If you are already on v1.4.1, simply run sudo genup to reach a baseline v1.4.2. Then, continue reading as below. You can easily check your current version at any time, by issuing: demouser@pi64 ~ $ eix rpi3-64bit-meta Once the baseline upgrade is done, at your option add in the newly supported applications, by issuing: demouser@pi64 ~ $ sudo emerge -v media-video/mpv net-p2p/transmission sys-fs/ncdu app-misc/mc Next, ensure that the hardware real-time-clock (RTC) service is disabled; the RPi3 does not have the corresponding hardware device, and although harmless, this service causes annoying error messages at boot. Issue: demouser@pi64 ~ $ sudo rc-update del hwclock boot Then, be sure that you merge all configuration file updates. To do so, issue: demouser@pi64 ~ $ sudo dispatch-conf and follow the prompts (if you haven't modified this particular file yourself, the changes will already have happened, but if you have changed it, dispatch-conf will ask you what to do). Finally, be sure to reboot once the above upgrade process is complete, as a new kernel is installed during the process. Release v1.4.1 -------------- This is a minor, bugfix release to v1.4.0 (itself described further below). If you are already on v1.4.0, you can upgrade simply by running genup (or wait for the automated weekly update to do this for you). Users on releases earlier than v1.4.0 should follow the "Upgrading from an Earlier Release of the Image" instructions to 1.4.0 below; the final step genup therein will actually bring you to v1.4.1 now. You can easily check your current version at any time, by issuing: demouser@pi64 ~ $ eix rpi3-64bit-meta Changes in this release (see main project page for further details): * Upgraded the bundled chromium web browser, to www-client/chromium-72.0.3626.121-r1; this version fixes the serious CVE-2019-5786 bug (thanks to cjan for pointing this out), and also a problem that was preventing videos playing correctly on YouTube. * Made the boot-time services rpi3-spidev and rpi3-i2cdev core dependencies of rpi3-64bit-meta, so they are always installed, and also modified the rpi3-i2cdev service, so it only loads the relevant kernel module if I2C is turned on in /boot/config.txt. Fixes an issue where turning I2C on in the pyconfig_gen application was not sufficient to have it enabled after reboot. Thanks to procount for reporting. * Various minor ebuild tidy-ups. * All packages brought up-to-date against the Gentoo tree, as of 19 February 2019 (with the exception of chromium, which has been backported to address a serious security concern; as noted above). Release v1.4.0 -------------- This release is a significant update to v1.3.1 as, leveraging the hard work by the RPF's 6by9 and others on the rpi-4.19.y kernel, use of the Pi's camera module, and the Pi's hardware video codecs are now both supported! [1] If you would like to upgrade an existing, older version of this image to v1.4.0 (rather than just downloading and using the latest v1.4.0 image directly), please see below. Changes in this release (see main project page for further details): * Kernel migrated to rpi-4.19.y (sys-kernel/bcmrpi3-kernel-bis-bin-4.19.25.20190226). As just noted, this represents a significant upgrade, as a number of features (such as v4l2 m2m codec support) are only available in 4.19, and will not (aiui) be backported to 4.14. The boot firmware was also updated to sys-boot/rpi3-64bit-firmware-1.20190213, and the userland libraries to media-libs/raspberrypi-userland-1.20190114. * Thanks to advice and patches from the RPF's 6by9, added a version of ffmpeg that can both access the Pi's v4l2 camera (via /dev/video0) and access the Pi's hardware video codec capabilities, via v4l2 m2m (memory-to-memory) interfaces at /dev/video{10,11,12}. The h264_v4l2m2m, mpeg4_v4l2m2m, and (if you have purchased a license key) mpeg2_v4l2m2m codecs all currently work from 64-bit userland. (Note, I have primarily tested decoding, as that is relevant for video playback, but these endpoints should support hw-based encoding too (for h264 and mpeg4, anyhow).) * Added (via USE flag on media-plugins/gst-plugins-meta) the necessary additional gstreamer library, to allow it to also access the v4l2 m2m endpoints (media-plugins/gst-plugins-v4l2-1.14.4). * Added the pi-ffcam app, a trivial [2] 'live viewer' for the Pi camera module v1/v2 (available under the Multimedia menu). This streams an h264-encoded live video feed from the camera, decodes it using h264_v4l2m2m (i.e., a hardware codec, just for fun ^-^), and then displays the output in an SDL desktop window. It is built on ffmpeg / ffplay. Note that due to buffering, the stream has around a 1s lag. (Also note that you wouldn't build a 'real' live view app like this of course; it's main purpose is to provide confidence that the various interfaces are working.) * The media-tv/v4l-utils package is also included; this provides an app (Applications -> Multimedia -> V4L2 test Utility) that may also be used (inter alia) to live-view the camera (although I have found its GL output to be unreliable). * Added the pi-ffplay app, a trivial [2] video player that can utilize the Pi's built-in hardware codecs just described, for h264, mpeg4, and - if you have purchased the license - mpeg2. It may also be found under the Multimedia menu. The app prompts for a video to play, attempts to probe its video stream type, and plays it, forcing (where possible) an appropriate v4l2 m2m hardware codec (stream decode only; actual blit of the rendered bitmaps to the window is still via the regular pipeline). This uses the standard ffplay underneath, so consult its manpage for details (double-click to toggle full screen etc.) If the video contains an audio track, this will be played also. Unfortunately, the other bundled video playback apps (VLC, Kodi, and SMPlayer) do not yet leverage the m2m codec paths by default - at least, not in the versions currently provided. If you know how to make them do this (either by preference file, USE flag or patching) please let me know! It is a similar case (at the moment) for the bundled Firefox and Chromium browsers (the latter can use v4l2 m2m, but only in an ozone context right now). That's a shame - files like http://jell.yfish.us/media/jellyfish-50-mbps-hd-h264.mkv (1920x1080 50Mbps) choke the RPi3 (even B+) under software rendering, but display relatively smoothly when using the v4l2 m2m codecs (you can easily try for yourself, just download the file and try playing it with e.g. VLC or SMPlayer (the latter does the better job), then try again with ff-play). But as making the connection (particularly where ffmpeg or gstreamer are used 'under the hood') is a relatively straightforward matter, these facilities will hopefully be added in relatively short order. * The default GPU memory setting in /boot/config.txt has been increased, to 128 MiB from the prior (de minimis) 16 MiB. Per 6by9 and my own empirical tests, this should be sufficient to permit both camera and v4l2 m2m codec use simultaneously, for most use cases. The camera interface has also been selected by default (start_x=1). NB: if you do not need to use the codecs (or camera) please feel free to revert these settings (memory being a precious resource on the RPi3!). * The pyconfig_gen application has been updated; it now allows setting of gpu_mem, and selection of the camera interface (start_x=1). * Although I have elected to stay with fkms in this release, for regular RPi3 users, 'true' kms (vc4-kms-v3d) should prove an entirely viable option now (and this can easily be selected via the pyconfig_gen application); I have one system that has been running this for weeks now, and it seems very usable (and exhibits maybe 5-10% more GL bandwidth relative to an fkms system, when compared on a like-for-like, no-display-manager-compositing basis). Please note that under vc4-kms-v3d, window manager compositing should be turned off to prevent periodic 'stalling' of the GUI, and so I have modified the existing rpi3-safecompositor service to do this automatically. For avoidance of doubt, fkms - the shipped default - is unaffected. * Various minor ebuild tidy-ups. * All packages brought up-to-date against the Gentoo tree, as of 19 February 2019 (which means e.g., www-client/firefox-65.0.1, www-client/chromium-72.0.3626.96-r1, app-office/libreoffice-6.1.5.2 etc. are bundled). Upgrading from an Earlier Release of the Image ---------------------------------------------- Users downloading this v1.4.1 image directly can of course omit the instructions below; as all settings have been correctly set up for you already. Users on earlier releases who wish to manually upgrade should follow the manual upgrade instructions to 1.3.1 provided on the project's Releases page on GitHub; the final step genup therein will actually bring you to a baseline v1.4.0 now. You can easily check your current version at any time, by issuing: demouser@pi64 ~ $ eix rpi3-64bit-meta Once upgraded, be sure that you merge all configuration file updates; in particular, this release contains changes to /boot/config.txt (supplied by the sys-boot/rpi3-boot-config package) which must be accepted to use the RPi3's hardware video codecs, and (optional) camera module. To do so, issue: demouser@pi64 ~ $ sudo dispatch-conf and follow the prompts (if you haven't modified this particular file yourself, the changes will already have happened, but if you have changed it, dispatch-conf will ask you what to do). Notes ----- [1] There's still no 64-bit userland MMAL just yet, but things are getting closer; in any event, hardware video codec access is one of the big reasons people wanted MMAL ported to 64-bit in the first place, so getting access to this facility via the v4l2 m2m endpoints instead will obviate the need for it, in many cases ^-^ [2] Once ffmpeg has the necessary v4l2 m2m codec support built in (which the version on the image has) then exploiting these features from the command line is trivial - see for example the CLI 'recipes' in this project's open wiki. sakaki@deciban.com