Requirements :
To compile: g++, make
To run: admin (or sudo) rights
To display graphical results: Python, Gnuplot


1) Download pxlinux-x.y.z.tar.gz and decompress it somewhere.
cd pxlinux

2) make
You'll get four executable files:
ta
pisum8
pif
jitterbeta

3) Commands: Note: you need to be ROOT to send commands to the drive. Use sudo or su. I have to play with the setuid in the code in the future. There is no harmful code in the different programs but be aware that using programs under root is bad.


- PISum8

./pisum8 /dev/dvd [interval]
[interval] is equivalent to the accuracy under windows. By default, it is 1 (takes 30min to scan a DVD), the higher it is, the faster it is, because it swaps the test every [interval] blocks.

For a graphical output, use ./pisum8 /dev/dvd [interval] > pisumfile to save the result in the file pisumfile. Then use the python script:
./plotpisum8.py [-l] pisumfile
and then you'll get a graphical output. The X axis represents the number of blocks.
Note you need Python and Gnuplot installed. Usually they are available in many distros or even installed by default.




- PIF

./pif /dev/dvd [interval]
The same than pisum8.
For a graphical output, use ./pif /dev/dvd [interval] > piffile to save the result in the file piffile. Then use the python script:
./plotpif.py piffile
and then you'll get a graphical output.




- TA

./ta /dev/dvd [layers]
[layers] is the number of layers, 1 by default. Use 2 if you have a DVD+R DL (this will be automatised in the future).
For a graphical output, use ./ta /dev/dvd [interval] > tafile to save the result in the file tafile. Then use the python script:
./plotta.py [-l] tafile
and then you'll get a graphical output in this order : inner, middle, outer. If there is no -l switch, pits are displayed. If there is the -l switch, the land are displayed.
Note that the file tafile contains an analysis of the shift (cat tafile).

TA pits and lands output:




- Jitter/Beta

./jitterbeta /dev/dvd [interval] > jbfile
you obtain a jbfile that contains the data.
Then : ./plotjb.py jbfile

The green graph around 0 is the beta value.
The jitter value is in red and presented so that 0 equals 900 (and scale is reverted, 100 is 800, 200 is 700, and so on...)




TODO:
- solve the root problem
- automatic support for DL
- tests for CD
- a real GUI
- a clean code
- the other stuff (gigarec, varirec, powerec,...)