Mini-Review: Ubuntu Intrepid Ibex 8.10 on the PlayStation3

Sony PlayStation Logo

So I finally joined the masses in next-gen console gaming nirvana when I finally bought myself a 40GB PlayStation3 that I got cheap at a Big W clearance sale for AUD$398!

After playing a couple of games, one of the next things I did was to partition the hard-drive and install the PPC version of Ubuntu 8.10 onto it. This is a quick run-down of my experience installing and playing with it.

Well first up I needed to grab the PPC version of Ubuntu. I was under the impression that Canonical had ceased PPC Ubuntu development, but it appears they haven’t. I found the Alternate Install for a dedicated PS3 Ubuntu Intrepid 8.10 ISO here for download. This disc is tailor made for the PS3 to get you up and running with the minimum of fuss.

EDIT September 2009: The release of the new “slim” PlayStation3 console has unfortunately seen Sony Computer Entertainment remove the ability to install Linux onto the hard-drive. Only owners of the older, larger PS3’s will be able to install Linux to their systems from now on.

While that downloaded, I prepared the PS3 itself. Thankfully Sony had the foresight to allow alternate operating systems to be installed, thus creating a greater attraction for tinkerers like myself. Unfortunately the ability to install Linux is marred by the fact that access is provided through a Hypervisor which does not give access to the PS3’s graphics hardware, thus preventing the possibility of creating home-brew games. It also limits you to 217MB of the total 256MB system RAM, presumably with some RAM being used for the video framebuffer much like a cheap motherboard with no dedicated video RAM.

Preparing the PS3 for a Linux install is simple enough. First you need to partition the drive. The PS3 OS allows you to allocate 10GB to the “other OS” or 10GB to the PS3 OS. You do not have any ability to set the size manually. Since I don’t really intend to use the PS3 as a workstation for any serious work, I opted to give Linux only 10GB. The system partitioned the drive and rebooted. WARNING: This process will destroy any data already on the drive, including downloaded games and configuration data. Make sure you backup your PS3 data before doing this!

Preparing the PS3 HDD for installation

After that, you need to install the bootloader for the “other OS”. The ISO image I downloaded contained the required PS3 bootloader KBoot and once the ISO finished downloading and I burned it to a CD, I stuck it into the PS3’s optical drive and told the PS3 to go looking for the boot loader there. It found it, installed it and all was good.

Getting ready to start the bootloader

You then need to tell the PS3 to change its “default OS” when turning on the system. By default it’s “PS3″, so I changed this in the system settings to be “Other OS” and the PS3 immediately asked if I wanted to reboot into the “other OS” now. I said “yes”. The machine shutdown and rebooted.

Default OS setting on startup
Ready to reboot into the “Other OS”

Almost right away I was looking at two penguins and a bit of text centred on my Benq E2200HD screen (connected via HDMI). Like most Linux distros, all I had to do was hit Enter to begin loading the installation program. To do that, however, I needed a keyboard! I grabbed my Microsoft USB keyboard and mouse, connected them to a passive USB four-port hub and then connected that to the PS3, so I could keep the other powered USB port free if I needed it for things like external HDD’s and the like. One USB port can happily power a USB keyboard and mouse together without a problem.

The Linux installer booting on the PS3

Ubuntu’s Alternate installer for PPC processors starts and looks exactly like its x86 bretheren, so I won’t go into detail about it here other than point out that when it asked which device I wanted to install on, the hard-drive presented was just the 10GB partition that the PS3 had created – you cannot see the rest of the drive at all (because this is all the Hypervisor presents to you).

The rest of the installation went as normal as any x86 install, however I did notice that the overall installation time was about double that of a typical desktop install. I put this down to two factors – the PS3’s HDD is only 5400rpm and the low available memory probably slowed it down too.

Once installed, the system rebooted. Unlike the desktop flavour of Ubuntu, you don’t get the splash screen, only Linux’s trademarked scrolling of information (most of which has been suppressed by the “quiet” kernel option in the KBoot configuration file). The console was in 1440×900 mode, but the screenshot below shows the console in 1920×1080 mode after I changed the config (see further below).

Booting Linux natively from the PS3 HDD after installation

Once loaded, the ever-familiar GDM login screen appeared. I logged in and within 10 seconds I was looking at the default Ubuntu Intrepid GNOME desktop. Unfortunately it didn’t fill my screen. In fact, it was only 1440×900 in size on my 1920×1080 monitor, neatly centred in the middle of the screen.

We needed to fix this, so first up was a quick review of the Linux PS3 wiki that had a reference for all the available screenmodes and the required changes to the KBoot configuration file that were required. In my case, I wanted to envoke a 1080p screen mode. I edited the KBoot configuration with:

$ sudo gedit /boot/etc/kboot.conf

…and added the following onto the ends of the two kernel lines in that file:

video=ps3fb:mode:165

This will tell Ubuntu to use 1080p “full screen” on reboot. I saved the configuration, performed a full system restart (you can’t just restart X) and viola! Ubuntu’s console and X displays were now in glorious 1080p.

If you are using an ordinary television, you can try:

video=ps3fb:mode:166

…which will give you full DVD resolution at 720 x 576 (576i mode), but you may need to adjust your TV’s settings to be able to see the entire picture as this will make use of your display’s “overscan” area which is generally beyond the visible area of the screen.

The GNOME login screen on PS3

Logging in and starting a few apps, Ubuntu runs exactly as you’d expect on any desktop PC system. Unfortunately due to the low memory available, performance is a little sluggish, but it’s not bad enough that you couldn’t make serious use of it.

Using the GNOME desktop on PS3

I did notice that general performance improved once you had used a few applications. For example, OpenOffice.org took a full minute to load up for the first time, but subsequent starts only took about 5-10 seconds. Mozilla took about 30 seconds to start, but once up, it surfed the ‘net quickly and no differently to a normal desktop installation. I was also able to use the optical drive and read the content of CD, DVD and Blu-ray media. I could also happily playback most media without issue after installing the Ubuntu Restricted Extras package as well.

Unfortunately desktop effects such as Compiz are not possible on the PS3 because the Hypervisor does not give you direct access to the PS3’s “RSX” GPU. This was a deliberate move by Sony to prevent homebrew games being developed. Not a great loss, however, as the PS3 is already a little hampered by the fact that it has less than 256MB of RAM to work with.

The PS3 is now “permanently” in Linux mode until you tell it to go back to the normal PS3 OS. If you shutdown and reboot (or indeed turn the console off and back on again), it will boot straight back to Linux every time. To get back to the PS3 OS, all you have to do is issue the following command at the kboot prompt, before Ubuntu starts to boot:

ps3-boot-game-os

…and hit Enter. The PS3 will shutdown, restart and next thing you know you’re looking at the PS3’s normal Xross-Media Bar (XMB) menu again. To get back into Linux again, you simply change the “default OS” back to “other OS” again and reboot when prompted.

Ubuntu is of course not the only Linux distribution that can be installed onto the PS3, and there are plenty of videos on YouTube of people using one or more PS3’s running Linux to great effect. Check them out!

Conclusion: It’s awesome that Sony allow people to play with their hardware (with certain restrictions) and makes the PS3 a far more attractive option to buy than the XBox360 or even the Wii. The latter two options really are geared towards playing games only whilst the PS3 can entertain you and help you with serious work, especially tapping into the awesome power of the PPC. For families who are a cash-strapped for a new PC, the speed of Ubuntu on the PS3 won’t blow you away, however it is perfectly viable to use as a cheap home computer that can also keep the kids happy and play high-definition Blu-ray movies, however after trying out Ubuntu on a regular TV display (an old Amiga 1084 monitor) for the hell of it, 576i takes me right back to the days of Amiga Workbench in 15KHz interlace complete with full flicker!! No, you really need to have a proper 720p or preferably a 1080p display to use Ubuntu properly, to not only keep the sanity of your vision but to give you enough desktop real estate to move around as well.

Review score: 8 out of 10

HowTo: Get SigmaTel STAC 9200 chipset audio working in Ubuntu Intrepid

I was asked to rebuild a friend’s old Medion laptop – you know, those ones Aldi used to sell for peanuts. It’s an AMD Turion64 based machine with NVidia GeForce Go 6100 gfx and SigmaTel STAC 9200 “High Definition” audio and a 1280×800 display. I have to admit it’s not a bad little machine.

Anyway, the default installation of Ubuntu Intrepid picks up everything except the Fn keys, wireless LAN adapter and the audio. The wireless LAN adapter has proven to be a bit of a challenge, so if I suss it out, I’ll write up about it later. Fn keys I’m not really fussed about (and neither is the laptop’s owner), but we needed the audio.

The SigmaTel STAC 9200 has a dotted history of frustration among Linux users in general, but thankfully it was fixed in Kernel 2.6.27-7 and Alsa 1.0.15. Unfortunately a vanilla installation of Ubuntu it still is unable to autodetect the hardware 100% properly (it will find it and name it, but all you get is silence), so you have to make one tiny manual adjustment before sound will work properly.

  1. Open up a terminal and type the following at the $ prompt:

    $ sudo gedit /etc/modprobe.d/alsa-base
  2. This opens up the file in the GEdit text editor. Scroll to the end of the file, hit Enter to make a new line and add the following:

    options snd-hda-intel model=gateway
  3. Save your changes and close the editor.
  4. Now reboot. When Ubuntu comes back, you will have working audio!

Note: Reader Mouhcine has suggested that if “model=gateway” does not work for you in step 2, try using “model=gateway-m4″ which may give you more success in Ubuntu Jaunty.

HowTo: Uninstall software that makes Ubuntu’s boot process fail

Whilst rebuilding a friend’s Medion laptop, in my attempt to get the Wireless LAN adapter working, I set about trying to use ndiswrapper and the Windows drivers. Unfortunately upon rebooting, the system failed to boot, always locking up when the boot process tried to load the Windows driver. It was so bad that I wasn’t even able to boot to a recovery prompt because it still attempts to load the hardware drivers before dropping you into a root shell.

The solution was simple – get rid of ndiswrapper and that will prevent the offending Windows driver loading which I can then delete afterwards, but how do you do this when you can’t even boot to a terminal?

With the assistance of an Ubuntu LiveCD (on USB stick in this case), I was able to remove ndiswrapper without needing to do a complete re-install of the system. Here’s how to do it.

  1. Shutdown your system, insert your Ubuntu LiveCD and turn on your system.
  2. Allow the system to boot to the LiveCD desktop and then open a terminal.
  3. Determine what your system’s root partition is called by getting a list of available drives and partitions with:

    $ sudo fdisk -l
  4. In my case, this Medion lappy had Windows installed and a couple of other partitions too. The root Linux partition ultimately resided on sda8, so I need to mount this somewhere. First I need a mountpoint:

    $ mkdir /dev/shm/medion

    …this creates a directory in the RAM disk called “medion” (but you can call it whatever you want).
  5. Now mount the partition to the mountpoint with:

    $ sudo mount /dev/sda8 /dev/shm/medion
  6. Check that we can access the mounted drive with:

    $ ls -l /dev/shm/medion
  7. If it contains the root filesystem of your lappy’s Ubuntu install, then you’ve done well so far. Now we need to change the system’s root filesystem from the LiveCD over to the hard-drive’s root filesystem so we can work on it. Type in:

    $ sudo chroot /dev/shm/medion
  8. This will temporarily make the current session’s root filesystem the one that is on your hard-drive, as though we’d actually booted from it. From here, it’s now a simple case of removing the ndiswrapper application that was causing all my problems (notice that we are at a root prompt designated by the hash symbol):

    # apt-get remove ndiswrapper-common
  9. A few warning messages popped up advising that it couldn’t find the log to write to, but that’s OK – the software still gets removed, and thus will prevent the Windows driver from killing the boot process. Once Apt had finished doing its thing, just type in:

    # exit

    …and the root filesystem will revert back to the LiveCD’s root filesystem.
  10. Shutdown and reboot as normal without the LiveCD, and viola – the system boots without hanging this time!

As you can see, the ability to change root filesystem can be very useful in trouble-shooting a non-booting installation but also has other uses too, one of the most common being creating custom LiveCD’s by modifying the squashfs filesystem on the LiveCD and burning to a new disc – thus allowing you to add or remove components from the default Ubuntu LiveCD environment.

HowTo: Encode a Blu-ray rip into a smaller format without losing quality

Those of you who archive or backup their Blu-ray movie media to hard-drive will already be aware that the average movie comes out at a good 25GB. Some of the bigger titles top out at around 40GB or more. This eats up an awful lot of disk space.

Blu-ray titles are already compressed down using the MPEG2 codec, and quality pundits will abhor the idea of re-compressing the title again for fear of losing image and audio quality. Certainly if you go down the Xvid route, you will definitely lose image quality, but as per my previous DVD HowTo, you can do excellent rips with virtually indistinguishable quality to the original using the x264 codec, and have a significantly smaller footprint to go with it.

The process of encoding a Blu-ray rip isn’t quite the same as doing a DVD, however, so here’s a quick guide on how to take your decrypted .m2ts file and finish up with a much smaller, but 99% perfect copy in a Matroska .mkv file.

Pre-requisites:

  • A pre-decoded Blu-ray movie file (.m2ts file).
  • Approximately the same amount of free disk space as the size of the movie file. Eg: If you have a 25GB movie file, then you should have another 25GB free space to work with. You can have less, since the final resulting file will be much smaller than the original movie anyway, but since this process can take a number of hours to complete, you don’t exactly want to discover you ran out of disk space and have to start over, do you?
  • A nice powerful CPU. I use a Intel quad-core Q9450 CPU at 2.66GHz. It takes my machine roughly 9-12 hours to process just one movie using four threads. A dual-core will take longer.
  • Time to let the PC do its work, eg: overnight.

This guide was written using Ubuntu 8.10 Intrepid Ibex 64-bit, but will work quite happily in 32-bit and should also work with most previous versions of Ubuntu.

  1. You will need some extra software installed if you haven’t already got it. Open a terminal and type in the following at the $ prompt:

    $ sudo apt-get install mencoder mplayer gpac x264 mkvtoolnix

    (Don’t worry if you’ve already got some of those apps installed, Ubuntu will skip over them if they already exist on your system)
  2. Create a new text file somewhere using your favourite text editor, eg:

    $ gedit ~/encodevideo.sh

    …will create a new text file called “encodevideo.sh” in the root of your Home directory using the GEdit text editor.
  3. Now copy and paste the following script into it:

    #! /bin/bash
    # =====================================================================
    # Blu-ray encoding script by HyRax February 2009 http://www.serenux.com
    # =====================================================================
    # Make sure the user has specified what to work on.
    if [ -z "$1" ]; then
    echo "\nBlu-ray movie encoding script\n-----------------------------"
    echo "Written by HyRax February 2009\nhttp://www.serenux.com"
    echo "\nUsage: $0 <m2ts file without extension>"
    echo "\nExample: If your movie file is called TheDarkKnight.m2ts then\nyour usage will be: $0 TheDarkKnight\n"
    exit
    fi

    # The crf=21 option controls encoding quality, and indirectly the final
    # filesize. The higher the value, the more compression and thus smaller
    # file size. Reduce the value and file size will go up. A value of 21
    # should produce a file of approximately 4GB in size for a typical movie.

    # Encode the video using x264, ignore the audio for now.
    mencoder $1.m2ts \
    -ovc x264 -x264encopts crf=21:frameref=3:bframes=3:b_pyramid=normal:direct_pred=auto:weight_b:partitions=all:8x8dct:me=umh:mixed_refs:trellis=1:nopsnr:nossim:subq=6:level_idc=41:threads=4 \
    -nosound \
    -of rawvideo \
    -o $1.x264

    # Dump the first original audio track (should be the English track) but
    # don't re-encode it. Ignore the video.
    mplayer $1.m2ts -dumpaudio -dumpfile $1.ac3

    # Copy the raw x264 encoded video into an MP4 container so we can set
    # the correct framerate (generally 23.976 - adjust it if MPlayer or
    # MEncoder report something different)
    MP4Box -add $1.x264 $1.mp4 -fps 23.976

    # Finally, merge everything into a single MKV file
    mkvmerge -o $1.mkv $1.mp4 --track-name 0:Eng $1.ac3

    # Remove the hash in front of the next command to have the script delete # your working files when encoding is complete.
    # rm $1.m2ts $1.x264 $1.ac3

    # Tell the user we're done.
    echo "All done! Your final movie file is called $1.mkv - enjoy!"

  4. Save and exit your text editor.
  5. Change directory to where you have your original .m2ts file, eg:

    $ cd ~/Videos/BDRips/MyMovie
  6. Let’s say your movie file is called TheIsland.m2ts. To begin encoding it, you will use the following command:

    $ sh ~/encodevideo.sh TheIsland

    (Notice that we don’t specify the file extension – the script assumes .m2ts on the end already)
  7. Hit enter and the encoding process will begin. The script does the following in order:
    1. Extract the video component only and encode it in a single pass to a raw x264 video file called TheIsland.x264 (in this example).
    2. When that has finished, go back and extract the first audio track only and save it to a file called TheIsland.ac3 without any re-encoding.
    3. When that has finished, take the raw x264 video data and put it into an MPEG4 container so we can fix the framerate at 23.976 frames per second, typical of most Blu-ray movies. If you don’t do this step, then the video will play faster than the audio in the final product.
    4. Finally we create a new Matroska container called TheIsland.mkv and in it we place the framerate-adjusted MPEG4 video track and the unmodified audio track, producing our final product..
  8. When the script has finished some 9-12 hours later, you will have a file called TheIsland.mkv ready for playback in Totem, MPlayer, VLC, or whatever your favourite player is. You will notice that the filesize is significantly smaller than the original but when you play it back, the image quality will look pretty much 100% identical to the original. About the only compression artefacts you may notice is around the edges of some text titles such as opening credits, but you’d really have to look hard to spot them.
  9. We’ve finished with the working files now, so you can delete the .m2ts, .x264 and .ac3 files now to reclaim the disk space and enjoy your new .mkv file.

Enjoy! Smilie: :)

NOTES:

  • While not covered by this HowTo (I’ll add to this later), you can optionally extract other audio tracks from the .m2ts file such as other languages or the commentary track, and add them to the .mkv file at any time. You can also download subtitles and add them to the .mkv file at a later date also, all without needing to re-encode the entire video again because all you’re doing is adding tracks to the existing Matroska container. see the man pages for the mkvmerge utility for more information.
  • A high-definition x264-encoded movie takes a fairly reasonable amount of CPU power to decode. Since Ubuntu Intrepid and previous versions do not make any direct use of on-board video decoding hardware such as that found on NVidia and ATi based video cards, you may find certain busy scenes in your movie may stutter or even skip altogether during playback – this does NOT mean you are missing data from your movie file – it’s just that your PC is having trouble decoding AND displaying the movie all at once because the CPU is doing everything, especially those with slower CPU’s. Indeed you will notice that your CPU usage will probably be quite high in the 80-90% region. Ubuntu Jaunty will bring forth with it VDPAU support for NVidia-based video cards (restricted NVidia driver v180 and above). Using a patched version of MPlayer with VDPAU support, all the decoding work is passed completely to the video card, freeing up your CPU considerably to concentrate on other tasks, and dropping utilisation rates down to about 3%. This makes busy movies that much more watchable. If you can’t wait for Jaunty, there are some backported VDPAU modified versions of mencoder, mplayer and even MythTV available here, however you try them at your own risk. If you are an ATi video card user, you’re out in the dark for the moment. Go buy yourself an NVidia card – they are much better supported under Ubuntu than ATi are.
  • If you are using only a dual-core processor, you should modify the threads=4 section of the mencoder line in the script to read either threads=2 or threads=3. If you are using a single-core processor, change this to threads=1 or threads=2 depending on how your CPU performs (and while you’re at it, seriously consider an upgrade!).
  • If you wish to modify the quality of the encoded video to make the resulting file larger or smaller, re-edit the encodevideo.sh script and change the crf=21 value in the mencoder line to a different value. There is no definitive filesize that the resulting encode will have. This value simply adjusts the quality of the encode. With some trial and error, I have found that the average 1080p movie encode ends up roughly 8GB in size when using a value of 21 and provides excellent image quality. If you make the value larger, this will apply greater compression and will reduce the final file size at the expense of losing some image quality. If you reduce the value, then your final file size will increase, however your image quality will also go up. As a guide, animated movies such as those made by Pixar and Dreamworks and visually dark movies such as Underworld, compress very well. In one instance, the final product was only 3.5GB in size. Visually complex movies such as Transformers blew out to 12GB in size using the same encoding script, so you can see that there is no exact science to this. There are mencoder options to specifically set bitrate and target filesize, but I chose to ignore those options for this HowTo as I’m a bit of a quality freak, not a size freak. I store all my movies on a MythTV server at home and backup to an external drive as I’m not a fan of doubling up my movie purchases on the shelf with a second disc containing the compressed version of the same movie!

Power failure!

My site’s been offline for most of the last 24 hours due to an unexpected power failure caused by a constant week and a half of rain shorting underground mains power lines, and taking half of my street with it. I have to admit I’ve been a bit complacent and have never acquired a UPS for the server that serves this blog!

But the power’s back now, and meantime I’ve gone and bought a shiny new UPS to keep the server running should there be any future power issues. Sorry the inconvenience, folks!

Where will you be at 1234567890 Unix time?

Some of you may be aware that Unix systems and its variants including Linux, Apple OS X, etc store the time in seconds using a 32-bit integer, with the 1st January 1970 as the epoch.

Tomorrow morning at 10:31 and 30 seconds, eastern Australians (except Queensland who will get it at 09:31 and 30 seconds) will experience 1234567890 Unix time. Where will you be on this momentous occasion?

If you’d like to check your own local time, simply drop into a terminal and paste this line of perl in:

$ perl -e 'print scalar localtime(1234567890),"\n";'
Sat Feb 14 10:31:30 2009
$ 

After that, we only have the 32-bit Unix Millennium Bug to look forward to in 2038!

Mini-Review: Transcend JF V60 32GB USB Flash Drive on Ubuntu

It was only just 10 years ago that some of the first USB Flash Drive storage solutions became available in the form of highly expensive sticks that only had a capacity of upwards to 32MB (yes, Megabytes) and had transfer speeds that were slower than molasses on sandpaper.

Today, we now have 32GB USB Flash Drives that go for a paltry AUD$95, and this is a review of Transcend’s offering.

I have to admit I’m a bit of sucker for Transcend. They make good products that perform well at a reasonable price, and I have bought several of their USB Flash Drive products over the last 5 years from 1GB through to 8GB. Sure, there are solutions that are much faster than Trancend, such as Corsair, but along with that comes a larger price tag. The Transcend product is competitively priced and performs more than acceptably to be used even as a boot device.

So today I obtained a 32GB stick. The package is simple – along with some catalogue advertising material, the stick itself is roughly 10mm x 50mm in size and is about 6mm deep, comes with a Transcend-branded lanyard, a removable thin clear plastic layer on the burgundy-coloured part of the stick to protect it from scratches and that’s pretty much it. The non-retractable USB connector is protected by a removable plastic cap. Refreshingly, the cardboard insert from the packaging actually makes reference to Linux as a supported platform, citing a requirement of kernel 2.4.2 or later.

The Transcend JF V60 32GB USB stick and included lanyard

Like all sticks these days, this USB 2.0 unit is pre-formatted to FAT32 thus allowing it to work with pretty much every major platform out there. Personally I rarely use my sticks on Windows PC’s, though I keep an 8GB stick handy with FAT32 just in case. Most of the time, however, I reformat them to EXT2 or EXT3.

So, let’s plug this guy in. It’s always interesting to see how they implement the activity LED (well OK, it’s hardly anything to write home about, but I’ve got to generate some excitement somehow…!). Previous Transcend sticks had an obvious dot on the top, usually sporting a blue LED as has been the trend for the last few years, but this time they’ve gone different. There is no obvious hole on the stick for an activity light and upon connecting it to my PC’s front USB ports, the end of the stick suddenly lit up in bright roadwork-vest-orange. Well, that’s a welcome change. I can leave it plugged in a dark room without it becoming distracting! The LED remains on all the time to show that it is active and flashes HDD-style when there is activity.

The activity LED on the end of the USB stick

Nautilus popped up its usual “what do you want to do” prompt and I elected to open a window. As typical with most USB Flash Drives, this one came up imaginatively titled “disk” which is Ubuntu’s way of telling you that the stick has no actual label. The stick itself is completely empty – no promotional software or funky one-touch-backup applications are included.

First thing was first – relabel that stick. There’s nothing worse than having several USB Flash Drives and not knowing what’s on them at a glance. I fired up Ubuntu’s Partition Editor (GParted) and had a look at the stick. The stick’s actual storage space is 29.92GB and I observed that the leading 4MB were not allocated. Usually you find most Windows-formatted devices have the last few MB unallocatable, not that it actually matters.

Transcend 32GB Stick in GParted

Anyway, I quickly unmounted the stick and renamed it and remounted it. For those that are interested, this is what the dmesg output for it looks like:

usb 8-3: new high speed USB device using ehci_hcd and address 8
usb 8-3: configuration #1 chosen from 1 choice
scsi19 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 8
usb-storage: waiting for device to settle before scanning
usb-storage: device scan complete
scsi 19:0:0:0: Direct-Access     JetFlash Transcend 32GB   8.07 PQ: 0 ANSI: 2
sd 19:0:0:0: [sdf] 62750720 512-byte hardware sectors (32128 MB)
sd 19:0:0:0: [sdf] Write Protect is off
sd 19:0:0:0: [sdf] Mode Sense: 03 00 00 00
sd 19:0:0:0: [sdf] Assuming drive cache: write through
sd 19:0:0:0: [sdf] 62750720 512-byte hardware sectors (32128 MB)
sd 19:0:0:0: [sdf] Write Protect is off
sd 19:0:0:0: [sdf] Mode Sense: 03 00 00 00
sd 19:0:0:0: [sdf] Assuming drive cache: write through
 sdf: sdf1
sd 19:0:0:0: [sdf] Attached SCSI removable disk
sd 19:0:0:0: Attached scsi generic sg6 type 0

Exciting stuff. Smilie: ;)

With my now-properly-named stick, it was time to do some read/write tests. The stick comes preformatted as FAT32, so we’ll use that, but at the same time I will also conduct some tests using Linux-native filesystems. In this case, EXT3. Our test data will be a series of 15,645 thumbnail images, each averaging about 18K in size. We will also do a large file copy test using a compressed high-definition video file at 3.1GB in size. We will time how long it takes to copy this data to the USB Flash Drive and calculate the transfer speed from that. Then we will reboot the machine, to ensure no data is cached, and copy that data back from the USB stick to measure the read speed.

For comparison, we will also do the EXT3 tests with an older (6 month old) 8GB USB Flash Drive, also made by Transcend, to see if there has been a notable change in read or write speed between products.

First up, the small file copy test. Our test data is 15,645 thumbnail files from our host PC’s hard-drive, each averaging about 18K in size (total 281MB).

  • Using the FAT32 filesystem on the 32GB stick, copying the small files took 12 minutes to copy at approximately 345K per second. Ouch – slow.
  • Using the Ext3 filesystem on the 32GB stick, copying the same files took only 2 minutes and 53 seconds at a rate of approximately 1.6MB per second. Much better.
  • And using the EXT3 filesystem on the older 8GB stick, copying the same data took only 2 minutes and 40 seconds, just edging out the 32GB stick.
Small File Copy Test - Time Taken
Small File Copy Test - Transfer Speed

Now for the large file copy test. Our test data is a single 3.1GB high-definition video file being copied from the host PC’s hard-drive.

  • Using the FAT32 filesystem on the 32GB stick, copying the large file took a pathetic 69 minutes and 24 seconds to transfer, or about 780K per second. It really shows that FAT32 really does not like large files at all.
  • Using the Ext3 filesystem on the 32GB stick, copying the same file took a far more respectable 6 minutes and 16 seconds to complete at approximately 8.4MB per second.
  • Finally, the Ext3-formatted 8GB stick copied the file in 5 minutes and 55 seconds, which beats the 32GB stick, but only by about 20 seconds and half a megabyte per second (8.9MB/s).
Large File Copy Test - Time Taken
Large File Copy Test - Transfer Speed

To be fair, Windows’ NTFS filesystem should show reasonably similar figures to Ext3, but I did not test that as this article is about Ubuntu, not Windows! Smilie: ;)

Finally, we have the read-test. We rebooted the host PC to clear any cached data and copied only the 3.1GB large file from the USB stick to the host PC’s hard-drive.

  • The FAT32-formatted 32GB stick copied the file in 3 minutes and 13 seconds. Exponentially faster than its write action.
  • The EXT3-formatted 32GB stick took 2 minutes and 32 seconds to copy the file.
  • The EXT3-formatted 8GB stick by comparison did the same copy in 3 minutes and four seconds. Interesting that it’s a slow reader compared to the 32Gb stick, but a slightly faster writer.
Large File Read Test - Time Taken
Large File Read Test - Transfer Speed

So transfer speeds have largely remained unchanged between generations, which is a Good Thing(TM) – if there is any faster speed, then that’s a bonus, but the last thing you want is greater capacity at a tragic expense of transfer speed, and whilst we do have that discrepancy here, it’s negligible at best.

Conclusion

Trancend’s 32GB USB Flash Drive is not the largest currently-available on the market, but it is certainly one of the most affordable and has good performance to boot. Aesthetically, the white plastic looks and feels a little cheap, but the stick as a whole feels robust and could probably take a few knocks without having a fit. The lanyard included is more than adequate to hang around your neck with, and the overall size of the stick means you could also comfortably add it to your keyring or hip pocket without it getting in the way, though the separate USB cap could probably be easily lost in that instance.

Review score: 8 out of 10

HowTo: Install OpenOffice.org 3.0.1 in Ubuntu Intrepid 8.10 right NOW rather than wait for Ubuntu Jaunty 9.04

OpenOffice.org 3.0.x has been out for awhile now, but unfortunately did not get released in time to be included with Ubuntu Intrepid 8.10 back in October 2008, so Intrepid shipped with OpenOffice.org 2.4.1 instead. Bummer.

OpenOffice.org 3.0.x will be included in Ubuntu Jaunty 9.04 in April 2009, but as some people have noticed, there are some useful features in OpenOffice.org 3.0.x (such as much improved Word doc importing) that can make waiting another four months seem like a bloody long time to upgrade. You want 3.0 now, not in four months!

So for the impatient among you, here’s the most painless and easiest way to upgrade your OpenOffice.org to 3.0.1 without having to deal with downloading individual packages or TAR archives from the OpenOffice.org website, or manually having to satisfy the extra dependencies that OpenOffice.org 3.0.1 requires.

  1. First up, open a terminal.
  2. Now type in:

    $ sudo gedit /etc/apt/sources.list.d/openoffice.list

    …and your text editor will appear with a blank new file to type into.
  3. Copy & paste or type in the following line into the editor:

    deb http://ppa.launchpad.net/openoffice-pkgs/ubuntu intrepid main

    Adding the repository using GEdit
  4. Save your file and close the text editor.
  5. Now type in at the terminal:

    $ sudo apt-get update
  6. You should observe that a warning message regarding NO_PUBKEY will appear after the update has completed as follows:

    W: GPG error: http://ppa.launchpad.net intrepid Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 60D11217247D1CFF

    This is because you don’t yet have the public key for this OpenOffice.org repository to be able to authenticate anything from it, so we need to add it with the following command at the $ prompt:

    $ gpg --keyserver keyserver.ubuntu.com --recv 60D11217247D1CFF
    gpg: requesting key 247D1CFF from hkp server keyserver.ubuntu.com
    gpg: key 247D1CFF: public key "Launchpad PPA for OpenOffice.org Scribblers" imported
    gpg: Total number processed: 1
    gpg:               imported: 1  (RSA: 1)
    $


    Right, that downloaded the key from the Ubuntu keyserver to your PC. Now we need to tell Apt to use that downloaded key to authenticate with. Do do this, type in:

    $ gpg --export --armor 60D11217247D1CFF | sudo apt-key add -
    OK
    $

  7. If you now run Step 5’s command again (sudo apt-get update), you will no longer have the NO_PUBKEY warning at the end of it.
  8. Anyway, once Apt has finished updating itself with a new list of packages, within a few seconds, your Update Manager will pop up the red arrow in the system tray advising that there are new updates to download.

    .Software Updates are Available
  9. When you open Update Manager, you will find that they are all upgrades to OpenOffice.org 3.0.x including the extra dependencies required! Sweet!

    OpenOffice.org Updates ready to install
  10. Hit the “Install Updates” button. If you are presented with a dialog box warning you that some of the packages cannot be authenticated, then you have not got the Public Key from the Ubuntu Keyserver to authenticate the new OpenOffice.org packages. This is because this OpenOffice.org 3.0.1 repository is not official nor permanent and was only setup to satisfy the impatient ones out there (ie: you!). It is not critical that the packages be authenticated, but that is up to you to decide. If you’d rather not install unauthenticated packages, then just click the Cancel button and stop following these instructions. If you followed Step 6 properly, then you will not get this warning message because the public key you downloaded in Step 6 will authenticate the packages properly and the download of updates will commence immediately as per Step 11.

    .Warning about Not Authenticated Packages
  11. Hit the Apply button and allow the system to download and install as normal.
  12. When completed, start up OpenOffice.org as normal and you will see that the splash loader and the Help->About page show that you now have OpenOffice.org 3.0.1!

    .About OpenOffice.org
  13. Pat yourself on the back. You’re done.

How is this possible anyway? Well, seems that demand for OpenOffice.org 3.0.x has been so great that the nice guys at OpenOffice.org Scribblers decided to put together a quick little dedicated repository for it on the Launchpad site, so all kudos and credit go to them. The repo only works for Ubuntu Intrepid, so for users of earlier versions of Ubuntu, you will still need to download the .debs and install them manually from the OpenOffice.org website.

Credit goes to stmok from Overclockers Australia for advising of the public key solution used in Step 6 – thanks!

Mini-review: LG GGC-H20L Super Multi Blue Blu-ray Disc & HD DVD-ROM Drive on Ubuntu

Optical storage certainly has come a long way, and with each new advance brings new affordable hardware to help nudge it along. The HD-DVD and Blu-ray disc formats brought along with it the ability to store and distribute high-quality, full high-definition 1080p movies.

Unlike when DVD first appeared, and probably thanks to the battle that was waged between the HD-DVD and Blu-ray formats, the provision of high-definition media and associated players has dropped in price rather dramatically to drive acceptance. I have a fairly large original DVD collection, but I am a quality freak and in light of high-definition releases, I loathed the idea of buying a DVD version of a given movie knowing that for about the same price I can buy a high-definition version.

So I decided to buy a Blu-ray drive. One of the cheapest options on the market is LG’s internal drive option called the “Super Multi Blue Blu-ray Disc & HD DVD-ROM Drive”, model GGC-H20L for about AUD$150. This review is my experience using the drive under Ubuntu 8.10, Intrepid Ibex.

My unit came packaged in a slightly larger-than-usual box with attractive print on it. I normally prefer to buy an OEM drive since this packaging generally always ends up in the bin, so I’d rather save some money. Unfortunately my retailer didn’t have any, so I had to buy the retail box.

The LG GGC-H20L drive

In a nutshell, this unit is able to read HD-DVD and Blu-Ray media as well as DVD and CD media, but it can only write to DVD and CD media (all the usual formats you expect, so I won’t detail them here). This suits me fine as these days I rarely write any discs except for giving someone a copy of Ubuntu on disc, and I just needed the ability to read Blu-ray movies that I buy.

Out of the box, the package contains the drive itself, a program disc for Windows only with disc burning software, a backup application, a simple DVD authoring application and PowerDVD for movie playback (this disc was promptly thrown in the bin – I don’t need it). There is also a printed manual, four mounting screws and a serial ATA (SATA) cable and a serial ATA Molex-to-SATA power adapter cable provided.

This is my first optical drive with a SATA interface – everything before this used the usual IDE cable, so it was a pleasure to connect the drive and banish the last of my parallel cables to the cable bucket. General installation was a breeze – as typical as any other optical drive.

Powering up, the system recognised the drive straight away and Ubuntu started booting. Ubuntu saw the drive right away and mounted it as my CDROM drive. It still gets referred to as /media/cdrom which I could change, but honestly, there’s little point to that (and maybe I’m being just a bit lazy because typing “cdrom” is faster and easier than typing “blu-ray”Smilie: ;).

The tray of the drive ejects very quietly which is a nice change from my old Sony DVD-RW unit and upon closing makes that satisfying deep “ker-klump” noise akin to the quiet closing of a door on an expensive luxury car. Smilie: :) The activity light on the front of the unit is a lone bright-blue LED. Of course, a Blu-ray capable unit with a blue light – brilliant…

To do some basic testing, I stuck in a regular CD. The drive detected the disc within seconds and Ubuntu popped up the icon for it on my desktop. No faster or slower than my Sony drive. I was able to read the CD without any issue.

I repeated the test with a DVD disc. Again, no issues. The disc was identified and opened within seconds.

I don’t have any HD-DVD discs handy, so I was unable to test this feature (not that you can buy any of these discs out there anymore anyway).

I then inserted one of my newly purchased Blu-Ray movie discs. Again, the disc was detected within seconds and an icon appeared for it on my desktop (note that reading Blu-ray discs requires the UDF 2.5 filesystem which Ubuntu Intrepid thankfully has already).

The AU/UK release of “The Island” on Blu-Ray disc

The Autorun had no idea what to do with the disc:

Autorun Prompt after inserting the disc

I was half expecting the laser to spend a few extra seconds determining whether or not the disc was Blu-ray or HD-DVD, but clearly a delay is not needed, despite using a different laser. I was impressed. Again, I was able to read and navigate the Blu-ray disc and I was also able to copy files from it without any issue. The drive transferred data at approximately 8.8MB per second. I was able to read off 500MB worth of data in about 1 minute. In the case of the movie disc I inserted, the actual feature is a 21GB file which would have taken approximately 40 minutes to copy.

The file structure on the disc

Burning discs was completed with usual success. I burnt an Ubuntu ISO to a CD using Brasero without any issue. Burning a DVD was effortless also. Again, burn time seemed to be no different to my old Sony unit.

The drive has Lightscribe ability as well, to burn funky labels onto Lightscribe-compatible discs, but as I did not have any such discs handy, I was unable to test this feature.

In operation, the drive is very quiet. Any noise it does make is certainly being overshadowed by the noise of my PC’s fan and the room air-conditioning I’m using right now.

Predictably I was unable to PLAY any of the Blu-ray movies I purchased due to the fact that the DRM used on these movies is vastly different to that on DVD’s, and that Linux has no official support for Blu-ray – both Totem and MPlayer certainly had no idea what the media was.

Totem cant play Blu-ray

Instead, my primary use of this drive will be to make file backups of decrypted Blu-ray movies I purchase and watch them that way instead (because I’m a sucker for high-definition). I have written up a separate post detailing how I did this, the results of which are playable in both Totem and MPlayer – you can read it here.

All up, I think this is a good value for money drive. It’s cheap, cheerful and does the job as advertised. At the moment, it appears the only widespread use of the Blu-ray medium is for movies (and PlayStation3 titles). Outside of that, my drive will ultimately still spend most of its time reading DVD and CD mediums. Who knows, maybe PC games and Linux distros will eventually be released on Blu-ray?

Outside of that, the drive is reasonably future-proof with the ability to be updated via firmware updates, although such updates are Windows-only executables on the LG website, which is a shame. Still, it’s better than having to deal with a DOS boot floppy of old, and it is possible to run the firmware update through a virtual Windows session or via Wine. At the time of writing, my drive was delivered with version 1.03 of the firmware.

Aside from its enforcement of DRM, the Windows-only firmware upgrades and its decidely Volvo-like aesthetics (it’s boxy, but it’s good), there’s nothing really to fault this drive. I give it a hearty thumbs up.

Review score: 8 out of 10

HowTo: Rip a Blu-ray movie using an LG GGC-H20L Blu-ray drive with Ubuntu

The Blu-ray disc format has brought with it the ability to easily provide the next generation of High-Definition 1080p movie content. There’s just one problem – Ubuntu and Linux in general has no official support for Blu-ray, and its encryption scheme is vastly different to that of DVD – it’s not just a simple case of installing a library like the libdvdcss2 library for decrypting DVD’s – the protection is done both at a software and hardware level.

This article discusses how I used my recently purchased LG GGC-H20L Blu-ray ROM drive to successfully read and watch movies using Ubuntu Intrepid.

DISCLAIMER: This article describes decrypting BD titles using an Intel or AMD based PC with Ubuntu Linux. While you can use a PlayStation3’s BD drive to read and decrypt a title using known decryption keys using the PS3 version of Ubuntu, at this time of writing you cannot use Ubuntu installed on a PlayStation3 console to identify unknown decryption keys of a given BD title because the application used to derive those keys from the disc is not available for the PPC processor used by the PS3. You must use a consumer BD-ROM drive on an Intel or AMD based PC instead.

Hang on, you say – if there is no support for playback of Blu-ray movies on Linux, then why buy a Blu-ray drive if you can’t watch the movies? Well, I might not be able to watch them directly, but I can certainly rip the little buggers and watch a file version of it instead. But wait again, you say, if there’s no official Blu-ray support, and you can’t watch the discs directly, then how on earth do you rip them?? I’m glad you asked, and even if you didn’t ask, I’m about to tell you anyway. Smilie: :)

First up, a little Blu-ray 101.

Blu-ray movies feature Digital Rights Management (DRM). Like DVD’s before it, most Blu-ray movies are encrypted. This is to stop those naughty pirate types from making illegal backups of the movie and giving or selling it to their mates. In the case of DVD’s, however, there was only one decryption key which was eventually discovered and from then on allowed all DVD’s to be easily decrypted using a simple library (called libdvdcss2). The movie industry as a whole were not impressed by this and insisted that the next format be more difficult (preferably impossible) to decrypt, so Blu-rays (and HD-DVD’s, but I’ll concentrate on Blu-ray for this article) each have a different decryption key now. But to complicate this further, this key is kept hidden from you by an authentication mechanism to ensure that there isn’t a repeat of the De-CSS scandal that brought the DVD encryption scheme undone.

Each and every player out there, hardware or software, has a unique player authentication key which is passed to the Blu-ray optical drive, essentially like giving your passport to Customs at the country border, to validate whether or not you are legally authorised to  playback a movie. If the drive has not got a blacklisted record of your authentication key, and the key is accepted as a generally valid key that has been paid for, THEN the drive will give up the movie’s decryption key and movie playback can commence.

Blacklist?? What blacklist? Well, like DVD players, it’s not difficult to pick up a Blu-ray player’s authentication key that is used to prompt the drive for the disc’s decryption key, after all, it has to be held in memory somewhere. Once an industry authority discovers that an authentication key has been compromised, it is added to a blacklist so that it will not work anymore. This is why hardware Blu-ray players need to be firmware-upgradable, and why software players need to be upgraded to the next version periodically with patches, etc, so that new, non-blacklisted authentication keys can be provided.

OK, that sounds all well and good, but if the Blu-ray drive itself is doing the blacklisting, how exactly does it know when a given authentication key is no longer valid? Simple – its blacklist will get updated with the next latest-release movie you buy.

Say what?

Every Blu-ray movie you buy has a little file on the disc under the “AACS” folder called “ContentRevocation.lst”. This file contains a complete list of blacklisted authentication keys for the drive to update itself with, and – get this – you can’t stop the drive loading it. Well, actually to be more accurate this file is simply a copy of the same list that is actually hidden in a non-tamperable, non-user-readable area elsewhere on the disc for the drive to read, but basically the instant you stick that movie disc in, the hidden version of this file is read and the drive automatically updates its blacklist right away with any new blacklist data, even before the disc icon appears on your desktop. Sneaky, huh?

So the next time your legal (or more specifically, pirated) copy of PowerDVD or whatever tries to playback a movie, all of a sudden you’ll see an error message instead saying that your player’s authentication key has been revoked – thus the movie is now unplayable. What’s worse is that you won’t be able to watch any of your older discs that worked previously either! It’s this exact reason that many people have called for the Blu-ray (and HD-DVD) formats to be boycotted.

But not all is lost. Remember, this is an encryption technology created by Man, and therefore can be broken by Man with a bit of help from the Open Source Community at large. Smilie: :) With a little help from a few external resources including the Ubuntu Community Documentation and the Doom9 forums, I discovered a plethora of projects by various people, from dumping discs to breaking the encryption and authentication.

On the surface are general applications to dump the movie, decrypted, to a file. One of the best projects is DumpHD which is a Java app that provides a nice easy to use GUI that can rip a movie with a minimum of fuss (see detail about how to use it later in this article), however it requires that you already know what the decryption key for a given movie is which you can only obtain if you have authenticated with the drive. If you have the decryption key already, however, then authentication is not necessary and you can rip the movie right away without a problem, so this project is heavily supported by people posting up various decryption keys for all sorts of movie releases. The problem with this approach, however, is that different countries usually get different releases of the same movie, so for example a release of “Batman Begins” in Australia might have a completely different decryption key to the release of “Batman Begins” in America or Europe. This is not always the case of course, a good example being the Ewan McGregor movie “The Island” – the Australian release is actually the UK release, right down to the age-rating and film-office classification markings on the disc itself – only the box bears any Australian ratings markings!

The UK/AU release of “The Island” on Blu-Ray

So, how do you find out the decryption key of your locally purchased movie then? You don’t want to keep buying a commercial player, especially one that doesn’t run under Ubuntu, just to get a valid authentication key. There’s got to be a better way! Well, there is! How about we just bypass the authentication procedure altogether? How? Again, through another great contribution on the Doom9 forums.

The LG GGC-H20L drive is but one of many Blu-ray/HD-DVD drives which have had their firmware reverse-engineered. Firmware is largely just a computer program that operates the drive. Since the firmware is upgradable to fix bugs and add new features to the drive, it means the program can be altered by a third party. A Doom9 contributor has provided modified firmware for various popular drives, including the GGC-H20L that effectively allow the drive to ignore the authentication procedure no matter what player authentication key is provided, blacklisted or not, thus making the drive give up the decryption key for the Blu-ray movie currently inserted every time!

EDIT 10th Jan 2012: It appears the firmware is no longer available from the Doom9 forums as it has not been updated in quite some time. Here is a mirror of the v1.03 modified firmware to suit the LG GGC-H20L only.

In the case of the LG GGC-H20L that I use, the firmware is provided as a Windows Executable file. There are three ways to run this, either via a native Windows installation on your PC, a virtualised Windows installation on your PC, or via the Wine compatibility layer. I successfully upgraded my drive using the Wine option as follows:

WARNING: The following information can damage or even brick your LG Blu-ray drive if not followed correctly, or if you have a power failure during firmware update. You proceed at your own risk and I will not be held responsible for any damage incurred by your drive, or for loss of hair being torn out, by following these instructions.

  1. You need a normal Wine installation. If you’ve never installed it before, then type in:

    $ sudo apt-get install wine

    …and this will install the Ubuntu-repository version of Wine.
  2. Since we’ll be modifying a physical device, only root can do that, so we will need to use sudo to execute the firmware upgrade, however Wine will not work as root until we change permissions of your Wine configuration in your Home directory, so type in the following to make root the owner of your Wine configuration:

    $ sudo chown -R root:root ~/.wine
  3. Now execute the downloaded firmware file:

    $ sudo wine GGC-H20L_1.03_VolumeID_Patch.exe
  4. The Upgrade GUI will appear. Click on the button to commence update and let it do its thing. After a minute or two, it will tell you that the drive firmware has been successfully updated. At this point, you will need to reboot your PC, but before you do, remember to change the owner of your Wine installation back to yourself. If your login was “jbloggs”, then you’d type in:

    $ sudo chown -R jbloggs:jbloggs ~/.wine

Upon returning from restart, every time you query the drive for the inserted disc’s decryption key, the drive will now happily give it to you without question. Nice.

So how do we query the drive for that decryption key anyway? A simple tool to do this is aacskeys (version 0.4.0c at this time of writing, but check further along the thread for newer releases) written by another Doom9 member, which queries the drive and tells you its Volume Unique Key and its Disc ID, which you can then copy and paste into DumpHD’s keys config file and happily begin dumping your movie.

$ ./aacskeys /media/cdrom aacskeys 0.3.6 by arnezami, KenD00 Volume Unique Key:              5D9BCD44522B6940F8705400DA612ED9 Unit Key File Hash (Disc ID):   837487B4D6F614D5B4D5F566387B41C2D284F393 $ 

If your drive’s firmware was not patched, instead of seeing the Volume Unique Key and Disc ID, you would get this error message instead: “The given Host Certficate / Private Key has been revoked by your drive.”.

We now need to take the output data and copy it to DumpHD’s “keydb.cfg” file. Each key is placed on its own line in the following format:

DISC ID = Movie Title | D | YYYY-MM-DD | V | VOLUME UNIQUE KEY

Thus in the example above, we would enter:

837487B4D6F614D5B4D5F566387B41C2D284F393 = The Island | D | 2007-03-22 | V | 5D9BCD44522B6940F8705400DA612ED9 

Now technically it appears that the date is largly irelevant, and most people just use 0000-00-00 instead of a real date (which is supposed to be the file date of the “Unit_Key_RO.inf” file in the “AACS” folder of the disc). I have tested this and I can’t see any difference in how DumpHD handles the disc.

Once you have finished editing the keydb.cfg file, save it.

NOTE: DumpHD (below) can now use AACSKeys directly, saving you having to edit to the keydb.cfg file manually, because DumpHD now does all the work for you. See this article for more information.

Since DumpHD is a Java application, you will need Java installed to run it. If you haven’t already got it installed, you can install it with the following command:

sudo apt-get install java-common

…or more realistically you should install it as part of the ubuntu-restricted-extras package which also installs a number of other useful packages:

sudo apt-get install ubuntu-restricted-extras

Once that is done, launch DumpHD by simply running the “dumphd.sh” script by either double-clicking on it and select “Run” when prompted, or in a terminal, change to where you extracted the DumpHD program and type in:

$ sh ./dumphd.sh

When loaded, you will be presented with the following interface:

The DumpHD user interface

At the top-right of the window, there is the Source Browse button. Click on it and a new window will appear. In that window, type in or select “/media/cdrom” and then click OK. After a few seconds, the disc should be identified and you will see the window change as follows:

Identifying the BD-ROM content

Now all you need to do is click on the Destination Browse button, specify a place to store the decrypted movie and then click the Dump button to start the whole process! Once finished, you will have every video title found on the disc dumped in its originally encoded (video-wise) format, but without DRM. You can then use MPlayer to play these files directly. Generally the movie itself is the largest file, so in the case of my example, it’s the “00000.m2ts” file. I can play it simply with:

$ mplayer -fs 00000.m2ts

The -fs parameter plays the movie full-screen. I can toggle audio tracks using the hash (#) key (as for some reason, English is generally not the first audio track on the disc).

Remember that Blu-ray movies are very large. In my example, “The Island” is a good 21GB! It’s now up to you to decide whether or not you want to provide storage for your rips of this size, or whether or not you want to compress them down to save space. In my case, I was able to compress the movie down to about 4GB with negligible quality loss at a bitrate of 1200 using the x264 codec. I’ll probably increase this bitrate and allow the filesize to go to 8GB so I can maintain as near-perfect image quality to the original Blu-ray as possible. I personally choose to preserve the audio tracks as-is without down-converting them – they really don’t eat up that much space – a few hundred megabytes only.

Happy ripping!

Woah! After I’ve ripped the movie, it plays but it’s all corrupted! What’s going on?

The movie you have ripped is likely protected using BD+ protection. This is where some or much of the movie is deliberately corrupted to annoy you. I have written a guide on how to deal with this and correct the corruption here.