Hi, by help of Freddy Fisker doing experiments on his real NetBSD and of my qemu/kvm based virtual NetBSD i have now adapted libburn to perform SCSI transactions via ioctl(SCIOCCOMMAND).
My compliments towards the distro packagers. The environment for building my binaries worked out of the box (NetBSD-6.1.3-i386.iso). Very convenient for an upstream programmer. I have uploaded two library tarballs which will have to be installed for porting and operation of Xfburn: http://scdbackup.webframe.org/libburn-1.3.5.tar.gz http://scdbackup.webframe.org/libisofs-1.3.5.tar.gz The third library tarball will install a xorriso binary which links with the two previous libraries the same way as Xfburn does. So it can serve for testing suitability before work on Xfburn begins: http://scdbackup.webframe.org/libisoburn-1.3.5.tar.gz There are already packages of the libraries in pkgsrc-wip. If any of them is installed, please de-install before installing the new tarballs. libburn and libisofs have to be installed, before libisoburn can be installed. With x = "burn", "isofs", "isoburn" do: tar xzf lib${x}-1.3.5.tar.gz cd lib${x}-1.3.5 && ./configure --prefix /usr && make make install cd .. Afterwards there should be installed (among others which autotools deem necessary): /usr/lib/libburn.so.4 -> libburn.so.4.87 /usr/lib/libburn.so.4.87 /usr/lib/libisoburn.so.1 -> libisoburn.so.1.91 /usr/lib/libisoburn.so.1.91 /usr/lib/libisofs.so.6 -> libisofs.so.6.70 /usr/lib/libisofs.so.6.70 /usr/include/libburn/libburn.h /usr/include/libisofs/libisofs.h /usr/include/libisoburn/libisoburn.h /usr/include/libisoburn/xorriso.h /usr/share/man/man1/cdrskin.1 /usr/share/man/man1/xorriso.1 /usr/bin/cdrskin /usr/bin/xorriso I adapted the library numbering scheme to what i see in /usr/lib of my virtual NetBSD 6.1.3. Any hint for improvement of out-of-the-box installability is appreciated. The command xorriso -version should report among other lines libburn OS adapter: internal NetBSD SCIOCCOMMAND adapter sg-netbsd libburn should now be able to handle any writable medium type from CD-R to BD-RE DL. Supported are all drives which comply to one of the standards MMC-1 to MMC-6. (I.e. younger than the mid 1990s.) ----------------------------------------------------------------- Experiments to prove suitability of libburn and libisofs: Superuser authority should not be needed for the tests and is not advised. Grant rw-permission on /dev/rcd*d (or rcd*c) to some test user. Then operate xorriso as that user. Get a list of accessible CD drives xorriso -devices Inspect the medium in drive /dev/rcd0d xorriso -outdev /dev/rcd0d -toc Inspect a medium with ISO 9660 filesystem on it (e.g. with NetBSD-6.1.3-i386.iso) xorriso -indev /dev/rcd0d -toc -pvd_info Burn a moderately sized directory (here: /usr/bin) as ISO 9660 onto an unused or re-usable medium xorriso -outdev /dev/rcd0d -blank as_needed -map /usr/bin /usr/bin Afterwards, please eject the medium to invalidate block buffers, load it again, and try whether it is mountable as -t cd9660 according to https://www.netbsd.org/docs/guide/en/chap-rmmedia.html Check whether /mnt/usr/bin appears as complete copy of /usr/bin. E.g. by diff -r /usr/bin /mnt/usr/bin Add another session (e.g. /usr/lib and /lib) xorriso -dev /dev/rcd0d -map /usr/lib /usr/lib -map /lib /lib Again: eject, reload, mount, and check for completeness: diff -r /usr/lib /mnt/usr/lib (We copied /lib because some symbolic links from /usr/lib point to it and would elsewise cause complaints of diff.) ----------------------------------------------------------------- If an experiment shows failure or suspicious outcome, please repeat it with extreme verbosity by prepending -scsi_log on -report_about all to the program arguments and redirecting the output to a log file: xorriso -scsi_log on -report_about all \ ...arguments.as.in.the.examples.above... \ 2>&1 | tee -i /tmp/xorriso.log Send me the complete xorriso shell command and the log file for inspection. ----------------------------------------------------------------- Have a nice day :) Thomas
