Restricted formats
In some jurisdictions, patents on algorithms apply and royalty payments may be required. Examples include MP3, and MPEG-4. This is a particular nuisance for media players, for which many of the common codecs algorithms are patented. In other jurisdictions, software patents do not apply and there are usually freely available implementations for these algorithms available.
Sometimes, as in Adobe Flash®, or the Real Helix® player there are free (as in beer) implementations available, where those corporations have paid these patent royalties and made usually (binary) versions of codecs available. This has direct consequences as OLPC does not want to burden all machines with payment of what may be unnecessary duplicate patent royalties: OLPC must therefore leave the customization of the distribution for these formats for "in country". For jurisdictions in which such patent laws apply, there are now solutions such as those sold by Fluendo to these issues.
The Flash format (whether Adobe's Flash 9 or Gnash) illustrates this problem well; even though we include Gnash, we distribute a build that does not have support for MP3 or MPEG-4; you may rebuild Gnash to include these codecs.
Instructions for installing software for dealing with web-based multimedia such as Flash and Java applets using proprietary players or codecs are found below. You use the Terminal activity to install these tools.
MP3
Fluendo has made available a free (as in beer) MP3 codec, with a free (as in speech) implementation, with a paid up license for the Gstreamer code framework. This requires execution of a license agreement for redistribution; unfortunately, the agreement does not permit sub-licensing, so while including it would be convenient and OLPC may choose to execute this agreement in the future, those redistributing our software would still have to execute this agreement to legally redistribute the codec. (According to Thomson's MP3 licensing page, "no license is needed" for private or non-revenue-generating activities. This should be sufficient for our software distributors, but IANAL.)
In order to download the codec you have to "check out" the Fluendo mp3 decoder from their store for $0.00. You are then allowed to download the file fluendo-mp3-2.i386.tar.bz2
For more info, see the Fluendo mp3 decoder page. Also see the talk page for more options.
Rebuilding Gnash for MP3 and MPEG-4 support
When configuring Gnash, use the following option:
./configure --enable-media=ffmpeg
Adobe Flash
From the Terminal activity:
su -l rpm -i http://fpdownload.macromedia.com/get/flashplayer/current/flash-plugin-9.0.115.0-release.i386.rpm exit
More detailed instructions can be found here.
Proprietary code bundle for the Helix player
See the Helix media activity page for details.
Sun Java
Sun Java's size (the SDK "on disk" size is 75 megabytes and its memory consumption is large) makes it difficult to swallow. We are investigating other Java implementations as they mature, and the BTest-3 systems and after will have 1GB of flash.
OpenJDK alternative
OpenJDK is an unrestricted open version of Java available for Linux, but not for the Fedora 7 code underlying 2007 and Update.1 builds; see the Java main page.
Sun Java issues
Note that jre1.5.0_13 has been known to work, while jre-6u3 does not work on the XO.
Java plugin does not work
The java browser plugin in Sun Java does not work in either jre1.5.0_13 or jre-6u3. (See <trac>6465</trac> and <trac>865</trac>.)
Installing Sun Java
You cannot download a Java RPM directly from Sun. You need to follow the somewhat more convoluted steps outlined below:
1. Get the Java RPM:
1.1 On an non-XO machine, go to http://java.sun.com/products/archive/j2se/5.0_13/index.html and click the "Download JRE" link.
1.2 On the webpage which follows, click "Accept License Agreement", find the section title: "Linux Platform - Java Runtime Environment 5.0 Update 13", and right-click or ctrl-click (mac) the "Linux RPM in self-extracting file" link to save the file named jre-1_5_0_13-linux-i586-rpm.bin
[As of 9 Apr 08 that version no longer seems to be available. Whether I use the right-click save-as, or just click the link, or use the Sun Download Manager option that appears in IE, both the rpm file and the plain bin option arrive as a 15 byte file containing "File not found." I don't see them anywhere else on the web, either. Maybe 1_5_0_15 would work?]
what I found,...
jre-1_5_0_13-linux-i586-rpm
Hello, For security reasons, you may only download any file once per transaction (a "transaction" is a single session on the SDLC, from login to download). If your download fails part way through, just click the same link again. However, if the system records that you have completed the download, the link will be disabled. If you need to download the file again please start again from the referring page that brought you into the SDLC (usually the product page with a "download now" link on it). You can download a product as many times as you like, but only once per transaction. Thank you for your interest in Sun! Regards, Silvia Hernandez Sun Customer Support
>>> LINK >>> http://java.sun.com/products/archive/
Java 2 Platform Standard Edition (J2SE) JDK/JRE - 6 JDK/JRE - 5.0 ...5.0 Update 14 ...Arrow down 1 to ...5.0 Update 13...
It IS there!
1.3 Copy the file (jre-1_5_0_13-linux-i586-rpm.bin) to a USB stick
1.4 Insert the USB memory stick in the XO;
1.5 From the Terminal activity, copy the file off of the USB stick:
cp /media/yourUSBdisk/jre-1_5_0_13-linux-i586-rpm.bin ./
where yourUSBdisk is the name of your USB stick. If you don't know the name, you can find out by typing:
df
You'll see a list of file systems. Your USB stick is the one "Mounted on" /media.
2. Change the file permissions on the Java file
chmod a+x jre-1_5_0_13-linux-i586-rpm.bin
3. Run the self-extracting file:
su - cd /home/olpc ./jre-1_5_0_13-linux-i586-rpm.bin exit
4. Link to the Java plugin from the Mozilla plugin directory:
su - cd /usr/lib/mozilla/plugins ln -s /usr/java/jre1.5.0_13/plugin/i386/ns7/libjavaplugin_oji.so exit
(Take care to check that the filenames in the above commands match those that you download: copying these instructions in their entirety will not work since the filenames change as Sun issues new releases.)
You can check which browser plugins you have installed by visiting the page "about:plugins" in the Browse activity.