Linux acpi off学习的必要
ACPI的内容庞杂,学习ACPI至少可以帮助我们理解配置信息。这些信息从legacy PNP设备的配置,到多处理器,到NUMA,比如现在的Multiple Core的信息就只能从ACPI得到。Linux启动很多代码就是处理这些配置信息,比如Linux acpi off,IOAPIC设置等。
ACPI相关设备。主要是笔记本电脑相关的设备,包括电源按钮,电池,外接电源,风扇,热键等。
底层硬件。比如PCI中断路由,chipset(主要是南桥PCI-to-LPC bridge)操作等。
电源管理。ACPI定义的电源管理包括CPU的电源管理(调频率P-state,idle C-state,throtting T-state),设备电源管理(D-state),系统电源管理(Suspend-to-Ram, Suspend-to-Disk, power off)等。
设备热插拔。ACPI用一种统一的方式来描述设备的热插拔,这样的设备从单一的PCI设备,到笔记本电脑的Docking Station,到整个PCI hierarchy,CPU,Memory,甚至整个NUMA节点。
可以说要理解现代PC平台必须了解ACPI。
Linux acpi off解决ACPI问题的小窍门
首先可以看看是否这是一个regression,如果以前版本的Linux kernel可以工作,但新的不行,则是一个regression,可以测试不同的kernel从而找出哪个版本引入了bug。使用git-bisect是一个好的选择,它可以帮你定位到哪个patch导致了regression。一些git-bisect相关的资料如下:
http://www.stardust.webpages.pl/files/handbook/handbook-en.pdf
http://www.kernel.org/pub/software/scm/git/docs/tutorial.html
http://www.kernel.org/pub/software/scm/git/docs/git-bisect.html
Linux acpi off系统不能启动
试试kernel参数”acpi=off”,如果此参数没有带来任何改变,那么这不是一个ACPI bug。反之,则这很可能是一个ACPI bug。 确定了是一个ACPI bug后,我们还有其他一些参数来更进一步的区分到底是ACPI哪个部分的bug。
acpi=ht
这个参数和"acpi=off"几乎一样,它禁止了除多处理器配置相关的内容以外的所有ACPI功能。如果acpi=off正常,但acpi=ht 不正常, 则解析ACPI 表或者Linux SMP的代码有bug.
pci=noacpi
禁止使用ACPI来处理任何PCI相关的内容,包括PCI root bus的枚举和PCI设备中断路由。
acpi=noirq
禁止使用ACPI来处理PCI设备中断路由,和pci=noacpi的区别是它允许使用ACPI来枚举PCI root bus.
pnpacpi=off
禁止使用ACPI来枚举PNP设备,比如串口、PS2键盘鼠标等。
noapic
禁止使用io-apic来做设备中断路由,这样做的效果之一是ACPI返回的中断路由表将是针对PIC(8259)的。
nolapic
禁止使用Local-APIC和IO-APIC。
Linux acpi off设备中断相关的问题
出现中断问题的可能性很多,比如驱动程序有bug。由ACPI导致的最常见的中断问题是kernel打出:”irqXX: nobody cared!”。这意味着kernel收到一个中断,但是没有驱动程序来处理此中断。Kernel会将此中断禁止,从而导致挂在此中断上的所有设备都停止工作。pci=noacpi, acpi=noirq, pnpacpi=off, noapic, nolapic这些参数可以帮助隔离一些问题。另外一个有用的参数是”irqpoll”,出现上面的中断问题时,它可以使kernel自动探测哪个设备发出了中断。这个参数对于调试那些中断路由有问题的系统很有用。
最新文章
- Oracle数据库to_date()和to_char()的相关
- C++文件输入输出
- JNDI学习总结(一)——JNDI数据源的配置
- paper 34 :常见函数的举例(更新ing)2
- SRF之页面
- 国庆第七日(2014年10月7日17:55:56),随手记,一些关注的OSC软件,花生壳
- mongodb教程二
- 掌握sklearn系列——1 学会加载数据
- Python3 中 random模块
- java中的常用特殊字符
- CentOS 通过yum在线安装MySQL5.7
- Mac下多版本JDK安装
- Linux Kernel Programming - Time,Delays,and Deferred Work
- python windows 安装gensim
- BAT面试必备——Java 集合类
- FocusBI:地产分析&;雪花模型
- SCOM发送邮件通知
- 【TOJ 1072】编辑距离(动态规划)
- [实战]MVC5+EF6+MySql企业网盘实战(10)——新建文件夹
- 字符串函数---itoa()函数具体解释及实现
热门文章
- Entity Framework 6.0 Tutorials(11):Download Sample Project
- 简单的Cookie记录浏览记录案例
- WordPaster2-正式包布署说明
- struts2 、mybatis 、easyui 分页
- C++语法知识小结(持续更新中)
- 学习React中遇到的问题
- 微软日志工厂 Microsoft.Extensions.Logging 中增加 log4net 的日志输出
- web3部署智能合约碰到的一个奇怪问题
- 十、Node.js-url模块
- kubernetes api文档