Brasero: Error while burning!

Hi everyone,

while trying to burn a file to a cdrom using an external dvd writer I encountered the following error:
Error while burning. You do not have the required permission to use this drive
Log:

Checking session consistency (brasero_burn_check_session_consistency brasero-burn.c:1739)
BraseroBurnURI called brasero_job_get_action
BraseroBurnURI called brasero_job_get_action
BraseroBurnURI called brasero_job_set_output_size_for_current_track
BraseroBurnURI stopping
BraseroBurnURI called brasero_job_get_action
BraseroBurnURI called brasero_job_get_session_output_size
BraseroBurnURI called brasero_job_get_action
BraseroBurnURI called brasero_job_get_current_track
BraseroBurnURI no burn:// URI found
BraseroBurnURI stopping
BraseroLocalTrack called brasero_job_get_action
BraseroLocalTrack called brasero_job_get_action
BraseroLocalTrack called brasero_job_set_output_size_for_current_track
BraseroLocalTrack stopping
BraseroLocalTrack called brasero_job_get_action
BraseroLocalTrack called brasero_job_get_session_output_size
BraseroLocalTrack called brasero_job_get_action
BraseroLocalTrack called brasero_job_get_current_track
BraseroLocalTrack no remote URIs
BraseroLocalTrack stopping
BraseroChecksumFiles called brasero_job_get_output_type
BraseroChecksumFiles called brasero_job_get_current_track
BraseroChecksumFiles called brasero_job_get_action
BraseroChecksumFiles called brasero_job_get_action
BraseroChecksumFiles called brasero_job_set_output_size_for_current_track
BraseroChecksumFiles stopping
BraseroChecksumFiles called brasero_job_get_output_type
BraseroChecksumFiles called brasero_job_get_current_track
BraseroChecksumFiles called brasero_job_get_action
BraseroChecksumFiles called brasero_job_get_session_output_size
BraseroChecksumFiles called brasero_job_get_action
BraseroChecksumFiles called brasero_job_get_action
BraseroChecksumFiles called brasero_job_get_current_track
BraseroChecksumFiles called brasero_job_get_current_track
BraseroChecksumFiles called brasero_job_set_current_action
BraseroChecksumFiles called brasero_job_get_flags
BraseroChecksumFiles called brasero_job_get_action
BraseroChecksumFiles called brasero_job_get_current_track
BraseroChecksumFiles Adding graft for checksum file /.checksum.md5 file:///tmp/brasero_tmp_4MPQQ0.md5
BraseroChecksumFiles called brasero_job_add_track
BraseroChecksumFiles called brasero_job_get_action
BraseroChecksumFiles Finished track successfully
BraseroChecksumFiles stopping
BraseroChecksumImage called brasero_job_get_current_track
BraseroChecksumImage called brasero_job_get_action
BraseroChecksumImage called brasero_job_get_flags
BraseroCDRecord called brasero_job_get_action
BraseroCDRecord creating input
BraseroCDRecord getting varg
BraseroCDRecord called brasero_job_get_action
BraseroCDRecord got varg:
BraseroCDRecord deactivating
BraseroChecksumImage called brasero_job_get_action
BraseroChecksumImage creating input
BraseroChecksumImage called brasero_job_get_action
BraseroChecksumImage called brasero_job_get_fd_in
BraseroChecksumImage deactivating
BraseroMkisofs called brasero_job_get_action
BraseroMkisofs getting varg
BraseroMkisofs called brasero_job_get_action
BraseroMkisofs called brasero_job_get_current_track
BraseroMkisofs called brasero_job_get_tmp_dir
BraseroMkisofs called brasero_job_get_data_label
BraseroMkisofs called brasero_job_get_flags
BraseroMkisofs called brasero_job_get_action
BraseroMkisofs called brasero_job_set_current_action
BraseroMkisofs got varg:
	/usr/bin/mkisofs
	-input-charset
	utf8
	-r
	-J
	-graft-points
	-path-list
	/tmp/brasero_tmp_25OSQ0
	-exclude-list
	/tmp/brasero_tmp_YYTSQ0
	-V
	Data disc (04 Sep 20)
	-A
	Brasero-3.12.2
	-sysid
	LINUX
	-quiet
	-print-size
BraseroMkisofs Launching command
BraseroMkisofs called brasero_job_get_fd_out
BraseroMkisofs called brasero_job_get_fd_in
BraseroMkisofs called brasero_job_get_fd_out
BraseroMkisofs stdout: 5302
BraseroMkisofs called brasero_job_get_action
BraseroMkisofs called brasero_job_set_output_size_for_current_track
BraseroMkisofs stderr: HUP
BraseroMkisofs stdout: HUP
BraseroMkisofs process finished with status 0
BraseroMkisofs Finished track successfully
BraseroMkisofs called brasero_job_get_done_tracks
BraseroMkisofs called brasero_job_get_fd_out
BraseroMkisofs called brasero_job_get_action
BraseroMkisofs stopping
BraseroMkisofs called brasero_job_get_done_tracks
BraseroMkisofs called brasero_job_get_fd_out
BraseroMkisofs called brasero_job_get_action
BraseroChecksumImage called brasero_job_get_current_track
BraseroChecksumImage called brasero_job_get_action
BraseroChecksumImage called brasero_job_get_flags
BraseroCDRecord called brasero_job_get_action
BraseroCDRecord creating input
BraseroCDRecord getting varg
BraseroCDRecord called brasero_job_get_action
BraseroCDRecord called brasero_job_get_bus_target_lun
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord called brasero_job_get_speed
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord called brasero_job_get_input_type
BraseroCDRecord called brasero_job_get_fd_in
BraseroCDRecord called brasero_job_get_input_type
BraseroCDRecord called brasero_job_get_session_output_size
BraseroCDRecord called brasero_job_set_current_action
BraseroCDRecord got varg:
	cdrecord
	-v
	dev=/dev/sr0
	gracetime=0
	speed=24
	driveropts=burnfree
	fs=4m
	tsize=5302s
	-data
	-nopad
	-
BraseroCDRecord Launching command
BraseroCDRecord called brasero_job_get_fd_out
BraseroCDRecord called brasero_job_get_fd_in
BraseroCDRecord called brasero_job_get_fd_out
BraseroChecksumImage called brasero_job_get_action
BraseroChecksumImage linked to BraseroCDRecord
BraseroChecksumImage creating input
BraseroChecksumImage called brasero_job_get_action
BraseroMkisofs called brasero_job_get_action
BraseroMkisofs linked to BraseroChecksumImage
BraseroMkisofs getting varg
BraseroMkisofs called brasero_job_get_action
BraseroMkisofs called brasero_job_get_current_track
BraseroChecksumImage called brasero_job_get_action
BraseroChecksumImage called brasero_job_get_current_track
BraseroChecksumImage called brasero_job_get_input_type
BraseroMkisofs called brasero_job_get_tmp_dir
BraseroMkisofs called brasero_job_get_data_label
BraseroMkisofs called brasero_job_get_flags
BraseroMkisofs called brasero_job_get_action
BraseroChecksumImage called brasero_job_set_current_actionBraseroMkisofs called brasero_job_get_fd_out

BraseroChecksumImage called brasero_job_get_fd_inBraseroMkisofs called brasero_job_set_current_action

BraseroChecksumImage Starting checksum generation live (size = 0)
BraseroMkisofs got varg:BraseroChecksumImage called brasero_job_set_nonblocking

	/usr/bin/mkisofsBraseroChecksumImage called brasero_job_get_fd_in

	-input-charset
BraseroChecksumImage called brasero_job_get_fd_out	utf8

BraseroChecksumImage called brasero_job_get_fd_in	-r

BraseroChecksumImage called brasero_job_get_fd_out	-J

	-graft-points
	-path-list
	/tmp/brasero_tmp_WOUGQ0
	-exclude-list
	/tmp/brasero_tmp_HRUGQ0
	-V
	Data disc (04 Sep 20)
	-A
	Brasero-3.12.2
	-sysid
	LINUX
BraseroMkisofs Launching command
BraseroMkisofs called brasero_job_get_fd_out
BraseroMkisofs called brasero_job_get_fd_in
BraseroMkisofs called brasero_job_get_fd_out
BraseroCDRecord stderr: cdrecord: No write mode specified.
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord stderr: cdrecord: Assuming -sao mode.
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord stderr: cdrecord: If your drive does not accept -sao, try -tao.
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord stderr: cdrecord: Future versions of cdrecord may have different drive dependent defaults.
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord stderr: cdrecord: Operation not permitted. Warning: Cannot raise RLIMIT_MEMLOCK limits.
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord stderr: cdrecord: Cannot allocate memory. WARNING: Cannot do mlockall(2).
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord stderr: cdrecord: WARNING: This causes a high risk for buffer underruns.
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord stderr: cdrecord: Operation not permitted. WARNING: Cannot set RR-scheduler.
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord stderr: cdrecord: Permission denied. WARNING: Cannot set priority using setpriority().
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord stderr: cdrecord: WARNING: This causes a high risk for buffer underruns.
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord stderr: cdrecord: Insufficient 'file read' privileges. You will not be able to open all needed devices.
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord stderr: cdrecord: Insufficient 'file write' privileges. You will not be able to open all needed devices.
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord stderr: cdrecord: Insufficient 'device' privileges. You may not be able to send all needed SCSI commands, this my cause various unexplainable problems.
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord stderr: cdrecord: Insufficient 'memlock' privileges. You may get buffer underruns.
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord stderr: cdrecord: Insufficient 'priocntl' privileges. You may get buffer underruns.
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord stderr: cdrecord: Insufficient 'network' privileges. You will not be able to do remote SCSI.
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord stderr: scsidev: '/dev/sr0'
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord stderr: devname: '/dev/sr0'
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord stderr: scsibus: -2 target: -2 lun: -2
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord stderr: Warning: Open by 'devname' is unintentional and not supported.
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord stderr: Linux sg driver version: 3.5.27
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord stderr: SCSI buffer size: 64512
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord stderr: cdrecord: Warning: Cannot read drive buffer.
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord stderr: cdrecord: Warning: The DMA speed test has been skipped.
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord stdout: Cdrecord-ProDVD-ProBD-Clone 3.02a09 (x86_64-unknown-linux-gnu) Copyright (C) 1995-2016 Joerg Schilling
BraseroCDRecord stdout: TOC Type: 1 = CD-ROM
BraseroCDRecord stdout: Using libscg version 'schily-0.9'.
BraseroCDRecord stdout: Driveropts: 'burnfree'
BraseroCDRecord stdout: atapi: 1
BraseroCDRecord stdout: Device type    : Removable CD-ROM
BraseroCDRecord stdout: Version        : 0
BraseroCDRecord stdout: Response Format: 2
BraseroCDRecord stdout: Capabilities   : 
BraseroCDRecord stdout: Vendor_info    : 'TSSTcorp'
BraseroCDRecord stdout: Identifikation : 'CDDVDW SE-208DB '
BraseroCDRecord stdout: Revision       : 'MF00'
BraseroCDRecord stdout: Device seems to be: Generic mmc2 DVD-R/DVD-RW/DVD-RAM.
BraseroCDRecord stdout: Current: CD-R
BraseroCDRecord stdout: Profile: DVD-R/DL sequential recording 
BraseroCDRecord stdout: Profile: DVD-R/DL layer jump recording 
BraseroCDRecord stdout: Profile: DVD+R/DL 
BraseroCDRecord stdout: Profile: DVD+R 
BraseroCDRecord stdout: Profile: DVD+RW 
BraseroCDRecord stdout: Profile: DVD-RW sequential recording 
BraseroCDRecord stdout: Profile: DVD-RW restricted overwrite 
BraseroCDRecord stdout: Profile: DVD-RAM 
BraseroCDRecord stdout: Profile: DVD-R sequential recording 
BraseroCDRecord stdout: Profile: DVD-ROM 
BraseroCDRecord stdout: Profile: CD-RW 
BraseroCDRecord stdout: Profile: CD-R (current)
BraseroCDRecord stdout: Profile: CD-ROM 
BraseroCDRecord stdout: Profile: Removable Disk 
BraseroCDRecord stdout: Using generic SCSI-3/mmc   CD-R/CD-RW driver (mmc_cdr).
BraseroCDRecord stdout: Driver flags   : MMC-3 SWABAUDIO BURNFREE 
BraseroCDRecord stdout: Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R16 RAW/R96P RAW/R96R
BraseroCDRecord stdout: Drive buf size : 554400 = 541 KB
BraseroCDRecord stdout: FIFO size      : 4194304 = 4096 KB
BraseroCDRecord stderr: cdrecord: Operation not permitted. rezero unit: scsi sendcmd: fatal error
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord stderr: CDB:  01 00 00 00 00 00
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord stdout: Track 01: data    10 MB        
BraseroCDRecord stderr: cdrecord: Operation not permitted. Cannot send SCSI cmd via ioctl.
BraseroCDRecord called brasero_job_get_flags
BraseroCDRecord called brasero_job_error
BraseroCDRecord finished with an error
BraseroCDRecord asked to stop because of an error
	error		= 4
	message	= "You do not have the required permissions to use this drive"
BraseroMkisofs stopping
BraseroMkisofs got killed
BraseroMkisofs disconnecting BraseroMkisofs from BraseroChecksumImage
BraseroChecksumImage stopping
BraseroChecksumImage disconnecting BraseroChecksumImage from BraseroCDRecord
BraseroChecksumImage closing connection for BraseroChecksumImage
BraseroCDRecord stopping
BraseroCDRecord got killed
BraseroCDRecord stdout: Total size:       11 MB (01:10.69) = 5302 sectors
BraseroCDRecord stdout: Lout start:       12 MB (01:12/52) = 5302 sectors
BraseroCDRecord closing connection for BraseroCDRecord
Session error : You do not have the required permissions to use this drive (brasero_burn_record brasero-burn.c:2854)

If you need more information let me know.

Thanks for any help in advance!

Hi,

this is an intentional limitation of cdrecord, whose author demands that
the Linux kernel allows his program to perform any SCSI command, even those
which are considered dangerous by kernel developers.

So cdrecord emits outdated and exotic command REZERO UNIT, which the kernel
only permits the superuser to perform. If it is rejected, cdrecord aborts
its run.
See cdrecord/cdrecord.c, under the comment which begins by
“Linux-2.6.8.1 did break the SCSI pass through kernel interface.”

So cdrecord needs to be run by the superuser or needs to assume superuser
authority on its own (e.g. by being owned by root and having the setuid bit
set).


As developer of libburn i officially state that it is not necessary to
impose such demands on the user. rw-permission suffices for all legitimate
CD, DVD, and BD operations.

Have a nice day :slight_smile:

Thomas

Thank you for you explanation. I am still unsure how to solve this problem! Can you explain to me which command I have to run to make Brasero work for a non-root user?
Or do you recommend to use a different burning software and if so do you have recommendations?

Just two weeks ago, I set up my wife’s laptop for burning CD/DVD with the internal device.
I encountered similar problems. For explanation, my wife don’t want to deal with any OS/device/application problems at all.
Xfce here, but in gnome it should work fine.
There is a problem with “on the fly” burning and my workaround is to have two applications, one for
download/read-out (goobox) and one for burning (in my case xfburn, but brasero should do fine).
Don’t forget to setup your CD-player and your burning tool in thunar-volman-settings and it will work like a charm.
It is like:
Insert your (i.e. Bob Marley) CD and goobox will start play or read out (you can strore as .flak, .ogg or .mp3).When finished, the CD shuttle will open and you insert yor empty CD. A window will open and ask you what to do (copy/data/audio). In this case “audio CD” and xfburn/brasero will do it’s thing. You don’t even notice that it is two apps, both will autostart.
Edit: no root needed

Hi,

as developer of libburn i advise to use the libburn backend of Brasero.
For burning of CD you could also tell Brasero to use wodim instead of
cdrecord.

Xfburn uses libburn unconditionally. So that would be another way to
avoid using cdrecord. More ways are: K3B with cdrskin as backend, or
using wodim+genisoimage, cdrskin+genisoimage, or xorriso from the
command line.
I understand from the shown mkisofs command that you plan to write a
data CD, not an audio CD (which would need no genisoimage and would not
be possible via xorriso).

If you want to continue using cdrecord, then you will either have to
run Brasero as superuser (darn dangerous) or set the properties of the
cdrecord program file to become superuser when it is run (still quite
dangerous).

For the property change, find out where the program is stored:

type cdrecord

which should answer something like

cdrecord is hashed (/usr/bin/cdrecord)

Determine the ownership of that file:

ls -l /usr/bin/cdrecord

which should answer something like

-rwxr-xr-x 1 root root ... /usr/bin/cdrecord

If it is not yet owned by root, do as superuser or by sudo:

chown root /usr/bin/cdrecord

When it belongs to the superuser, do the decisive (and dangerous) change
as superuser or by sudo (this is called “setting the setuid bit”):

chmod u+s /usr/bin/cdrecord

Afterwards, ls -l should show a “s” where normally is the “x” for
“executable by the owner”:

-rwsr-xr-x 1 root root ... /usr/bin/cdrecord

This means that whoever is allowed to execute this program will be promoted
to superuser within this program run. cdrecord will be able to get a drive
error message from its probing command rather than a “Permission denied”
error. This should make it happy and willing to work.

But it also makes cdrecord unconditionally powerful and opens attack ways
for people who have underpriviledged access to your machine and want to be
superuser against your will.

Have a nice day :slight_smile:

Thomas

2 Likes

Thank you for all the info. I decided to switch to Xfburn instead of staying with Brasero. It feels unfamiliar but just works. I did not prefer to stay with Brasero if the Developer does not follow best practices in his work.

Hi,

i have to come to the defense of the (retired) developers of Brasero.
It’s not their fault, but rather a deliberate decision of Joerg Schilling,
the developer of cdrecord. Brasero and K3B stem from a time when there
was few alternative to cdrecord for burning data CD.

Joerg Schilling justifies his demand for being superuser by this comment
in cdrecord.c:

/*
 * Linux-2.6.8.1 did break the SCSI pass through kernel interface.
 * Since then, many SCSI commands are filtered away by the Linux kernel
 * if we do not have root privilleges. Since REZERO UNIT is in the list
 * of filtered SCSI commands, it is a good indicator on whether we run
 * with the needed privileges. Failing here is better than failing later
 * with e.g. vendor unique commands, where cdrecord would miss
 * functionality or fail completely after starting to write.
 */

And so it fails.
Of course there are no “vendor unique” commands needed since 20 years.
That was with early CD burner drives of the 1990s.

Xfburn is a bit younger and took advantage of the then new libburn, which
offers similar services in the form of a C library … and without cursing
at Linux and its users. :))
But Brasero has a libburn plugin, too. You’d have to dig in its setup menus.
When Xfburn is installed, there must be a libburn.so installed, too.

Regrettably all GUI burn programs are more or less without current developers.
So i try to help as much as i can from the basement level of burn software.
But in the end, many useful features are only available by command line
programs like xorriso.

Have a nice day :slight_smile:

Thomas

2 Likes

I see, thanks for the clarification. I did switch back to Brasero with libburn installed as optional dependency.

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.