Notebook pro Linux: ... - hotswapova zarizeni
Tomáš Hudec
tom na abba.cz
Úterý Únor 12 00:42:57 CET 2002
Zdeněk Böhm wrote:
>>Mam zkusenosti s HOT SWAP na desktopu, ale mohlo by to pomoci i na
>>
> notebooku.
>
>>Nevim, jak je to s CD-ROM, ale s HDD mi to funguje a Linux nepada.
>>Prostudujte si utilitu hdparm - parametry -U a -R. Lze tak odregistrovat
>>IDE zarizeni a znovu registrovat. Funguje to ale pouze na cely IDE kanal,
>>tj. odpoji/pripoji vzdy master i slave zarizeni. HOT SWAP zarizeni tedy
>>
> musi
>
>>byt na jinem IDE kanale nez na jakem je namontovany "/".
>>
>>Postup pri vyjmuti:
>>- rmmod pro ide-cd / ide-scsi, cdrom
>>- hdparm -y /dev/hd? <- uspi disk (v pripade cd-rom asi na nic)
>>- hdparm -U 1 /dev/hda (odregistruje kanal 1 IDE, hda je spravne, pokud
>>/dev/hda je neodpojovany disk - to se v pripade
>>-U a -R ignoruje, ale je to vyzadovany parametr)
>>
>
> Kde jste, prosim vas, sehnal ty parametry? Man hdparm mi akorat rekne, ze -U
> slouzi k odregistraci a -R k registraci, ale uz se nedovim nic vic. Jo,
> jeste me to varuje, ze je to nebezpecne. Na jednom miste se manual odkazuje
> na adresar contrib, kde jsou scripty od uzivatelu, ale rika zaroven, ze ten
> adresar je jen u zdrojoveho baliku (ja ho (contrib) v distribuci nemam).
> Freshmeat me na dotaz hdparm posle na www.ibiblio.org, kde mi napisou, ze
> maji momentalne problemy...
> Google mi vyhodi nekolik odkazu, kde se ale opet podrobnejsi informace
> nedovim.
Podle skriptiku idectl...
hudec na stig:~$ dpkg -L hdparm
...
/usr/share/doc/hdparm/examples/idectl
/usr/share/doc/hdparm/examples/ultrabayd
...
Tyto prikazy jsem pouzival na hot swap disku, kde na stejnym kabelu
byla CD-ROM (slave):
modprobe -r ide-cd ide-scsi cdrom
hdparm -y /dev/hdc # disk - sleep
# cdrom - netreba: hdparm -y /dev/hdd
hdparm -U 1 /dev/hde # root fs mam na hde - to se nikdy neodregistrovava
# tak to pouzivam jako nutny parametr (zatim se mi nechtelo hdparm
# upravit tak, aby parametr nebyl vyzadovan... :-))
# Timto se presvedcim, ze ide1 neni jadru zname...
grep ide /proc/devices
>
> S pozdravem Zdenek Bohm
--
Tom
------------- další část ---------------
#!/bin/sh
HDPARM=/sbin/hdparm
MAX_IDE_NR=1
IDE_IO_0=0x1f0
IDE_IO_1=0x170
USE_IDE_DEV_0=/dev/hdc
USE_IDE_DEV_1=/dev/hda
usage () {
if [ $# -gt 0 ]; then
echo $* >&2
echo
fi
echo "usage: $0 ide-channel-nr [off|on|rescan]" 2>&1
exit 1
}
IDE_NR=$1
MODE=$2
do_register=0
do_unregister=0
if [ ! "$IDE_NR" ] || [ $IDE_NR -lt 0 ] || [ $IDE_NR -gt $MAX_IDE_NR ]; then
usage "Unrecognized IDE-channel number"
fi
case "$MODE" in
on ) do_register=1 ;;
off ) do_unregister=1 ;;
rescan ) do_unregister=1; do_register=1 ;;
* ) usage "Unrecognized command" ;;
esac
eval "IDE_IO=\$IDE_IO_$IDE_NR"
eval "USE_IDE_DEV=\$USE_IDE_DEV_$IDE_NR"
[ $do_unregister -eq 1 ] && eval "$HDPARM -U $IDE_NR $USE_IDE_DEV > /dev/null"
[ $do_register -eq 1 ] && eval "$HDPARM -R $IDE_IO 0 0 $USE_IDE_DEV > /dev/null"
------------- další část ---------------
#!/bin/sh
VERSION="0.1.000"
TPCTL="/usr/bin/tpctl"
IDECTL="/sbin/idectl"
INTERVAL=5
case "$1" in
-V )
echo "$0: Version $VERSION"
exit 0
;;
-daemon )
o_d_type=""
o_d_id=""
while true; do
d_type=""
d_type_n=""
d_id=""
d_id_n=""
while read w1 w2 w3 wn; do
case "$w1" in
device )
case "$w2" in
type: ) d_type=$w3; d_type_n="$wn";;
ID: ) d_id=$w3; d_id_n="$wn";;
esac
;;
esac
if [ "$d_type" ] && [ "$d_id" ]; then
break;
fi
done <<- END
`eval $TPCTL -iU`
END
if [ "$d_type" != "$o_d_type" ] || [ "$d_id" != "$o_d_id" ]; then
echo -n "\07" > /dev/tty1
o_d_type="$d_type"
o_d_id="$d_id"
case "$d_type" in
0x10 )
eval "$IDECTL 1 rescan"
;;
* )
eval "$IDECTL 1 off"
;;
esac
fi
sleep $INTERVAL
done
;;
* )
exec nohup $0 -daemon 2>&1 > /dev/null &
;;
esac
Další informace o konferenci Linux