Unix, l'ACPI et les BIOS, on en est où ?

Unix, l'ACPI et les BIOS, on en est où ? - Divers - Linux et OS Alternatifs

Marsh Posté le 20-04-2009 à 21:05:12    

Bonjour à tous !

 

       Ceci est mon coup de gueule de l'année :o et accessoirement ma révolte du mois. Vous avez des valeurs de température aberrantes ? Vous n'arrivez pas à contrôler vos ventilateurs, vous avez des freezes, un support incomplet voir catastrophique de la gestion de l'énergie et vous êtes vous Linux ? Ce post est fait pour vous.

 

L'ACPI, vous connaissez ? Simplement, l'Advanced Configuration and Power Interface permet le contrôle de la gestion d'énergie par le système d'exploitation. Le standard industriel précédent, Advanced Power Management (APM), est contrôlé au niveau du BIOS et le système d'exploitation n'a pas connaissance du moment où l'ordinateur change ou va changer d'état (mise en veille ou non, charge batterie critique, vitesse des ventilateurs, veille prolongée etc).

 

L'ACPI est généralement configuré à partir du système d'exploitation. Celà est possible à l'aide de la table de description différenciée du système (DSDT). La DSDT fournit beaucoup d'informations au système d'exploitation comme le nombre de processeurs et leurs paramètres, certains IRQ, les paramètres de contrôle des
ventilateurs, les senseurs de températures, j'en passe et des meilleurs.

 

Petit préalable pour les profanes: L'IRQ (Interrupt Request ou demande d'interruption) permet de contrôler et séquencer le traitement des données de votre ordinateur. Imaginez que vous jouiez à Quake en local, et votre carte Ethernet reçoit un paquet, par exemple contenant le message MSN du boulet de votre liste de contact (on en a tous un...), hop, une demande d'interruption est générée qui va dire au CPU "Hého j'ai un paquet qui vient d'arriver, il faut que tu le traites fissa". Le CPU traite le paquet Ethernet, envoie le joli son MSN dans vos hauts parleurs entre 2 tirs de machinegun et reprend son activité histoire que vous fassiez quelques frags. Un autre exemple d'interruption de la vie courante: Vous écrivez un article sur ce beau forum et vous avez soif: vous arrêtez votre activité, vous allez boire et vous reprenez la rédaction, c'est le principe de l'interruption.

 

L'APIC comprend 2 composants: l'IO-APIC et le Local APIC ( http://en.wikipedia.org/wiki/Intel_APIC_Architecture ). L'IO-APIC est une table de redirection des IRQ des périphériques (gère les interruptions entre les périphériques, comme le système DMA qui permet de transférer des données entre disques durs/lecteur CD sans passer par le CPU). le Local APIC (LAPIC), lui gère les interruptions du CPU par rapport aux autres périphériques (le boulet sur MSN).

 

Comme vous pouvez l'imaginer, si la DSDT n'est pas correcte, celà compromet le bon fonctionnement de l'APIC les symptômes suivants peuvent apparaitres:

 
  • Reboot inexpliqués
  • Freezes aléatoires
  • Lecture des senseurs de températures impossibles ou valeurs fantaisistes
  • Contrôle des ventilateurs inexistant ou impossible
  • Gestion de la fréquence des processeurs inexistantes
  • Blocage d'un périphérique d'entrée (clavier, cartes réseaux)
  • ...


Personnellement, j'ai déjà rencontré sur 2 serveurs comportant des cartes mères Asus P5B-VM (avec BIOS à jour, Debian Etch, kernel 2.6.18) des freezes inexpliqués, une gestion de l'alimentation minimale (il gérait juste les événements tels que l'appui sur le bouton d'alimentation). J'ai essayé de désactiver la gestion de l'ACPI mais ce n'était pas suffisant. En jouant avec les paramètres du BIOS, la seule manière d'avoir un système stable était d'utiliser les paramètres "acpi=off nolapic" et en désactivant l'APIC dans le BIOS. Un seul changement de ces paramètres me donne des blocages au niveau des I/O ou alors des freeze aléatoires. Sur un ordinateur portable Packard Bell de 2007, gestion de l'énergie incomplète et problème lors de la sortie de la mise en veille.

 

Pourquoi ce comportement irrationnel ? Visiblement, le BIOS et ses composants (ACPI, APIC) étaient en cause. J'ai décompilé et recompilé la DSDT et j'ai eu les erreurs que vous pourrez trouver à la fin de ce post.

 

Pourquoi tant d'erreurs ? J'ai appris qu'il y avait, sur le "marché" du BIOS, 2 compilateurs permettant de compiler le code DSDT source en code assembleur ( http://www.acpi.info/ ), l'un provenant d'Intel, l'autre de Microsoft. Le compilateur d'Intel est réputé plus strict et respecte les spécifications de l'ACPI. De plus, le code source du kernel Linux utilise le code Intel afin de gérer la DSDT. Celui de Microsoft peut poser problème et générer des tables non conformes, d'où les erreurs et warnings en fin de post qui provoquent des instabilités systèmes sous Linux.

 

Autre chose: Une rapide lecture de la DSDT peut nous amener à ces lignes là:

Code :
  1. If (_OSI ("Windows 2001 SP3" ))
  2.                 {
  3.                     Store (0x12, OSTB)
  4.                     Store (0x12, TPOS)
  5.                 }
  6.                 If (_OSI ("Windows 2006" ))
  7.                 {
  8.                     Store (0x40, OSTB)
  9.                     Store (0x40, TPOS)
  10.                 }
  11.                 If (_OSI ("Windows 2006 SP1" ))
  12.                 {
  13.                     Store (0x41, OSTB)
  14.                     Store (0x40, TPOS)
  15.                 }
  16.                 If (_OSI ("Linux" ))
  17.                 {
  18.                     Store (One, LINX)
  19.                     Store (0x80, OSTB)
  20.                     Store (0x80, TPOS)
  21.                 }
 

Comme nous pouvons le constater, la DSDT fournie au système d'exploitation n'est pas la même suivant le système d'exploitation détecté. Pourquoi celà ? Mettons nous à la place d'un constructeur de carte-mère qui respecte l'ensemble des spécifications. Malheureusement, cette carte-mère fonctionne mal à cause de certains bugs présents dans Windows au niveau de la gestion de la DSDT. Il faut absolument corriger ce problème car Windows représente plus de 90% de la part de marché. Il nous reste comme seule levier d'action le BIOS, c'est ainsi que l'on demandera à nos développeurs d'inclure des DSDT différentes selon le système d'exploitation afin de corriger ces bugs pour que tout fonctionne bien sous Windows.

 

Malheureusement, ces corrections de bugs sont dangereuses car les systèmes Windows accepte les modifications de DSDT de toutes les versions de Windows (voir les boucles if précédentes) selon Windows Hardware Developer Central:http://www.microsoft.com/whdc/archive/_OSI-method.mspx. Linux, pour des questions de compatibilités, accepte également les modifications de DSDT de tous les Windows (et pas celle de Linux depuis la 2.6.23, paradoxalement (ftp://ftp.suse.com/pub/people/tre [...] endors.pdf), en effet ce serait bête qu'un périphérique ACPI comme un ventilateur soit détecté sous Windows et pas sous Linux). Ces "corrections de bugs" au niveau du BIOS au profit du système d'exploitation de Microsoft peuvent mener à des emplacements mémoires qui se superposent ou encore des aberrations au niveau des IRQ ("salade IRQ" ).

 

Détail de la compilation d'une table DSDT par le compilateur Intel compilé à l'aide de celui Microsoft:

Code :
  1. iasl -tc DSDT.dsl
  2. Intel ACPI Component Architecture
  3. ASL Optimizing Compiler version 20060912
  4. Copyright (C) 2000 - 2006 Intel Corporation
  5. Supports ACPI Specification Revision 3.0a
  6. DSDT.dsl 5491: Name (_T_0, Zero)
  7. Error 4081 - Use of reserved word ^ (_T_0)
  8. DSDT.dsl 5533: Name (_T_0, Zero)
  9. Error 4081 - Use of reserved word ^ (_T_0)
  10. DSDT.dsl 5862: Name (_T_0, Zero)
  11. Error 4081 - Use of reserved word ^ (_T_0)
  12. DSDT.dsl 5998: Name (_T_0, Zero)
  13. Error 4081 - Use of reserved word ^ (_T_0)
  14. DSDT.dsl 6939: Name (_T_0, Zero)
  15. Error 4081 - Use of reserved word ^ (_T_0)
  16. DSDT.dsl 8033: Method (_GTM, 0, NotSerialized)
  17. Warning 1086 - ^ Not all control paths return a value (_GTM)
  18. DSDT.dsl 8033: Method (_GTM, 0, NotSerialized)
  19. Warning 1079 - ^ Reserved method must return a value (_GTM)
  20. DSDT.dsl 8193: Method (_GTF, 0, NotSerialized)
  21. Warning 1086 - ^ Not all control paths return a value (_GTF)
  22. DSDT.dsl 8193: Method (_GTF, 0, NotSerialized)
  23. Warning 1079 - ^ Reserved method must return a value (_GTF)
  24. DSDT.dsl 8261: Method (_GTF, 0, NotSerialized)
  25. Warning 1086 - ^ Not all control paths return a value (_GTF)
  26. DSDT.dsl 8261: Method (_GTF, 0, NotSerialized)
  27. Warning 1079 - ^ Reserved method must return a value (_GTF)
  28. DSDT.dsl 8334: Method (_GTM, 0, NotSerialized)
  29. Warning 1086 - ^ Not all control paths return a value (_GTM)
  30. DSDT.dsl 8334: Method (_GTM, 0, NotSerialized)
  31. Warning 1079 - ^ Reserved method must return a value (_GTM)
  32. DSDT.dsl 8494: Method (_GTF, 0, NotSerialized)
  33. Warning 1086 - ^ Not all control paths return a value (_GTF)
  34. DSDT.dsl 8494: Method (_GTF, 0, NotSerialized)
  35. Warning 1079 - ^ Reserved method must return a value (_GTF)
  36. DSDT.dsl 8562: Method (_GTF, 0, NotSerialized)
  37. Warning 1086 - ^ Not all control paths return a value (_GTF)
  38. DSDT.dsl 8562: Method (_GTF, 0, NotSerialized)
  39. Warning 1079 - ^ Reserved method must return a value (_GTF)
  40. DSDT.dsl 8777: Method (_GTM, 0, NotSerialized)
  41. Warning 1086 - ^ Not all control paths return a value (_GTM)
  42. DSDT.dsl 8777: Method (_GTM, 0, NotSerialized)
  43. Warning 1079 - ^ Reserved method must return a value (_GTM)
  44. DSDT.dsl 8937: Method (_GTF, 0, NotSerialized)
  45. Warning 1086 - ^ Not all control paths return a value (_GTF)
  46. DSDT.dsl 8937: Method (_GTF, 0, NotSerialized)
  47. Warning 1079 - ^ Reserved method must return a value (_GTF)
  48. DSDT.dsl 9005: Method (_GTF, 0, NotSerialized)
  49. Warning 1086 - ^ Not all control paths return a value (_GTF)
  50. DSDT.dsl 9005: Method (_GTF, 0, NotSerialized)
  51. Warning 1079 - ^ Reserved method must return a value (_GTF)
  52. DSDT.dsl 9078: Method (_GTM, 0, NotSerialized)
  53. Warning 1086 - ^ Not all control paths return a value (_GTM)
  54. DSDT.dsl 9078: Method (_GTM, 0, NotSerialized)
  55. Warning 1079 - ^ Reserved method must return a value (_GTM)
  56. DSDT.dsl 9238: Method (_GTF, 0, NotSerialized)
  57. Warning 1086 - ^ Not all control paths return a value (_GTF)
  58. DSDT.dsl 9238: Method (_GTF, 0, NotSerialized)
  59. Warning 1079 - ^ Reserved method must return a value (_GTF)
  60. DSDT.dsl 9306: Method (_GTF, 0, NotSerialized)
  61. Warning 1086 - ^ Not all control paths return a value (_GTF)
  62. DSDT.dsl 9306: Method (_GTF, 0, NotSerialized)
  63. Warning 1079 - ^ Reserved method must return a value (_GTF)
  64. DSDT.dsl 10269: If (LEqual (Arg0, One))
  65. Warning 1098 - Statement is unreachable ^
  66. DSDT.dsl 10572: Method (_BCM, 1, NotSerialized)
  67. Warning 1086 - ^ Not all control paths return a value (_BCM)
  68. DSDT.dsl 10820: Name (_T_0, Zero)
  69. Error 4081 - Use of reserved word ^ (_T_0)
  70. DSDT.dsl 10896: Name (_T_1, Zero)
  71. Error 4081 - Use of reserved word ^ (_T_1)
  72. DSDT.dsl 11117: Name (_T_2, Zero)
  73. Error 4081 - Use of reserved word ^ (_T_2)
  74. DSDT.dsl 11290: Name (_T_3, Zero)
  75. Error 4081 - Use of reserved word ^ (_T_3)
  76. DSDT.dsl 11416: Name (_T_0, Zero)
  77. Error 4081 - Use of reserved word ^ (_T_0)
  78. DSDT.dsl 11451: Name (_T_0, Zero)
  79. Error 4081 - Use of reserved word ^ (_T_0)
  80. DSDT.dsl 11585: Name (_T_0, Zero)
  81. Error 4081 - Use of reserved word ^ (_T_0)
  82. DSDT.dsl 11635: Name (_T_0, Zero)
  83. Error 4081 - Use of reserved word ^ (_T_0)
  84. ASL Input: DSDT.dsl - 11773 lines, 430254 bytes, 5569 keywords
  85. Compilation complete. 13 Errors, 26 Warnings, 0 Remarks, 54 Optimizations
 

Afin d'avoir une vision plus globale du problème (et de mesurer l'étendue des dégâts), je vous propose la manipulation suivante afin de déterminer si votre table DSDT fournie par le constructeur de votre carte-mère est conforme et trouver l'origine de vos éventuels problèmes :

 
Code :
  1. # cp /proc/acpi/dsdt DSDT.dat
  2. $ sudo apt-get install iasl (ou équivalent selon votre distro)
  3. $ iasl -d DSDT.dat
  4. $ iasl -tc DSDT.dsl
 

iasl est l'Intel ACPI Source Language compiler/decompiler

 

Voilà, j'en ai fini. Si vous avez des erreurs, warnings lors de cette manip n'hésitez pas à indiquer le modèle/constructeur de votre carte-mère en cause. Eventuellement il est possible de débugger une DSDT en chargeant une version DSDT débuggée par vos soins dans l'initramfs, donc si vous en sentez le besoin postez l'output de iasl -tc DSDT.dsl


Message édité par redvivi le 22-04-2009 à 15:54:49
Reply

Marsh Posté le 20-04-2009 à 21:05:12   

Reply

Marsh Posté le 21-04-2009 à 07:52:03    

Reply

Marsh Posté le 21-04-2009 à 08:01:55    

Topic très intéressant  :jap:  
 
Acer Aspire One :
 

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20090320 [Apr  7 2009]
Copyright (C) 2000 - 2009 Intel Corporation
Supports ACPI Specification Revision 3.0a
 
ASL Input:  DSDT.dsl - 6372 lines, 228251 bytes, 2729 keywords
AML Output: /home/dek/DSDT.aml - 24032 bytes, 740 named objects, 1989 executable opcodes
 
Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 32 Optimizations



---------------
(old) Feed HA/V          
Reply

Marsh Posté le 21-04-2009 à 08:05:51    

Sur ma Gigabyte GA-EP35-DS3, ça a déjà l'air moins propre :
 

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20090320 [Apr  7 2009]
Copyright (C) 2000 - 2009 Intel Corporation
Supports ACPI Specification Revision 3.0a
 
DSDT.dsl   222:     Method (\_WAK, 1, NotSerialized)
Warning  1080 -                 ^ Reserved method must return a value (_WAK)
 
DSDT.dsl   285:             Store (Local0, Local0)
Error    4050 -                         ^ Method local variable is not initialized (Local0)
 
DSDT.dsl   290:             Store (Local0, Local0)
Error    4050 -                         ^ Method local variable is not initialized (Local0)
 
ASL Input:  DSDT.dsl - 5586 lines, 186956 bytes, 2335 keywords
Compilation complete. 2 Errors, 1 Warnings, 0 Remarks, 640 Optimizations


---------------
(old) Feed HA/V          
Reply

Marsh Posté le 21-04-2009 à 13:45:05    

 

Ce lien pourrait faire d'affaire, cependant ça fait un bout de temps qu'il n'est pas à jour  :sarcastic: ! Les personnes qui sont prêtes à débugger de l'assembleur sont plutôt rares...

 

Apparemment Acer n'a pas succombé au lobby du compilateur Microsoft  :D (d'ailleurs quelqu'un sait qui est le constructeur de leur carte-mère !?), Gigabyte ça a l'air moins pire, j'ai vraiment l'impression que je suis tombé sur le constructeur qu'il ne fallait pas pour mettre Linux dessus.

 

J'aimerais bien savoir où en sont les cartes mères Intel, ce serait un comble si ils utilisaient M$ pour leur BIOS  :p

Message cité 1 fois
Message édité par redvivi le 21-04-2009 à 14:32:52
Reply

Marsh Posté le 21-04-2009 à 14:24:07    

redvivi a écrit :


Apparemment Acer n'a pas succombé au lobby du compilateur Microsoft  :D (d'ailleurs quelqu'un si qui est le constructeur de leur carte-mère !?)


 
C'est du Quanta Computer.
Mais c'est pas super étonnant, vu que l'Aspire One a été livré avec une distro Linux, il valait mieux pour eux que l'ACPI soit un tantinet correct  :D  
 
Sinon, mon Dell Inspiron 6000 :
 

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20061109 [May 18 2007]
Copyright (C) 2000 - 2006 Intel Corporation
Supports ACPI Specification Revision 3.0a
 
DSDT.dsl   534:     Method (\_WAK, 1, NotSerialized)
Warning  1079 -                 ^ Reserved method must return a value (_WAK)
 
DSDT.dsl  1598:                 Method (_S0D, 0, NotSerialized)
Warning  1097 -      Unknown reserved name ^  (_S0D)
 
DSDT.dsl  1663:                 Method (_S0D, 0, NotSerialized)
Warning  1097 -      Unknown reserved name ^  (_S0D)
 
DSDT.dsl  1728:                 Method (_S0D, 0, NotSerialized)
Warning  1097 -      Unknown reserved name ^  (_S0D)
 
DSDT.dsl  1793:                 Method (_S0D, 0, NotSerialized)
Warning  1097 -      Unknown reserved name ^  (_S0D)
 
DSDT.dsl  1858:                 Method (_S0D, 0, NotSerialized)
Warning  1097 -      Unknown reserved name ^  (_S0D)
 
DSDT.dsl  2311:                         And (Local0, 0x0F)
Warning  1104 -                                   ^ Result is not used, operator has no effect
 
DSDT.dsl  2369:                         And (Local0, 0x0F)
Warning  1104 -                                   ^ Result is not used, operator has no effect
 
DSDT.dsl  2427:                         And (Local0, 0x0F)
Warning  1104 -                                   ^ Result is not used, operator has no effect
 
DSDT.dsl  2485:                         And (Local0, 0x0F)
Warning  1104 -                                   ^ Result is not used, operator has no effect
 
DSDT.dsl  2543:                         And (Local0, 0x0F)
Warning  1104 -                                   ^ Result is not used, operator has no effect
 
DSDT.dsl  2601:                         And (Local0, 0x0F)
Warning  1104 -                                   ^ Result is not used, operator has no effect
 
DSDT.dsl  2659:                         And (Local0, 0x0F)
Warning  1104 -                                   ^ Result is not used, operator has no effect
 
DSDT.dsl  3245:                     Return (Package (0x00) {})
Remark   5070 -    Effective AML package length is zero ^  
 
ASL Input:  DSDT.dsl - 4183 lines, 137256 bytes, 1234 keywords
AML Output: DSDT.aml - 11923 bytes 461 named objects 773 executable opcodes
 
Compilation complete. 0 Errors, 13 Warnings, 1 Remarks, 356 Optimizations



---------------
(old) Feed HA/V          
Reply

Marsh Posté le 21-04-2009 à 14:32:41    

je posterai pour mon HP nc6120, mais pareil y'a des erreurs ...

Reply

Marsh Posté le 21-04-2009 à 14:47:38    

HP DV4-1105ef :
 

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20061109 [May 16 2007]
Copyright (C) 2000 - 2006 Intel Corporation
Supports ACPI Specification Revision 3.0a
 
DSDT.dsl  1176:             Method (FRSP, 0, NotSerialized)
Warning  1086 -                        ^ Not all control paths return a value (FRSP)
 
DSDT.dsl  1212:             Method (_PSV, 0, Serialized)
Warning  1086 -                        ^ Not all control paths return a value (_PSV)
 
DSDT.dsl  1212:             Method (_PSV, 0, Serialized)
Warning  1079 -                        ^ Reserved method must return a value (_PSV)
 
DSDT.dsl  4214:                             Method (WMAB, 3, NotSerialized)
Warning  1086 -   Not all control paths return a value ^  (WMAB)
 
ASL Input:  DSDT.dsl - 9781 lines, 381784 bytes, 3660 keywords
AML Output: DSDT.aml - 42538 bytes 790 named objects 2870 executable opcodes
 
Compilation complete. 0 Errors, 4 Warnings, 0 Remarks, 37 Optimizations


---------------
(old) Feed HA/V          
Reply

Marsh Posté le 21-04-2009 à 17:22:56    

Je sens que ça va être funky sur mon asus à base de chipset nvidia [:blessure]

Reply

Marsh Posté le 21-04-2009 à 17:29:42    

Je sens le carnage arriver....

Reply

Marsh Posté le 21-04-2009 à 17:29:42   

Reply

Marsh Posté le 21-04-2009 à 17:29:50    

Sur mon dell XPS M1530:

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20081204 [Jan 10 2009]
Copyright (C) 2000 - 2008 Intel Corporation
Supports ACPI Specification Revision 3.0a
 
DSDT.dsl  4239:                             And (Local0, 0x0F)
Warning  1105 -                                       ^ Result is not used, operator has no effect
 
DSDT.dsl  4297:                             And (Local0, 0x0F)
Warning  1105 -                                       ^ Result is not used, operator has no effect
 
DSDT.dsl  4355:                             And (Local0, 0x0F)
Warning  1105 -                                       ^ Result is not used, operator has no effect
 
DSDT.dsl  4413:                             And (Local0, 0x0F)
Warning  1105 -                                       ^ Result is not used, operator has no effect
 
DSDT.dsl  4471:                             And (Local0, 0x0F)
Warning  1105 -                                       ^ Result is not used, operator has no effect
 
DSDT.dsl  4529:                             And (Local0, 0x0F)
Warning  1105 -                                       ^ Result is not used, operator has no effect
 
DSDT.dsl  4587:                             And (Local0, 0x0F)
Warning  1105 -                                       ^ Result is not used, operator has no effect
 
DSDT.dsl  4645:                             And (Local0, 0x0F)
Warning  1105 -                                       ^ Result is not used, operator has no effect
 
DSDT.dsl  4934:             Name (_HID, "*pnp0c14" )
Error    4001 -                                  ^ String must be entirely alphanumeric (*pnp0c14)
 
DSDT.dsl  5036:                 Or (WMI1, Arg0)
Warning  1105 -                        ^ Result is not used, operator has no effect
 
ASL Input:  DSDT.dsl - 5297 lines, 169580 bytes, 1706 keywords
Compilation complete. 1 Errors, 9 Warnings, 0 Remarks, 582 Optimizations


 
Hum on a connu mieux.... :pt1cable:

Reply

Marsh Posté le 21-04-2009 à 17:33:22    

Là par contre c'est plus grave: un string qui ne doit pas contenir de caractères spéciaux, et des tests qui ne fonctionnent pas ! Je tire mon chapeau à Dell !


Message édité par redvivi le 21-04-2009 à 17:34:49
Reply

Marsh Posté le 21-04-2009 à 18:08:58    

Contre toute attente c'est pas si affreux que ça :
 

Citation :

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20081204 [Jan 10 2009]
Copyright (C) 2000 - 2008 Intel Corporation
Supports ACPI Specification Revision 3.0a
 
DSDT.dsl   365:     Method (\_WAK, 1, NotSerialized)
Warning  1080 -                 ^ Reserved method must return a value (_WAK)
 
DSDT.dsl  2233:                     Method (GFSB, 0, NotSerialized)
Warning  1087 -                                ^ Not all control paths return a value (GFSB)
 
DSDT.dsl  4356:                 Method (RVLT, 1, NotSerialized)
Warning  1087 -                            ^ Not all control paths return a value (RVLT)
 
DSDT.dsl  4476:                 Method (RTMP, 1, NotSerialized)
Warning  1087 -                            ^ Not all control paths return a value (RTMP)
 
DSDT.dsl  4629:                     Store (GFSB (), Local0)
Warning  1092 -                               ^ Called method may not always return a value
 
DSDT.dsl  4655:                 Method (OCOP, 1, NotSerialized)
Warning  1087 -                            ^ Not all control paths return a value (OCOP)
 
DSDT.dsl  4671:                             Subtract (Local1, GFSB (), Local1)
Warning  1092 -                                            ^ Called method may not always return a value
 
DSDT.dsl  4947:                             Multiply (GFSB (), Local1, Local1)
Warning  1092 -                                          ^ Called method may not always return a value
 
DSDT.dsl  4954:                             Subtract (Local1, GFSB (), Local1)
Warning  1092 -                                            ^ Called method may not always return a value
 
ASL Input:  DSDT.dsl - 7556 lines, 235915 bytes, 3087 keywords
AML Output: DSDT.aml - 24295 bytes, 1022 named objects, 2065 executable opcodes
 
Compilation complete. 0 Errors, 9 Warnings, 0 Remarks, 834 Optimizations


 
A part que je détiens le record de la non-optimisation avec une bonne longueure d'avance, j'ai aucune erreur. Pourtant j'ai effectivement plusieurs warnings/erreurs dans le log kernel qui me font dire que mon bios est certainement assez pourri.

Reply

Marsh Posté le 21-04-2009 à 18:12:46    

BloodyCarnage a écrit :

A part que je détiens le record de la non-optimisation avec une bonne longueure d'avance, j'ai aucune erreur. Pourtant j'ai effectivement plusieurs warnings/erreurs dans le log kernel qui me font dire que mon bios est certainement assez pourri.

 

Non ne t'inquiète pas  :) ce sont les optimisations faites par le compilateur d'Intel lors de la tentative de compilation, pas les compilations effectives de ton ACPI  :D. Cependant celà veut dire que le code peut-être optimisé, en recompilant ta DSDT et en la mettant dans ton initramfs, tu aura ainsi un BIOS et une gestion des IRQ optimisés.

 

Même si il n'y a pas d'erreur, les warnings peuvent très bien être des fonctions/tests qui ne fonctionnent pas, d'où peut-être tes erreurs de ton log (cf post de raphoun).

 

Quelle est la marque/modèle de ta carte-mère ?


Message édité par redvivi le 22-04-2009 à 15:38:40
Reply

Marsh Posté le 21-04-2009 à 18:26:59    

Asus P5N-E SLi (nforce 650 SLi).
Et les erreurs sont du genre :
 

Citation :

[    0.000000] ACPI: RSDP 000F7910, 0024 (r2 Nvidia)                                                                                                        
[    0.000000] ACPI: XSDT DFEF30C0, 004C (r1 Nvidia ASUSACPI 42302E31 AWRD        0)                                                                        
[    0.000000] ACPI: FACP DFEF9880, 00F4 (r3 Nvidia ASUSACPI 42302E31 AWRD        0)                                                                        
[    0.000000] ACPI Warning (tbfadt-0568): 32/64X length mismatch in Pm1aEventBlock: 32/8 [20081204]                                                        
[    0.000000] ACPI Warning (tbfadt-0568): 32/64X length mismatch in Pm1aControlBlock: 16/8 [20081204]                                                      
[    0.000000] ACPI Warning (tbfadt-0568): 32/64X length mismatch in PmTimerBlock: 32/8 [20081204]                                                          
[    0.000000] ACPI Warning (tbfadt-0568): 32/64X length mismatch in Gpe0Block: 64/8 [20081204]                                                              
[    0.000000] ACPI Warning (tbfadt-0568): 32/64X length mismatch in Gpe1Block: 128/8 [20081204]                                                            
[    0.000000] ACPI Warning (tbfadt-0412): Invalid length for Pm1aEventBlock: 8, using default 32 [20081204]                                                
[    0.000000] ACPI Warning (tbfadt-0412): Invalid length for Pm1aControlBlock: 8, using default 16 [20081204]                                              
[    0.000000] ACPI Warning (tbfadt-0412): Invalid length for PmTimerBlock: 8, using default 32 [20081204]                                                  
[    0.000000] FADT: X_PM1a_EVT_BLK.bit_width (16) does not match PM1_EVT_LEN (4)  
                                                                         
[    0.000000] ACPI: DSDT DFEF3240, 65DB (r1 NVIDIA ASUSACPI     1000 MSFT  3000000)                                                                        
[    0.000000] ACPI: FACS DFEF0000, 0040                                                                                                                    
[    0.000000] ACPI: HPET DFEF9AC0, 0038 (r1 Nvidia ASUSACPI 42302E31 AWRD       98)                                                                        
[    0.000000] ACPI: MCFG DFEF9B40, 003C (r1 Nvidia ASUSACPI 42302E31 AWRD        0)                                                                        
[    0.000000] ACPI: APIC DFEF99C0, 0098 (r1 Nvidia ASUSACPI 42302E31 AWRD        0)                                                                        
[    0.000000] ACPI: SSDT DFEFA160, 087B (r1 Nvidia ASUSACPI 42302E31 AWRD        0)                                                                        
[    0.000000] ACPI: Local APIC address 0xfee00000                                                      


 

Citation :

[   15.764790] it87: Found IT8718F chip at 0x290, revision 2                                                                                                
[   15.764798] it87: in3 is VCC (+5V)                                                                                                                        
[   15.764798] it87: in7 is VCCH (+5V Stand-By)                                                                                                              
[   15.764815] ACPI: I/O resource it87 [0x295-0x296] conflicts with ACPI region IP__ [0x295-0x296]                                                          
[   15.764816] ACPI: Device needs an ACPI driver                                                  


 

Citation :

[   27.246491] nvidia 0000:01:00.0: irq 26 for MSI/MSI-X
[   27.246499] IRQ 26/nvidia: IRQF_DISABLED is not guaranteed on shared IRQs


 
ou encore le fait que les modes S1 et S3 (suspend to ram/disk) plantent systématiquement la machine.

Reply

Marsh Posté le 21-04-2009 à 18:28:54    

je crois que je définitivement laisser tomber Asus, c'est quand même important ce genre d'erreur qui mettent en cause la stabilité de la machine.


Message édité par redvivi le 21-04-2009 à 18:29:23
Reply

Marsh Posté le 21-04-2009 à 23:39:15    

Asus EEEPC 901 (netbook)
 


Intel ACPI Component Architecture
ASL Optimizing Compiler version 20061109 [May 18 2007]
Copyright (C) 2000 - 2006 Intel Corporation
Supports ACPI Specification Revision 3.0a
 
DSDT.dsl  2544:                             Name (_T_0, Zero)
Error    4081 -                 Use of reserved word ^  (_T_0)
 
DSDT.dsl  2896:                             Name (_T_0, Zero)
Error    4081 -                 Use of reserved word ^  (_T_0)
 
DSDT.dsl  6953:             Acquire (MUTE, 0x03E8)
Warning  1103 -                                 ^ Possible operator timeout is ignored
 
DSDT.dsl  6967:             Acquire (MUTE, 0x03E8)
Warning  1103 -                                 ^ Possible operator timeout is ignored
 
DSDT.dsl  6982:             Acquire (MUTE, 0x03E8)
Warning  1103 -                                 ^ Possible operator timeout is ignored
 
DSDT.dsl  6997:             Acquire (MUTE, 0x0FFF)
Warning  1103 -                                 ^ Possible operator timeout is ignored
 
DSDT.dsl  7011:             Acquire (MUTE, 0x03E8)
Warning  1103 -                                 ^ Possible operator timeout is ignored
 
DSDT.dsl  7026:             Acquire (MUTE, 0x03E8)
Warning  1103 -                                 ^ Possible operator timeout is ignored
 
DSDT.dsl  7041:             Acquire (MUTE, 0x03E8)
Warning  1103 -                                 ^ Possible operator timeout is ignored
 
ASL Input:  DSDT.dsl - 7277 lines, 241795 bytes, 3283 keywords
Compilation complete. 2 Errors, 7 Warnings, 0 Remarks, 32 Optimizations


Message édité par M300A le 21-04-2009 à 23:44:28
Reply

Marsh Posté le 21-04-2009 à 23:44:14    

Asus P5Q-E
 


Intel ACPI Component Architecture
ASL Optimizing Compiler version 20061109 [May 15 2007]
Copyright (C) 2000 - 2006 Intel Corporation            
Supports ACPI Specification Revision 3.0a              
 
DSDT.dsl  2728:                             Name (_T_0, Zero)
Error    4081 -                 Use of reserved word ^  (_T_0)
                                                                                                                                                                                                                                                                               
DSDT.dsl  2810:                             Name (_T_0, Zero)                                                                                                                                                                                                                  
Error    4081 -                 Use of reserved word ^  (_T_0)                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                               
DSDT.dsl  2858:                             Name (_T_0, Zero)                                                                                                                                                                                                                  
Error    4081 -                 Use of reserved word ^  (_T_0)                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                               
DSDT.dsl  2924:                             Name (_T_0, Zero)                                                                                                                                                                                                                  
Error    4081 -                 Use of reserved word ^  (_T_0)                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                               
DSDT.dsl  2994:                             Name (_T_0, Zero)                                                                                                                                                                                                                  
Error    4081 -                 Use of reserved word ^  (_T_0)                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                               
DSDT.dsl  5739:             Name (_T_0, Zero)                                                                                                                                                                                                                                  
Error    4081 - Use of reserved word ^  (_T_0)                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                               
DSDT.dsl  5755:                 Name (_T_0, Zero)                                                                                                                                                                                                                              
Error    4081 -     Use of reserved word ^  (_T_0)                                                                                                                                                                                                                              
                                                                                                                                                                                                                                                                               
DSDT.dsl  5847:             Name (_T_0, Zero)                                                                                                                                                                                                                                  
Error    4081 - Use of reserved word ^  (_T_0)                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                               
DSDT.dsl  5946:             Name (_T_0, Zero)                                                                                                                                                                                                                                  
Error    4081 - Use of reserved word ^  (_T_0)                                                                                                                                                                                                                                  
                                                                                                                                                                                                                                                                               
DSDT.dsl  6441:             Name (_T_0, Zero)                                                                                                                                                                                                                                  
Error    4081 - Use of reserved word ^  (_T_0)                                                                                                                                                                                                                                  
 
DSDT.dsl  6484:             Name (_T_0, Zero)
Error    4081 - Use of reserved word ^  (_T_0)
 
DSDT.dsl  6568:             Name (_T_0, Zero)
Error    4081 - Use of reserved word ^  (_T_0)
 
DSDT.dsl  6582:             Name (_T_0, Zero)
Error    4081 - Use of reserved word ^  (_T_0)
 
DSDT.dsl  6701:             Name (_T_0, Zero)
Error    4081 - Use of reserved word ^  (_T_0)
 
DSDT.dsl  6771:             Name (_T_0, Zero)
Error    4081 - Use of reserved word ^  (_T_0)
 
DSDT.dsl  6862:             Name (_T_0, Zero)
Error    4081 - Use of reserved word ^  (_T_0)
 
DSDT.dsl  6876:             Name (_T_0, Zero)
Error    4081 - Use of reserved word ^  (_T_0)
 
DSDT.dsl  7003:             Name (_T_0, Zero)
Error    4081 - Use of reserved word ^  (_T_0)
 
DSDT.dsl  7073:             Name (_T_0, Zero)
Error    4081 - Use of reserved word ^  (_T_0)
 
DSDT.dsl  7077:                 Name (_T_1, Zero)
Error    4081 -     Use of reserved word ^  (_T_1)
 
DSDT.dsl  7315:             Name (_T_0, Zero)
Error    4081 - Use of reserved word ^  (_T_0)
 
DSDT.dsl  7378:             Name (_T_0, Zero)
Error    4081 - Use of reserved word ^  (_T_0)
 
DSDT.dsl  7546:             Name (_T_0, Zero)
Error    4081 - Use of reserved word ^  (_T_0)
 
DSDT.dsl  7579:                     Name (_T_1, Zero)
Error    4081 -         Use of reserved word ^  (_T_1)
 
DSDT.dsl  7620:             Name (_T_0, Zero)
Error    4081 - Use of reserved word ^  (_T_0)
 
DSDT.dsl  7676:             Name (_T_0, Zero)
Error    4081 - Use of reserved word ^  (_T_0)
 
DSDT.dsl  7846:             Name (_T_0, Zero)
Error    4081 - Use of reserved word ^  (_T_0)
 
DSDT.dsl  7874:                 Name (_T_0, Zero)
Error    4081 -     Use of reserved word ^  (_T_0)
 
DSDT.dsl  7927:                     Name (_T_1, Zero)
Error    4081 -         Use of reserved word ^  (_T_1)
 
DSDT.dsl  8553:             Acquire (MUTE, 0x03E8)
Warning  1103 -                                 ^ Possible operator timeout is ignored
 
DSDT.dsl  8567:             Acquire (MUTE, 0x03E8)
Warning  1103 -                                 ^ Possible operator timeout is ignored
 
DSDT.dsl  8582:             Acquire (MUTE, 0x03E8)
Warning  1103 -                                 ^ Possible operator timeout is ignored
 
DSDT.dsl  8597:             Acquire (MUTE, 0x0FFF)
Warning  1103 -                                 ^ Possible operator timeout is ignored
 
DSDT.dsl  8611:             Acquire (MUTE, 0x03E8)
Warning  1103 -                                 ^ Possible operator timeout is ignored
 
DSDT.dsl  8626:             Acquire (MUTE, 0x03E8)
Warning  1103 -                                 ^ Possible operator timeout is ignored
 
DSDT.dsl  8641:             Acquire (MUTE, 0x03E8)
Warning  1103 -                                 ^ Possible operator timeout is ignored
 
DSDT.dsl  9599:         Method (VGET, 1, NotSerialized)
Warning  1086 -                    ^ Not all control paths return a value (VGET)
 
DSDT.dsl  9644:         Method (TGET, 1, NotSerialized)
Warning  1086 -                    ^ Not all control paths return a value (TGET)
 
DSDT.dsl  9706:         Method (FGET, 1, NotSerialized)
Warning  1086 -                    ^ Not all control paths return a value (FGET)
 
DSDT.dsl  9742:             Store (VGET (Local0), Local1)
Warning  1091 -                       ^ Called method may not always return a value
 
DSDT.dsl  9784:             Store (TGET (Local0), Local1)
Warning  1091 -                       ^ Called method may not always return a value
 
DSDT.dsl  9817:             Store (FGET (Local0), Local1)
Warning  1091 -                       ^ Called method may not always return a value
 
DSDT.dsl 10066:                 Name (_T_0, Zero)
Error    4081 -     Use of reserved word ^  (_T_0)
 
DSDT.dsl 10134:                                         ShiftRight (BUF2, 0x04)
Warning  1104 -             Result is not used, operator has no effect ^
 
DSDT.dsl 10202:                     Name (_T_1, Zero)
Error    4081 -         Use of reserved word ^  (_T_1)
 
ASL Input:  DSDT.dsl - 10306 lines, 333581 bytes, 4856 keywords
Compilation complete. 31 Errors, 14 Warnings, 0 Remarks, 70 Optimizations


 
 
Intel D101GGC
 


Intel ACPI Component Architecture
ASL Optimizing Compiler version 20061109 [May 15 2007]
Copyright (C) 2000 - 2006 Intel Corporation
Supports ACPI Specification Revision 3.0a
 
DSDT.dsl   231:     Method (\_WAK, 1, NotSerialized)
Warning  1079 -                 ^ Reserved method must return a value (_WAK)
 
DSDT.dsl   327:         WBYT (TSAD, 0x4F, Local0)
Error    4049 -                                ^ Method local variable is not initialized (Local0)
 
DSDT.dsl   502:         CSMS ()
Warning  1098 -            ^ Statement is unreachable
 
DSDT.dsl   516:         CSMS ()
Warning  1098 -            ^ Statement is unreachable
 
DSDT.dsl  1459:                 Name (_PSW, 0x01)
Error    4077 -                          ^ Reserved name must be a control method (with arguments)
 
DSDT.dsl  1481:                 Name (_PSW, 0x01)
Error    4077 -                          ^ Reserved name must be a control method (with arguments)
 
DSDT.dsl  1503:                 Name (_PSW, 0x01)
Error    4077 -                          ^ Reserved name must be a control method (with arguments)
 
ASL Input:  DSDT.dsl - 5007 lines, 155038 bytes, 1452 keywords
Compilation complete. 4 Errors, 3 Warnings, 0 Remarks, 660 Optimizations


 
 
HP/Compaq 8510p (notebook)
 


Intel ACPI Component Architecture
ASL Optimizing Compiler version 20061109 [May 18 2007]
Copyright (C) 2000 - 2006 Intel Corporation
Supports ACPI Specification Revision 3.0a
 
DSDT.dsl     1: ACPI          Increment (Local2)
Error    4094 -    ^ syntax error, unexpected PARSEOP_NAMESEG, expecting PARSEOP_DEFINITIONBLOCK
 
ASL Input:  DSDT.dsl - 16304 lines, 584075 bytes, 0 keywords
Compilation complete. 1 Errors, 0 Warnings, 0 Remarks, 0 Optimizations

Reply

Marsh Posté le 21-04-2009 à 23:52:17    

C'est une blague ? Intel aussi s'y met ? Quel age a cette carte-mère ?


Message édité par redvivi le 22-04-2009 à 13:46:08
Reply

Marsh Posté le 22-04-2009 à 04:02:16    

Ca a l'air plutot recent (LGA775) : http://pentium.com/products/mother [...] /index.htm


---------------
Un blog qu'il est bien
Reply

Marsh Posté le 22-04-2009 à 08:25:49    

C'est une petite carte MicroATX avec un Pentium4 Bi-core 2.8Ghz.

Reply

Marsh Posté le 22-04-2009 à 08:26:25    

Ah oui, les BIOS sont à jours sur toutes ces bécannes !

Reply

Marsh Posté le 22-04-2009 à 08:28:10    

intéressant ce post :jap:

Reply

Marsh Posté le 22-04-2009 à 13:45:27    

M300A a écrit :


Intel D101GGC

 


Intel ACPI Component Architecture
ASL Optimizing Compiler version 20061109 [May 15 2007]
Copyright (C) 2000 - 2006 Intel Corporation
Supports ACPI Specification Revision 3.0a

 

DSDT.dsl   231:     Method (\_WAK, 1, NotSerialized)
Warning  1079 -                 ^ Reserved method must return a value (_WAK)

 

DSDT.dsl   327:         WBYT (TSAD, 0x4F, Local0)
Error    4049 -                                ^ Method local variable is not initialized (Local0)

 

DSDT.dsl   502:         CSMS ()
Warning  1098 -            ^ Statement is unreachable

 

DSDT.dsl   516:         CSMS ()
Warning  1098 -            ^ Statement is unreachable

 

DSDT.dsl  1459:                 Name (_PSW, 0x01)
Error    4077 -                          ^ Reserved name must be a control method (with arguments)

 

DSDT.dsl  1481:                 Name (_PSW, 0x01)
Error    4077 -                          ^ Reserved name must be a control method (with arguments)

 

DSDT.dsl  1503:                 Name (_PSW, 0x01)
Error    4077 -                          ^ Reserved name must be a control method (with arguments)

 

ASL Input:  DSDT.dsl - 5007 lines, 155038 bytes, 1452 keywords
Compilation complete. 4 Errors, 3 Warnings, 0 Remarks, 660 Optimizations



 

Je ne suis pas expert mais il y a vraiment quelquechose qui ne tourne pas rond. Quand je regarde sur le site d'Intel ( http://pentium.com/design/motherbd [...] yspecs.htm ) les spécifications ACPI de la carte sont:

Citation :

Version 2.0a, March 31, 2002, Compaq Computer Corporation, Intel Corporation, Microsoft Corporation, Phoenix Technologies Limited, and Toshiba Corporation

 

Rapide lecture de la spécification ( http://www.acpi.info/DOWNLOADS/ACPIspec-2-0a.pdf ):

Citation :

7.3.5   \_WAK (System Wake)
After the system wakes from a sleeping state, it will invoke the \_WAK method and pass the sleeping state
value that has ended. This operation occurs asynchronously with other driver notifications in the system
and is not the first action to be taken when the system wakes. The AML code for this control method issues
device, thermal, and other notifications to ensure that OSPM checks the state of devices, thermal zones, and
so on, that could not be maintained during the system sleeping state. For example, if the system cannot
determine whether a device was inserted or removed from a bus while in the S2 state, the _WAK method
would issue a devicecheck type of notification for that bus when issued with the sleeping state value of 2
(for more information about types of notifications, see section 5.6.3, “Device Object Notifications”). Notice
that a device check notification from the \_SB node will cause OSPM to re-enumerate the entire tree11.
Hardware is not obligated to track the state needed to supply the resulting status; however, this method can
return status concerning the last sleep operation initiated by OSPM. The result codes can be used to provide
additional information to OSPM or user.  
Arguments:
0 The value of the sleeping state (1 for S1, 2 for S2, and so on).

Result Code (2 DWORD package):
Status Bit field of defined conditions that occurred during sleep.
 0x00000001 Wake was signaled but failed due to lack of power.
 0x00000002 Wake was signaled but failed due to thermal condition.
 Other Reserved
PSS If non-zero, the effective S-state the power supply really entered.  


 
La méthode WAK ne prend qu'un seul argument, cependant cette ligne me choque: Method (\_WAK, 1, NotSerialized) (ligne 231) car il y a 2 arguments, cependant je ne suis pas assez qualifié pour déterminer si c'est correct ou non. L'erreur principale vient du fait qu'il n'y a pas de "Return (Value)" Value étant un package de 2 DWORD à la fin de la méthode _WAK ( http://www.gentoo-wiki.info/ACPI/Fix_common_problems )

 

Autre chose:

Citation :

7.2.10   _PSW (Power State Wake)
In addition to _PSR, this control method can be used to enable or disable the device’s ability to wake a
sleeping system. This control method can only access Operation Regions that are either always available
while in a system working state or that are available when the Power Resources references by the _PRW
object are all ON. For example, do not put a power plane control for a bus controller within configuration
space located behind the bus.
Arguments:
0– Enable / Disable: 0 to disable the device’s wake capabilities.
  1 to enable the device’s wake capabilities.
Result Code:
None

 

Est-ce que vous lisez comme moi: ils ont (déclaré une variable/méthode ?) alors que c'est un nom réservée ? (DSDT.dsl  1459:        Name (_PSW, 0x01)) ?


Message édité par redvivi le 22-04-2009 à 15:40:31
Reply

Marsh Posté le 22-04-2009 à 15:01:05    

EDIT: J'ai un peu remanié mon premier post en ajoutant des informations sur les IRQ et le pourquoi du comment de l'APIC.


Message édité par redvivi le 22-04-2009 à 15:45:54
Reply

Marsh Posté le 22-04-2009 à 18:03:51    

Ce qui est dommage, c'est que ce post risque de ne faire que soulever la question sans pouvoir y apporter de solution envisageable.
Histoire de faire un peu avancer le shmilblik, voilà 2 liens qui apportent quelques lumières :  
 
http://web.archive.org/web/2007101 [...] roken_dsdt
 
http://forums.gentoo.org/viewtopic.php?t=122145

Reply

Marsh Posté le 22-04-2009 à 18:07:13    

On peut toujours remplacer le DSDT par une DSDT débuggée, mais ça reste du debugging et spécifique à chaque carte-mère. Cependant il est important, je pense, de prendre conscience du problème et de son ampleur.


Message édité par redvivi le 22-04-2009 à 18:13:25
Reply

Marsh Posté le 22-04-2009 à 18:29:10    

D'un autre côté, ce que veulent les constructeurs, c'est vendre. De deux choses l'une, soit :
 
- Linux fait vendre (significativement) -> les constructeurs s'adaptent automatiquement en écrivant les 2 implémentations.
- Linux ne fait pas vendre -> les constructeurs continueront à l'ignorer.
 
C'est pas la peine d'espérer l'alternative "MS arrête de vendre son compilateur et change son implémentation présente sur 85% des PC du monde pour un standard dont le non-respect n'emmerde que ses concurrents et non-clients".

Reply

Marsh Posté le 22-04-2009 à 18:35:15    

Ben le pire c'est que leur compilateur est en libre accès. Disons que si c'était une histoire de compilateur, le code serait à peu près correct. Mais là c'est plus grave: les développeurs se permettent de coder d'une manière peu réglementaire et non stricte car ils savent que le compilateur Microsoft derrière acceptera un code mal foutu (premier aspect qui est pas compliqué à résoudre quand meme, c'est la moindre des choses de ne pas superposer des plages mémoires !). Le deuxième aspect est que les constructeurs demandent aux dev de construire des fonctions pour palier aux bugs de Windows, là on ne peut pas faire grand chose mais ça n'empêche pas de créer un BIOS correct qui est la base du PC.


Message édité par redvivi le 22-04-2009 à 19:15:39
Reply

Marsh Posté le 22-04-2009 à 19:01:46    

j'y comprend rien du tout, mais c'est un toshiba satellite U200
on dirait qu'il n'y a pas d'erreur ...
 

Code :
  1. iasl -tc DSDT.dsl
  2. Intel ACPI Component Architecture
  3. ASL Optimizing Compiler version 20080213 [Jun 17 2008]
  4. Copyright (C) 2000 - 2008 Intel Corporation
  5. Supports ACPI Specification Revision 3.0a
  6. ASL Input:  DSDT.dsl - 4096 lines, 134849 bytes, 1768 keywords
  7. AML Output: DSDT.aml - 18900 bytes 447 named objects 1321 executable opcodes
  8. Compilation complete. 0 Errors, 0 Warnings, 0 Remarks, 879 Optimizations


 
voilà.

Reply

Marsh Posté le 22-04-2009 à 19:20:23    

Jusqu'ici Acer et Toshiba sont réglos, dommage qu'ils ne fassent pas de carte-mère  :na: . Il peut etre en version Linux ton Toshiba ?

Message cité 1 fois
Message édité par redvivi le 22-04-2009 à 19:22:24
Reply

Marsh Posté le 22-04-2009 à 19:48:14    

BloodyCarnage a écrit :

D'un autre côté, ce que veulent les constructeurs, c'est vendre. De deux choses l'une, soit :
 
- Linux fait vendre (significativement) -> les constructeurs s'adaptent automatiquement en écrivant les 2 implémentations.
- Linux ne fait pas vendre -> les constructeurs continueront à l'ignorer.
 
C'est pas la peine d'espérer l'alternative "MS arrête de vendre son compilateur et change son implémentation présente sur 85% des PC du monde pour un standard dont le non-respect n'emmerde que ses concurrents et non-clients".


 
L'exemple de l'Aspire One (conçu pour être vendu en partie sous Linux) et de son bios OK est assez révélateur de cet état de fait  :jap:  
 
Ça serait intéressant de voir ce que ça donne pour un eeePC, Asus faisant apparemment des choses un peu crades sur le reste de ses gammes.


---------------
(old) Feed HA/V          
Reply

Marsh Posté le 22-04-2009 à 20:23:58    

Un lien extremement interressant je trouve:
 
http://mjg59.livejournal.com/2008/07/27/
 
Vous m'avez collé le VIRUS, maintenant j'ai envie de voir un truc:
Sur ma P5Q-E, j'ai bien le speedstep sur le CPU. Cependant, dès que je l'overclock, le speedstep ne marche plus et je me demande si ça serait pas l'ACPI qui fait ça....
 
Des pistes ? :D

Reply

Marsh Posté le 22-04-2009 à 20:24:26    

deK a écrit :


 
L'exemple de l'Aspire One (conçu pour être vendu en partie sous Linux) et de son bios OK est assez révélateur de cet état de fait  :jap:  
 
Ça serait intéressant de voir ce que ça donne pour un eeePC, Asus faisant apparemment des choses un peu crades sur le reste de ses gammes.


 
Tu en a un juste au dessus!

Reply

Marsh Posté le 22-04-2009 à 22:23:15    

C'est quand même malheureux que l'on soit obligé de faire du reverse engineering pour faire fonctionner linux....

 

Que veux tu dire que ça ne marche plus, tu l'overclock un peu et tu ne peux plus changer la valeur ?


Message édité par redvivi le 22-04-2009 à 22:33:11
Reply

Marsh Posté le 22-04-2009 à 23:19:46    

M300A a écrit :


 
Tu en a un juste au dessus!


 
 
 :jap:  
 
Pas très propre, donc :/


---------------
(old) Feed HA/V          
Reply

Marsh Posté le 22-04-2009 à 23:53:11    

redvivi a écrit :

Jusqu'ici Acer et Toshiba sont réglos, dommage qu'ils ne fassent pas de carte-mère  :na: . Il peut etre en version Linux ton Toshiba ?


 
il y a windowsXP dessus d'origine, et j'ai installé un dualboot linux. Il fonctionne pas trop mal, excepté une prise micro que je n'arrive plus à avoir. Une régression dans le pilote alsa je suppose.

Reply

Marsh Posté le 23-04-2009 à 00:44:51    

M300A a écrit :

Un lien extremement interressant je trouve:
 
http://mjg59.livejournal.com/2008/07/27/
 
Vous m'avez collé le VIRUS, maintenant j'ai envie de voir un truc:
Sur ma P5Q-E, j'ai bien le speedstep sur le CPU. Cependant, dès que je l'overclock, le speedstep ne marche plus et je me demande si ça serait pas l'ACPI qui fait ça....
 
Des pistes ? :D


 
 
Si je devais parier, je miserais sur une implémentation bâclée et liée du speedstep et du C1E. Speedstep joue sur la fréquence, C1E régule le vcore en fonction de la fréquence.
Quand tu o/c, jouer avec le vcore devient plus complexe et plutôt que de gérer ça ou de désactiver juste la partie C1E, Asus a préféré désactiver tout le bloc speedstep.
En clair, c'est un bricolage quick and dirty pour palier à une mauvaise implémentation mais c'est pas lié à l'OS. Je ne serai pas étonné qu'une version plus ancienne du bios n'ait pas ce "correctif".

Reply

Marsh Posté le 23-04-2009 à 08:30:34    

deK a écrit :


 
 
 :jap:  
 
Pas très propre, donc :/


 
En fait ça, y'a deux variables réservées utilisée, ça peut se fixer en deux secondes. Quant aux warnings sur le mute, j'ai lu de la doc la dessus et c'est pas vraiment corrigeable. Si c'est bien compris la valeur hexa c'est le temps du timeout et le problème c'est que quoi qu'il arrive à la fin de ce timeout on fait toujours la même chose. C'est pas choquant en fait.

Reply

Marsh Posté le 23-04-2009 à 16:10:50    

Je viens de tester avec mon dell dimension 9200 (desktop avec 4Gio de Ram fournie avec Vista 32 normalement  :D )
 

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20081204 [Jan 10 2009]
Copyright (C) 2000 - 2008 Intel Corporation
Supports ACPI Specification Revision 3.0a
 
DSDT.dsl   538:                 Method (_S5D, 0, NotSerialized)
Warning  1098 -      Unknown reserved name ^  (_S5D)
 
DSDT.dsl   605:                 Method (_S5D, 0, NotSerialized)
Warning  1098 -      Unknown reserved name ^  (_S5D)
 
DSDT.dsl   681:                 Method (_S5D, 0, NotSerialized)
Warning  1098 -      Unknown reserved name ^  (_S5D)
 
DSDT.dsl   757:                 Method (_S5D, 0, NotSerialized)
Warning  1098 -      Unknown reserved name ^  (_S5D)
 
DSDT.dsl   833:                 Method (_S5D, 0, NotSerialized)
Warning  1098 -      Unknown reserved name ^  (_S5D)
 
DSDT.dsl   909:                 Method (_S5D, 0, NotSerialized)
Warning  1098 -      Unknown reserved name ^  (_S5D)
 
DSDT.dsl  1446:         Name (PIC3, Package (0x00) {})
Remark   5071 -                                 ^ Effective AML package length is zero
 
DSDT.dsl  1447:         Name (API3, Package (0x00) {})
Remark   5071 -                                 ^ Effective AML package length is zero
 
DSDT.dsl  1724:         Name (PIC6, Package (0x00) {})
Remark   5071 -                                 ^ Effective AML package length is zero
 
DSDT.dsl  1725:         Name (API6, Package (0x00) {})
Remark   5071 -                                 ^ Effective AML package length is zero
 
ASL Input:  DSDT.dsl - 4701 lines, 143423 bytes, 1350 keywords
AML Output: DSDT.aml - 13118 bytes, 530 named objects, 820 executable opcodes
 
Compilation complete. 0 Errors, 6 Warnings, 4 Remarks, 40 Optimizations


 
Cela ne m'a pas l'air horrible. Le seul truc que je regrette sur ce BIOS c'est qu'il se reserve certaines plages memoires entre 3.7 et 4Gio, je n'ai acces qu'a 3.75Gio :-( Et pas de nouvelle maj du bios.
Le speedstep marche bien chez moi.


---------------
Un blog qu'il est bien
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed