Desktop - Instalacja Debiana na HP nx6310 - EY501ES (część 1)
ea66 - 2007-02-24, 18:36
Poczytałem sobie nieco i doszedłem ,że przy użyciu polecenia wyloguj>wstrzymaj [lub hibernuj] ładowane są odpowiednio skrypty /etc/acpi/sleep.sh lub /etc/acpi/hibernate.sh . Elementem wspólnym tej układanki jest natomiast skrypt /etc/acpi/reasume.sh który pośredniczy we wzbudzeniu laptopa ze "snu" [choć to zapewne żadne odkrycie dla Was]. Tak czy inaczej wystarczyło dopisać w skrypcie reasume.sh:
Kod: | echo -n reconnect > /sys/bus/serio/devices/serio0/drvctl |
Wyglada to teraz tak:
Kod: | #!/bin/bash
# Source from /etc/acpi/resume.d/
for SCRIPT in /etc/acpi/resume.d/*.sh; do
. $SCRIPT
echo -n reconnect > /sys/bus/serio/devices/serio0/drvctl
done |
I w ten sposób problem z klawaturą przy suspend i hibernate się rozwiązał... Jedyne co mnie jeszcze nurtuje to po wzbudzeniu z hibernacji rozłącza połączenie lan i trzeba czekać z 5sek zeby je przywrocił ale to chyba tak być musi.
No i drugie pytanie: skoro problem zniknal to czy stosować Twój skrypt czy mogę używać standardowego "wbudowanego wstrzymania"?
I ewentualnie czy można ten skrypt jakoś podpiąć pod graficzne wstrzymanie z gnome np. podmieniajac sleep.sh?
Maciek_Rutecki - 2007-02-24, 19:44
Skoro działa wbudowany po dodaniu tej linijki to nie musisz, ja po prostu wolę swój, bo go rozumiem . Po prostu dodaj na końcu to polecenie i tyle.
Błąd polegał na tym, że po wybudzeniu gubił przerwanie. Jakbyś podłączył zewnątrzną klawiaturę było by oki.
Gdybyś kiedyś kompilował własne jajko, to klawiaturę (i8042) zrób jako moduł i wywal go przed suspendem i załaduj po. Opjca ta wymaga ustawienia CONFIG_EMBEDDED na yes a psmouse na moduł.
W menuconfig masz to:
i8042: Device drivers->imput device support->hardware i/o ports i8042 -> PC Keyboard controller<m>
mysz: Device drivers->imput device support->mouse->PS/2 mouse -> <m>
CONFIG_EMBEDDED: General setup->Configure standard kernel features (for small systems)
Inaczej pisząc:
CONFIG_EMBEDDED=y
CONFIG_MOUSE_PS2=m
CONFIG_SERIO_I8042=m
Karta ethernetowa wymaga chwilki na obudzenie się.
ea66 - 2007-02-24, 20:00
No i fajnie. Jak narazie kompilacja własnego jądra jest jeszcze nieco zbyt wymagającym zadaniem, ale z czasem na pewno spróbuję i Twoje wskazówki na pewno się przydadzą
Tak czy inaczej udało mi się uporać ze wszystkimi problemami jakie dręczyły mojego laptopa pod linuxem.
Generalnie HP musi mieć mocno skopany bios bo z tego co czytałem wszystkie te błędy wynikają z błędów właśnie w biosie a nie w samym os-ie. Nawet teraz w trakcie botowania wyrzuca jakies MFCG Bios Bug i Synaptics Reset Failed ale nie powoduje to jakiś negatywnych skutków więc chyba można to zignorować
Jeszcze raz dziękuje za pomoc
Maciek_Rutecki - 2007-02-24, 20:27
ea66 napisał/a: | Nawet teraz w trakcie botowania wyrzuca jakies MFCG Bios Bug i Synaptics Reset Failed ale nie powoduje to jakiś negatywnych skutków więc chyba można to zignorować |
Zawsze możesz samemu poprawić tablicę DSDT. Choć na te błędy nie da rady.
wizard - 2007-02-25, 02:45
Oj dziękuję ci bardzo.. u mnie nic nie dało
Maciek_Rutecki - 2007-02-25, 10:30
wizard napisał/a: | Oj dziękuję ci bardzo.. u mnie nic nie dało |
?
ea66 - 2007-02-25, 17:42
Hmm wczoraj byłem z siebie bardzo zadowolony ,że standby działa a dzisiaj nie działa, czy raczej klawiatura wbudowana i touchpad nie działa po wzbudzeniu z uśpienia. Hibernacja dalej działa i jest ok.
Próbowałem użyć tego skryptu, który podałeś wcześniej i faktycznie ładnie się usypia, ale wcale nie wstaje [czarny ekran i nic dalej]. Masz może jakiś pomysł na to?
Anonymous - 2007-02-25, 18:22
ea66 napisał/a: | Hmm wczoraj byłem z siebie bardzo zadowolony ,że standby działa a dzisiaj nie działa, czy raczej klawiatura wbudowana i touchpad nie działa po wzbudzeniu z uśpienia. Hibernacja dalej działa i jest ok.
Próbowałem użyć tego skryptu, który podałeś wcześniej i faktycznie ładnie się usypia, ale wcale nie wstaje [czarny ekran i nic dalej]. Masz może jakiś pomysł na to? |
Możesz podłączyć konsole po kablu szeregowym? Powinieneś zobaczyć to co nie jest wypisane na ekranie.
BTW. Laptop ma HT czy to jakiś Core? W laptopie jest SATA?
Spróbuj też różnych kombinacji acpi=noirq pci=noacpi jako parametry do jądra, przeczytaj Documentation/power/tricks.txt i resztę dokumentów w Documentation/power/ .
Maciek_Rutecki - 2007-02-25, 19:04
ea66 napisał/a: | Próbowałem użyć tego skryptu, który podałeś wcześniej i faktycznie ładnie się usypia, ale wcale nie wstaje [czarny ekran i nic dalej]. Masz może jakiś pomysł na to? |
Masz pakiet vbetool(s)? Kompletnie żadnej reakcji ze strony sprzętu po naciśnięciu zasilania?
michal napisał/a: | BTW. Laptop ma HT czy to jakiś Core? W laptopie jest SATA? |
Core Duo z SATA
michal napisał/a: | Spróbuj też różnych kombinacji acpi=noirq pci=noacpi |
Odradzam, posypie się m.in. USB
michal napisał/a: |
Możesz podłączyć konsole po kablu szeregowym? |
Nie ma odpowiedniego wyjścia.
Co rozumiesz pod pojęciem standby: suspend to ram, czy faktycznie standby?
Anonymous - 2007-02-25, 19:20
Maciek_Rutecki napisał/a: |
michal napisał/a: | BTW. Laptop ma HT czy to jakiś Core? W laptopie jest SATA? |
Core Duo z SATA
|
Więc to może być problem z SMP, SATA, spapranym ACPI i wszystkim innym po drodze...
Maciek_Rutecki napisał/a: |
michal napisał/a: | Spróbuj też różnych kombinacji acpi=noirq pci=noacpi |
Odradzam, posypie się m.in. USB
|
Super...
Maciek_Rutecki napisał/a: |
michal napisał/a: |
Możesz podłączyć konsole po kablu szeregowym? |
Nie ma odpowiedniego wyjścia.
|
Jeszcze lepiej. Konsola sieciowa też odpada, bo sieć jest za późno włączana. Adapter portu szeregowego na USB?
Może spróbuj najpierw wyłączyć SMP i wywłaszczenie.
Albo bez rekompilacji
maxcpus=1 noapic
ea66 - 2007-02-25, 19:37
Cytat: | Masz pakiet vbetool(s)? |
Tak, mam zainstalowaną wersję 0.7-1.1
Cytat: | Kompletnie żadnej reakcji ze strony sprzętu po naciśnięciu zasilania?
|
Kontrolki się świecą, dysk przez chwile pracuje, po czym koniec. Ekran nawet nie mignie, cały czas pozostaje czarny.
Cytat: | Co rozumiesz pod pojęciem standby: suspend to ram, czy faktycznie standby? |
Tak na dobrą sprawę to nie mam pojęcia. Generalnie po wywołaniu polecenie Wstrzymaj z menu wyloguj wywoływany jest skrypt /etc/acpi/sleep.sh który wygląda tak [jest to skrypt oryginalny, nic tu nie ruszałem]:
Kod: | #!/bin/bash
. /etc/default/acpi-support
. /usr/share/acpi-support/power-funcs
. /usr/share/acpi-support/device-funcs
. /usr/share/acpi-support/policy-funcs
DeviceConfig;
if [ x$ACPI_SLEEP != xtrue ] && [ x$1 != xforce ]; then
exit;
fi
# If gnome-power-manager or klaptopdaemon are running, let them handle policy
if [ x$1 != xforce ] && [ x$1 != xsleep ] && [ `CheckPolicy` = 0 ]; then
exit;
fi
if [ x$LOCK_SCREEN = xtrue ]; then
if pidof xscreensaver > /dev/null; then
for x in /tmp/.X11-unix/*; do
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`
getXuser;
if [ x"$XAUTHORITY" != x"" ]; then
export DISPLAY=":$displaynum"
. /usr/share/acpi-support/screenblank
fi
done
fi
fi
# Generic preparation code
. /etc/acpi/prepare.sh
if [ x$DISABLE_DMA = xtrue ] && [ -b /dev/hda ]; then
hdparm -d 0 /dev/hda
fi
echo -n $ACPI_SLEEP_MODE >/sys/power/state
if [ x$RESET_DRIVE = xtrue ] && [ -b /dev/hda ]; then
hdparm -w /dev/hda
hdparm -C /dev/hda
hdparm -C /dev/hda
hdparm -C /dev/hda
hdparm -d 1 /dev/hda
fi
if [ x$DISABLE_DMA = xtrue ] && [ -b /dev/hda ]; then
hdparm -d 1 /dev/hda
fi
# Generic wakeup code
. /etc/acpi/resume.sh
|
Nie wiem tak naprawdę czy jest to suspen to ram czy suspend. Mam nadzieję że, po tym skrypcie można to ocenić.
Do tej pory wystarczyło, jak pisałem już wcześniej, wystarczyło w skrypcie /etc/acpi/resume.sh dopisać linijkę podaną przez Ciebie i było ok. Zarówno wstrzymanie jak i hibernacja działała poprawnie i klawiatura pracowała poprawnie. Skrypt wygląda tak:
Kod: | #!/bin/bash
# Source from /etc/acpi/resume.d/
for SCRIPT in /etc/acpi/resume.d/*.sh; do
. $SCRIPT
echo -n reconnect > /sys/bus/serio/devices/serio0/drvctl
done |
Wczoraj późnym wieczorem aktualizowałem system, 71 paczek zostało uaktualnionych i sie zrobił problem. Po wyjściu ze wstrzymania klawiatura nie działa pomimo że plik resume.sh został nienaruszony. Co ciekawe pomimo że usunąłem ten dodatkowy wpis wzbudzający klawiaturę, hibernacja
działa poprawnie i klawiatura również [a też był z nią problem]. Skrypt inicjujący hibernację wygląda tak:
Kod: | #!/bin/bash
. /etc/default/acpi-support
. /usr/share/acpi-support/power-funcs
. /usr/share/acpi-support/policy-funcs
if [ x$ACPI_HIBERNATE != xtrue ] && [ x$1 != xforce ]; then
exit;
fi
# Unset video posting - it's not needed for suspend to disk
unset POST_VIDEO
unset USE_DPMS
. /etc/acpi/prepare.sh
#if [ x$LOCK_SCREEN = xtrue ]; then
# for x in /tmp/.X11-unix/*; do
# displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`
# getXuser;
# if [ x"$XAUTHORITY" != x"" ]; then
# export DISPLAY=":$displaynum"
# . /usr/share/acpi-support/screenblank
# fi
# done
#fi
echo -n $HIBERNATE_MODE >/sys/power/disk
if [ -x /sbin/s2disk ]; then
DEVICE="/dev/disk/by-uuid/`awk -F= '{print $3}' </etc/initramfs-tools/conf.d/resume`"
if [ -f /etc/usplash.conf ]; then
. /etc/usplash.conf
/sbin/s2disk -x "$xres" -y "$yres" $DEVICE
else
/sbin/s2disk $DEVICE
fi
else
echo -n "disk" >/sys/power/state
fi
$LAPTOP_MODE stop
. /etc/acpi/resume.sh |
I w tym momencie nie wiem jak to ugryźć bo jedno działa a drugie nie, a bazują na podobnych skryptach.
Maciek_Rutecki - 2007-02-25, 20:39
ea66 napisał/a: | . /etc/acpi/resume.sh |
To pokaż. Wolę jednak własne skrypty, są prostsze
ea66 - 2007-02-25, 21:44
Juz pokazywałem powyżej:
Kod: | #!/bin/bash
# Source from /etc/acpi/resume.d/
for SCRIPT in /etc/acpi/resume.d/*.sh; do
. $SCRIPT
echo -n reconnect > /sys/bus/serio/devices/serio0/drvctl
done |
Maciek_Rutecki - 2007-02-25, 21:54
Jeszcze się upewnię, moj skrypt działa? Bo ten korzysta z uswsp, ktory u mnie zawsze sprawiał problemy.
BTW:
cat /sys/power/state
Dowiesz sie co masz. Ale raczej masz suspend to ram (w windowsie wstrzymanie) i disk (hibernacja).
ea66 - 2007-02-25, 22:31
Więc tak:
Kiedy odpalę Twój skrypt komputer się ładnie usupia ale nie wstaje, tzn kontrolki sie świecą, dysk chwile pracuje i tyle. Ekran pozostaje czarny i laptop nie reaguje na żadne polecenia. Muszę go wyłączyć z przycisku i włączyć żeby system się uruchomił.
Wynik z polecenia cat /sys/power/state:
|
|
|