Linux acpi off关于Suspend to Disk 问题分析

运维 系统运维
参数是acpi.debug_level and acpi.debug_layer。如果打开debug参数,ACPI可以产生很多详细的运行输出。这些输出可以帮助我们定位出错的原因。

对于debug_layer和debug_level,include/acpi/acoutput.h里面包含了很多值,这些值决定了Linux/ACPI输出信息的详细程度和内容范围。acpi.debug_level和 acpi.debug_layer是kernel参数,也可以在系统运行时改变这些值,它们是/sys/module/acpi/parameters/debug_{level,layer}。

注意,这些输出信息可能很快就将kernel的ring buffer用完,你可能需要使用log_buf_len=XY来增加ring buffer的大小。使用serial console (Documentation/serial-console.txt)来得到kernel输出是一个好的方法。如果你的笔记本电脑没有串口,可以试试netconsole (Documentation/networking/netconsole.txt)。

Linux acpi off使用定制的 DSDT

Linux acpi offDSDT (Differentiated System Description Table)是一个主要的ACPI表,它包含了很多AML代码。因为BIOS的bug,这些代码本身可能有错。Linux提供的一种方法能让你使用定制的DSDT表,这对于调试很有帮助。让kernel使用定制的DSDT步骤如下:

首先要得到原始的DSDT表(后面的章节会介绍acpidump等工具):
$ acpidump > acpidump.out
$ acpixtract DSDT acpidump > DSDT.dat
这样我们就得到了DSDT表的二进制文件,将它反汇编
$ iasl -d DSDT.dat
我们会得到一个AML代码文件,你可以修改它
$ vi DSDT.dsl
然后重新编译
$ iasl -tc DSDT.dsl
把它拷贝到kernel source中
$ cp DSDT.hex $SRC/include/

Linux acpi off加入下面几行到你的kernel配置文件(.config):
CONFIG_STANDALONE=n
CONFIG_ACPI_CUSTOM_DSDT=y
CONFIG_ACPI_CUSTOM_DSDT_FILE=”DSDT.hex”

Linux acpi off编译kernel,运行,你的dmesg中应该有如下输出:
Table [DSDT] replaced by host OS
使用这种方法,你可以修正DSDT的bug。这种方法带来的一个有用的debug方法是:将ACPI的debug选项打开,然后在你的DSDT中加入类似如下的语句:
Store(”hello world!”, Debug)
Store(Local0, Debug)

即将某个变量存储到特殊的目标Debug中。加入了这样语句后的函数被kernel解释执行时你可以看到如下输出:
[ACPI Debug] String: [0x0C] “hello world!”
[ACPI Debug] Integer: 0×00000042

由此我们可以在AML代码级别进行调试。

【编辑推荐】

  1. Linux 查看磁盘空间实现代码介绍
  2. Linux操作系统需要微软的十大帮助
  3. 探寻Linux到底需要多低的配置
  4. Linux测试工具tcpdump监视TCP/IP连接命令介绍
  5. Linux流量控制实例应用介绍

 

责任编辑:chenqingxiang 来源: CSDN
相关推荐

2010-06-18 11:27:43

Linux acpi

2010-06-18 12:47:04

Linux acpi

2010-06-18 12:26:17

Linux acpi

2010-06-18 14:58:42

Linux ACPI服

2010-06-18 15:22:14

Linux ACPI服

2010-06-18 14:41:48

Linux ACPI服

2010-06-18 14:09:29

Linux acpi电

2010-06-18 12:58:17

Linux acpi电

2010-06-07 15:25:06

rsync重启

2017-07-17 10:34:53

Linux系统休眠设备中断

2009-07-01 10:55:23

2013-11-25 17:39:17

Linux内核PCIACPI

2014-08-25 10:24:01

Linux

2010-09-17 16:27:16

ECHO OFF

2009-11-24 11:42:20

Visual Stud

2019-08-29 10:17:42

OracleKfkTOP N

2010-03-08 15:28:31

Linux内核安全

2009-06-19 20:32:00

Linux

2014-02-27 15:42:08

Linux面试

2010-03-04 15:51:40

点赞
收藏

51CTO技术栈公众号