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

Soutěž - reproduktory Trust

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í.


reklama

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

Top články z OpenOffice.cz

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.

Přidat názor

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



 
 

Tomáš Hanusek

Tomáš Hanusek

Vystudoval VŠE v Praze, obor Hospodářská politika. Linux používá od počátku třetího tisíciletí a to hlavně kvůli jeho volnosti, variabilitě a komunitě uživatelů. V Linuxu se zajímá o multimédia a programování v Perlu. K dalším zájmům patří pasivně motorismus a aktivně přátelé.


  • Distribuce: Mandriva Linux

| proč linux | blog


Redakční blog

Redakce

Redakce, 21. prosinec

Pište pro LinuxEXPRES

Baví vás Linux? Pište o něm, není to nic těžkého. LinuxEXPRES hledá nové autory.


Pavel Fric

Pavel Fric, 23. říjen

Nové motivy pro přehrávač Sayonara

Pomozte rozšířit možnost měnit vzhled programu za běhu


Pavel Fric

Pavel Fric, 28. únor

Lollypop


Všechny blogy »