2018 and CD burning still painful

Ok, we are in 2018, and for the first time in ages I wanted to burn a Audio CD, and dared to think about CD_TEXT. You know what – it is hard as in impossible for a normal user. And that in 2018. Debian, you could try to do better.

Before I start I guess it is necessary to make clear that this is a newly installed system, less than a few months old. That I am as Debian Developer not completely new to system administration. Furthermore, the user trying to burn is member of the cdrom group.

The problem with most GUI frontends is that they rely on wodim, a member of the cdrkit family. And wodim itself simply doesn’t work:

$ wodim -dummy  -v speed=16 dev=/dev/sr0 -audio track*
wodim: No write mode specified.
wodim: Assuming -tao mode.
wodim: Future versions of wodim may have different drive dependent defaults.
TOC Type: 0 = CD-DA
wodim: Operation not permitted. Warning: Cannot raise RLIMIT_MEMLOCK limits.
wodim: Resource temporarily unavailable. Cannot get mmap for 12587008 Bytes on /dev/zero.

Yes I know, the easy solution is to make wodim setuid root, but this is not what I want. Unfortunately the – in contrast to cdrkit/wodim still in development – parent of wodim, cdrecord, works, but only because it is setuid root after a standard installation.

That is all complicated by the fact that the main front-ends are, well, broken:

  • K3b: feels like completely broken: it cannot open its own saved project files, the .inf files generated for an audio CD project are completely broken and void of any content, it hangs regularly without any response
  • Nautilus DVD/CD burning: incapable of doing Audio CDs, offers only Data cd
  • Brasero: terminates with “ejecting disc” and “An unknown error occurred”, looking at the log file it shows that again wodim is the culprit. But brasero could be a bit more helpful! Additional minus point: no cddb interface.

The only exception I found was Xfburn which managed to burn the CD without any hitch or problem. Wow – besides it doesn’t support CD_TEXT, which is also not optimal.

A solution for burning CD_TEXT

So in case you really want to burn CD_TEXT, there is at the moment, as far as I see, only one option, and that is the command line using Cdrdao. Thanks to this excellent article I managed to burn using the following command (as user, not root, nothing special):

cdrdao write --device /dev/sr0 --driver generic-mmc:0x10 -v 2 -n --eject mycd.toc

The format of the .toc file is a bit complicated but documented, see the linked article.

All in all a very depressing situation I have to say, especially for being in 2018 …

23 Responses

  1. Andy Cater says:

    CD burning – the annoying thing is that it works perfectly for data CDs – and mentioning cdrecord means dealing with He Who Must Not Be Named 😦 I’m not sure how I’d burn an audio CD – perhaps via a round trip through VLC to produce MP3?

  2. Martin says:

    I agree, that the state of CD burning is still sad. OTOH, less and less people use CDs anyway. Last week somebody gave me an audio CD as a present: It took me days to find my external CD drive to be able to listen to the music! And I’m old. Younger people know CDs only as something in one line with 8in floppy disks and 78rpm records. Maybe we should just give up on this technology?

    • Hmm, even LPs are coming back, and here in Japan the CD market is still considerable I have the feeling. I myself regularly get CDs, but then, I’m not young either.

    • Jonathan says:

      Honestly, I agree; I think trying to improving burning software quality is now pretty futile, since it’s becoming a niche requirement. Even software for reading data from optical media could do with some love.

      • I disagree. There is still a huge market for CD/DVDs. We (TeX Live Team) are distributing DVDs every year to TeX User Groups around the world, and we haven’t found a better medium. USB sticks are unfortunately not universally usable (problems with file system support in various OSs).

  3. There is also cdrskin, a cdrecord compatibility wrapper around libburn.
    See man cdrskin, EXAMPLES, “Write audio tracks and CD-TEXT to CD:” and
    “Extract audio tracks and CD-TEXT from CD into directory /home/me/my_cd”.
    The format of “Sony Input Sheet version 0.7T” is shown at the
    description of option “input_sheet_v07t=path”. A complete example sheet
    can be seen at
    under “Content of file NIGHTCATS.TXT”.

    Xfburn could make use of such features, too, because it uses libburn
    which offers API call session_input_sheet_v07(). I could help GUI
    programmers with the plumbing part: scdbackup@gmx.net , bug-xorriso@gnu.org .

    • Thanks Thomas, indeed, I will try it out on the next occasion. Whether xfburn is open to your support is nothing I can influence, but if you are interested in helping, please contact them directly. It would be great to have cd_text support in xfburn.

  4. Regrettably i lost contact to David Mohr of Xfburn. Real life, i assume.
    To my knowledge the biggest gap in GNU/Linux is Blu-ray mastering.
    With music CD burning, your assessment of GNU/Linux applies mostly
    to the GUI programs. From time to time a new maintainer pops up.
    Currently there is some hope in K3B with Leslie Zhai. But he not even
    has a real burner drive. I myself use fvwm2 as desktop, and my non-talent
    with GUIs can be seen with xorriso-tcltk:

    • To clarify: The gap is Blu-ray _video_ mastering for standalone video players. Burning works fine. I make daily data backups as ISO 9660 on BD-R and BD-RE media.

  5. karl says:

    k3b is the only thing that has worked for me (under centos/fvwm; never tried under debian). i edit the text in their gui, and breathe a sigh of relief when the burn actually starts. didn’t experience the hangs and other problems you had. fwiw …

  6. Umij says:

    … and this and he who must not be named is why I have given up on Linux on private computers. For programming and work everything is cool, but on my limited spare time with family and stuff I need things that JUST WORK.

  7. Foton says:

    Thank You very much, Norbert! I struggled 6 month on CD-Audio creation (my car audio do not plays MP3). SAme behavior from Brasero as You had. Xfburn save my day!

  8. hans says:

    Actually, wodim has the bug that it can’t get a mmap for /dev/zero. But there is a wrapper, cdrskin, that does the same job as wodim but works. To be found correctly, create a symlink named wodim in the PATH before /usr/bin/wodim, which is the buggy one. E. g. ln -sf /usr/bin/cdrskin /usr/local/bin/wodim (needs to be run as root once, e.g. with sudo)

  9. Rich says:

    Thanks, I went for the fast option of sudo chmod +s `which wodim` after loads of searching.

  10. First of all – DO NOT USE WODIM, that thing is broken at all and does not work well, using this leads to weird results, specially when we speak about DVD. BD-Rs are unsupported by wodim at all. I do not understand WHY is this cancer still default in every distro. I understand the licencing reasons, but in my opinion it is better not to include burning software than including broken software.

    I understand that adding suid to burning software is a bit risky, but afaik there is no way how to programm it better. cdrecord does it by default (now), but back in 2003, there wasn’t suid bit set by default. And that’s when wodim was forked.

    If it comes to burning AudioCDs, the situation become more painfull. cdrdao works fine, but there are a lot of DVD/CD burners, that are unable to burn AudioCD correctly. I had this issue with some LG burners and it was a really great pain. Some drives burned the AudioCD correctly, some of them not, and, to make things more weird, theese incorrectly burned AudioCDs was not playable on old CD-players, but runs fine on new players. Do not know why, but changing drive WITHOUT changing software fixed this issue.

    And on top of that all. AudioCD means 16-bit at 44.1kHz sample rate, which is too poor. It did make sense back in 1980s, but not 30 years later. Solution exists – DVD-Audio, but. There are a lot of DVD-Video players, but if you want to buy DVD-Audio player, there is almost nothing to choose from. And DVD-Video players does not play DVD-Audio discs. But if you have enought luck to buy DVD-Audio player, you are faced to another problem – authoring (and burning) DVD-Audio discs. dvdauthor does not support them, because its DVD-Video authoring software only. There is only dvda-author authoring software, which is still alpha. That’s all I wanted. Unstable unfinished weird untested software.

    • Thanks for your comments. Not sure about your wodim complaints, I have used it for data burning successfully many times, but audio was somehow problematic, I agree.

      • cdrkit never worked says:

        He’s right. Wodim and cdrkit should be completly removed from Debian nowadays. Wodim/cdrkit is based on a very old version of cdrtools from the year 2004. And i tried to burn an ISO image on several blank CDs. All failed. Then i installed the real cdrtools and tried it again, it worked without flaws at the first run.
        The reason why Xfburn is working for you is, because Xfburn does NOT use wodim/cdrkit, instead it does use libburn from the libburnia Projekt.
        That’s also the reason why Thomas Schmitt ist right with his suggestion to use cdrskin as a replacement for wodim (and cdrecord). Cdrskin was made for the old GUI frontends like k3b, that used cdrecord (or wodim) and did not use libburn directly. Cdrskin does itself not use cdrkit or cdrtools, it does use libburn instead.
        Because there is libburn and cdsrkin as an alternative zu cdrkit and cdrtools, it is time to remove cdrkit and all it’s other packages like wodim from Debian. This will help the user, because it will stop burning false CDs and throwing mony out of the window.
        If you are a real Debian developer i suggest you that you start a discussion about removing all that cdrkit and wodim stuff from Debian. The GUI frontends that relay on cdrecord (or wodim) can use cdrksin instead. And for cdrksin should be created a symlink named cdrtools by default.

        • Hi Jörg (I guess it is you from the IP location)
          yes, I am a real Debian Developer, but I am not the maintainer of cdrkit etc, so I cannot remove it. I still can follow Thomas’ advice and link cdrskin to wodim to make it work on my computer.

  11. PoorStudent says:

    In my first year at university, I wanted to give everyone in the course (about 30 people) something as part of my presentation. I really tried to find small USB sticks that didn’t cost 8€…
    After all I decided I still had enough CDs to burn the data to…
    After reading this article I’m really happy I still had Win7 on my computer. It’s very easy to open the ISO with 7Zip and add all wanted files and burn them with imgBurn (I will really miss this!).

    So the whole presentation cost me about 5€ and some hours of time, other students and the professor were happy. So CDs are still and will probably always be the most inexpensive method to get data from one person to another.

    About the Audio-CD thing: Years ago when I knew Linux existed and I used WinXP, I of course had the Media Player on my Computer. Yes, this old thing that MS brought to us. It was able to burn audio CDs with Text. Yeah. Every version after that wasn’t able to do this. And no, I don’t have a clue why. It was also able to insert lyrics into MP3. Nowadays I have to search for hours to find any program that can do this, no matter for which operating system. This old WMP (I don’t know which version, maybe 8?) could do about EVERYTHING that has to do with music. Even burn it.

  12. David says:

    Haha, thanks. I found this after having tried everything mentioned except Brasero. Was happy with Xfburn for a while but realized that yeah, if I’m going to do CDs in 2020 I’m at least going to see what I’m listening to. (My car is a 2011 model, has a cd player and aux in for audio. Installed a BT adapter for aux but half the music I listen to via it sounds pretty bad compared to the same song on CD. In addition the CD player answers to the buttons on the steering wheel for next/previous).

    cdrdao works pretty great as written. Made a small python script that generates a simple .toc from the example in the linked page via two parameters, artist and album title as well as file names of .wav files in a folder.

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>