:: Re: [DNG] vdev status update in dae…
Página Principal
Delete this message
Reply to this message
Autor: aitor
Data:  
Para: dng
Assunto: Re: [DNG] vdev status update in daedalus
Hi,

On 29/12/23 13:10, o1bigtenor via Dng wrote:
> On Thu, Dec 28, 2023 at 6:14 PM aitor<aitor_czr@???> wrote:
>> Hi,
>>
>> On 28/12/23 22:37, aitor wrote:
>>
>> However, I still have another issue not fixed yet because xfburn, k3b and the like don't want to recognize the dvd drive. Arrrr !!
>>
>> Solved !!!
> So - - - - -
> 1. what was the problem?
> 2. what was the fix?


Looking at the helper:

https://github.com/jcnelson/vdev/blob/master/vdevd/helpers/LINUX/disk.sh

the value of the variable $DISK_TYPE is defined between the lines 63 - 290, according to the value of $DEV_PATH. For example:

    if [ -n "$(echo "$VDEV_PATH" | /bin/egrep "vd.+[0-9]$")" ]; then


         # virtio block device
         DISK_TYPE="virtio"

    elif [ -n "$(echo "$VDEV_PATH" | /bin/egrep "loop[0-9]+")" ]; then


         # loopback disk
         DISK_TYPE="loop"

    elif ... (etc) ...


For ATA block devices, DISK_TYPE="ata".

Once we've gotten the disk type, next step is to evaluate the output of the corresponding `stat` helper:

    # query information about the disk
    case "$DISK_TYPE" in


       ata)
           HELPER_DATA="$($VDEV_HELPERS/stat_ata "$VDEV_MOUNTPOINT/$VDEV_PATH")"
           eval $HELPER_DATA
           .......


For (S)ATA internal hard disks, the helper will return (among other variables):

    VDEV_BUS="ata"
    VDEV_ATA_TYPE="ata"


However, for internal dvd drives, the helper will return:

    VDEV_BUS="ata"
    VDEV_ATA_TYPE="cd"


Leading, respectively, to the following values for $VDEV_TYPE:

    VDEV_TYPE="ata"      (for internal hard disks)
    VDEV_TYPE="cd"       (for internal dvd drives)


Insofar as it goes that's okay, but the line nº 636:

    VDEV_TYPE="$DISK_TYPE"


turns "cd" into "ata", and therefore dvd drives were ignored by apps like xfburn or k3b.
For ATA drives, it must be VDEV_TYPE="$DISK_ATA_TYPE"; for SCSI drives, it must be VDEV_TYPE="$DISK_SCSI_TYPE".

Cheers,

Aitor.