iTranslated by AI
Burning a CD-R for ThinkPad T480 BIOS Updates on Debian GNU/Linux
Summary
This is a note about the process of burning CD/DVD images to physical discs on Debian GNU/Linux.
Introduction
Nowadays, the frequency of burning CD or DVD images to physical devices has significantly decreased. This is because USB memory sticks have become inexpensive and capacity limitations have become less of an issue.
However, in my case, I had an ISO image to update the BIOS of my ThinkPad T480, and I wanted to use up some remaining blank CD media that I likely won't use again. So, I'm summarizing the process of burning a CD for the first time in a long while.
This is so that I can refer back to it the next time I need to set up an environment for burning CDs/DVDs.
By the way, if the BIOS version is relatively new, BIOS updates can be performed directly from Linux, so this work might become unnecessary.
Newer models other than the ThinkPad T480 might support updates from Linux out of the box. Only those who need it, like me, should do this, but I'm documenting it since it has become an ancient technology.
Perhaps it's my frugal nature, but I can't bring myself to throw away blank media that is still usable. I want to use them up before discarding media I haven't used for a long time.
Who this article is for
People who need to burn physical CDs/DVDs on Linux and need to set up the environment.
However, since the author uses Debian GNU/Linux and needs to burn CDs over SSH, the content may not necessarily match your specific needs.
In that case, I will provide some "hooks" (starting points) that I can think of, so please try them out for yourself.
How to read this document
As mentioned in "Who this article is for" above, I want to burn CDs/DVDs over SSH, so I will mainly describe the CUI program wodim.
If you prefer GUI programs, for GNOME, Debian -- Package Search Results -- brasero seems to allow you to configure it to burn images in coordination with Nautilus.
For Xfce, Debian -- Package Search Results -- xfburn looks like a good option.
For KDE, perhaps Debian -- Package Search Results -- k3b?
Since I use i3wm, I will likely use CUI instead of a GUI.
Main Body
wodim is a CUI CD/DVD writing software derived from cdrecord.
wodim has more features than what is described here. Please refer to the documentation for details.
Installation
I am using Debian GNU/Linux Sid, but since Debian 11 — bullseye was recently released, it's very close to bullseye.
Install wodim using the apt command. Since it requires privileges (root permissions), you will likely use the su or sudo command.
apt install wodim
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
genisoimage
Suggested packages:
cdrkit-doc
The following NEW packages will be installed:
genisoimage wodim
0 upgraded, 2 newly installed, 0 to remove and 6 not upgraded.
Need to get 736 kB of archives.
After this operation, 2,642 kB of additional disk space will be used.
Do you want to continue? [Y/n]
cdrkit-doc contains documentation (in English). If you install it and read it as needed, you can learn about features beyond those I've described here.
Checking the CD/DVD drive
Since my CD/DVD drive is connected via USB, I connect it to the machine and check dmesg for messages like the following:
[135541.216435] usb 1-1: new high-speed USB device number 6 using xhci_hcd
[135541.367575] usb 1-1: New USB device found, idVendor=0411, idProduct=00f9, bcdDevice= 2.40
[135541.367585] usb 1-1: New USB device strings: Mfr=96, Product=76, SerialNumber=63
[135541.367590] usb 1-1: Product: Mass Storage Device
[135541.367594] usb 1-1: Manufacturer: USB2.0 External
[135541.367597] usb 1-1: SerialNumber: DEF1104CEF61
[135541.371052] usb-storage 1-1:1.0: USB Mass Storage device detected
[135541.371811] scsi host4: usb-storage 1-1:1.0
[135542.386536] scsi 4:0:0:0: CD-ROM Optiarc DVD RW AD-7560A DX09 PQ: 0 ANSI: 0
[135542.387693] scsi 4:0:0:0: Attached scsi generic sg2 type 5
[135542.401483] sr 4:0:0:0: Power-on or device reset occurred
[135542.405369] sr 4:0:0:0: [sr0] scsi3-mmc drive: 24x/24x writer dvd-ram cd/rw xa/form2 cdda tray
[135542.405373] cdrom: Uniform CD-ROM driver Revision: 3.20
[135542.440286] sr 4:0:0:0: Attached scsi CD-ROM sr0
Odayla yabuki ~ ls -la /dev/cdrom
lrwxrwxrwx 1 root root 3 Aug 21 14:17 /dev/cdrom -> sr0
Odayla yabuki ~ ls -la /dev/dvd
lrwxrwxrwx 1 root root 3 Aug 21 14:17 /dev/dvd -> sr0
Odayla yabuki ~ ls -la /dev/sr0
brw-rw----+ 1 root cdrom 11, 0 Aug 21 16:27 /dev/sr0
Odayla yabuki ~ id
uid=1000(yabuki) gid=1000(yabuki) groups=1000(yabuki),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),108(netdev),111(bluetooth),999(docker)
In Debian GNU/Linux, symbolic links are automatically created from /dev/cdrom and /dev/dvd to /dev/sr0. I also confirmed using the id command that my user account can write to /dev/sr0.
Now, let's verify the connection.
Odayla yabuki ~ wodim dev=/dev/cdrom -scanbus
scsibus4:
4,0,0 400) 'Optiarc ' 'DVD RW AD-7560A ' 'DX09' Removable CD-ROM
4,1,0 401) *
4,2,0 402) *
4,3,0 403) *
4,4,0 404) *
4,5,0 405) *
4,6,0 406) *
4,7,0 407) *
The drive is recognized.
Obtaining the ISO image
If you want to create your own CD image, please research the genisoimage command.
In my case, as the goal is a BIOS update for the ThinkPad T480, I download it from Lenovo's site. I'll use the md5sum command to verify that the data isn't corrupted by matching it against the value provided on the website.
Trial Run
Check the writing speed of your CD-R. Since a slower speed just takes more time, it might be better to specify 0 if you are unsure.
It appears my drive writes at x24.
Here is the log from a trial burn (dummy run).
Odayla yabuki ~ wodim -dummy -v speed=24 -eject -data -pad ~/Downloads/n24ur26w.iso
wodim: No write mode specified.
wodim: Assuming -tao mode.
wodim: Future versions of wodim may have different drive dependent defaults.
TOC Type: 1 = CD-ROM
wodim: Operation not permitted. Warning: Cannot raise RLIMIT_MEMLOCK limits.
Device was not specified. Trying to find an appropriate drive...
Looking for a CD-R drive to store 33.36 MiB...
Detected CD-R drive: /dev/cdrw
Using /dev/cdrom of unknown capabilities
scsidev: '/dev/cdrom'
devname: '/dev/cdrom'
scsibus: -2 target: -2 lun: -2
Linux sg driver version: 3.5.27
Wodim version: 1.1.11
Driveropts: 'burnfree'
SCSI buffer size: 64512
Device type : Removable CD-ROM
Version : 0
Response Format: 2
Capabilities :
Vendor_info : 'Optiarc '
Identification : 'DVD RW AD-7560A '
Revision : 'DX09'
Device seems to be: Generic mmc2 DVD-R/DVD-RW.
Current: 0x0009 (CD-R)
Profile: 0x0012 (DVD-RAM)
Profile: 0x0015 (DVD-R/DL sequential recording)
Profile: 0x0016 (DVD-R/DL layer jump recording)
Profile: 0x002B (DVD+R/DL)
Profile: 0x001B (DVD+R)
Profile: 0x001A (DVD+RW)
Profile: 0x0014 (DVD-RW sequential recording)
Profile: 0x0013 (DVD-RW restricted overwrite)
Profile: 0x0011 (DVD-R sequential recording)
Profile: 0x0010 (DVD-ROM)
Profile: 0x000A (CD-RW)
Profile: 0x0009 (CD-R) (current)
Profile: 0x0008 (CD-ROM)
Profile: 0x0002 (Removable disk)
Using generic SCSI-3/mmc CD-R/CD-RW driver (mmc_cdr).
Driver flags : MMC-3 SWABAUDIO BURNFREE
Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R16 RAW/R96P RAW/R96R
Drive buf size : 1895168 = 1850 KB
Beginning DMA speed test. Set CDR_NODMATEST environment variable if device
communication breaks or freezes immediately after that.
FIFO size : 12582912 = 12288 KB
Track 01: data 33 MB padsize: 30 KB
Total size: 38 MB (03:47.93) = 17095 sectors
Lout start: 38 MB (03:49/70) = 17095 sectors
Current Secsize: 2048
ATIP info from disk:
Indicated writing power: 4
Is not unrestricted
Is not erasable
Disk sub type: Medium Type A, high Beta category (A+) (3)
ATIP start of lead in: -11849 (97:24/01)
ATIP start of lead out: 359847 (79:59/72)
Disk type: Long strategy type (Cyanine, AZO or similar)
Manuf. index: 25
Manufacturer: Taiyo Yuden Company Limited
Blocks total: 359847 Blocks current: 359847 Blocks remaining: 342752
Speed set to 4234 KB/s
Starting to write CD/DVD at speed 24.0 in dummy TAO mode for single session.
Last chance to quit, starting dummy write in 0 seconds. Operation starts.
Waiting for reader process to fill input buffer ... input buffer ready.
Starting new track at sector: 0
Track 01: 33 of 33 MB written (fifo 100%) [buf 99%] 11.7x.
Track 01: writing 30 KB of pad data.
Track 01: Total bytes read/written: 34975744/35006464 (17093 sectors).
Writing time: 28.310s
Average write speed 8.1x.
Min drive buffer fill was 99%
Fixating...
WARNING: Some drives don't like fixation in dummy mode.
Fixating time: 0.037s
BURN-Free was never needed.
wodim: fifo had 551 puts and 551 gets.
wodim: fifo was 0 times empty and 343 times full, min fill was 96%.
The meaning of each option is quoted from the man page as of 2021-08-21:
-dummy The CD/DVD-Recorder will go through all steps of the recording process, but the laser is turned off during this proce‐
dure. It is recommended to run several tests before actually writing to a Compact Disk or Digital Versatile Disk, if
the timing and load response of the system is not known.
-v Increment the level of general verbosity by one. This is used e.g. to display the progress of the writing process.
-eject Eject disk after doing the work. Some devices (e.g. Philips) need to eject the medium before creating a new disk. Doing
a -dummy test and immediately creating a real disk would not work on these devices.
-data If this flag is present, all subsequent tracks are written in CD-ROM mode 1 (Yellow Book) format. The data size is a
multiple of 2048 bytes. The file with track data should contain an ISO-9660 or Rock Ridge filesystem image (see
genisoimage for more details). If the track data is an ufs filesystem image, fragment size should be set to 2 KB or more
to allow CD-drives with 2 KB sector size to be used for reading.
-data is the default, if no other flag is present and the file does not appear to be of one of the well known audio file
types.
If neither -data nor -audio have been specified, wodim defaults to -audio for all filenames that end in .au or .wav and
to -data for all other files.
-pad If the track is a data track, 15 sectors of zeroed data will be added to the end of this and each subsequent data track.
In this case, the -pad option is superseded by the padsize= option. It will remain however as a shorthand for pad‐
size=15s. If the -pad option refers to an audio track, wodim will pad the audio data to be a multiple of 2352 bytes.
The audio data padding is done with binary zeroes which is equal to absolute silence.
-pad remains valid until disabled by -nopad.
For the actual run, remove the -dummy option and execute.
Odayla yabuki ~ wodim -v speed=24 -eject -data -pad ~/Downloads/n24ur26w.iso
wodim: No write mode specified.
wodim: Assuming -tao mode.
wodim: Future versions of wodim may have different drive dependent defaults.
TOC Type: 1 = CD-ROM
wodim: Operation not permitted. Warning: Cannot raise RLIMIT_MEMLOCK limits.
Device was not specified. Trying to find an appropriate drive...
Looking for a CD-R drive to store 33.36 MiB...
Detected CD-R drive: /dev/cdrw
Using /dev/cdrom of unknown capabilities
scsidev: '/dev/cdrom'
devname: '/dev/cdrom'
scsibus: -2 target: -2 lun: -2
Linux sg driver version: 3.5.27
Wodim version: 1.1.11
Driveropts: 'burnfree'
SCSI buffer size: 64512
Device type : Removable CD-ROM
Version : 0
Response Format: 2
Capabilities :
Vendor_info : 'Optiarc '
Identification : 'DVD RW AD-7560A '
Revision : 'DX09'
Device seems to be: Generic mmc2 DVD-R/DVD-RW.
Current: 0x0009 (CD-R)
Profile: 0x0012 (DVD-RAM)
Profile: 0x0015 (DVD-R/DL sequential recording)
Profile: 0x0016 (DVD-R/DL layer jump recording)
Profile: 0x002B (DVD+R/DL)
Profile: 0x001B (DVD+R)
Profile: 0x001A (DVD+RW)
Profile: 0x0014 (DVD-RW sequential recording)
Profile: 0x0013 (DVD-RW restricted overwrite)
Profile: 0x0011 (DVD-R sequential recording)
Profile: 0x0010 (DVD-ROM)
Profile: 0x000A (CD-RW)
Profile: 0x0009 (CD-R) (current)
Profile: 0x0008 (CD-ROM)
Profile: 0x0002 (Removable disk)
Using generic SCSI-3/mmc CD-R/CD-RW driver (mmc_cdr).
Driver flags : MMC-3 SWABAUDIO BURNFREE
Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R16 RAW/R96P RAW/R96R
Drive buf size : 1895168 = 1850 KB
Beginning DMA speed test. Set CDR_NODMATEST environment variable if device
communication breaks or freezes immediately after that.
FIFO size : 12582912 = 12288 KB
Track 01: data 33 MB padsize: 30 KB
Total size: 38 MB (03:47.93) = 17095 sectors
Lout start: 38 MB (03:49/70) = 17095 sectors
Current Secsize: 2048
ATIP info from disk:
Indicated writing power: 4
Is not unrestricted
Is not erasable
Disk sub type: Medium Type A, high Beta category (A+) (3)
ATIP start of lead in: -11849 (97:24/01)
ATIP start of lead out: 359847 (79:59/72)
Disk type: Long strategy type (Cyanine, AZO or similar)
Manuf. index: 25
Manufacturer: Taiyo Yuden Company Limited
Blocks total: 359847 Blocks current: 359847 Blocks remaining: 342752
Speed set to 4234 KB/s
Starting to write CD/DVD at speed 24.0 in real TAO mode for single session.
Last chance to quit, starting real write in 0 seconds. Operation starts.
Waiting for reader process to fill input buffer ... input buffer ready.
Performing OPC...
Starting new track at sector: 0
Track 01: 33 of 33 MB written (fifo 100%) [buf 99%] 11.7x.
Track 01: writing 30 KB of pad data.
Track 01: Total bytes read/written: 34975744/35006464 (17093 sectors).
Writing time: 30.989s
Average write speed 9.3x.
Min drive buffer fill was 99%
Fixating...
Fixating time: 28.828s
BURN-Free was never needed.
wodim: fifo had 551 puts and 551 gets.
wodim: fifo was 0 times empty and 342 times full, min fill was 96%.
It seems the CD-R was successfully burned. All that's left is to boot from this CD-R and update the BIOS of the ThinkPad T480.
I successfully burned a bootable CD-R and updated the BIOS.
Reference Documents
-
ThinkPad T480 related
Acknowledgments
I would like to express my gratitude to the people maintaining wodim. I also want to thank the authors of the documents I referenced.
Notes for My Future Self
-
My device model
-
Portable DVD Drive | Buffalo
- I could not find any firmware update information.
-
Portable DVD Drive | Buffalo
-
Firmware
- I can tell from the
wodimmessages that the current version is DX09. - A newer version seems to be available at Optiarc AD-7560A Firmware Downloads - Firmware HQ, but I am hesitant to update for the following three reasons. I feel it's fine to leave it as is until I encounter a problem.
- (1) The origin is somewhat unclear.
- (2) I don't know which one to apply.
- (3) I don't know how to perform the update.
- I can tell from the
By the way, reading the wodim documentation, there are cases where writing fails due to firmware bugs. Be careful about what to use as a reference when isolating problems and submitting bug reports.
Finally
| Subject | Date |
|---|---|
| Date written | 2021-08-21 |
| Date modified | 2024-10-23 |
The above information was included by the author to help determine the freshness of this article.
For a detailed change history, please refer to GitHub - yabuki/friendly-potato: zenn-contents.
I would appreciate it if you could submit a pull request for things like typos in the article. I will decide whether to accept it based on the diff and the description of the pull request.
Discussion