hal-nál elakad bootoláskor

Fórumok

Sziasztok, először is bocsi, nem tudtam melyik fórumba indítsam a topikot... :) A problémám a következő: tegnapelőtt még semmi gondom nem volt, tökéletesen bebootolt a rendszer (Debian lenny, kernel: 2.6.24-amd64), de tegnap óta bootoláskor megáll ennél a sornál:
"Starting hardware abstraction layer: hald"
és nem megy tovább, 4-5 percet vártam aztán reseteltem. Olvastam már sok fórumot de nem találtam megoldást. Annyit próbáltam ki hogy bebootoltam single-user módban, bejelentkeztem root-ként, és az init.d-ből kitöröltem a hald scriptet, így most bebootol a rendszer, viszont ha elnidítok egy játékot (pl nexuiz) akkor elkezd villogni az asztal, majd pár másodperc múlva kidob a bejelentkező képernyőre, de csinálta ezt már úgy is, hogy csak az amarok futott. Emlékezetem szerint nem tettem fel semmi új programot a gépre, ami miatt ezt csinálhatná :S Valakinek van ötlete, esetleg találkozott már valaki ezzel a problémával?

Hozzászólások

RAM tesztet javasolnék (memtest86).

:S:S Reméltem, hogy nem valami komoly hiba lesz... Ha már hardware hiba akkor sztem inkább videókártya lesz, tegnapelőtt játszottam ezzel a nexuiz-al, és 91˚-ra felment a videókártyám(Geforce 8500GT, passzív hűtéssel) hőmérséklete, mikor észrevettem és gyorsan leállítottam a játékot... Lehet hogy ez nem tett neki jót? (bár azt olvastam ezt bírnia kell, alapjáraton is 70˚-on szokott menni, a passzív hűtés miatt). Van valami módja hogy leellenőrizzem a videókártyát meg a hdd-t úgy mint a memóriát?

Megpróbálom azt a programot amit turul16 ajánlott, már fut is, csak 2 vinyóm van, egy 160GB meg egy 250GB úgyhogy eltart egy darabig :) Sajnos nincs másik videókártyám amivel kipróbálhatnám, de valahogy megpróbálom megoldani... Ha esetleg kiderül hogy a hdd-n van hibás blokk akkor mi a teendő? :S Le kell formázni az egészet és megjavul, vagy szervíz? Nem nagyon értek ilyen szempontból hozzá, ilyen gondom még nem volt.

szia

nekem is volt egyszer hasonlo az IBM thinkpad R51e laptopommal. Kernelfrissites utan jott elo. Kb. 5-8 percet varni kellett a hald-nal ugyanugy. Utanaolvasgattam en is, es kiderult, hogy az akkori legujabb kernel nem passzolt a laptopomhoz.

Gondold át még egyszer nagyon alaposan nem változtattál-e mégis valamit a konfigon.

Egyszer durván megsz¤pattam magam: általában suspendelem a notimat, és minden rendben volt. Egyszer egy újrabekapcsolástól kezdve (akkor még nem is tűnt fel) iszonyat belassult az egész. Egyre jobban idegesített. Közben elkezdtek szaporodni a dmesg-ben a hibák, I/O errorok is. A csúcs az volt, amikor kellett volna a vezetékes ethernet interfacem, és újraindítás után 10-20 MB átvitele után egy bájt se jött be. Kifelé ment minden.

Már téptem a hajam, hogy egy Thinkpadnek talán nem kéne a garanciába kerülnie. Aztán eszembe ötlött, hogy egyszer hozzáraktam az irqpoll opciót a grub konfigjába, de nem teszteltem le. Kivettem és láss csodát, működött!

--
The Net is indeed vast and infinite...
http://gablog.eu

Tedd bele az exit 0; -t a hald init scriptje elejére. Bootolj be, és strace-el nézd meg, hol van a végtelen ciklusban.

--
The Net is indeed vast and infinite...
http://gablog.eu

Ki tudnád ezt egy kicsit fejteni bővebben? Beírtam a hal script elejére amit mondtál (ez gondolom rögtön leállítja a script futását), aztán beírtam hogy "/etc/init.d/hal restart".
Azután "strace hald". Erre kidob egy csomó információt konzolban ami fogalmam sincs hogy mi... mit kellene néznem?

A hald-t ne indítsd el kézzel. /etc/init.d/hald indítja el a hald-t úgy, ahogy az jó.

Arra gondoltam, hogy azért írd ezt a scriptbe, hogy amúgy minden más elinduljon a gépen.
Majd ha elindult, vedd ki az exit 0 -t, és tégy úgy, ahogy az előttem hozzászóló mondta.

Az strace a rendszerhívásokat fogja kiírni amiket a paraméterül kapott program futása közben hívódnak. Így látszani fog, hogy a végtelen ciklus során milyen rendszerhívások vannak. Az alapján pedig lehet, hogy el lehet indulni, hogy mivel van a baj. (Máskülönben egy végtelen ciklus nem sokat mond.)

--
The Net is indeed vast and infinite...
http://gablog.eu

Rendben, beírtam amit mondtatok, futás közben a konzolon csak ennyi látszódot: "Starting hardware abstraction layer: hald", aztán megnéztem a kimeneti file-t. Hát annak a tartalmából én nem sokat tudok leszűrni, beszúrom ide a végét, hátha ti ebből értetek valamit:


32764 09:47:09 gettimeofday({1212392829, 547081}, NULL) = 0
32764 09:47:09 open("/dev/urandom", O_RDONLY) = 8
32764 09:47:09 read(8, ",MZ\356\346t\376@\230p\343\370", 12) = 12
32764 09:47:09 close(8)                 = 0
32764 09:47:09 fstat(7, {st_dev=makedev(0, 4), st_ino=62179, st_mode=S_IFSOCK|0777, st_nlink=1, st_uid=0, st_gid=0, st_blksize=1024, st_blocks=0, st_size=0, st_atime=0, st_mtime=0, st_ctime=0}) = 0
32764 09:47:09 fcntl(7, F_GETFL)        = 0x802 (flags O_RDWR|O_NONBLOCK)
32764 09:47:09 socket(PF_FILE, SOCK_STREAM, 0) = 8
32764 09:47:09 connect(8, {sa_family=AF_FILE, path="/usr/local/var/run/dbus/system_bus_socket"}, 43) = -1 ENOENT (No such file or directory)
32764 09:47:09 close(8)                 = 0
32764 09:47:09 unlink("/var/run/hal/hald.pid") = 0
32764 09:47:09 exit_group(1)            = ?
32763 09:47:09 --- SIGCHLD (Child exited) @ 0 (0) ---
32763 09:47:09 rt_sigaction(SIGCHLD, {0x411730, [CHLD], SA_RESTORER|SA_RESTART, 0x2b2b61d82240}, {SIG_DFL}, 8) = 0
32763 09:47:09 select(4, [3], NULL, [3], {250, 0}) = ? ERESTARTNOHAND (To be restarted)
32763 09:47:42 --- SIGINT (Interrupt) @ 0 (0) ---
32759 09:47:42 <... wait4 resumed> 0x7fffbc68b6c4, 0, NULL) = ? ERESTARTSYS (To be restarted)
32759 09:47:42 --- SIGINT (Interrupt) @ 0 (0) ---
32759 09:47:42 rt_sigreturn(0)          = -1 EINTR (Interrupted system call)
32759 09:47:42 wait4(-1, [{WIFSIGNALED(s) && WTERMSIG(s) == SIGINT}], 0, NULL) = 32763
32759 09:47:42 rt_sigaction(SIGINT, {SIG_DFL}, {0x439740, [], SA_RESTORER, 0x2ac2eeaa9240}, 8) = 0
32759 09:47:42 rt_sigaction(SIGINT, {SIG_DFL}, {SIG_DFL}, 8) = 0
32759 09:47:42 kill(32759, SIGINT)      = 0
32759 09:47:42 --- SIGINT (Interrupt) @ 0 (0) ---
32759 09:47:42 +++ killed by SIGINT +++ 

Így sikerült összehozni:
letöltési link: hald.trace
Szerk: (elvileg)online megnézhető: link

Szerk2: Ezidő alatt rájöttem, hogy amint elindulna a képernyővédő, rögtön egy fekete kép, aztán 1-2 másodperc múlva a bejelentkező képernyőn van... ugyanez van ha játékot indítok el(persze nem a pasziánsznál :D), valamit nagyon lecseszhettem, nem tudom mi lehet ez :(.

"32764 09:47:09 connect(8, {sa_family=AF_FILE, path="/usr/local/var/run/dbus/system_bus_socket"}, 43) = -1 ENOENT (No such file or directory)"

Ez nem normalis.
/var/run/dbus/system_bus_socket -letezik, az nem.

Olyba tunik a program letrehoz egy szalat, aminek 4 fd-re kene irnia, ha valami mondadoja van a szulonek. (az a pipe iro resze, 3 ason olvas)
A gyerek kilep, anelkul, hogy irna barmit is. (A gyerek nem talalja dbus Unix Domain Soceketet)
A Szulo meg var (3 -as fd) arra 250 secet, hogy irjon valamit a gyerek.

hald -nek lehet erdemes lenne kiprobalni mas verziojat, vagy rajonni honan veszi a gyerek ezt a badarsagot. Az indto script meg ellenorzi is a socket megletet a jo helyen.

250 sec utan tortent esemnyek is erdekesek lehetnek..

WORKAROUND:
sudo mkdir -p /usr/local/var/run/dbus/
sudo ln -s /var/run/dbus/system_bus_socket /usr/local/var/run/dbus/system_bus_socket

Erdemes lenne megnezni, hogy valahol explicite szerep -e ez az eleresi ut:
grep \/usr\/local\/var\/run/dbus\/system_bus_socket /usr/sbin/hald
grep -R \/usr\/local\/var\/run/dbus\/system_bus_socket /etc/*

Igen amit írtál megnéztem, valóban nincs ott az a file, ott van ahol írtad... :S

Most addig hagytam futni ezt a strace-t amig be nem fejezte: hald.trace2

A symlinkes dolgot fél órán belül kipróbálom, hátha sikerül, meg megpróbálok más verziójú hald-ot telepíteni. Írok ha megvan

Na megcsináltam a system_bus_socket symlinket, most úgy áll a dolog hogy bootoláskor simán továbblép a hald indításánál. Megnéztem feladatkezelőben és látszik is hogy fut a hald. Azonban a hiba továbbra is fennáll, ha elindítok egy játékot vagy elindul a képernyővédő akkor fekete képernyő és kiugrik a bejelentkező képernyőre. Én a dbusra gyanakszom ugyanis ha beírom hogy "/etc/init.d/dbus restart" , akkor ugyanez történik... kezdek összezavarodni hogy akkor most mi is van :S

Az -e fele halal esetek video Driver hibat szoktak jelenteni. (De lehet a vid kartya rossz)

starce -el talan megint kozelebb lehetunk a problemahoz, de az ltrace,gdb hasznalata sem volna hulyeseg.

Valoszinuleg a mar futo /usr/bin/X kene figyelni, (-p PID) egy szoveges terminalon inditva, kozben egy masik szovegesen restartolni a dbus -t es megnezni mi tortenik.

Azok valoszinuleg az /var/log/Xorg.0.log -ba is bekerulnek.
Testing vagy unstable agat hasznalsz ?

xorg-server -bol nezz mas verziot.

A vegen levo hibauzenetkre rakeresve tobbet tudhatsz meg a hibarol.

Valsozinuleg frissitettel valamit csak nem emlekszel ra. (xorg-sever dbus hal)

Testinget használok.
Most hogy mondod, átnéztem az összes eddigi letöltött programot meg forrásokat, és megtaláltam a dbus legújabb forrását is... Úgyhogy biztosan frissítettem valami miatt, csak akkor még nem tudtam mi az a dbus, most valószínüleg amiatt szívok :S Az a baj hogy ha le akarom szedni és feltenni egy régebbit, akkor egy csomó másik csomagot is törölni akar :S (nem értem én ezeket a függőségi dolgokat)
De amint lesz időm rákeresek a hibaüzenetekre is meg megpróbálom a régebbi verziót feltenni dbusból. Mindenesetre köszönöm az eddigi segítségeket, legalább a hiba okozója megvan (valószínüleg).