2015-03-21

The Brave New World of Boot Guard and Secure Boot

Following the news that PC manufacturers have started to use Intel Boot Guard, a technology designed to prevent the installation of modified or custom firmware like coreboot, we now learn that Microsoft may drop the requirement of Secure Boot deactivatability from the Windows 10 Logo guidelines. This collusion between Microsoft and Intel in allowing only vendor signed code during early boot potentially affects all new computers which come with Windows 10 preinstalled.

It means that in a pessimistic scenario, the only thing that stands between Microsoft (or anybody else with access to the infrastructure) being able to disable millions of Linux computers on a whim by blacklisting their bootloader signatures, may be the ability to install user keys in the UEFI key storage. Computer owners would have no other way to defend against this.

It is probably time to familiarize yourself with the procedure to do Secure Boot with your own keys. At least this remains possible, for now.

2015-02-05

Which should be the default in Gentoo, ffmpeg or libav?

There has recently been a discussion among developers about the default choice of ffmpeg/libav in Gentoo. Until recently, libav was the default implicitly by being the first dependency of virtual/ffmpeg. Now the choice has been made explicit to libav in the portage profiles, and a news item regarding this was published.

In order to get a data point which might be useful for the discussion, I have created a poll in the forum, where Gentoo users can state their preference about the default:

https://forums.gentoo.org/viewtopic-t-1010096.html

You are welcome to vote in the poll, and if you wish also state your reasons in a comment. However, as the topic of ffmpeg/libav split has been discussed extensively already, I ask you to not restart that discussion in the forum thread.

2013-04-06

New mesa features for the adventurous: Radeon UVD and Gallium3D HUD

Those of you who don't live under a rock will have learned by now that AMD has published VDPAU code to use the Radeon UVD engine for accelerated video decode with the free/open source drivers.

In case you want to give it a try, mesa-9.2_pre20130404 has been added (under package.mask) to the portage tree for your convenience. Additionally you will need a patched kernel and new firmware.

Kernel

For kernel 3.9, grab the 10 patches from the dri-devel mailing list thread (recommended) [UPDATE]I put the patches into a tarball and attached to Gentoo bug 466042[/UPDATE]. For kernel 3.8 I have collected the necessary patches here, but be warned that kernel 3.8 is not officially supported. It works on my Radeon 6870, YMMV.

Firmware

The firmware is part of radeon-ucode-20130402, but has not yet reached the linux-firmware tree. If you require other firmware from the linux-firmware package, remove the radeon files from the savedconfig file and build the package with USE="savedconfig" to allow installation together with radeon-ucode. [UPDATE]linux-firmware-20130421 now contains the UVD firmware, too.[/UPDATE]

The new firmware files are
radeon/RV710_uvd.bin: Radeon 4350-4670, 4770.
radeon/RV770_uvd.bin: Not useful at this time. Maybe later for 4200, 4730, 4830-4890.
radeon/CYPRESS_uvd.bin: Evergreen cards.
radeon/SUMO_uvd.bin: Northern Islands cards and Zacate/Llano APUs.
radeon/TAHITI_uvd.bin: Southern Islands cards and Trinity APUs.

Testing it

If your kernel is properly patched and finds the correct firmware, you will see this message at boot:
[drm] UVD initialized successfully.
If mesa was correctly built with VDPAU support, vdpauinfo will list the following codecs:
Decoder capabilities:

name               level macbs width height
-------------------------------------------
MPEG1                16 1048576 16384 16384
MPEG2_SIMPLE         16 1048576 16384 16384
MPEG2_MAIN           16 1048576 16384 16384
H264_BASELINE        16  9216  2048  1152
H264_MAIN            16  9216  2048  1152
H264_HIGH            16  9216  2048  1152
VC1_SIMPLE           16  9216  2048  1152
VC1_MAIN             16  9216  2048  1152
VC1_ADVANCED         16  9216  2048  1152
MPEG4_PART2_SP       16  9216  2048  1152
MPEG4_PART2_ASP      16  9216  2048  1152
If mplayer and its dependencies were correctly built with VDPAU support, running it with "-vc ffh264vdpau," parameter will output something like the following when playing back a H.264 file:
VO: [vdpau] 1280x720 => 1280x720 H.264 VDPAU acceleration
To make mplayer use acceleration by default, uncomment the [vo.vdpau] section in /etc/mplayer/mplayer.conf

Gallium3D Head-up display

Another cool new feature is the Gallium3D HUD (link via Phoronix), which can be enabled with the GALLIUM_HUD environment variable. This supposedly works with all the Gallium drivers (i915g, radeon, nouveau, llvmpipe).

An example screenshot of Supertuxkart using GALLIUM_HUD="cpu0+cpu1+cpu2:100,cpu:100,fps;draw-calls,requested-VRAM+requested-GTT,pixels-rendered"

If you have any questions or problems setting up UVD on Gentoo, stop by #gentoo-desktop on freenode IRC.

2012-10-21

Gentoo on the OLPC XO-1.75

Currently at the Gentoo Miniconf 2012 in Prague, we have two OLPC XO-1.75 devices and are working to install Gentoo on them.

These XO-1.75 is based on the Marvell Armada 610 SoC (armv7l, non-NEON), which promises countless hours of fun enumerating and obtaining obscure pieces of software which are needed to make the laptop work.

One of these is the xf86-video-dove DDX for the Vivante(?) GPU: The most recent version 0.3.5 seems to be available only as SRPM in the OLPC rpmdropbox. Extracting it reveals a "source" tarball containing this:

.:
total 1364
-rw-r--r-- 1 chithanh users 423968 12. Sep 14:39 aclocal.m4
drwxr-xr-x 1 chithanh users     80 12. Sep 14:39 autom4te.cache
-rwxr-xr-x 1 chithanh users    981 12. Sep 14:37 build_no_dpkg_env.sh
-rw-r--r-- 1 chithanh users      0 12. Sep 14:37 ChangeLog
lrwxrwxrwx 1 chithanh users     37 12. Sep 14:39 config.guess -> /usr/share/automake-1.12/config.guess
-rw-r--r-- 1 chithanh users   2120 12. Sep 14:40 config.h
-rw-r--r-- 1 chithanh users   1846 12. Sep 14:40 config.h.in
-rw-r--r-- 1 chithanh users  43769 12. Sep 14:40 config.log
-rwxr-xr-x 1 chithanh users  65749 12. Sep 14:40 config.status
lrwxrwxrwx 1 chithanh users     35 12. Sep 14:39 config.sub -> /usr/share/automake-1.12/config.sub
-rwxr-xr-x 1 chithanh users 440014 12. Sep 14:40 configure
-rw-r--r-- 1 chithanh users   2419 12. Sep 14:37 configure.ac
-rwxr-xr-x 1 chithanh users   1325 12. Sep 14:37 COPYING
drwxr-xr-x 1 chithanh users    262 12. Sep 14:37 debian
lrwxrwxrwx 1 chithanh users     32 12. Sep 14:39 depcomp -> /usr/share/automake-1.12/depcomp
drwxr-xr-x 1 chithanh users    252 12. Sep 14:37 etc
drwxr-xr-x 1 chithanh users     44 12. Sep 14:37 fedora
lrwxrwxrwx 1 chithanh users     35 12. Sep 14:39 install-sh -> /usr/share/automake-1.12/install-sh
-rwxr-xr-x 1 chithanh users 293541 12. Sep 14:40 libtool
lrwxrwxrwx 1 chithanh users     35 12. Sep 14:39 ltmain.sh -> /usr/share/libtool/config/ltmain.sh
-rw-r--r-- 1 chithanh users  27005 12. Sep 14:40 Makefile
-rw-r--r-- 1 chithanh users   1167 12. Sep 14:37 Makefile.am
-rw-r--r-- 1 chithanh users  25708 12. Sep 14:40 Makefile.in
drwxr-xr-x 1 chithanh users     76 12. Sep 14:40 man
lrwxrwxrwx 1 chithanh users     32 12. Sep 14:39 missing -> /usr/share/automake-1.12/missing
-rw-r--r-- 1 chithanh users   4169 12. Sep 14:37 README
drwxr-xr-x 1 chithanh users   1192 12. Sep 21:48 src
-rw-r--r-- 1 chithanh users     23 12. Sep 14:40 stamp-h1

src/:
total 688
-rw-r--r-- 1 chithanh users   3555 12. Sep 14:41 compat-api.h
-rw-r--r-- 1 chithanh users    805 12. Sep 14:37 datatypes.h
-rw-r--r-- 1 chithanh users  55994 12. Sep 21:22 dovefb.c
-rw-r--r-- 1 chithanh users  32160 12. Sep 15:11 dovefb_cursor.c
-rw-r--r-- 1 chithanh users    278 12. Sep 17:09 dovefb_cursor.lo
-rw-r--r-- 1 chithanh users   6052 12. Sep 14:41 dovefb_driver.h
-rw-r--r-- 1 chithanh users    974 12. Sep 17:09 dovefb_drv.la
-rw-r--r-- 1 chithanh users  13856 12. Sep 14:37 dovefb.h
-rw-r--r-- 1 chithanh users    264 12. Sep 17:09 dovefb.lo
-rw-r--r-- 1 chithanh users 128733 12. Sep 15:11 dovefb_xv.c
-rw-r--r-- 1 chithanh users    270 12. Sep 17:09 dovefb_xv.lo
-rw-r--r-- 1 chithanh users   2548 12. Sep 14:53 list.h
-rw-r--r-- 1 chithanh users  22242 12. Sep 17:08 Makefile
-rw-r--r-- 1 chithanh users   2121 12. Sep 14:37 Makefile.am
-rw-r--r-- 1 chithanh users   2134 12. Sep 14:37 Makefile.am.sw
-rw-r--r-- 1 chithanh users  21742 12. Sep 14:40 Makefile.in
-rw-r--r-- 1 chithanh users  18584 12. Sep 15:11 mrvl_crtc.c
-rw-r--r-- 1 chithanh users    856 12. Sep 14:37 mrvl_crtc.h
-rw-r--r-- 1 chithanh users    270 12. Sep 17:09 mrvl_crtc.lo
-rw-r--r-- 1 chithanh users    851 12. Sep 14:37 mrvl_cursor.h
-rw-r--r-- 1 chithanh users   2509 12. Sep 15:11 mrvl_debug.c
-rw-r--r-- 1 chithanh users   2284 12. Sep 14:37 mrvl_debug.h
-rw-r--r-- 1 chithanh users    272 12. Sep 17:09 mrvl_debug.lo
-rw-r--r-- 1 chithanh users  32528 12. Sep 15:11 mrvl_edid.c
-rw-r--r-- 1 chithanh users   5794 12. Sep 14:37 mrvl_edid.h
-rw-r--r-- 1 chithanh users    270 12. Sep 17:09 mrvl_edid.lo
-rw-r--r-- 1 chithanh users  84262 12. Sep 17:07 mrvl_exa_driver.c
-rw-r--r-- 1 chithanh users    282 12. Sep 17:09 mrvl_exa_driver.lo
-rw-r--r-- 1 chithanh users  10388 12. Sep 15:11 mrvl_exa_fence_pool.c
-rw-r--r-- 1 chithanh users    290 12. Sep 17:09 mrvl_exa_fence_pool.lo
-rw-r--r-- 1 chithanh users   9189 12. Sep 14:51 mrvl_exa.h
-rw-r--r-- 1 chithanh users   4258 12. Sep 14:37 mrvl_exa_profiling.h
-rw-r--r-- 1 chithanh users  46583 12. Sep 15:11 mrvl_exa_utils.c
-rw-r--r-- 1 chithanh users   3768 12. Sep 15:06 mrvl_exa_utils.h
-rw-r--r-- 1 chithanh users    280 12. Sep 17:09 mrvl_exa_utils.lo
-rw-r--r-- 1 chithanh users  20622 12. Sep 15:11 mrvl_heap.c
-rw-r--r-- 1 chithanh users   3256 12. Sep 14:53 mrvl_heap.h
-rw-r--r-- 1 chithanh users    270 12. Sep 17:09 mrvl_heap.lo
-rw-r--r-- 1 chithanh users   1774 12. Sep 15:11 mrvl_offscreen_memory.c
-rw-r--r-- 1 chithanh users    235 12. Sep 14:37 mrvl_offscreen_memory.h
-rw-r--r-- 1 chithanh users    294 12. Sep 17:09 mrvl_offscreen_memory.lo
-rw-r--r-- 1 chithanh users  47286 12. Sep 15:11 mrvl_output.c
-rw-r--r-- 1 chithanh users    274 12. Sep 17:09 mrvl_output.lo

More pictures of the Gentoo Miniconf can be found at the Google+ Event page.

2012-06-08

xorg-server-1.12 going stable

It is time for xorg-server-1.12 to go stable in bug 419473. If you want to help testing, run the awk command

# awk '/YOURARCHHERE/ {print "="$1}' x11_stable.list > x11_stable.keywords

on the stabilization list attached to the bug, and add the result to /etc/portage/package.accept_keywords (or package.keywords if you are still using the legacy location).

After the xorg-server upgrade, do not forget to rebuild all x11-drivers. If you find a regression, please report a bug (if none already exists) and make it block bug 419473.

In related news, our current x11-drivers/ati-drivers maintainer Enrico Tagliavini is going to step down, as support for his notebook was dropped by AMD in version 12.6. Enrico has done an excellent job maintaining the package and we thank him very much for his work.
If you care about this package and like writing ebuilds, please come to #gentoo-desktop on irc.freenode.net and contact the x11 team.