Tervehdys!
Kun en mitään osaa, kopioin muualta ja kyselen sitten täällä neuvoja
Olen vähän kustomoinut koneeni koteloa ja tuli tarve saada cd-asema avattua hiirellä.
(Jos asemassa on levy, saa aseman avattua valitsemalla "Irrota" esim. työpöydältä. Mutta entäs silloin, kun ei ole?)
Löysin täältä
https://help.ubuntu.com/community/EjectCDLauncher ohjetta.
Tässä ohje vapaasti suomennettuna:
Luodaan ja avataan tiedosto:
gksudo gedit /usr/local/bin/eject_cd
Liitetään seuraava teksti:
#
# Try to unmount a CD-Rom device, then eject it.
#
DEVICE="$1"
ZENITY_BIN="/usr/bin/zenity"
#Ctrl-C trapping
trap ctrlc INT
ctrlc()
{
echo -e "\nAborted by user."
rm -rf $TMP_DIR
exit 2
}
#Show a dialog with zenity
#@param string The text to display
show_dialog()
{
if [ "$use_zenity" -gt "0" ] ; then
zenity --error --title "CD-Rom eject" --info-text "$1"
fi
}
#Get parameters
if [ "$1" == "-h" ] || [ "$1" == "--help" ] ; then
echo "Usage: eject_cdrom [-q] DEVICE"
echo -e "Try to unmount DEVICE then eject it if successful.\n"
echo "Possible parameters:"
echo -e "-h, --help\tdisplay this help and exit."
echo -e "-z, --zenity\tuse zenity to displays errors in dialog windows."
exit 0
fi
if [ "$1" == "-z" ] || [ "$1" == "--zenity" ] ; then
if [ ! -x "$ZENITY_BIN" ] ; then
echo "You must install zenity before that."
exit 1
fi
use_zenity="1"
device="$2"
else
use_zenity="0"
device="$1"
fi
#Device check
#TODO: Check if DEVICE is truly a device.
if [ ! -e "$device" ] ; then
echo "Parameter DEVICE is not a file."
exit 1
fi
echo "Trying to eject CD-Rom..."
#Unmount
umount "$device" 2>/dev/null
last_err="$?"
if [ "$last_err" -eq "1" ] ; then
msg="Cannot unmount device $device (busy)."
echo "$msg"
show_dialog "$msg"
exit 1
fi
#Eject
eject "$device"
last_err="$?"
if [ "$last_err" -ne "0" ] ; then
msg="Cannot eject device."
echo "$msg"
show_dialog "$msg"
exit 1
fi
exit 0
Tallennetaan ja suljetaan.
Annetaan tiedostolle ajo-oikeus:
sudo chmod +x /usr/local/bin/eject_cd
Ja (Gnome-) ohje kuvakkeen tekemiseen:
Napsauta hiiren oikeata paneelin päällä ja valitse "Lisää paneeliin". Napsauta "Muun sovelluksen käynnistin" ja paina Lisää.
Nimi: Avaa cd-asema
(*) Komento:
/usr/local/bin/eject_cd /dev/scd0
Vielä napsautus kuvakkeen päällä ja tekstiruutuun
/usr/share/icons/gnome/scalable/devices/drive-optical.svg
(Alkuperäisessä ohjeessa eri ikoni.)
Ja nyt se toimii. Kuvakkeen napsautuksella asema aukeaa oli siellä levy tai ei. Ja aukeaa vaikka kuuntelin Ramonessia cd-levyltä Rytmilaatikolla (Rytmilaatikko lopetti toiston ja asema aukesi.)
Ja sitten niiden neuvojen perään:
Itse scriptissä on kuitenkin erilaisia viestejä. Miten scriptiä voisi hioa, että mahdolliset virheet tulisivat näkyviin graafisesti? Kuvakkeen kautta käynnistettynä ne eivät "mene" minnekään vaan kuvake vain nytkähtää...
Entä miten scriptistä saisi sellaisen, että se imaisisi kelkan sisään jos se sattuukin olemaan auki?
(*)Tämä on alkuperäisessä ohjeessa eri tavalla. Siellä viitataan otukseen /dev/cdrom, jota ei ainakaan minulla ole. Minulla tutkailu meni seuraavasti:
ville@thepontiset:~$ ls /dev/cd* -la
lrwxrwxrwx 1 root root 4 2008-09-11 20:02 /dev/cdrom3 -> scd0
lrwxrwxrwx 1 root root 4 2008-09-11 20:02 /dev/cdrw3 -> scd0
Ja kokeillin scriptiä päätteessä:
ville@thepontiset:~$ /usr/local/bin/eject_cd /dev/scd0
Trying to eject CD-Rom...
Jolloin asema aukesi. Eli /dev/scd0 osoittaa (ainakin minulla) ainoaan cd-asemaani. Onkos tämä vakio nykyään? Ja mikäs tuommoinen cdrom3 oikein on? Olen kyllä tämänkin Ubuntu-asennuksen aikana vaihtanut cd-aseman tilalle uuden, mutten sentään kolmesti (logiikalla cdrom0 > cdrom1 > cdrom2 > cdrom3
). Eli tältä osin scripti vaatinee tarkistamista / käsityötä.