wall_john 发表于 2005-8-21 17:30:35

神州笔记本电脑电源管理(acpi)问题的补丁

今天翻检旧迹,发现了修改我的神州承运M726E中DSDT错误导致kernel中acpi
模块定期出现电源指示错误的BUG,想想可能对大家有用,所以贴出来,日记:

”今天将linux下笔记本电源的显示问题解决了。
首先,下午发现cat /proc/acpi/dsdt > dsdt.dat
            ./iasl -d dsdt.dat
生成的dsdt.dsl文件中_OS默认为:"Microsoft Windows NT",
在启动内核境象语句后加acpi_os_name="Microsoft Windows XP"
启动后,调试信息反而显示非windows类的系统,且除了拔插电源
时显示不正确外,其它电源百分比和内核信息都正常,于是修改
了dsdt.dsl中判断系统的函数,使其全部返回为非win32系统。
其次,到晚上也解决了电源拔插时图标不准确的问题,是在
"AC Change"这个函数中将原Notify (\_SB.PCI0.AC0, 0x00)改
为:Notify (\_SB.PCI0.AC0, 0x80)
      Notify (\_SB.PCI0.BAT0, 0x80)
翻spec发现:AC0->"ACPI0003"实际是电源管理的适配器;
            BAT0->"PNP0C0A"是电源设备对象。
      Notify (\_SB.PCI0.AC0, 0x00)是叫适配器重新扫描联接pci
      和pnp上的电源设备。
      而Notify (\_SB.PCI0.AC0, 0x80)
          Notify (\_SB.PCI0.BAT0, 0x80)
      才是提醒适配器和电源设备,电源的状态已更改。 “

相关的资料网上有下,补丁见附件。

wall_john 发表于 2005-8-21 17:35:30

这是针对内核的补丁,2.6.x系列好像都可用,测试过2.6.11、2.6.12

lophyxp 发表于 2005-8-21 18:02:18

太高深了,看不动。我的本本是神州M340E,也有电源显示不正常的现象,表现在:
使用电池的时候,有时会检测不到电池,导致自动关机。但是禁用触摸板以后,这个问题就消失了。不知道你的这个patch能解决我的问题不能。

wall_john对acpi有很深的研究吧。

wall_john 发表于 2005-8-21 18:18:51

这个是内核的补丁,把补丁考到linux代码目录
patch -p1 < acpi_hasee_m726e.patch
重新编译内核,试试看应该可以解决问题,我
估计hasee也不会对不同的系列做不同的电源系
统,如果试了不行可以卸掉补丁
patch -R -p1 < acpi_hasee_m726e.patch
重新编译安装内核,对你应该不会有什么损失:)

demonlj 发表于 2005-8-21 18:24:38

损失,损失了30分钟左右泡MM时间 :wink:

wall_john 发表于 2005-8-21 18:35:31

你可以一边编译一边泡塞,哦,楼上的兄弟
“ATi出了fglrx8.12.10我的9700SE不支持。 ”这句话也不对,
看看我丢的同名的帖子。

lophyxp 发表于 2005-8-21 21:54:31

wall_john真是太厉害了。另外你的M726E有猫么?是不是也是smartlink的芯片,你的猫的驱动是怎么装的?
我的M340E是smartlink的猫,下载了smartlink猫的驱动slmodem-2.9.10.tar.gz,在ML1.2(内核2.6.9)的时候能正常安装,后来把内核升级到了2.6.12,驱动可以通过编译,但是不能insmod,提示说找不到symbol get_drivers。

wall_john 发表于 2005-8-21 22:58:46

关于内猫,在内核中
Device Drivers   --->
                  Sound   --->
                      Advanced Linux Sound Architecture   --->   
                                                      PCI devices          --->
                                    Intel/SiS/nVidia/AMD MC97 Modem (EXPERIMENTAL)
这个模块已支持了AC97芯片的内猫

我的是这个
lspci | grep -i modem
00:1f.6 Modem: Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller (rev 03)

如果你是上面类型的话,只要:
cd slmodem-2.9.10/modem
make SUPPORT_ALSA=1
这个编译是用内核的ALSA中的驱动snd_intel8x0m,而不是用slmodem的编译模块。

然后拨号的时候用上面编译出来的:slmodemd文件,
modprobe snd_intel8x0m
./slodemd --alsa
它会显示如下:
SmartLink Soft Modem: version 2.9.10 Aug 21 2005 22:41:01
symbolic link `/dev/ttySL0' -> `/dev/pts/5' created.
modem `modem:1' created. TTY is `/dev/pts/5'
Use `/dev/ttySL0' as modem device, Ctrl+C for termination

然后在kdial中用/dev/ttySL0作为联接设备拨号就行了:)

KDE 发表于 2005-8-21 23:40:35

试试 modprobe,他会自动解决依赖关系问题。

LJ-silver 发表于 2005-8-23 12:53:34

俺的T280S也有acpi的问题,打开了acpi之后开机加载完内核就自动重启,现在之后加上内核参数acpi=off勉强使用。。。

fox3 发表于 2006-4-15 17:09:52

楼主的本本有读卡器吗?
不知读卡器在linux下怎么用,我的用不了,4合1的
页: [1]
查看完整版本: 神州笔记本电脑电源管理(acpi)问题的补丁