View previous topic :: View next topic |
Author |
Message |
__Ankh__ n00b
Joined: 16 Feb 2011 Posts: 6
|
Posted: Wed Feb 16, 2011 3:59 pm Post subject: ACPI: Battery Slot [BAT1] (battery absent) |
|
|
Buenas. No soy nuevo, ocurre que perdí el correo asociado a mi antiguo y deshabilitado usuario: chonzow.
Como sea, les cuento por qué vine. Hace ya un tiempo me desquicia no entender porqué Linux no detecta mi batería. Fucking linux, i love it.
Uno del os problemas es que no conozco el modelo exacto de la batería como para deducir cual de todos los drivers del src de kernel tengo que compilar. Esto al margen que mas abajo lshw tira uno datos sobre este punto. El segundo inconveniente es que es posible que no sea un problema de drivers sino de ACPI.
He pensando en cambiar la batería, actualizar la bios, sustituirla, de ser posible, por un coreboot. Pero lo cierto es que no hice nada de eso porque me gustaría estar mas seguro. Lo único que intenté fue compilar y recompilar el kernel sin ningún criterio mas que tocar cosas de ACPI y drivers de batería.
Considero que estos datos deberían aportar algo:
Maquina: Toshiba S645-4007
Code: | # uname -a
Linux MyBox 2.6.36-zen1 #12 ZEN SMP PREEMPT Sat Feb 5 05:12:47 UYST 2011 x86_64 Intel(R) Core(TM) i3 CPU M 350 @ 2.27GHz GenuineIntel GNU/Linux |
Zen1 es por Zen Kernel. El problema es el mismo para las gentoo-sources, y tambièn para el kernel de fedora, slackware y openbsd.
Code: | # dmesg | grep -i acpi
....
ACPI: ACPI bus type pnp unregistered
ACPI: AC Adapter [ACAD] (on-line)
ACPI: Power Button [PWRB]
ACPI: Lid Switch [LID]
ACPI: Power Button [PWRF]
ACPI: acpi_idle yielding to intel_idle
ACPI: Battery Slot [BAT1] (battery absent)
acpi device:01: registered as cooling_device4
ACPI: Video Device [GFX0] (multi-head: yes rom: no post: no)
ACPI: resource 0000:00:1f.3 [io 0x5000-0x501f] conflicts with ACPI region SMBI [io 0x5000-0x500f window disabled]
ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver |
Llama mi atención el problema de SMBI. Pero no hace mas que eso, llamar mi atención.
Code: | # cat /usr/src/linux/.config | egrep -i "^[^#](.*)acpi"
CONFIG_X86_64_ACPI_NUMA=y
CONFIG_ACPI=y
CONFIG_ACPI_SLEEP=y
CONFIG_ACPI_PROCFS=y
CONFIG_ACPI_PROCFS_POWER=y
CONFIG_ACPI_POWER_METER=y
CONFIG_ACPI_SYSFS_POWER=y
CONFIG_ACPI_PROC_EVENT=y
CONFIG_ACPI_AC=y
CONFIG_ACPI_BATTERY=y
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_VIDEO=y
CONFIG_ACPI_FAN=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_HOTPLUG_CPU=y
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_NUMA=y
CONFIG_ACPI_BLACKLIST_YEAR=0
CONFIG_ACPI_CONTAINER=y
CONFIG_ACPI_SBS=y
CONFIG_X86_ACPI_CPUFREQ=y
CONFIG_PNPACPI=y
CONFIG_ATA_ACPI=y |
Code: | # cat /usr/src/linux/.config | egrep -i "^[^#](.*)batt"
CONFIG_ACPI_BATTERY=y |
Code: | #lshw
....
*-power UNCLAIMED
description: OEM_Define1
product: OEM_Define5
vendor: OEM_Define2
physical id: 1
version: OEM_Define6
serial: OEM_Define3
capacity: 75mWh
*-battery
description: Lithium Ion Battery
product: CRB Battery 0
vendor: -Virtual Battery 0-
physical id: 2
version: 10/12/2007
serial: Battery 0
slot: Fake |
Code: | # lspci
00:00.0 Host bridge: Intel Corporation Arrandale DRAM Controller (rev 02)
00:02.0 VGA compatible controller: Intel Corporation Arrandale Integrated Graphics Controller (rev 02)
00:16.0 Communication controller: Intel Corporation Ibex Peak HECI Controller (rev 06)
00:1a.0 USB Controller: Intel Corporation Ibex Peak USB2 Enhanced Host Controller (rev 05)
00:1b.0 Audio device: Intel Corporation Ibex Peak High Definition Audio (rev 05)
00:1c.0 PCI bridge: Intel Corporation Ibex Peak PCI Express Root Port 1 (rev 05)
00:1c.4 PCI bridge: Intel Corporation Ibex Peak PCI Express Root Port 5 (rev 05)
00:1c.5 PCI bridge: Intel Corporation Ibex Peak PCI Express Root Port 6 (rev 05)
00:1d.0 USB Controller: Intel Corporation Ibex Peak USB2 Enhanced Host Controller (rev 05)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev a5)
00:1f.0 ISA bridge: Intel Corporation Ibex Peak LPC Interface Controller (rev 05)
00:1f.2 SATA controller: Intel Corporation Ibex Peak 4 port SATA AHCI Controller (rev 05)
00:1f.3 SMBus: Intel Corporation Ibex Peak SMBus Controller (rev 05)
00:1f.6 Signal processing controller: Intel Corporation Ibex Peak Thermal Subsystem (rev 05)
02:00.0 Network controller: Realtek Semiconductor Co., Ltd. Device 8172 (rev 10)
03:00.0 Ethernet controller: Attansic Technology Corp. Device 1073 (rev c0)
ff:00.0 Host bridge: Intel Corporation QuickPath Architecture Generic Non-core Registers (rev 02)
ff:00.1 Host bridge: Intel Corporation QuickPath Architecture System Address Decoder (rev 02)
ff:02.0 Host bridge: Intel Corporation QPI Link 0 (rev 02)
ff:02.1 Host bridge: Intel Corporation QPI Physical 0 (rev 02)
ff:02.2 Host bridge: Intel Corporation Device 2d12 (rev 02)
ff:02.3 Host bridge: Intel Corporation Device 2d13 (rev 02) |
Acepto todo tipo de sugerencias. Incluso sobre comprar otra notebook. |
|
Back to top |
|
|
edgar_uriel84 Guru
Joined: 21 Dec 2008 Posts: 485 Location: Tultitlan, México
|
Posted: Fri Feb 18, 2011 3:56 am Post subject: |
|
|
Si pones el comando acpi_listen y quitas el adaptador de corriente lo detecta? no te dice que si hay batería? _________________ Algún día habrá una persona mejor que yo, pero esa persona no eres tú ni ese momento es ahora. |
|
Back to top |
|
|
__Ankh__ n00b
Joined: 16 Feb 2011 Posts: 6
|
Posted: Fri Feb 18, 2011 12:16 pm Post subject: |
|
|
Al conectar y desconectar el adaptador de corriente la salida de acpi_listen es vacía. Sin embargo si responde a otros eventos como bajar y levantar el monitor.
Last edited by __Ankh__ on Fri Feb 18, 2011 2:37 pm; edited 1 time in total |
|
Back to top |
|
|
agdg Guru
Joined: 15 Aug 2010 Posts: 320
|
Posted: Fri Feb 18, 2011 1:24 pm Post subject: |
|
|
Tal vez es una pregunta tonta pero... ¿Tienes compilado el soporte ACPI para la batería?
Code: | Power management and ACPI options --->
[*] ACPI (Advanced Configuration and Power Interface) Support --->
< > Battery
< > Smart Battery System |
Code: | agd-desktop linux # grep -i CONFIG_ACPI_BATTERY .config
# CONFIG_ACPI_BATTERY is not set
agd-desktop linux # grep -i CONFIG_ACPI_SBS .config
# CONFIG_ACPI_SBS is not set |
_________________ Antonio Guillen · USAM · Un SysAdmin Más |
|
Back to top |
|
|
__Ankh__ n00b
Joined: 16 Feb 2011 Posts: 6
|
Posted: Fri Feb 18, 2011 2:34 pm Post subject: |
|
|
Si. De hecho lo puse al comienzo del hilo:
Code: | # cat /usr/src/linux/.config | egrep -i "^[^#](.*)batt"
CONFIG_ACPI_BATTERY=y |
Así tengo la config del ACPI:
Code: |
--- ACPI (Advanced Configuration and Power Interface) Support
│ │ [*] Deprecated /proc/acpi files
│ │ [*] Deprecated power /proc/acpi directories
│ │ <*> ACPI 4.0 power meter
│ │ [*] Future power /sys interface
│ │ < > EC read/write access through /sys/kernel/debug/ec
│ │ [*] Deprecated /proc/acpi/event support
│ │ <*> AC Adapter
│ │ <*> Battery
│ │ -*- Button
│ │ -*- Video
│ │ <*> Fan
│ │ [ ] Dock
│ │ <*> Processor
│ │ < > Processor Aggregator
│ │ <*> Thermal Zone
│ │ -*- NUMA support
│ │ [ ] Debug Statements
│ │ < > PCI slot detection driver
│ │ -*- Container and Module Devices (EXPERIMENTAL)
│ │ <*> Smart Battery System
│ │ < > Hardware Error Device
│ │ [ ] ACPI Platform Error Interface (APEI) |
|
|
Back to top |
|
|
agdg Guru
Joined: 15 Aug 2010 Posts: 320
|
Posted: Fri Feb 18, 2011 3:34 pm Post subject: |
|
|
Efectivamente era una pregunta tonta, porque lo tenías puesto en el primer post.
Prueba a compilar, si no lo tienes ya compilado:
Code: | ┌──────────────────────────── Search Results ─────────────────────────────┐
│ Symbol: ACPI_TOSHIBA [=n] │
│ Type : tristate │
│ Prompt: Toshiba Laptop Extras │
│ Defined at drivers/platform/x86/Kconfig:516 │
│ Depends on: X86 [=y] && X86_PLATFORM_DEVICES [=n] && ACPI [=n] && BAC │
│ Location: │
│ -> Device Drivers │
│ -> X86 Platform Specific Device Drivers (X86_PLATFORM_DEVICES [=n │
│ Selects: LEDS_CLASS [=n] && NEW_LEDS [=n] && INPUT_POLLDEV [=y] && IN │
│ │
│ │
│ Symbol: TOSHIBA [=n] │
│ Type : tristate │
│ Prompt: Toshiba Laptop support │
│ Defined at arch/x86/Kconfig:901 │
│ Depends on: X86_32 [=n] │
│ Location: │
│ -> Processor type and features │ |
_________________ Antonio Guillen · USAM · Un SysAdmin Más |
|
Back to top |
|
|
__Ankh__ n00b
Joined: 16 Feb 2011 Posts: 6
|
Posted: Sat Feb 19, 2011 1:41 am Post subject: |
|
|
Bueno, recuerdo haber activado la primera. Pero fue un manotazo de ahogado puesto había leído la documentación:
Quote: | Please note: This driver is only intended to provide the extra support for ACPI functionality specific to Toshiba laptops. In other words, this driver is not intended to cover standard ACPI functions such as shutdown, reboot, suspend, hibernate, battery info, etc. Such generic functions are being supported by the ACPI4Linux project and the Software Suspend 2 project. |
Es decir que es para funciones extras que no tienen que ver con la batería.
La segunda pide el simbolo x86_32 y yo uso Gentoo Amd64. |
|
Back to top |
|
|
__Ankh__ n00b
Joined: 16 Feb 2011 Posts: 6
|
Posted: Sun May 27, 2012 9:52 pm Post subject: Re: ACPI: Battery Slot [BAT1] (battery absent) |
|
|
__Ankh__ wrote: | Buenas. No soy nuevo, ocurre que perdí el correo asociado a mi antiguo y deshabilitado usuario: chonzow.
Como sea, les cuento por qué vine. Hace ya un tiempo me desquicia no entender porqué Linux no detecta mi batería. Fucking linux, i love it.
Uno del os problemas es que no conozco el modelo exacto de la batería como para deducir cual de todos los drivers del src de kernel tengo que compilar. Esto al margen que mas abajo lshw tira uno datos sobre este punto. El segundo inconveniente es que es posible que no sea un problema de drivers sino de ACPI.
. |
Al final, me compré otra notebook y esa fue mi solucion. Pero hace poco volví a usar la anterior y conseguí arreglar el problema.
Bastó con modificar el DSDT y decirle al kernel que los use.
Code: | GentooBox ~ # cat /sys/firmware/acpi/tables/DSDT > DSDT.dat
GentooBox ~ # iasl -d DSDT.dat #Decompilo
GentooBox ~ # cp DSDT.dsl DSDT-old.dsl #Una copia para evaluar las diferencias.
GentooBox ~ # vim DSDT.dsl #Edito
GentooBox ~ # diff DSDT-old.dsl DSDT.dsl
5971c5971
< OperationRegion (EMEM, SystemMemory, 0xFF808001, 0xFF)
---
> OperationRegion (EMEM, EmbeddedControl, 0x00, 0xFF)
GentooBox ~ # iasl -tc DSDT.dsl #Compilo las moficaciones.
|
Esto me genera dos archivos, DSDT.hex y DSDT.aml
El .hex se puede pasar en la configuración del kernel que se incluya al compilar el mismo. El aml se puede pasar como argumento del kernel al bootear. Yo opté por usar el .hex, ya que lo otro es en realidad más complicado.
Code: | GentooBox ~ # cp DSDT.hex /usr/src/linux/include |
Modifico la configuración del kernel para que quede así:
Code: |
GentooBox ~ # cat /usr/src/linux/.config | grep DSDT.hex
CONFIG_ACPI_CUSTOM_DSDT_FILE="DSDT.hex"
|
Ahora solo queda recompilar e instalar el kernel, y al rebootear se solucionan todos los problemas.
Espero que a alguien le sea útil. |
|
Back to top |
|
|
|