Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 4 Jul 2015 12:13:16 -0700
From:      Waitman Gobble <gobble.wa@gmail.com>
To:        freebsd-fs@freebsd.org
Subject:   UDF v2.5 in head - for testing please
Message-ID:  <CAFuo_fxmtmAin5qTkMNZFg1rmCL=o0OvfKn3QQCeOvVv0igg7A@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
Hi,

here's a patch against r285141

https://gist.github.com/waitman/07849a747d0d633a7009

It provides UDF v2.5 support to 'mount',

This driver could be useful in setting up a 'cold storage' system, or to
read a Blu-ray disc created for backup purposes.

UDF2.5 driver notes - FreeBSD-11.0-Current patch

This driver was originally ported over from NetBSD some years ago, as
a GSOC project, and updated by William Devries for FreeBSD 10.0 Current
about 2 years ago (i think work was on 10 then). I updated the source
to build on FreeBSD-11.0-Current. It's a cut down and simplified
version of the NetBSD driver, and is useful for mounting and reading
UDF v2.5 Blu-ray discs. The current NetBSD driver provides write support,
however it seems to me not necessary (see write examples below).

My goal wasn't to provide a way to 'play' encrypted Blu-ray discs, however
the driver has been tested successfully on non-encrypted commercial discs.
(I understand production runs less than 300 units are typically not encrypted,
at least that's my experience. I've been told by powers that be that if a person
produces over 300 units then they _must_ be encrypted due to patent licensing.
Perhaps that's true.)

You can mount an encrypted disc and look at the file system, however I believe
you must make use of aacs library and keys, to actually play an encrypted disc.

The software creates the 'mount_udf2' program, located in /sbin, and two
kernel modules, udf2.ko and udf2_icon.ko, located in /boot/kernel. There
are adjustments made to /sbin/mount to add udf2 switch. Also support added
to scsi.


1) Create an iso file of the "Music" directory

# mkisofs -R -J -joliet-long -udf -iso-level 3 -o Music.iso Music

the -joliet-long switch allows for filenames which do not conform to
the ancient 8.3 standard.


2) Burn Blu-ray disc (set speed to device/disc caps)

install ports/sysutils/dvd+rw-tools

# growisofs -speed=4 -dvd-compat -Z /dev/cd0=music.iso

Note: burning blu-ray disc on drive connected over SATA, writing 10GB
iso takes about 30 minutes. There appears to be some issue burning on
drive connected over USB 3.0, it is very slow and reportedly will take
1 to 7 days to complete. An issue that perhaps needs to be investigated,
however it's not really relevant to the UDF2 driver. Perhaps it's
missing firmware, or a faulty drive I'm using.

The -dvd-compat switch tells growisofs to close the session on the disc.


3) Mount disc

# mkdir /br
# mount_udf2 /dev/cd0 /br
(or)
# mount -t udf2 /dev/cd0 /br

4) Play video disc mounted on /br using mplayer (mplayer needs libbluray
support compiled in)

# mplayer br:////br -zoom -fs

Note: I'm mounting to /br because my recollection is that aacs library seems
to depend on that mount point, if trying to read/play encrypted blu-ray
disc. This may not be accurate, I haven't tested for some months.
The way to play an encrypted blu-ray disc is to use aacs library and
have access to the corresponding key files.

I only mention playing encrypted discs because I presume that will be
something a user wishes to accomplish, and be disappointed right off the bat,
however a few points -
it seems not a trivial task to access the necessary encryption keys,
and it's probably IMHO not worth the trouble to get it working. It's more
productive to play your movies in a $50 player, in my opinion.

I'm presuming it is trivial to make a backup of an encrypted blu-ray disc,
either by a sector dump or just simply mirroring the filesystem, however
I have not tried. It seems the video files on the disc are encrypted, not the
filesystem.

However, I think having UDFv2.5 read support is useful for file backups,
and developing cold storage systems using FreeBSD.


As a 'sanity' test, I used a BD disc created on FreeBSD, opened on an MS
Windows machine, seems like it works.

https://www.dropbox.com/s/5hoib3tzs819zb9/sshot-drive-bd.png?dl=0
https://www.dropbox.com/s/o7jngsqgg6dgb3k/sshot-drive-bd-play.png?dl=0




error reports/Comments/suggestions/improvements are appreciated.
Thanks,

-- 
Waitman Gobble
Los Altos California USA
650-999-0406



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFuo_fxmtmAin5qTkMNZFg1rmCL=o0OvfKn3QQCeOvVv0igg7A>