diff -aurN k3b-kde4.orig/files/patch-libk3b-core-k3bglobals.cpp k3b-kde4/files/patch-libk3b-core-k3bglobals.cpp --- k3b-kde4.orig/files/patch-libk3b-core-k3bglobals.cpp 1970-01-01 01:00:00.000000000 +0100 +++ k3b-kde4/files/patch-libk3b-core-k3bglobals.cpp 2010-07-30 12:08:14.484904000 +0200 @@ -0,0 +1,16 @@ +--- libk3b/core/k3bglobals.cpp.orig 2010-07-30 06:36:01.794731453 +0000 ++++ libk3b/core/k3bglobals.cpp 2010-07-30 06:37:34.104075238 +0000 +@@ -321,6 +321,13 @@ + } + + ++QString K3b::externalBinGenericDeviceParameter( K3b::Device::Device* dev, const K3b::ExternalBin* bin ) ++{ ++ Q_UNUSED( bin ); ++ return dev->genericDeviceName(); ++} ++ ++ + K3b::WritingApp K3b::writingAppFromString( const QString& s ) + { + if( s.toLower() == "cdrdao" ) diff -aurN k3b-kde4.orig/files/patch-libk3b-core-k3bglobals.h k3b-kde4/files/patch-libk3b-core-k3bglobals.h --- k3b-kde4.orig/files/patch-libk3b-core-k3bglobals.h 1970-01-01 01:00:00.000000000 +0100 +++ k3b-kde4/files/patch-libk3b-core-k3bglobals.h 2010-07-30 12:08:14.484904000 +0200 @@ -0,0 +1,10 @@ +--- libk3b/core/k3bglobals.h.orig 2010-07-30 06:40:13.000000000 +0200 ++++ libk3b/core/k3bglobals.h 2010-07-30 06:41:05.000000000 +0200 +@@ -230,6 +230,7 @@ + * Takes care of SCSI and ATAPI. + */ + LIBK3B_EXPORT QString externalBinDeviceParameter( Device::Device* dev, const ExternalBin* ); ++ LIBK3B_EXPORT QString externalBinGenericDeviceParameter( Device::Device* dev, const ExternalBin* ); + + /** + * Tries to convert urls from local protocols != "file" to file (for now supports media:/) diff -aurN k3b-kde4.orig/files/patch-libk3b-projects-k3bcdrecordwriter.cpp k3b-kde4/files/patch-libk3b-projects-k3bcdrecordwriter.cpp --- k3b-kde4.orig/files/patch-libk3b-projects-k3bcdrecordwriter.cpp 1970-01-01 01:00:00.000000000 +0100 +++ k3b-kde4/files/patch-libk3b-projects-k3bcdrecordwriter.cpp 2010-07-30 12:08:14.484904000 +0200 @@ -0,0 +1,14 @@ +--- libk3b/projects/k3bcdrecordwriter.cpp.orig 2010-06-06 20:49:38.000000000 +0200 ++++ libk3b/projects/k3bcdrecordwriter.cpp 2010-07-30 06:43:53.000000000 +0200 +@@ -228,7 +228,11 @@ + d->process << "gracetime=2"; // 2 is the lowest allowed value (Joerg, why do you do this to us?) + + // Again we assume the device to be set! ++#if defined(Q_OS_FREEBSD) ++ d->process << QString("dev=%1").arg(K3b::externalBinGenericDeviceParameter(burnDevice(), d->cdrecordBinObject)); ++#else + d->process << QString("dev=%1").arg(K3b::externalBinDeviceParameter(burnDevice(), d->cdrecordBinObject)); ++#endif + + d->usedSpeedFactor = K3b::speedMultiplicatorForMediaType( d->burnedMediaType ); + d->usedSpeed = burnSpeed(); diff -aurN k3b-kde4.orig/files/patch-libk3bdevice-k3bdevice.cpp k3b-kde4/files/patch-libk3bdevice-k3bdevice.cpp --- k3b-kde4.orig/files/patch-libk3bdevice-k3bdevice.cpp 1970-01-01 01:00:00.000000000 +0100 +++ k3b-kde4/files/patch-libk3bdevice-k3bdevice.cpp 2010-07-30 12:08:14.484904000 +0200 @@ -0,0 +1,30 @@ +--- libk3bdevice/k3bdevice.cpp.orig 2010-06-06 15:32:49.000000000 +0200 ++++ libk3bdevice/k3bdevice.cpp 2010-07-30 06:44:02.000000000 +0200 +@@ -309,6 +309,12 @@ + } + + ++QString K3b::Device::Device::genericDeviceName() const ++{ ++ return d->genericDevice; ++} ++ ++ + int K3b::Device::Device::maxWriteSpeed() const + { + return d->maxWriteSpeed; +@@ -363,6 +369,14 @@ + if( !open() ) + return false; + ++#if defined(Q_OS_FREEBSD) ++ if( d->deviceHandle ) { ++ d->genericDevice = QString("%1").arg(d->deviceHandle->path_id) ++ + QString(",%1").arg(d->deviceHandle->target_id) ++ + QString(",%1").arg(d->deviceHandle->target_lun); ++ } ++#endif ++ + // + // inquiry + // use a 36 bytes buffer since not all devices return the full inquiry struct diff -aurN k3b-kde4.orig/files/patch-libk3bdevice-k3bdevice.h k3b-kde4/files/patch-libk3bdevice-k3bdevice.h --- k3b-kde4.orig/files/patch-libk3bdevice-k3bdevice.h 1970-01-01 01:00:00.000000000 +0100 +++ k3b-kde4/files/patch-libk3bdevice-k3bdevice.h 2010-07-30 12:08:14.484904000 +0200 @@ -0,0 +1,14 @@ +--- libk3bdevice/k3bdevice.h.orig 2010-07-30 06:33:55.000000000 +0200 ++++ libk3bdevice/k3bdevice.h 2010-07-30 06:35:35.000000000 +0200 +@@ -222,6 +222,11 @@ + */ + QString blockDeviceName() const; + ++ /** ++ * SCSI device path (bus_id:target_id:lun_id) ++ */ ++ QString genericDeviceName() const; ++ + int maxWriteSpeed() const; + + /**