přejít na obsah přejít na navigaci

Linux E X P R E S, Měkce na šuplík aneb Šetříme mechaniku

Měkce na šuplík aneb Šetříme mechaniku

Máte bednu počítače "z ruky" nebo v tak nevýhodné poloze, že je problém při vysunuté CD/DVD mechanice zmáčknout tlačítko EJECT? Někde jsem četl, že do šuplíku by se tlačit nemělo, zařízení to ke zdraví nepřispívá. Naštěstí většina moderních distribucí disponuje šikovným nástrojem eject. Jak z jeho názvu vyplývá, má na starosti vysunutí šuplíku zvolené mechaniky, ale nejen to; umí ho také zasunout, zamknout, nastavit rychlost čtení.


Mohlo by se zdát, že na tomto místě už není o čem psát. Jenže eject neumí jednu zásadní věc - zjistit stav mechaniky a podle toho ji vysunout nebo zasunout. Uživatel je tak nucen zadat konkrétní příkaz (eject nebo eject -t), místo aby vždy použil stejnou zkratku nebo ikonu. Jistě uznáte, že tohle zrovna dvakrát pohodlné není. A to by nebyl člověk, aby pro trochu pohodlí nevynaložil nezměrné úsilí.

Budeme tedy potřebovat něco jednoduchého, co nám řekne, jak na tom CD/DVD mechanika je. Na adrese www.hadess.net/files/patches jsem našel utilitu s názvem cdrom-test napsanou v jazyce C. Ta je schopna zjistit mnohem více informací (např. že je vloženo médium a je prázdné). Pro naše účely nám postačí podstatně zkrácená varianta cdtray-test, kterou zkompilujeme standardním postupem gcc -o cdtray-test cdtray-test.c.

Jediný parametr, který cdtray-test očekává, je označení CD/DVD mechaniky ve tvaru /dev/XXX, kde XXX je např. hdb pro IDE mechaniku zapojenou jako primary slave. Použijeme-li tedy příkaz cdtray-test /dev/hdb, do příkazového řádku se nám vypíše stav mechaniky:

  • Tray open - šuplík mechaniky je vysunut
  • Tray NOT open - šuplík mechaniky je zasunut nebo se jedná o neočekávaný stav

Konečně již tedy víme, v jakém stavu se nachází šuplík. Abychom dosáhli našeho cíle, zabalíme programy eject a cdtray-test do jednoduchého skriptu, viz druhý výpis, který nazveme třeba cdm (CD Manipulace). Na základě znalostí ze seriálu o BASHi již určitě sami rozluštíte, co a jak skript dělá.

Jestliže vaše mechanika podporuje příkaz eject -t, pak opětovným zadáváním cdm se bude šuplík mechaniky střídavě vysouvat a zasouvat. Pokud máte v počítači současně DVD-ROM i vypalovačku, budete potřebovat skripty dva, např. dvdm a rwm. V každém z nich budou volány cdtray-test a eject s jiným označením mechaniky (např. /dev/hdc a /dev/hdd). Završením naší snahy může být navázání těchto skriptů na tlačítka/ikony v panelu.

Image

Aby systém bez problémů nalezl jak cdtray-test, tak ovládací skripty, uložte je do adresáře bin ve svém domovském adresáři. Ještě je potřeba ověřit, že je tam váš systém skutečně bude hledat, a to pomocí echo $PATH. Pokud ve vypsaném seznamu adresářů nenajdete /home/uživatel/bin, je potřeba to napravit příkazem PATH=$PATH:~/bin. Na závěr bych ještě poznamenal, že eject před vysunutím korektně provede umount (odpojení výměnného média ze systému), po zasunutí šuplíku však médium nepřipojí, o to se musíte postarat sami, nebo nějaký nástroj typu supermount apod. Zasunutí šuplíku musí mechanika podporovat (typicky ne u notebooků), stejně tak nastavení rychlosti čtení.

Zdrojový kód programu.

Bash skript pro ovládání šuplíku mechaniky

#!/bin/bash
DVDROM_DRIVE_STATUS=`cdrom-test /dev/hdb`
if [ "$DVDROM_DRIVE_STATUS" = "Tray open" ] ; then
    eject -t /dev/hdb
else
    eject /dev/hdb
fi

Nahoru

Odkazy

Příspěvky

Re: Měkce na šuplík aneb Šetříme mechaniku
28. 02. 2007, 16:25:05
Odpovědět  Odkaz 
Nikde jsem v dokumentaci eject nenasel funkci na zamknuti CD. Muzete mi prosim napsat jak se to dela, eventuelne v jake verzi to bylo. Mam eject 2.1.0, ale neni to tam.


Diky
Milan Kozák Re: Měkce na šuplík aneb Šetříme mechaniku
Milan Kozák 1. 03. 2007, 08:33:04
Odpovědět  Odkaz 
Zkuste radeji nastudovat /proc/sys/dev/cdrom/lock.

Odpovědět

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Top články z OpenOffice.cz