View previous topic :: View next topic |
Author |
Message |
Elbryan Guru
Joined: 13 Nov 2006 Posts: 523 Location: Rovereto (TN)
|
Posted: Fri Sep 28, 2007 3:54 pm Post subject: Lid del mio portatile [solved] |
|
|
Ho deciso di dare un altro try a gentoo e, come sempre, mi trovo a dover litigare con il lid del mio notebook.
Infatti se chiudo il coperchio e poi lo riapro, il monitor resta spento.
Sfogliando su google ho trovato questo link:
http://gentoo-wiki.com/HARDWARE_Dell_Inspiron_640m#ACPI:_LCD_ON.2FOFF
Questa operazione l'avevo già provata e successivamente ho dovuto editare lo script perché sul mio note non funzionava.
Ora, però, noto che la wiki è stata modificata ed hanno aggiunto un ulteriore metodo che sembrare sistemare il problema.
Ve lo riporto qui:
As an alternative to the process above, experienced users may wish to patch their DSDT with http://www.reactivated.net/systems/dell-640m/dsdt/01_lid-power-lcd.patch - after this modification, lid open/closing works as expected with no requirement for acpid or similar.
La mia scarsa conoscenza di gentoo mi impedisce di comprendere come utilizzare questa patch (probabilmente è una patch del kernel, perdonate se ho detto una bestemmia).
Qualcuno saprebbe indicarmi la via migliore per raggiungere lo scopo?
Nel caso la via migliore sia la seconda, come applico la patch?
Se è una patch del kernel devo ogni volta riapplicarla manualmente nel caso io ricompili il kernel?
Grazie ^^
Last edited by Elbryan on Sun Sep 30, 2007 4:13 pm; edited 1 time in total |
|
Back to top |
|
|
Dottout l33t
Joined: 07 Mar 2006 Posts: 882
|
Posted: Fri Sep 28, 2007 4:49 pm Post subject: |
|
|
non è una patch del kernel bensì del DSDT, che fa parte delle specifiche base di acpi. quella patch la applichi al dsdt con un patch -p0 <nomepatch, cmq la procedura per fixare il dsdt richiede qualche step aggiuntivo, che trovi spiegato in questa guida (sorry non mi ricordo tutti i passi) |
|
Back to top |
|
|
Elbryan Guru
Joined: 13 Nov 2006 Posts: 523 Location: Rovereto (TN)
|
Posted: Fri Sep 28, 2007 5:31 pm Post subject: |
|
|
se ti dicessi che tutta quella roba da far da solo mi spaventa a morte, mi daresti una vaga indicazione? ^^''' |
|
Back to top |
|
|
Dottout l33t
Joined: 07 Mar 2006 Posts: 882
|
Posted: Fri Sep 28, 2007 5:54 pm Post subject: |
|
|
ti serve il compilatore che trovi qui: http://developer.intel.com/technology/iapc/acpi/downloads.htm
poi:
Extract your current DSDT to a file as follows:
Code:
cat /proc/acpi/dsdt > dsdt.dat
Disassemble the DSDT
Code:
./iasl -d dsdt.dat
This will create a file called dsdt.dsl, which contains the disassembled DSDT. Have a look at it if you like. You can view its contents with any text editor. <-- così ottieni quello da patchare
# Recompile the DSDT.
Code:
./iasl -tc dsdt.dsl
This will create two files, dsdt.hex and DSDT.aml. <- questo step ti ricompila il dsdt patchato (è l'.hex)
per sostituirlo al tuo segui la guida al punto: 9. Incorporating the fixed DSDT into the kernel
(lo so che questo copia\incolla fa schifo ma almeno sintetizza un minimo ) |
|
Back to top |
|
|
Elbryan Guru
Joined: 13 Nov 2006 Posts: 523 Location: Rovereto (TN)
|
Posted: Fri Sep 28, 2007 5:56 pm Post subject: |
|
|
perfect appena ho tempo (domani credo) ci provo ^^
Grazie mille per la disponibilità intanto! |
|
Back to top |
|
|
djinnZ Advocate
Joined: 02 Nov 2006 Posts: 4831 Location: somewhere in L.O.S.
|
Posted: Fri Sep 28, 2007 7:25 pm Post subject: |
|
|
il compilatore è in portage (eix acpi) e mi pare sia pure stabile _________________ scita et risus abundant in ore stultorum sed etiam semper severi insani sunt
mala tempora currunt...mater stultorum semper pregna est
Murpy'sLaw:If anything can go wrong, it will - O'Toole's Corollary:Murphy was an optimist |
|
Back to top |
|
|
Elbryan Guru
Joined: 13 Nov 2006 Posts: 523 Location: Rovereto (TN)
|
Posted: Sat Sep 29, 2007 12:51 pm Post subject: |
|
|
djinnZ wrote: | il compilatore è in portage (eix acpi) e mi pare sia pure stabile |
mi pare si chiami iasl (emerge iasl).
Comunque in fase di compilazione mi da un errore su un qualcosa che dev'essere per forza alfanumerico..
Ora sto emergendo gnome, poi quando ho un supporto gui vi posto l'errore completo (però ho notato che nonostante l'errore il file .hex me l'ha generato..mboh). |
|
Back to top |
|
|
Elbryan Guru
Joined: 13 Nov 2006 Posts: 523 Location: Rovereto (TN)
|
Posted: Sat Sep 29, 2007 11:36 pm Post subject: |
|
|
perdonatemi se uppo la conversazione, comunque questo è il problema che vi dicevo ieri:
Code: |
dsdt.dsl 1066: Name (_HID, "*pnp0c14")
Error 4001 - ^ String must be entirely alphanumeric (*pnp0c14)
|
però nonostante l'errore:
Code: |
blackbox dsdt # ls -la
total 492
drwxr-xr-x 2 root root 4096 Sep 30 01:35 .
drwxr-xr-x 23 elbryan users 4096 Sep 30 01:35 ..
-rw-r--r-- 1 root root 887 May 6 22:33 01_lid-power-lcd.patch
-rw-r--r-- 1 root root 17292 Sep 30 01:31 dsdt.dat
-rw-r--r-- 1 root root 148834 Sep 30 01:31 dsdt.dsl
-rw-r--r-- 1 root root 148539 Sep 30 01:31 dsdt.dsl.orig
-rw-r--r-- 1 root root 149660 Sep 30 01:35 dsdt.hex
|
il file dsdt.hex è presente.. non mi fido a continuare però..
Qualcuno ha una vaga idea del motivo di tutto ciò? |
|
Back to top |
|
|
mrfree Veteran
Joined: 15 Mar 2003 Posts: 1303 Location: Europe.Italy.Sulmona
|
|
Back to top |
|
|
Elbryan Guru
Joined: 13 Nov 2006 Posts: 523 Location: Rovereto (TN)
|
Posted: Sun Sep 30, 2007 10:58 am Post subject: |
|
|
non ho trovato nulla di realmente utile a scoprire la causa dell'errore però |
|
Back to top |
|
|
Dottout l33t
Joined: 07 Mar 2006 Posts: 882
|
Posted: Sun Sep 30, 2007 11:14 am Post subject: |
|
|
puoi usare un dsdt anche buggato (cosa che del resto hai fatto fino adesso). la patch dovrebbe migliorare la situazione, in merito a quell'errore non so, puoi provare a individuarlo tu oppure continuare a ignorarlo |
|
Back to top |
|
|
mrfree Veteran
Joined: 15 Mar 2003 Posts: 1303 Location: Europe.Italy.Sulmona
|
Posted: Sun Sep 30, 2007 12:15 pm Post subject: |
|
|
Elbryan wrote: | non ho trovato nulla di realmente utile a scoprire la causa dell'errore però | Dai un'occhiata a questo diff (l'ho trovato qui cercando su google) se l'autore dice il vero ti basterebbe eliminare l'* _________________ Please EU, pimp my country!
ICE: /etc/init.d/iptables panic |
|
Back to top |
|
|
djinnZ Advocate
Joined: 02 Nov 2006 Posts: 4831 Location: somewhere in L.O.S.
|
Posted: Sun Sep 30, 2007 12:15 pm Post subject: |
|
|
vai su acpi.sf.net e chiedi aiuto.
a naso direi che può essere che sia una chiamata a funzione (o come diavolo si chiamano) che è stata scritta male. cerca se da qualche parte esiste qualcosa che assomiglia ad una funzione che si chiama "pnp0c14" se c'è prova a togliere l'asterisco e ricompilare.
Ovviamente è a tuo rischio e pericolo e non so quali danni puoi causare. _________________ scita et risus abundant in ore stultorum sed etiam semper severi insani sunt
mala tempora currunt...mater stultorum semper pregna est
Murpy'sLaw:If anything can go wrong, it will - O'Toole's Corollary:Murphy was an optimist |
|
Back to top |
|
|
Elbryan Guru
Joined: 13 Nov 2006 Posts: 523 Location: Rovereto (TN)
|
Posted: Sun Sep 30, 2007 4:12 pm Post subject: |
|
|
Questa cosa è più grande di me e un poco mi spaventa..
Quindi ho preferito passare allo script.. grazie comunque |
|
Back to top |
|
|
Dottout l33t
Joined: 07 Mar 2006 Posts: 882
|
Posted: Sun Sep 30, 2007 4:16 pm Post subject: |
|
|
non per forzarti a far passi + lunghi della gamba ma: allo stato attuale il tuo dsdt è buggato, potresti accontentarti di applicare la patch e ignorare il precedente errore (che fino ad ora è risultato esser innocuo) |
|
Back to top |
|
|
Elbryan Guru
Joined: 13 Nov 2006 Posts: 523 Location: Rovereto (TN)
|
Posted: Sun Sep 30, 2007 4:56 pm Post subject: |
|
|
Dottout wrote: | non per forzarti a far passi + lunghi della gamba ma: allo stato attuale il tuo dsdt è buggato, potresti accontentarti di applicare la patch e ignorare il precedente errore (che fino ad ora è risultato esser innocuo) |
ma ho trovato un diff per fare l'override del mio dsdt (traltro per il kernel 2.6.21 e non per il .22 ma non dava errori) e l'ho applicata sistemando come suggeritomi da djinnz..
Ho riavviato e s'è bloccato all'avvio, subito dopo aver rilevato il cdrom e gli hard disk..
Non ho idea di come metterci mano, per cui... |
|
Back to top |
|
|
djinnZ Advocate
Joined: 02 Nov 2006 Posts: 4831 Location: somewhere in L.O.S.
|
Posted: Mon Oct 01, 2007 11:57 am Post subject: |
|
|
aspetta un attimo e ricapiltoliamo.
per caricare il dsdt (con kernel gentoo/hardened/suspend2 gli altri non so) devi andare in device drivers -> generic driver options e mettere no a Select only drivers that do not need compile externa software (o giù di li, sarebbe STANDALONE=N) poi devi andare in power management -> acpi, abilitare custom dsdt (ACPI_CUSTOM_DSDT=Y) e valorizzare custom dstd table (ACPI_CUSTOM_DSDT_FILE=path) nel modo corretto (vecchio problema del kernel meglio usare un persorso assoluto e non avere spazi e caratteri strani nei path). Ti ritrovi in queste istruzioni?
la patch è per il kernel o per la dsdt?
se è per il kernel devi verificare che non ci siano dei .rej nell'albero dei sorgenti, il kernel gentoo è già pezzottato (termine italiano derivato dalla lingua napoletana per il barbarismo patchato) di suo e una parte della patch potrebbe non essere stata inclusa perchè non allineata (si apetta che l'istruzione x sia alla line 123 del file y.c mentre è nel file y.c ma alla linea 129, in tal caso la applichi manualmente e via);
se invece è per il dsdt devi controllare che la versione del bios corrisponda e del kernel non te frega nulla perchè l'unico legame è l'istruzione di dire al bios di caricare la nuova dsdt invece di quella di default, e sempre verificare che non ci siano dei rej e che non esista già in un'altra posizione Code: | Method (LIDE, 0, NotSerialized) | .
hai provato a cercare su http://acpi.sourceforge.net/dsdt/view.php se c'è il tuo modello di portatile? prova ad usare quella dsdt se c'è. Mi sa che il tuo non è un dell 640m o lo è?
per fare il fix di una dsdt ti conviene prima cercare di risolvere gli errori sulla originale e poi applicare eventuali patch. Sistemando come? hai semplicemente cancellato l'asterisco o hai verificato come sono scritte le assegnazioni Name (_HID, "...")?
nella mia dsdt per esempio sono tutte "PNPxxxx" ma non è una certezza.
In più, deve esserci il method LIDE per rilevare il coperchio ma deve anche esserci in WAKE la chiamata a LIDE, altrimenti non funziona. Più o meno è come in normale programma c.
Ti ripeto il consiglio vai su http://acpi.sourceforge.net e chiedi aiuto non è una cosa da modificare alla buona e rischi di fare danni molto seri.
tanto per curiosità puoi mettere su pastebin o come diavolo si chiama la dsdt incriminata? Non prometto nulla ma se trovo un poco di tempo do uno sguardo. _________________ scita et risus abundant in ore stultorum sed etiam semper severi insani sunt
mala tempora currunt...mater stultorum semper pregna est
Murpy'sLaw:If anything can go wrong, it will - O'Toole's Corollary:Murphy was an optimist |
|
Back to top |
|
|
Elbryan Guru
Joined: 13 Nov 2006 Posts: 523 Location: Rovereto (TN)
|
Posted: Mon Oct 01, 2007 4:25 pm Post subject: |
|
|
Sei troppo gentile..
Allora. Sì, il mio è un dell 640m e, purtroppo, non è listato su acpi.sourceforge.net.
Questo è il dsdt.dsl decompilato ed originale: http://rafb.net/p/5hSgR451.html
Questo è il dsdt patchato con la patch che trovi al primo post di questo thread: http://rafb.net/p/J5ED9r33.html
Questo è l'output di iasl -tc dsdt.dsl:
Code: |
blackbox dsdt # iasl -tc dsdt.dsl
Intel ACPI Component Architecture
ASL Optimizing Compiler version 20060912 [Sep 29 2007]
Copyright (C) 2000 - 2006 Intel Corporation
Supports ACPI Specification Revision 3.0a
dsdt.dsl 1066: Name (_HID, "*pnp0c14")
Error 4001 - ^ String must be entirely alphanumeric (*pnp0c14)
dsdt.dsl 2840: And (Local0, 0x0F)
Warning 1104 - ^ Result is not used, operator has no effect
dsdt.dsl 2898: And (Local0, 0x0F)
Warning 1104 - ^ Result is not used, operator has no effect
dsdt.dsl 2956: And (Local0, 0x0F)
Warning 1104 - ^ Result is not used, operator has no effect
dsdt.dsl 3014: And (Local0, 0x0F)
Warning 1104 - ^ Result is not used, operator has no effect
dsdt.dsl 3072: And (Local0, 0x0F)
Warning 1104 - ^ Result is not used, operator has no effect
dsdt.dsl 3130: And (Local0, 0x0F)
Warning 1104 - ^ Result is not used, operator has no effect
dsdt.dsl 3188: And (Local0, 0x0F)
Warning 1104 - ^ Result is not used, operator has no effect
dsdt.dsl 3246: And (Local0, 0x0F)
Warning 1104 - ^ Result is not used, operator has no effect
dsdt.dsl 3715: Return (Package (0x00) {})
Remark 5070 - Effective AML package length is zero ^
ASL Input: dsdt.dsl - 4702 lines, 148834 bytes, 1511 keywords
Compilation complete. 1 Errors, 8 Warnings, 1 Remarks, 545 Optimizations
|
Sistemando lo "*" (ovvero togliendolo), l'errore non c'è più..
Io di ste cose non ne ho mai fatte, mai patchato un kernel.. e ti dirò.. andare un po' alla cieca quando si lavora su ste cose non mi ispira molto.
Comunque ti ringrazio davvero tanto nel frattempo ^^ |
|
Back to top |
|
|
djinnZ Advocate
Joined: 02 Nov 2006 Posts: 4831 Location: somewhere in L.O.S.
|
Posted: Mon Oct 01, 2007 4:44 pm Post subject: |
|
|
Elbryan wrote: | il mio è un dell 640m e, purtroppo, non è listato su acpi.sourceforge.net. |
uhm, ti conviene proprio iscriverti sulla ML e chiedere a qualcuno che ne sa sul serio. Tra l'altro dovresti vedere di sapere se il tizio che ha escogitato la patch ha la tua stessa versione del bios.
in ogni caso il valore corretto dovrebbe essere "PNP0C14" maiuscolo e non minuscolo, prova se funziona per prima cosa con la dsdt originale, i warning li puoi ignorare per il momento.
Poi prova con quella patchata (vedi che ogni volta che cambi la dsdt devi ricompilare tutto il kernel ed il file giusto dovrebbe essere il dsdt.hex) e fai sapere. _________________ scita et risus abundant in ore stultorum sed etiam semper severi insani sunt
mala tempora currunt...mater stultorum semper pregna est
Murpy'sLaw:If anything can go wrong, it will - O'Toole's Corollary:Murphy was an optimist |
|
Back to top |
|
|
Elbryan Guru
Joined: 13 Nov 2006 Posts: 523 Location: Rovereto (TN)
|
Posted: Mon Oct 01, 2007 4:55 pm Post subject: |
|
|
djinnZ wrote: | Elbryan wrote: | il mio è un dell 640m e, purtroppo, non è listato su acpi.sourceforge.net. |
uhm, ti conviene proprio iscriverti sulla ML e chiedere a qualcuno che ne sa sul serio. Tra l'altro dovresti vedere di sapere se il tizio che ha escogitato la patch ha la tua stessa versione del bios.
in ogni caso il valore corretto dovrebbe essere "PNP0C14" maiuscolo e non minuscolo, prova se funziona per prima cosa con la dsdt originale, i warning li puoi ignorare per il momento.
Poi prova con quella patchata (vedi che ogni volta che cambi la dsdt devi ricompilare tutto il kernel ed il file giusto dovrebbe essere il dsdt.hex) e fai sapere. |
io ho un dubbio.. che override devo prendere? ^^'' |
|
Back to top |
|
|
djinnZ Advocate
Joined: 02 Nov 2006 Posts: 4831 Location: somewhere in L.O.S.
|
|
Back to top |
|
|
Elbryan Guru
Joined: 13 Nov 2006 Posts: 523 Location: Rovereto (TN)
|
Posted: Mon Oct 01, 2007 8:44 pm Post subject: |
|
|
e che faccio? già il tipo ha postato la patch e nessuno gli ha risposto..
penso che io e la mia ignoranza siano ben di poco aiuto lì dentro
edit:
http://bugzilla.kernel.org/show_bug.cgi?id=5155#c6
Guarda guarda..a quanto pare qualcuno ha postato qualche sorta di workaround ma.. ad essere sincero non ci capisco nulla..
Cioè.. nulla è relativo, capisco dove hanno modificato e capisco anche ora il perché (o quasi) non vada ma da lì a capire come sistemarlo.. beh ne passa.. |
|
Back to top |
|
|
djinnZ Advocate
Joined: 02 Nov 2006 Posts: 4831 Location: somewhere in L.O.S.
|
Posted: Mon Oct 01, 2007 8:50 pm Post subject: |
|
|
in primis tenere d'occhio il bug
poi secondo il grado di faccia tosta
"bump"?
scocciare anche in ML per far seguire la cosa?
postare un banale messaggio sempre nella prima ML e dire "sono niubbo ed ho un problema con un dell 640m"?
anche tutti insieme. In fin dei conti nel peggiore dei casi ti possono mandare a c***** ma niente di più.
(e questa è la volta buona che drittzt e scen in quanto devel frequentatori di questo forum pagano qualcuno che venga a spezzarmi le gambe, non è proprio correttissimo ma tutto è lecito ) _________________ scita et risus abundant in ore stultorum sed etiam semper severi insani sunt
mala tempora currunt...mater stultorum semper pregna est
Murpy'sLaw:If anything can go wrong, it will - O'Toole's Corollary:Murphy was an optimist |
|
Back to top |
|
|
|