#!/bin/bash
# this script will hopefully fix your problem with opcode error caused by modul ide_mod..
# written by nettezzaumana
if [ "$UID" -ne "0" ]; then
echo "run this script as root please"
exit 1
fi
if [ -z "$(which hdparm)" ] || [ -z "$(which hwinfo)" ]; then
echo "you need have installed packages \"hdparm\" and \"hwinfo\""
echo "simply run \"apt-get install hdparm hwinfo\""
exit 1
fi
if [ ! -d "/etc/hal/fdi/preprobe" ] || [ ! -e "/etc/init.d/dbus" ]; then
echo "there is something strange with your dbus configuration"
echo "exiting now, check your dbus configuration.."
exit 1
fi
DEVICE="$(hwinfo --cdrom | grep 'Device File:' | awk -F: '{ print $2; }' | sed 's/^.//')"
WRULE() {
DBUS_PATH="/etc/hal/fdi/preprobe"
echo -e "dbus rule /etc/hal/fdi/preprobe/dvdrom.fdi will be written.."
echo -e "in case of malfunction or another problem, simply delete that file and restart dbus.."
echo -e "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" &> $DBUS_PATH/mydvdrom.fdi
echo -e "<deviceinfo version=\"0.2\">" >> $DBUS_PATH/mydvdrom.fdi
echo -e "<device>" >> $DBUS_PATH/mydvdrom.fdi
echo -e "<match key=\"block.device\" string=\"$DEVICE\">" >> $DBUS_PATH/mydvdrom.fdi
echo -e "<merge key=\"storage.media_check_enabled\" type=\"bool\">false</merge>" >> $DBUS_PATH/mydvdrom.fdi
echo -e "</match>\n</device>\n</deviceinfo>\n" >> $DBUS_PATH/mydvdrom.fdi
}
key=""
until [ "$key" = "check" ]; do
clear && echo checking.. && sleep 3
if [ "$(grep -E "opcode.*$DEVICE" /var/log/syslog)" ]; then
key=check
hdparm -w $DEVICE
WRULE
echo "ordering dbus to restart.."
/etc/init.d/dbus restart
echo "exiting sucesfully.."
exit 0
fi
done
echo "pff, there is something strange .. script is ending unexpectly.."
exit 1
.. protoze nemam dnes energii cokoliv vysvetlovat, napsal jsem ti skript, kerej ti to komplet vyresi..
.. po zapnuti pocitace si otevri terminal a spust jako root (sudo -i || su) tenhle skript.. terminal nezavirej..
.. v pripade, ze nastane zatuh, to tenhle skript "odtuhne" (zadny restart) a opravi chybu..
pokud to napise ze je vse ok.. uz ho nemusis znova spoustet
..pokud zatuh nastane a skript nepomuze, panbuh ti pomahej, je to kvuli necemu jinemu nez jsem predpokladal
.. po nastani zatuhu to muze par sekund trvat, nez to skript opravi.
.. zdravi ntz
ps.: pokud mas vic cdromek/dvdromek, rucne uprav skript s tim, ze zadej hodnotu DEVICE=hodnota (napr. /dev/hdc)
spustenim skriptu souhlasim s jedinou podminkou autora:
>> skript spoustim na vlastni nebezpeci, jakakoliv nahrada pri vznikle ujme neni mozna.. <<"