Softwarové ovládání CD/DVD mechaniky

Tento program (jako i mé další na těchto stránkách) je free software; může být šířen a/nebo modifikován za podmínek GNU General Public Licence vydaných Free Software Foundation (verze 2 licence nebo pozdější).

Cílem mého snažení bylo snadné ovládání šuplíku CD/DVD mechaniky pomocí jednoho příkazu, resp. pomocí jednoho tlačítka - pokud je šuplík zasunut, pak se vysune, pokud je venku, pak zajede. Největším problémem bylo zjištění stavu mechaniky. K tomu účelu mi posloužila utilita cdtray-test napsaná v jazyce C, kterou jsem našel na adrese http://www.hadess.net/files/patches/cdrom-test.c. Se svými nulovými zkušenostmi s jazykem C (ještě že PERL je docela podobný :o)) jsem si program zkrátil na pro můj účel postačující minimum (binární-vykompilovaný soubor na MandrivaLinuxu 2006 můžete stáhnout zde). Vykompilovanou binárku uložte nejlépe do adresáře bin/ ve vašem domovském adresáři, kde ho systém bez problémů najde (máte-li ho v proměnné $PATH).

Použití je triviální:

	cdtray-test /dev/hdc
pro zjištění stavu mechaniky, která je zapojena jako secondary master (zkuste např. /dev/cdrom, /dev/cdrom0, /dev/hdd atp.). Výsledkem použití v konzoli bude vypsání stavu mechaniky, kde možnosti jsou následující:

Tuto utilitu jsem si obalil shellovým skriptem pro ovládání šuplíku mechaniky. Jelikož mám v počítači DVD-ROM (zapojenou jako IDE secondary slave, tedy /dev/hdd) a zároveň také DVD vypalovačku (secondary master, tj. /dev/hdc), potřebuju dva samostatné skripty. Uložil jsem si je opět do svého bin adresáře a pojmenoval je dvdm a rwm (m jako manipulate). Skripty jsou velmi jednoduché:

DVDROM_DRIVE_STATUS=`cdtray-test /dev/hdd`
#echo $DVDROM_DRIVE_STATUS.
if [ "$DVDROM_DRIVE_STATUS" = "Tray open" ] ; then
    #echo Closing tray...
    eject -t /dev/hdd
else
    #echo Ejecting tray...
    eject /dev/hdd
fi
Tento skript u mě ovládá DVD-ROM (secondary slave), pro mou vypalovačku (secondary master) stačí změnit /dev/hdd na /dev/hdc. Využívá se zde běžné utility eject pro ovládání šuplíku - před vysunutím je proveden umount, po zasunutí (-t) je nutno provést mount dodatečně, pokud nepoužíváte supermount nebo jiný nástroj pro automatické připojování výměnných médií. Příkaz dvdm tedy mechaniku vysune, pokud byla zavřená, nebo naopak zasune, pokud byla otevřená. Tyto skripty jsem napojil na tlačítka a tak jedním kliknutím se mechanika buď zavře nebo otevře podle toho, v jaké stavu se zrovna nachází.


LINUX

malá ikona

Počítadlo z http://pocitadlo.netway.cz/