Fork us on GitHub Follow us on Facebook Follow us on Twitter

Version 6 (modified by Martin Decky, 7 years ago) (diff)

import first part of Julia's dashboard

UDF file system server

1 Current status

FS type Reading Writing
UDF Plain±-
DVD Video+N/A
Blu-Ray Video-N/A

2 TODO plan

  • Complete reading UDF plain disks
  • Complete and test reading Blu-ray disks
  • Complete support big-endian archs
  • Implement initial writing support for UDF plain disks

3 How to test

3.1 Download sources from my branch

bzr branch lp:~medvedeva-julia/helenos/udf helenos

3.2 Compile sources

cd helenos
make PROFILE=ia32

3.3 Create UDF disk image under Linux

To create UDF image under Linux you need to install package with UDF utilities. For example in Arch it's udftools. The package should contain the mkudffs tool.

mkudffs --media-type=hd --blocksize=512 --utf8 ./udf.img

You can also select media type: "hd" or "dvd" and blocksize: 512 or 2048 or something else.

Unless you are overwriting already existing image, you need to create an empty file first (otherwise you would get the trying to change type of multiple extents error). Following creates a 32M file:

dd if=/dev/zero of=./udf.img bs=4096 count=8192

3.4 Mount udf disk image under Linux

You can mount the UDF image (from step 3.3) under your Linux host and copy several files into it.

mount -o loop -t udf ./udf.img /mnt/udf-mount-point

where udf.img is the image from step 3.3

3.5 Boot HelenOS with user disk image

To boot HelenOS run QEMU:

qemu-system-i386 -m 512 -boot d -hda udf.img -cdrom image.iso

udf.img is the UDF disk image

3.6 Mount user disk image under HelenOS

In HelenOS run a batch script to run UDF server, ATA server and mount the first ATA disk as UDF.

batch u

Then, go to the /mnt directory:

cd /mnt

and here you are :)

4 Read functions dashboard

VFS method Task Implementation File Progress TODO and comments
mounted check volume recognition sequence udf_volume_recongnition udf_volume done
search for anchor volume descriptor udf_get_anchor_volume_descriptor udf_volume done
read volume descriptor sequence udf_read_volume_descriptor_sequence udf_volume done
data structure for saving information about item (file or dir) udf_node_t udf.h done
hash table for udf_node saving udf_idx_ udf_idx done udf_idx_hash too simple
ckecksum functions entire file udf_cksum done
osta unicode compression entire file udf_osta done
mount udf disk udf_mounted udf_ops done