对于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代码级别进行调试。

[@more@]

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

  1. 安装linux系统提示acpi,linux ACPI 知识

    为什么学习ACPI ACPI是Intel(i386,x86_64,IA64)平台的标准固件规范,绝大部分OS需要从BIOS得到的信息都可以从ACPI得到,并且现在的趋势是未来的任何新的特性相关的信息都 ...

  2. linux设备acpi表配置,linux ACPI 知识

    为什么学习ACPI ACPI是Intel(i386,x86_64,IA64)平台的标准固件规范,绝大部分OS需要从BIOS得到的信息都可以从ACPI得到,并且现在的趋势是未来的任何新的特性相关的信息都 ...

  3. linux acpi=off

    kernel后加acpi=off 是什么意思? acpi=off是关闭高级电源管理接口 使用acpi = off会在启动Ubuntu时暂时禁用高级配置和电源接口.如果必须添加acpi = off使ub ...

  4. linux acpi 电源管理,ACPI电源管理

    S1,S2:待机.只关闭CPU.S1是完全加电:S2是如果CPU不活动就进入待机状态. S3:挂起到内存,关闭硬盘,其它设备处于加电等待状态. S4:休眠,内存写入硬盘后,关闭所有设备. S5:关机: ...

  5. linux acpi 代码,ACPI简介 Linux

    ACPI – the Advanced Configuration & Power Interface. ACPI是OS,BIOS和硬件之间的抽象层.它允许OS和平台独立的发展,比如新的OS可 ...

  6. Linux下USB suspend/resume源码分析【转】

    转自:http://blog.csdn.net/aaronychen/article/details/3928479 Linux下USB suspend/resume源码分析 Author:aaron ...

  7. linux acpi 作用,Linux ACPI服务ACPI 驱动体系简介

    Linux ACPI服务DSDT: DSDT 称做 Differentiated Definition Block,存在于 BIOS 中并与当前的硬件平台兼容的,提供了系统的硬件特性(例如某些设备的内 ...

  8. linux设备acpi表配置,Linux acpi off简介

    Linux acpi off – the Advanced Configuration & Power Interface. ACPI是OS,BIOS和硬件之间的抽象层.它允许OS和平台独立的 ...

  9. arm linux kernel 从入口到start_kernel 的代码分析

    Linux系统启动过程分析(主要是加载内核前的动作) 经过对Linux系统有了一定了解和熟悉后,想对其更深层次的东西做进一步探究.这当中就包括系统的启动流程.文件系统的组成结构.基于动态库和静态库的程 ...

  10. Debian etch 基本系统 initial ram disk 的分析

    ilovestars 2007年5月3日于瀚海星云 Linux 版 自己最近花时间研究了一下 linux 的 initial ram disk,然后就写了这篇文章. 因为是要给别人看的,所以写的时候就 ...

最新文章

  1. PyTorch 源码解读之即时编译篇
  2. ue4 开发动作游戏_【图片】第三人称动作游戏开发日志【虚幻4吧】_百度贴吧
  3. 使用 SCons 代替 Makefile 快速构建应用程序
  4. 北京内推 | 华为高斯实验室招聘AI算法工程师/实习生
  5. linux下tar包安装sudo命令,ubuntu12.04LTS安装gv-412-Linux-x86.tar.gz方法
  6. (转)十分钟搞定你自己的多图片/文件服务器
  7. nodejs es6 中的单例模式
  8. wmsys.wm_concat的几个用法
  9. 连接mysql出现Access denied for user ‘root’@’localhost’ (using password:YES)问题解决办法...
  10. Stardict 81部中文词典下载
  11. HDMI-FMC子卡的使用(基于VC707)(中)
  12. vue-网页Logo标题及矢量图标
  13. 逐步分析类的拆分之案例——五彩斑斓的小球碰撞
  14. java migration_JetPack知识点实战系列九:Room数据库Migration
  15. coap协议说明及函数使用
  16. 记录配置Jupyter kernels
  17. 不会编程,别着急!免编程工具助你快速开发App
  18. FTP上传文件报错200 PORT command successful. Consider using PASV. 553 Could not create file.
  19. cocos2d-x Touch触屏事件
  20. 海思开发板hi3559移植带opengl的qt并成功运行血泪史

热门文章

  1. c语言范式编程之lsearch
  2. 今天8月5号 2011-08-05
  3. 2010年11.30日 爱普生 武昌培训 Technical workshop OPOS INSTALL
  4. .NET之对接口和抽象类(二)
  5. jenkins教程菜鸟_Jenkins插件编译
  6. 自定义RPC通讯框架,实现dubbo远程RPC服务治理功能
  7. 支持多浏览器高拍仪开发控件
  8. PostgreSQL on Docker部署是的shm配置注意
  9. Linux 有问必答: 如何在Linux中加入cron任务
  10. jenkins2 pipeline高级