Moblin 2.1 IVI FC Release tested on the MSI Wind U110 (GMA 500/Poulsbo)

Phoronix hasn't gotten to it yet, but now I've done a quick test with the Moblin distribution IVI version with supposed GMA 500 support (moblin-2.1-preview-ivi-20091208.img) to see how well it's working on my netbook and what feature advantages its IEGD driver may have over the psb driver.

Well, it's not a lot:
  • The resolution was set to 800x600. No other resolutions were detected (xrandr -q)
  • The colors were distorted. It looked like 256 colors but randomly exchanged.
  • The touchpad was not working. The mouse moved in seemingly opposite or random directions and kept skipping back and forth. I had to use an external mouse to do anything at all.
  • The sound wasn't working, thought that might possibly be fixed by disabling power saving, just like in Ubuntu
  • Wifi wasn't working. I could not add networks or configure the wifi. " Join other Network" was greyed out. The iwconfig tools have to be started manually from /sbin. They found a network, but I didn't bother to try to set it up with wpa_supplicant manually. A path is not set. wpa_supplicant was already running with 99% cpu usage when I boot.
  • Switching to the console and back is impossible. It completely and irreversibly crashes the graphics until a reboot.
  • ACPI showed tons of errors in dmesg.
  • Trying to suspend crashed the system.
  • I wonder if there's an application in the distribution that can take advantage of VAAPI accelerated video decoding. There is a video player. But I had no easy access to the hard drive's partitions (ntfs).
The distribution as tested on my netbook is in two words:
utterly unusable.

The psb driver set up according to my howto works flawlessly compared to that! It interesting how difficult it seems to be for Intel to get its own chipset to work in its own distribution with its own driver.

But, yes. Moblin was very snappy. ;-) (I think that just shows just how cool XFCE is, though.)

Memory Cards for the Skypephone S2

After having a lot of insecurity with acquiring and inserting a memory card for the 3 Skypephone S2, let me give you some hints:

If you like this post, consider ordering a SIM via my three agent link.

More on Google, Censorship and China

The NYTimes has posted a great feature on the debate with many experts providing their intriguing views on the subject.

Help with Stopping Software Patents in Europe

I know this is quite political, but it's open source politics: A new initiative has been taken to propose a EU directive that prevents software patents. I have just signed the petition and invite you do to so as well. http://petition.stopsoftwarepatents.eu/

Remember to click the link in the email you will receive from them to confirm your signature.

Please don't start a flamewar of any kind here. But you are welcome to post any other comments.

Large Scale Chinese Attack on Google to Hit Human Rights Activists

As a response to the incident of a sophisticated Chinese attack on Google's infrastructure, the Chinese Google search has now been de-censored.

We have decided we are no longer willing to continue censoring our results on Google.cn, and so over the next few weeks we will be discussing with the Chinese government the basis on which we could operate an unfiltered search engine within the law, if at all. We recognize that this may well mean having to shut down Google.cn, and potentially our offices in China.
-- Google

Lessons not Learned - Continuing Latency Issues in Linux

We still have wonderful fsync offenders. Look at Kopete for example, or at Chrome. You don't want to be running that on battery or in a low latency environment:

Process kopete (1868)            Total: 19098.1 msec
fsync() on a file        6008.6 msec    99.8 %
Scheduler: waiting for cpu   19.4 msec  0.2 %

Or Iron (a privacy-enhanced Chrome/Chromium browser)

Process iron (5822)  Total: 13753.6 msec
fsync() on a file           5090.9 msec   70.3 %
Writing a page to disk 1412.8 msec 10.3 %
synchronous write         524.5 msec  3.8 %

If you use ext4, you can add some of these mount options to decrease the latency impact. But this decreases data security:
noatime,nodiratime,nobh,barrier=0,commit=100,data=writeback

Chrome for Linux without the Spyware

When you get Chrome for Linux beta from Google or Chromium from the Ubuntu repository, there is some tracking code in there. Some say that's why Chrome is spyware or adware. Iron fixes this by removing the code to identify your brother. The download link can be found here. You may still be interested in getting the stop Google Ad tracking cookie. This link can always be found conveniently in my links section in the right column.

For Chrome, Google tells us we can:
From Chrome, click on the "Customize and Control Google Chrome" icon, and in the drop-down menu, select "Options"
Select the "Under the Hood" tab
Under "Cookie settings" select "Restrict how third-party cookies can be used
(http://www.google.com/ads/preferences/plugin/browsers.html#chrome)

But for me it's really called "Accept Cookies only from Sites I Visit".

Running Untrusted Programs in a Sandbox in Linux

Isolate is the program to do it. It has quite a nice introduction on it's website but unfortunately has to be downloaded in source and compiled yourself. It can help running a media player or your browser more safely.

You can download it with subversion via:
svn checkout http://isolate.googlecode.com/svn/trunk/ isolate-read-only

You need to install at least the libelf headers to compile it, e.g. sudo aptitude install libelf-dev in Debian based systems like Ubuntu. There is absolutely no documentation inside the tree except a GPL 2.0 license.

Thanks to LWN. See the comments there for more suggestions about isolation technologies like Rainbow.

Transcoding 50 fps Interlaced AVCHD to 50 fps Progressive x264 with MEncoder - Getting Every Last Drop of Quality out of your Interlaced AVCHD Recordings

Have you ever wondered how much quality your HD camera can deliver? This script helps you to find it out if you have a camera that encodes interlaced video. It uses special filters to calculate 50 whole frames out of the half frames, which makes motions seem extremely fluent. You could play the file at half speed slow motion and still have a full 25 frames per second.

You need a more or less recent version of mplayer. It should be a version of mplayer after the release of ffmpeg 0.5. Current repositories of current distributions should be able to deliver this. But be aware that not all of them provide an mencoder compiled to work properly with x264. If that's the case you may have to compile it yourself.

After that it's as "easy" as this command, once you've put it all together. I'll explain further below and post a sample script for the entire conversion. The result is extremely smoothly playing video files that look great.

This is the main part:

mencoder -demuxer lavf -sws 9 -fps 100 -vf yadif=1,mcdeint,softskip -ofps 50

The demuxer parameter works around mplayer's transport stream implementation, which does not work well with AVCHD files. It tells mplayer to trust ffmpeg's libavformat instead. This makes a huge difference for me. With this command I can play AVCHD files and transcode them in sync without problems and serious glitches.

The fps and yadif part was tricky. It creates 50 full progressive frames out of the 25 interlaced frames it gets from the camera. I had sync problems at first, but I found the solution somewhere in the mplayer mailing list I think. I'm not sure why you have to take twice the framerate of the AVCHD file, but only this way it works. Of course, if you camera is not PAL, you may have to change this to double your framerate. Otherwise I had the sound playing half as fast as the video with the consequence of constant frame skips and no sync at all.

Now let's put it all together into a little please-do-it-all-for-me script:


#!/bin/sh
# High Quality Mencoder AVCHD Transcoding Script, (c) 2010 linux-tipps.blogspot.com, published under the GNU GPL v. 3.0

# Settings
CRF=26 # 18-26, the higher the smaller the resulting file, HD files can stand a higher than SD
FPS=50 # input fps of your file, "mplayer -demuxer lavf -identify" helps you with finding this
X264OPTS=""  # add subq=6 frameref=6 for higher quality per bit but lower encoding rate.

# Preparation
INPUT="$1"; shift
OUT=$(basename "$INPUT"|sed 's/.m2ts//')"-x264.avi"
echo Mencoder Interlaced AVCHD to Progressive x264 Script, published under the GPL v. 3.0 \(http://www.gnu.org/licenses/gpl-3.0.txt\), check for the newest version of this script at http://linux-tipps.blogspot.com/2010/01/transcoding-50-fps-interlaced-avchd-to.html.
echo $0 Encoding $INPUT to $OUT using the following command line:
[ -f "$OUT" ] && echo File exists - aborting && exit 1;

# Encoding
mencoder="time nice mencoder -cache 8096 -demuxer lavf -sws 9 -fps $((FPS*2)) -vf yadif=1,mcdeint,softskip -ofps $FPS"
enc="$mencoder -ovc x264 -oac copy -x264encopts crf=$CRF:trellis=1:threads=0:ratetol=inf:frameref=2:bframes=2:8x8dct:ssim:psnr:$X264OPTS"

echo $enc -o "$OUT" "$INPUT" $*
$enc -o "$OUT" "$INPUT" $*

Just run the script and give a .m2ts file as parameter. E.g.
sh avchd-mencode 000001.m2ts # or for all m2ts file in the current directory:
for i in ./*.m2ts; do sh avchd-mencode "$i"; done;

Let me know how it worked for you! Or if you have an idea how to improve the script. Try skipping frame for frame with the "." button in mplayer. Be aware that the file size of the resulting video may easily be bigger than the input. That's because you're creating full frames out of half ones, and storing them takes more space.

Check out a Squirrel in HD slow motion produced with this script and then "mencoder -speed 0.5 -af scaletempo -oac lavc -lavcopts acodec=ac3 -ovc copy" and uploaded in FullHD (but available only in 720p currently):