[arch-releng] archiso boot fail from cdrom (Was [PATCH 1/3] [syslinux-iso] ....

Gerardo Exequiel Pozzi vmlinuz386 at yahoo.com.ar
Sat Jun 26 18:46:49 EDT 2010


  On 06/26/2010 06:53 PM, Gerardo Exequiel Pozzi wrote:
>  On 06/26/2010 06:41 PM, Gerardo Exequiel Pozzi wrote:
>>  On 06/26/2010 06:03 PM, Gerardo Exequiel Pozzi wrote:
>>>  On 06/26/2010 05:22 PM, Thomas Bächler wrote:
>>>> I cannot boot the image via CD. udev does not create /dev/disk/ 
>>>> symlinks
>>>> for CD devices (any more?). That's why we had the archiso_early 
>>>> hook in
>>>> the first place. How did you make yours boot? We need an extra udev 
>>>> rule
>>>> for this to work as far as I can see, otherwise udev won't scan CDs.
>>>>
>>>> memdisk works fine though.
>>>>
>>>
>>> oops, only tested booting as disk. Yes, booting as cdrom fails.
>>>
>>> The issue is that 60-persistent-storage.rules that does not match 
>>> cdrom devices like in previous version of udev, so blkid is not 
>>> executed.
>>> The problem is on cdrom_id helper program, is does not dump some 
>>> data for udev rules ( ID_CDROM_MEDIA_SESSION_NEXT=, 
>>> ID_CDROM_MEDIA_SESSION_COUNT=, ID_CDROM_MEDIA_TRACK_COUNT=
>>> ID_CDROM_MEDIA_TRACK_COUNT_DATA= )
>>>
>>>
>> I tested on real machine and booting from cdrom works OK.
> And also tested under Virtualbox and also works fine booting from 
> cdrom (iso).
> So if you testwas on qemu, I guess that something is wrong with new 
> cdrom_id (there are several changes) and qemu.
>
> http://git.kernel.org/?p=linux/hotplug/udev.git;a=history;f=extras/cdrom_id/cdrom_id.c 
>
>>
>> Some tests:
>>
>> 1) boot current instllation media
>> 2) /lib/udev/cdrom_id --debug /dev/sr0  and works OK
>> 3) update to latest udev
>> 4) execute (2) then FAIL
>>
>> # /lib/udev/cdrom_id --debug /dev/sr0
>> main: probing: '/dev/sr0'
>> cd_inquiry: INQUIRY: [QEMU    ][QEMU DVD-ROM    ][0.12]
>> cd_profiles: GET CONFIGURATION: size of features buffer 0x0010
>> cd_profiles: GET CONFIGURATION: feature 'profiles', with 2 entries
>> feature_profiles: profile 0x10 dvd_rom
>> feature_profiles: profile 0x08 cd_rom
>> cd_profiles: current profile 0x08
>> cd_profiles: profile 0x08 media_cd_rom
>> info_scsi_cmd_err: READ DISC INFORMATION failed with 
>> SK=5h/ASC=20h/ACQ=00h
>> ID_CDROM=1
>> ID_CDROM_CD=1
>> ID_CDROM_DVD=1
>> ID_CDROM_MRW=1
>> ID_CDROM_MRW_W=1
>> ID_CDROM_MEDIA=1
>> ID_CDROM_MEDIA_CD=1
>>
>>
>> This is how looks correctly
>> # /lib/udev/cdrom_id --debug /dev/sr0
>> main: probing: '/dev/sr0'
>> cd_inquiry: INQUIRY: [QEMU    ][QEMU DVD-ROM    ][0.12]
>> cd_profiles: GET CONFIGURATION: number of profiles 20
>> cd_profiles: current profile 0x08
>> cd_media_toc: READ TOC: len: 20
>> cd_media_toc: track=1 info=0x4(data) start_block=0
>> cd_media_toc: last track 1 starts at block 0
>> cd_media_info: disk type d8
>> ID_CDROM=1
>> ID_CDROM_MRW=1
>> ID_CDROM_MRW_W=1
>> ID_CDROM_MEDIA=1
>> ID_CDROM_MEDIA_CD=1
>> ID_CDROM_MEDIA_SESSION_NEXT=38876
>> ID_CDROM_MEDIA_SESSION_COUNT=15884
>> ID_CDROM_MEDIA_TRACK_COUNT=48900
>> ID_CDROM_MEDIA_TRACK_COUNT_DATA=1
>>
>
>
OK, the problem is in this commit [#1], reverting back fixes the issue, 
ID_CDROM_MEDIA_TRACK_COUNT_DATA appears again then udev rule work again.
Another way is reverting this commit [#2], error is reported but 
ID_CDROM_MEDIA_TRACK_COUNT_DATA is returned.

# ./cdrom_id --debug /dev/sr0
main: probing: '/dev/sr0'
cd_inquiry: INQUIRY: [QEMU    ][QEMU DVD-ROM    ][0.12]
cd_profiles: GET CONFIGURATION: size of features buffer 0x0010
cd_profiles: GET CONFIGURATION: feature 'profiles', with 2 entries
feature_profiles: profile 0x10 dvd_rom
feature_profiles: profile 0x08 cd_rom
cd_profiles: current profile 0x08
cd_profiles: profile 0x08 media_cd_rom
cd_media_info: disk type 00
cd_media_toc: READ TOC: len: 20
cd_media_toc: track=1 info=0x4(data) start_block=0
cd_media_toc: last track 1 starts at block 0
ID_CDROM=1
ID_CDROM_CD=1
ID_CDROM_DVD=1
ID_CDROM_MRW=1
ID_CDROM_MRW_W=1
ID_CDROM_MEDIA=1
ID_CDROM_MEDIA_CD=1
ID_CDROM_MEDIA_TRACK_COUNT_DATA=1


[#1] 
http://git.kernel.org/?p=linux/hotplug/udev.git;a=commitdiff;h=58e178894bfc040834e1270c6fe9b9fdef513550#patch1
[#2] 
http://git.kernel.org/?p=linux/hotplug/udev.git;a=commitdiff;h=30e3b1a0d3a3ec76f16736470dc656744848d941

-- 
Gerardo Exequiel Pozzi
\cos^2\alpha + \sin^2\alpha = 1




More information about the arch-releng mailing list