Bug 87211 - After Kernelupdate (from 2.6.7 to 2.6.8) there are no burner to choose.
Summary: After Kernelupdate (from 2.6.7 to 2.6.8) there are no burner to choose.
Status: RESOLVED FIXED
Alias: None
Product: k3b
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR normal
Target Milestone: ---
Assignee: Sebastian Trueg
URL:
Keywords:
: 88681 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-08-14 18:17 UTC by Johannes Schaub
Modified: 2006-05-30 13:40 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Kernel 2.6.8 fix (23.74 KB, application/octet-stream)
2004-08-15 12:26 UTC, Sebastian Trueg
Details
patch to get k3b and friends working again (4.52 KB, patch)
2004-08-22 15:49 UTC, Chris Clayton
Details
this patch fixes the issue witch cdrecord but not with k3b (1.73 KB, patch)
2004-08-27 10:58 UTC, dragoran
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Johannes Schaub 2004-08-14 18:17:34 UTC
Version:           0.11.14 (using KDE 3.3.0, SuSE)
Compiler:          gcc version 3.3.3 (SuSE Linux)
OS:                Linux (i686) release 2.6.8

When I updated the Kernel from 2.6.7 to 2.6.8 there are no more burners to choose. Instead of displaying my LiteON-Burner under the Category "Writers", K3b lists the Burner under the Category "Readers". So I can't do anything with K3b.

The Output:
johannes@HOST1:~> k3b
k3b: (K3bPluginFactory) creating K3bPluginFactory.
k3b: (K3bPluginFactory) creating K3bPluginFactory.
k3b: (K3bPluginFactory) creating K3bPluginFactory.
k3b: (K3bPluginFactory) creating K3bPluginFactory.
k3b: (K3bPluginFactory) creating K3bPluginFactory.
k3b: (K3bPluginFactory) creating K3bPluginFactory.
k3b: (K3bPluginFactory) creating K3bPluginFactory.
k3b: (K3bExternalBinManager) Cdrecord 2.1a36 features: gracetime, overburn, cdtext, clone, tao, cuefile, suidroot, plain-atapi, hacked-atapi
k3b: (K3bExternalBinManager) 2 1 -1 a36 seems to be cdrecord version >= 1.11a02, using burnfree instead of burnproof
k3b: (K3bExternalBinManager) seems to be cdrecord version >= 1.11a31, support for Just Link via burnfree driveroption
k3b: (K3bExternalBinManager) Cdrecord 2.1a36 features: gracetime, overburn, cdtext, clone, tao, cuefile, suidroot, plain-atapi, hacked-atapi
k3b: (K3bExternalBinManager) 2 1 -1 a36 seems to be cdrecord version >= 1.11a02, using burnfree instead of burnproof
k3b: (K3bExternalBinManager) seems to be cdrecord version >= 1.11a31, support for Just Link via burnfree driveroption
k3b: /dev/hdd resolved to /dev/hdd
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdd is block device (64)
k3b: /dev/hdd seems to be cdrom
k3b: (K3bCdDevice) resmgr open: -1
k3b: (K3bCdDevice) /dev/hdd: init()
k3b: (K3bCdDevice) resmgr open: -1
k3b: (K3bCdDevice::ScsiCommand) failed: fd: 11
k3b:                            command:    GET CONFIGURATION (46)
k3b:                            errorcode:  0
k3b:                            sense key:  NO SENSE (2)
k3b:                            asc:        0
k3b:                            ascq:       0
k3b: (K3bCdDevice) /dev/hdd: GET_CONFIGURATION failed.
k3b: (K3bCdDevice::ScsiCommand) failed: fd: 11
k3b:                            command:    MODE SENSE (5a)
k3b:                            errorcode:  70
k3b:                            sense key:  ILLEGAL REQUEST (5)
k3b:                            asc:        24
k3b:                            ascq:       0
k3b: (K3bCdDevice::CdDevice) /dev/hdd: MODE SENSE length det failed.
k3b: (K3bCdDevice::CdDevice) /dev/hdd: modeSense 0x05 failed!
k3b: (K3bCdDevice::CdDevice) /dev/hdd: Cannot check write modes.
k3b: (K3bCdDevice::ScsiCommand) failed: fd: 11
k3b:                            command:    MODE SENSE (5a)
k3b:                            errorcode:  70
k3b:                            sense key:  ILLEGAL REQUEST (5)
k3b:                            asc:        24
k3b:                            ascq:       0
k3b: (K3bCdDevice::CdDevice) /dev/hdd: MODE SENSE length det failed.
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdc resolved to /dev/hdc
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bCdDevice) resmgr open: -1
k3b: (K3bCdDevice) /dev/hdc: init()
k3b: (K3bCdDevice) resmgr open: -1
k3b: (K3bCdDevice::ScsiCommand) failed: fd: 11
k3b:                            command:    GET CONFIGURATION (46)
k3b:                            errorcode:  0
k3b:                            sense key:  NO SENSE (2)
k3b:                            asc:        0
k3b:                            ascq:       0
k3b: (K3bCdDevice) /dev/hdc: GET_CONFIGURATION failed.
k3b: (K3bCdDevice::CdDevice) /dev/hdc: dataLen: 60
k3b: (K3bCdDevice::ScsiCommand) failed: fd: 11
k3b:                            command:    MODE SELECT (55)
k3b:                            errorcode:  0
k3b:                            sense key:  NO SENSE (2)
k3b:                            asc:        0
k3b:                            ascq:       0
k3b: (K3bCdDevice::CdDevice) /dev/hdc: modeSelect with TAO failed. No writer
k3b: (K3bCdDevice) resmgr open: -1
k3b: (K3bDeviceManager) Link: /dev/dvd -> /dev/hdd
k3b: (K3bDeviceManager) Link: /dev/cdrom -> /dev/hdc
k3b: (K3bDeviceManager) Link: /dev/by-id/LITE-ON_LTR-40125 -> /dev/hdc
k3b: (K3bDeviceManager) Link: /dev/by-id/Pioneer_DVD-ROM_ATAPIModel_DVD-104S_02 -> /dev/hdd
k3b: (K3bDeviceManager) Link: /dev/cdrecorder -> /dev/hdc
k3b: (K3bDeviceManager) Link: /dev/by-path/pci-0000:00:07.1-ide-1:0 -> /dev/hdc
k3b: (K3bDeviceManager) Link: /dev/by-path/pci-0000:00:07.1-ide-1:1 -> /dev/hdd
k3b: (K3bDeviceManager) scanning fstab: /dev/hda1
k3b: (K3bCdDevice) resmgr open: -1
k3b: could not open device /dev/hda1 (Keine Berechtigung)
k3b: (K3bDeviceManager) scanning fstab: /dev/hda2
k3b: (K3bCdDevice) resmgr open: -1
k3b: could not open device /dev/hda2 (Keine Berechtigung)
k3b: (K3bDeviceManager) scanning fstab: devpts
k3b: Could not resolve devpts
k3b: (K3bCdDevice) resmgr open: -1
k3b: could not open device devpts (Datei oder Verzeichnis nicht gefunden)
k3b: (K3bDeviceManager) scanning fstab: proc
k3b: Could not resolve proc
k3b: (K3bCdDevice) resmgr open: -1
k3b: could not open device proc (Datei oder Verzeichnis nicht gefunden)
k3b: (K3bDeviceManager) scanning fstab: usbfs
k3b: Could not resolve usbfs
k3b: (K3bCdDevice) resmgr open: -1
k3b: could not open device usbfs (Datei oder Verzeichnis nicht gefunden)
k3b: (K3bDeviceManager) scanning fstab: sysfs
k3b: Could not resolve sysfs
k3b: (K3bCdDevice) resmgr open: -1
k3b: could not open device sysfs (Datei oder Verzeichnis nicht gefunden)
k3b: (K3bDeviceManager) scanning fstab: /dev/fd0
k3b: (K3bCdDevice) resmgr open: -1
k3b: (K3bDeviceManager) scanning fstab: /dev/dvd
k3b: (K3bDeviceManager) found device for /dev/dvd: /dev/hdd
k3b: (K3bDeviceManager) scanning fstab: /dev/cdrecorder
k3b: (K3bDeviceManager) found device for /dev/cdrecorder: /dev/hdc
k3b: /dev/hdd resolved to /dev/hdd
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdd is block device (64)
k3b: /dev/hdd seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdd already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdd resolved to /dev/hdd
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdd is block device (64)
k3b: /dev/hdd seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdd already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdd resolved to /dev/hdd
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdd is block device (64)
k3b: /dev/hdd seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdd already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdd resolved to /dev/hdd
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdd is block device (64)
k3b: /dev/hdd seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdd already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdd resolved to /dev/hdd
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdd is block device (64)
k3b: /dev/hdd seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdd already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdd resolved to /dev/hdd
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdd is block device (64)
k3b: /dev/hdd seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdd already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdd resolved to /dev/hdd
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdd is block device (64)
k3b: /dev/hdd seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdd already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdd resolved to /dev/hdd
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdd is block device (64)
k3b: /dev/hdd seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdd already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdd resolved to /dev/hdd
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdd is block device (64)
k3b: /dev/hdd seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdd already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdd resolved to /dev/hdd
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdd is block device (64)
k3b: /dev/hdd seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdd already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdd resolved to /dev/hdd
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdd is block device (64)
k3b: /dev/hdd seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdd already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdd resolved to /dev/hdd
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdd is block device (64)
k3b: /dev/hdd seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdd already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdd resolved to /dev/hdd
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdd is block device (64)
k3b: /dev/hdd seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdd already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdd resolved to /dev/hdd
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdd is block device (64)
k3b: /dev/hdd seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdd already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdd resolved to /dev/hdd
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdd is block device (64)
k3b: /dev/hdd seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdd already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: (K3bCdDevice) resmgr open: -1
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: (K3bDeviceManager) found config entry for devicetype: PIONEER DVD-ROM DVD-104
k3b: (K3bDeviceManager) found config entry for devicetype: LITE-ON LTR-40125S
k3b: (K3bDeviceManager) scanning fstab: /dev/hda1
k3b: (K3bCdDevice) resmgr open: -1
k3b: could not open device /dev/hda1 (Keine Berechtigung)
k3b: (K3bDeviceManager) scanning fstab: /dev/hda2
k3b: (K3bCdDevice) resmgr open: -1
k3b: could not open device /dev/hda2 (Keine Berechtigung)
k3b: (K3bDeviceManager) scanning fstab: devpts
k3b: Could not resolve devpts
k3b: (K3bCdDevice) resmgr open: -1
k3b: could not open device devpts (Datei oder Verzeichnis nicht gefunden)
k3b: (K3bDeviceManager) scanning fstab: proc
k3b: Could not resolve proc
k3b: (K3bCdDevice) resmgr open: -1
k3b: could not open device proc (Datei oder Verzeichnis nicht gefunden)
k3b: (K3bDeviceManager) scanning fstab: usbfs
k3b: Could not resolve usbfs
k3b: (K3bCdDevice) resmgr open: -1
k3b: could not open device usbfs (Datei oder Verzeichnis nicht gefunden)
k3b: (K3bDeviceManager) scanning fstab: sysfs
k3b: Could not resolve sysfs
k3b: (K3bCdDevice) resmgr open: -1
k3b: could not open device sysfs (Datei oder Verzeichnis nicht gefunden)
k3b: (K3bDeviceManager) scanning fstab: /dev/fd0
k3b: (K3bCdDevice) resmgr open: -1
k3b: (K3bDeviceManager) scanning fstab: /dev/dvd
k3b: (K3bDeviceManager) found device for /dev/dvd: /dev/hdd
k3b: (K3bDeviceManager) scanning fstab: /dev/cdrecorder
k3b: (K3bDeviceManager) found device for /dev/cdrecorder: /dev/hdc
k3b: Devices:
k3b: ------------------------------
k3b: Blockdevice:    /dev/hdd
k3b: Vendor:         PIONEER
k3b: Description:    DVD-ROM DVD-104
k3b: Version:        2.06
k3b: MountDevice:    /dev/dvd
k3b: Mountpoint:     /media/dvd
k3b: Write speed:    0
k3b: Profiles:       Fehler
k3b: Devicetype:     CD-ROM; DVD-ROM
k3b: Writing modes:  Keine
k3b: Reader aliases: /dev/hdd, /dev/dvd, /dev/by-id/Pioneer_DVD-ROM_ATAPIModel_DVD-104S_02, /dev/by-path/pci-0000:00:07.1-ide-1:1
k3b: ------------------------------
k3b: Blockdevice:    /dev/hdc
k3b: Vendor:         LITE-ON
k3b: Description:    LTR-40125S
k3b: Version:        ZS0N
k3b: MountDevice:    /dev/cdrecorder
k3b: Mountpoint:     /media/cdrecorder
k3b: Write speed:    7000
k3b: Profiles:       Fehler
k3b: Devicetype:     CD-R; CD-RW; CD-ROM
k3b: Writing modes:  Keine
k3b: Reader aliases: /dev/hdc, /dev/cdrom, /dev/by-id/LITE-ON_LTR-40125, /dev/cdrecorder, /dev/by-path/pci-0000:00:07.1-ide-1:0
k3b: ------------------------------
k3b: Version: 1.0
k3b: WARNING: KGenericFactory: instance requested but no instance name or about data passed to the constructor!
k3b: (K3b::cutToWidth) not able to cut text to 1!

I hope you can fix this error soon! Thanks
Comment 1 Sebastian Trueg 2004-08-14 19:53:01 UTC
proper permissions?
Comment 2 Inspector Chan 2004-08-14 20:44:15 UTC
Hi,

Same behaviour here. After update from 2.6.7 to 2.6.8 k3b doesn't detect cd-burner.

In my case just changed some kernel options jsut for making sata drive work in 2.6.8 (now it's a scsi device "sda" instead of an ide "hde") so I thought maybe this was the problem... But quite probably it's not as cdrecord works without a glitch (maybe Johannes have also some sata drive ¿?).

The k3b log spits similar errors like reported on previous post. Permisions were checked and they were correct.

As a note k3b on 2.6.7 continues working perfectly.

Hope this helps nailing that bug ;)

-----------------------------------------

k3b: (K3bPluginFactory) creating K3bPluginFactory.
k3b: (K3bPluginFactory) creating K3bPluginFactory.
k3b: (K3bPluginFactory) creating K3bPluginFactory.
k3b: (K3bPluginFactory) creating K3bPluginFactory.
k3b: (K3bPluginFactory) creating K3bPluginFactory.
k3b: (K3bPluginFactory) creating K3bPluginFactory.
k3b: (K3bCdrecordProgram) checking for Debian cdrecord wrapper script.
k3b: (K3bCdrecordProgram) Debian Wrapper script size fits. Checking file.
k3b: (K3bCdrecordProgram) Found Debian Wrapper script.
k3b: linux kernel version: 2.6.8
k3b: (K3bCdrecordProgram) Using cdrecord.mmap
k3b: (K3bExternalBinManager) Cdrecord 2.1a34 features: gracetime, overburn, cdtext, clone, tao, cuefile, suidroot, plain-atapi, hacked-atapi
k3b: (K3bExternalBinManager) 2 1 -1 a34 seems to be cdrecord version >= 1.11a02, using burnfree instead of burnproof
k3b: (K3bExternalBinManager) seems to be cdrecord version >= 1.11a31, support for Just Link via burnfree driveroption
k3b: (K3bCdrecordProgram) checking for Debian cdrecord wrapper script.
k3b: (K3bCdrecordProgram) Debian Wrapper script size fits. Checking file.
k3b: (K3bCdrecordProgram) Found Debian Wrapper script.
k3b: linux kernel version: 2.6.8
k3b: (K3bCdrecordProgram) Using cdrecord.mmap
k3b: (K3bExternalBinManager) Cdrecord 2.1a34 features: gracetime, overburn, cdtext, clone, tao, cuefile, suidroot, plain-atapi, hacked-atapi
k3b: (K3bExternalBinManager) 2 1 -1 a34 seems to be cdrecord version >= 1.11a02, using burnfree instead of burnproof
k3b: (K3bExternalBinManager) seems to be cdrecord version >= 1.11a31, support for Just Link via burnfree driveroption
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bCdDevice) /dev/hdc: init()
k3b: (K3bCdDevice::ScsiCommand) failed: fd: 11
k3b:                            command:    GET CONFIGURATION (46)
k3b:                            errorcode:  0
k3b:                            sense key:  NO SENSE (2)
k3b:                            asc:        0
k3b:                            ascq:       0
k3b: (K3bCdDevice) /dev/hdc: GET_CONFIGURATION failed.
k3b: (K3bCdDevice::CdDevice) /dev/hdc: dataLen: 60
k3b: (K3bCdDevice::ScsiCommand) failed: fd: 11
k3b:                            command:    MODE SELECT (55)
k3b:                            errorcode:  0
k3b:                            sense key:  NO SENSE (2)
k3b:                            asc:        0
k3b:                            ascq:       0
k3b: (K3bCdDevice::CdDevice) /dev/hdc: modeSelect with TAO failed. No writer
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bCdDevice) /dev/hdb: init()
k3b: (K3bCdDevice::ScsiCommand) failed: fd: 11
k3b:                            command:    GET CONFIGURATION (46)
k3b:                            errorcode:  0
k3b:                            sense key:  NO SENSE (2)
k3b:                            asc:        0
k3b:                            ascq:       0
k3b: (K3bCdDevice) /dev/hdb: GET_CONFIGURATION failed.
k3b: (K3bCdDevice::ScsiCommand) failed: fd: 11
k3b:                            command:    MODE SENSE (5a)
k3b:                            errorcode:  70
k3b:                            sense key:  ILLEGAL REQUEST (5)
k3b:                            asc:        24
k3b:                            ascq:       0
k3b: (K3bCdDevice::CdDevice) /dev/hdb: MODE SENSE length det failed.
k3b: (K3bCdDevice::CdDevice) /dev/hdb: modeSense 0x05 failed!
k3b: (K3bCdDevice::CdDevice) /dev/hdb: Cannot check write modes.
k3b: (K3bCdDevice::ScsiCommand) failed: fd: 11
k3b:                            command:    MODE SENSE (5a)
k3b:                            errorcode:  70
k3b:                            sense key:  ILLEGAL REQUEST (5)
k3b:                            asc:        24
k3b:                            ascq:       0
k3b: (K3bCdDevice::CdDevice) /dev/hdb: MODE SENSE length det failed.
k3b: (K3bDeviceManager) Link: /dev/dvd -> /dev/hdb
k3b: (K3bDeviceManager) Link: /dev/cdrom -> /dev/hdb
k3b: (K3bDeviceManager) Link: /dev/graba -> /dev/hdc
k3b: (K3bDeviceManager) Link: /dev/cdrom0 -> /dev/hdb
k3b: (K3bDeviceManager) Link: /dev/cdrom1 -> /dev/hdc
k3b: (K3bDeviceManager) scanning fstab: /dev/sda1
k3b: could not open device /dev/sda1 (Permiso denegado)
k3b: (K3bDeviceManager) scanning fstab: /dev/sda3
k3b: could not open device /dev/sda3 (Permiso denegado)
k3b: (K3bDeviceManager) scanning fstab: /dev/sda4
k3b: could not open device /dev/sda4 (Permiso denegado)
k3b: (K3bDeviceManager) scanning fstab: /dev/hda1
k3b: could not open device /dev/hda1 (Permiso denegado)
k3b: (K3bDeviceManager) scanning fstab: /dev/hda4
k3b: could not open device /dev/hda4 (Permiso denegado)
k3b: (K3bDeviceManager) scanning fstab: /dev/hdd1
k3b: could not open device /dev/hdd1 (Permiso denegado)
k3b: (K3bDeviceManager) scanning fstab: /dev/hdd5
k3b: could not open device /dev/hdd5 (Permiso denegado)
k3b: (K3bDeviceManager) scanning fstab: /dev/hdd6
k3b: could not open device /dev/hdd6 (Permiso denegado)
k3b: (K3bDeviceManager) scanning fstab: sysfs
k3b: Could not resolve sysfs
k3b: could not open device sysfs (No existe el fichero o el directorio)
k3b: (K3bDeviceManager) scanning fstab: /dev/sda2
k3b: could not open device /dev/sda2 (Permiso denegado)
k3b: (K3bDeviceManager) scanning fstab: proc
k3b: Could not resolve proc
k3b: could not open device proc (No existe el fichero o el directorio)
k3b: (K3bDeviceManager) scanning fstab: /dev/fd0
k3b: could not open device none (No existe el fichero o el directorio)
k3b: (K3bDeviceManager) scanning fstab: /dev/cdrom
k3b: (K3bDeviceManager) found device for /dev/cdrom: /dev/hdb
k3b: (K3bDeviceManager) scanning fstab: /dev/graba
k3b: (K3bDeviceManager) found device for /dev/graba: /dev/hdc
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: /dev/hdc resolved to /dev/hdc
k3b: /dev/hdc is block device (0)
k3b: /dev/hdc seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdc already found
k3b: /dev/hdb resolved to /dev/hdb
k3b: /dev/hdb is block device (64)
k3b: /dev/hdb seems to be cdrom
k3b: (K3bDeviceManager) dev /dev/hdb already found
k3b: (K3bDeviceManager) found config entry for devicetype: AOPEN CD-RW CRW5232
k3b: (K3bDeviceManager) found config entry for devicetype: HL-DT-ST DVD-ROM GDR8162B
k3b: (K3bDeviceManager) scanning fstab: /dev/sda1
k3b: could not open device /dev/sda1 (Permiso denegado)
k3b: (K3bDeviceManager) scanning fstab: /dev/sda3
k3b: could not open device /dev/sda3 (Permiso denegado)
k3b: (K3bDeviceManager) scanning fstab: /dev/sda4
k3b: could not open device /dev/sda4 (Permiso denegado)
k3b: (K3bDeviceManager) scanning fstab: /dev/hda1
k3b: could not open device /dev/hda1 (Permiso denegado)
k3b: (K3bDeviceManager) scanning fstab: /dev/hda4
k3b: could not open device /dev/hda4 (Permiso denegado)
k3b: (K3bDeviceManager) scanning fstab: /dev/hdd1
k3b: could not open device /dev/hdd1 (Permiso denegado)
k3b: (K3bDeviceManager) scanning fstab: /dev/hdd5
k3b: could not open device /dev/hdd5 (Permiso denegado)
k3b: (K3bDeviceManager) scanning fstab: /dev/hdd6
k3b: could not open device /dev/hdd6 (Permiso denegado)
k3b: (K3bDeviceManager) scanning fstab: sysfs
k3b: Could not resolve sysfs
k3b: could not open device sysfs (No existe el fichero o el directorio)
k3b: (K3bDeviceManager) scanning fstab: /dev/sda2
k3b: could not open device /dev/sda2 (Permiso denegado)
k3b: (K3bDeviceManager) scanning fstab: proc
k3b: Could not resolve proc
k3b: could not open device proc (No existe el fichero o el directorio)
k3b: (K3bDeviceManager) scanning fstab: /dev/fd0
k3b: could not open device none (No existe el fichero o el directorio)
k3b: (K3bDeviceManager) scanning fstab: /dev/cdrom
k3b: (K3bDeviceManager) found device for /dev/cdrom: /dev/hdb
k3b: (K3bDeviceManager) scanning fstab: /dev/graba
k3b: (K3bDeviceManager) found device for /dev/graba: /dev/hdc
k3b: Devices:
k3b: ------------------------------
k3b: Blockdevice:    /dev/hdc
k3b: Vendor:         AOPEN
k3b: Description:    CD-RW CRW5232
k3b: Version:        1.03
k3b: MountDevice:    /dev/graba
k3b: Mountpoint:     /mnt/graba
k3b: Write speed:    0
k3b: Profiles:       Error
k3b: Devicetype:     CD-R; CD-RW; CD-ROM
k3b: Writing modes:  None
k3b: Reader aliases: /dev/hdc, /dev/graba, /dev/cdrom1
k3b: ------------------------------
k3b: Blockdevice:    /dev/hdb
k3b: Vendor:         HL-DT-ST
k3b: Description:    DVD-ROM GDR8162B
k3b: Version:        0015
k3b: MountDevice:    /dev/cdrom
k3b: Mountpoint:     /mnt/cdrom
k3b: Write speed:    0
k3b: Profiles:       Error
k3b: Devicetype:     CD-ROM; DVD-ROM
k3b: Writing modes:  None
k3b: Reader aliases: /dev/hdb, /dev/dvd, /dev/cdrom, /dev/cdrom0
k3b: ------------------------------
k3b: Version: 1.0
k3b: WARNING: KGenericFactory: instance requested but no instance name passed to the constructor!
k3b: (K3b::cutToWidth) not able to cut text to 1!
k3b: (K3bCore) System problems:
k3b:           - none - 
k3b: (K3bPluginFactory) deleting K3bPluginFactory.
k3b: (K3bPluginFactory) deleting K3bPluginFactory.
k3b: (K3bPluginFactory) deleting K3bPluginFactory.
k3b: (K3bPluginFactory) deleting K3bPluginFactory.
k3b: (K3bPluginFactory) deleting K3bPluginFactory.
k3b: (K3bPluginFactory) deleting K3bPluginFactory.



Comment 3 Johannes Schaub 2004-08-15 00:13:38 UTC
Am Samstag, den 14.08.2004, 17:53 +0000 schrieb Sebastian Trueg:
> ------- You are receiving this mail because: -------
> You reported the bug, or are watching the reporter.
>       
> http://bugs.kde.org/show_bug.cgi?id=87211      
> 
> 
> 
> 
> ------- Additional Comments From trueg informatik uni-freiburg de  2004-08-14 19:53 -------
> proper permissions?

Yes, the Permissions are: 

-rws--xr-x  1 root burning 356620 2004-08-14 12:41 /usr/bin/cdrecord
brw-------  1 johannes burning 22, 0 2004-04-06 15:27 /dev/hdc

They must be correct, because with Kernel 2.6.7(wich I'm using now) it
works.

Comment 4 Chris Clayton 2004-08-15 08:22:51 UTC
I strongly suspect that this is related to a patch that this is caused by a patch that has been applied to the final version of 2.6.8 - k3b worked fine with 2.6.8-rc4. The patch seems to be filtering commands sent to the drive according to whether (1) it is regarded as safe and that depends on the mode (read/write) in which the drive is opened and (2) whether or not you are root.

I have just found that if, via kmenu, you set k3b so that you are prompted for root's password and k3b then runs as root, the devices are available again. An extract from the patch that shouild explain my suspicions follows:

diff -urN linux-2.6.8-rc4/drivers/block/scsi_ioctl.c linux-2.6.8/drivers/block/scsi_ioctl.c
--- linux-2.6.8-rc4/drivers/block/scsi_ioctl.c	2004-08-13 23:15:31.242175945 -0700
+++ linux-2.6.8/drivers/block/scsi_ioctl.c	2004-08-13 23:15:49.905945357 -0700
@@ -105,8 +105,80 @@
 	return put_user(1, p);
 }
 
-static int sg_io(request_queue_t *q, struct gendisk *bd_disk,
-		 struct sg_io_hdr *hdr)
+#define CMD_READ_SAFE	0x01
+#define CMD_WRITE_SAFE	0x02
+#define safe_for_read(cmd)	[cmd] = CMD_READ_SAFE
+#define safe_for_write(cmd)	[cmd] = CMD_WRITE_SAFE
+
+static int verify_command(struct file *file, unsigned char *cmd)
+{
+	static const unsigned char cmd_type[256] = {
+
+		/* Basic read-only commands */
+		safe_for_read(TEST_UNIT_READY),
+		safe_for_read(REQUEST_SENSE),
+		safe_for_read(READ_6),
+		safe_for_read(READ_10),
+		safe_for_read(READ_12),
+		safe_for_read(READ_16),
+		safe_for_read(READ_BUFFER),
+		safe_for_read(READ_LONG),
+		safe_for_read(INQUIRY),
+		safe_for_read(MODE_SENSE),
+		safe_for_read(MODE_SENSE_10),
+		safe_for_read(START_STOP),
+
+		/* Audio CD commands */
+		safe_for_read(GPCMD_PLAY_CD),
+		safe_for_read(GPCMD_PLAY_AUDIO_10),
+		safe_for_read(GPCMD_PLAY_AUDIO_MSF),
+		safe_for_read(GPCMD_PLAY_AUDIO_TI),
+
+		/* CD/DVD data reading */
+		safe_for_read(GPCMD_READ_CD),
+		safe_for_read(GPCMD_READ_CD_MSF),
+		safe_for_read(GPCMD_READ_DISC_INFO),
+		safe_for_read(GPCMD_READ_CDVD_CAPACITY),
+		safe_for_read(GPCMD_READ_DVD_STRUCTURE),
+		safe_for_read(GPCMD_READ_HEADER),
+		safe_for_read(GPCMD_READ_TRACK_RZONE_INFO),
+		safe_for_read(GPCMD_READ_SUBCHANNEL),
+		safe_for_read(GPCMD_READ_TOC_PMA_ATIP),
+		safe_for_read(GPCMD_REPORT_KEY),
+		safe_for_read(GPCMD_SCAN),
+
+		/* Basic writing commands */
+		safe_for_write(WRITE_6),
+		safe_for_write(WRITE_10),
+		safe_for_write(WRITE_VERIFY),
+		safe_for_write(WRITE_12),
+		safe_for_write(WRITE_VERIFY_12),
+		safe_for_write(WRITE_16),
+		safe_for_write(WRITE_BUFFER),
+		safe_for_write(WRITE_LONG),
+	};
+	unsigned char type = cmd_type[cmd[0]];
+
+	/* Anybody who can open the device can do a read-safe command */
+	if (type & CMD_READ_SAFE)
+		return 0;
+
+	/* Write-safe commands just require a writable open.. */
+	if (type & CMD_WRITE_SAFE) {
+		if (file->f_mode & FMODE_WRITE)
+			return 0;
+	}
+
+	/* And root can do any command.. */
+	if (capable(CAP_SYS_RAWIO))
+		return 0;
+
+	/* Otherwise fail it with an "Operation not permitted" */
+	return -EPERM;
+}
+
+static int sg_io(struct file *file, request_queue_t *q,
+		struct gendisk *bd_disk, struct sg_io_hdr *hdr)
 {
 	unsigned long start_time;
 	int reading, writing;
@@ -121,6 +193,8 @@
 		return -EINVAL;
 	if (copy_from_user(cmd, hdr->cmdp, hdr->cmd_len))
 		return -EFAULT;
+	if (verify_command(file, cmd))
+		return -EPERM;
 
 	/*
 	 * we'll do that later
@@ -226,8 +300,8 @@
 #define READ_DEFECT_DATA_TIMEOUT	(60 * HZ )
 #define OMAX_SB_LEN 16          /* For backward compatibility */
 
-static int sg_scsi_ioctl(request_queue_t *q, struct gendisk *bd_disk,
-			 Scsi_Ioctl_Command __user *sic)
+static int sg_scsi_ioctl(struct file *file, request_queue_t *q,
+			 struct gendisk *bd_disk, Scsi_Ioctl_Command __user *sic)
 {
 	struct request *rq;
 	int err, in_len, out_len, bytes, opcode, cmdlen;
@@ -269,6 +343,10 @@
 	if (copy_from_user(buffer, sic->data + cmdlen, in_len))
 		goto error;
 
+	err = verify_command(file, rq->cmd);
+	if (err)
+		goto error;
+
 	switch (opcode) {
 		case SEND_DIAGNOSTIC:
 		case FORMAT_UNIT:
@@ -319,7 +397,7 @@
 	return err;
 }
 
-int scsi_cmd_ioctl(struct gendisk *bd_disk, unsigned int cmd, void __user *arg)
+int scsi_cmd_ioctl(struct file *file, struct gendisk *bd_disk, unsigned int cmd, void __user *arg)
 {
 	request_queue_t *q;
 	struct request *rq;
@@ -366,7 +444,7 @@
 			err = -EFAULT;
 			if (copy_from_user(&hdr, arg, sizeof(hdr)))
 				break;
-			err = sg_io(q, bd_disk, &hdr);
+			err = sg_io(file, q, bd_disk, &hdr);
 			if (err == -EFAULT)
 				break;
 
@@ -414,7 +492,7 @@
 			hdr.cmdp = ((struct cdrom_generic_command __user*) arg)->cmd;
 			hdr.cmd_len = sizeof(cgc.cmd);
 
-			err = sg_io(q, bd_disk, &hdr);
+			err = sg_io(file, q, bd_disk, &hdr);
 			if (err == -EFAULT)
 				break;
 
@@ -437,7 +515,7 @@
 			if (!arg)
 				break;
 
-			err = sg_scsi_ioctl(q, bd_disk, arg);
+			err = sg_scsi_ioctl(file, q, bd_disk, arg);
 			break;
 		case CDROMCLOSETRAY:
 			close = 1;
Comment 5 Chris Clayton 2004-08-15 08:28:29 UTC
and here's an extract of te output from running k3b under strace:

open("/dev/hdd", O_RDONLY|O_NONBLOCK)   = 14
ioctl(14, 0x5393, 0xbfffe6c0)           = 0
ioctl(14, 0x5393, 0xbfffe6c0)           = -1 EPERM (Operation not permitted)
ioctl(14, 0x5393, 0xbfffd4e0)           = 0
ioctl(14, 0x5393, 0xbfffd4e0)           = 0
ioctl(14, 0x5393, 0xbfffdcd0)           = -1 EPERM (Operation not permitted)
ioctl(14, 0x5393, 0xbfffd520)           = 0
ioctl(14, 0x5393, 0xbfffd520)           = 0
ioctl(14, 0x5393, 0xbfffd2f0)           = -1 EPERM (Operation not permitted)
ioctl(14, 0x5393, 0xbfffd3b0)           = -1 EIO (Input/output error)
ioctl(14, 0x5393, 0xbfffd3d0)           = 0
ioctl(14, 0x5393, 0xbfffd3d0)           = 0
ioctl(14, 0x5393, 0xbfffd3d0)           = -1 EPERM (Operation not permitted)
close(14)                               = 0
open("/dev/hdd", O_RDONLY|O_NONBLOCK)   = 14
ioctl(14, 0x5331, 0x7fffffff)           = 3801071
close(14)                               = 0
lstat64("/dev", {st_mode=S_IFDIR|0755, st_size=126976, ...}) = 0
lstat64("/dev/hdc", {st_mode=S_IFBLK|0666, st_rdev=makedev(22, 0), ...}) = 0
open("/dev/hdc", O_RDONLY|O_NONBLOCK)   = 14
fstat64(14, {st_mode=S_IFBLK|0666, st_rdev=makedev(22, 0), ...}) = 0
ioctl(14, 0x5393, 0xbfffe630)           = 0
close(14)                               = 0
open("/dev/hdc", O_RDONLY|O_NONBLOCK)   = 14
fstat64(14, {st_mode=S_IFBLK|0666, st_rdev=makedev(22, 0), ...}) = 0
close(14)                               = 0
open("/dev/hdc", O_RDONLY|O_NONBLOCK)   = 14
ioctl(14, 0x5393, 0xbfffe6c0)           = 0
ioctl(14, 0x5393, 0xbfffe6c0)           = -1 EPERM (Operation not permitted)
ioctl(14, 0x5393, 0xbfffd4e0)           = 0
ioctl(14, 0x5393, 0xbfffd4e0)           = 0
ioctl(14, 0x5393, 0xbfffdcd0)           = -1 EPERM (Operation not permitted)
ioctl(14, 0x5393, 0xbfffd520)           = 0
ioctl(14, 0x5393, 0xbfffd520)           = 0
close(14)                               = 0
Comment 6 Sebastian Trueg 2004-08-15 09:33:20 UTC
that's just great! :(
thanks for the hint. This makes things way more complicated....
Comment 7 Sebastian Trueg 2004-08-15 12:24:45 UTC
please replace the three attached files and tell me if it solves the problem. I don't have a 2.6.8 kernel running right now...
Comment 8 Sebastian Trueg 2004-08-15 12:26:34 UTC
Created attachment 7116 [details]
Kernel 2.6.8 fix
Comment 9 Johannes Schaub 2004-08-15 14:48:37 UTC
No, it doesn't run
Comment 10 Sebastian Trueg 2004-08-15 15:47:24 UTC
still only a reader?
Comment 11 Johannes Schaub 2004-08-15 18:43:50 UTC
No, there are 2 readers: one DVD-Reader, one CD-Burner. But the CD-
Burner was listed in the "Readers"-category. There are no CD-Writers in
the "Writers"-category. This is still the fact. No changes.

Edmondo: Do you have Linux 2.6.8?

Comment 12 Chris Clayton 2004-08-15 19:25:27 UTC
Same here sorry. Both my drives are listed as readers but neither as writers.
Comment 13 Tobias Powalowski 2004-08-16 09:13:21 UTC
have the same problem with 2.6.8.1 with 2.6.7 it is fine
Comment 14 Tobias Powalowski 2004-08-16 09:14:25 UTC
rebuild k3b with your attachment same result :-(
Comment 15 Tobias Powalowski 2004-08-16 10:58:27 UTC
burning as root works with the unpatched k3b and 2.6.8.1
Comment 16 Sebastian Trueg 2004-08-16 12:41:30 UTC
For now I have only this solution: keep using kernel 2.6.7. :(
At first I thought this change in the kernel was a good one since only allowing writing commands when the device has been opened with the WRITE flag seems like good design. But now that opening RDWR does not help at all and even the very important non-writing command GET CONFIGURATION does not work (and thus the dvd+rw-tools also fail when not run as root) it does not look that clean designed anymore...
Comment 17 Chris Clayton 2004-08-16 20:44:44 UTC
The kernel guys seem to be trying to fix this - see http://marc.theaimsgroup.com/?t=109267444600003&r=1&w=2

I'm just about to build a new kernel with Peter Osterlund's patch applied. I'll report back later.
Comment 18 Chris Clayton 2004-08-16 20:56:35 UTC
No, still not getting any writers listed. I'll put some debugging in the kernel and see if I can let Peter know what commands are being blocked.
Comment 19 Sebastian Trueg 2004-08-16 21:19:06 UTC
you don't need kernel debugging for that. The patch you applied made GET CONFIGURATION and GET PERFORMANCE work again while MODE SELECT which is a writing command still does not work even if the device is opened read/write.
Comment 20 Thomas Kuther 2004-08-17 12:56:04 UTC
SOLVED!

this patch solves the problem:

http://marc.theaimsgroup.com/?l=linux-kernel&m=109265946604538&w=2

k3b now works fine again..at least it does on debian, but i think on other systems too...

greets!
Comment 21 Sebastian Trueg 2004-08-17 13:21:02 UTC
sort of.. it's not really a solution as it simply reverts the old behavior and I don't think the kernel guys will go for this.
Comment 22 Chris Clayton 2004-08-18 11:27:33 UTC
This one does seem to be a good start, but I've only done limited testing so far:

http://marc.theaimsgroup.com/?l=linux-kernel&m=109274144913931&w=2
Comment 23 Kurt Garloff 2004-08-21 00:01:44 UTC
The problem in the last patch is the 
+               safe_for_read(GPCMD_MODE_SELECT_10), 
because it's not. You can burn your HD with it (allegedly, didn't try).
It should be
+               safe_for_write(GPCMD_MODE_SELECT_10), 
but then k3b would not work any more as it opens the device with O_RDONLY.

IMHO, it should try to open with O_RDWR and fall back to O_RDONLY if this
fails. You need write access to the CD-R(W) and DVD-R(W) to be able to burn
with 2.6.8 anyway, and k3b would then detect those as writers if you have
write permissions to the device file. Which corresponds to what a user
expects from the permission bits on device files.
Comment 24 Sebastian Trueg 2004-08-21 12:21:56 UTC
I already patched K3b to open the device O_RDWR for MODE SELECT. Now I need a fixed kernel to test it so I can release k3b 0.11.15.
Comment 25 Chris Clayton 2004-08-22 15:49:20 UTC
Created attachment 7218 [details]
patch to get k3b and friends working again

The attached patch has restored k3b/cdrecord/dvd+rw-tools to a working state
for me. Discussion on LKML seems to have stopped, so it's not clear how a real
fix to the kernel will be achieved. Con Kolivas' latest patchset has
(effectively) backed the command filtering out of the kernel "until userspace
catches up".
Comment 26 Chris Clayton 2004-08-23 10:18:37 UTC
Correction. LKML discussion has switched threads to one which had previously been a flame war and as a consequence, I was ignoring. Some folks are working on a solution that seems to involve a "configuration file" in userspace.
Comment 27 dragoran 2004-08-27 10:58:27 UTC
Created attachment 7315 [details]
this patch fixes the issue witch cdrecord but not with k3b

This patch fixes cdrecord so it can burn with 2.6.8.1 as normal user.
by default cdrecord drops it root privilleges befor burning this patch lets
cdrecord don't do this.It keeps its root privilleges.
Now we still need a fixed k3b ....
Comment 28 dragoran 2004-08-31 08:12:55 UTC
Linus Torvalds wrotes the k3b only has to open the devices for writing and it should work:
http://lkml.org/lkml/2004/8/30/287
I will test it and write if it works.
Comment 29 dragoran 2004-08-31 08:41:01 UTC
I have tried it with k3b 0.11.12 and kernel 2.6.8.1 and it didn't work (no burners...)
Comment 30 Sebastian Trueg 2004-08-31 10:57:54 UTC
of course it did not work because kernel 2.6.8.1 is still buggy. you need to try kernel 2.6.9rc1 which is fixed. I was not able to test it yet although I already have k3b 0.11.15 finished. If someone has the time to test the current k3b_0_11_branch from cvs I would be happy.
Comment 31 dragoran 2004-09-01 07:54:31 UTC
i am now using kernel-2.6.9-rc1-bk6 and i tried to test the cvs version but configure was broken:
[..]
checking for ogg/vorbis headers... yes
checking for ov_open in -lvorbisfile... yes
checking mad.h usability... no
checking mad.h presence... no
checking for mad.h... no
./configure: line 32995: syntax error near unexpected token `SNDFILE,'
./configure: line 32995: `KDE_PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.2, ac_cv_sndfile=1, ac_cv_sndfile=0)'

I have tested my modifized version (which opens the devices O_RDRW ) and it works!
That means that if k3b cvs used this it should work.
Comment 32 Chris Howells 2006-05-30 13:39:22 UTC
*** Bug 88681 has been marked as a duplicate of this bug. ***
Comment 33 Chris Howells 2006-05-30 13:40:34 UTC
Closing since it was resolved in CVS two years ago. Please re-open if you still have problems.
Comment 34 Chris Howells 2006-05-30 13:40:52 UTC
Closing since it was resolved in CVS two years ago. Please re-open if you still have problems.