Linux系统中的硬件问题如何排查?(3)
Linux系统中的硬件问题如何排查?(3)
在Linux系统中,对于硬件故障问题的排查可能是计算机管理领域最棘手的工作,即使是经验相当丰富的用户有时也会遇上自己搞不定的状况,本文分享一些实用的技巧与处理方法,希望有助于读者朋友理解、查明并最终搞定硬件难题。
Dmesg命令
另外一些颇具价值的信息被保存在内核缓冲区日志当中,我们通常可以利用dmesg命令来调用。当然,有时候该日志也会被保存在/var/log路径下的同名文件中。这条命令会显示所有缓冲区内的内核信息,其中一些也同时存在于标准系统日志当中--即由syslog生成的/var/log/messages。
除此之外,dmesg还会显示大量硬件初始化信息,我们可以借此摸索可能出现的问题或冲突。同样,这部分信息中不正常的内容也会很多,一一阅读并理解会浪费大量时间,所以请有针对性地进行处理。大家最应该关注的是模块名称与硬件地址,它们是由冒号隔开的数字与字母构成的字符串。
在下面的例子中,我们可以看到英伟达模块的初始化情况。由于模块不支持GPL,因此导致系统内核受损--另外,声卡的初始化信息也能在下图中找到。

Lsmod命令
我们之前在许多场合都使用过lsmod命令,这条命令能够被加载到系统内核中的模块名称及其使用次数。在进一步分析处理之前,大家应该首先确定设备拥有基本驱动程序支持。举例来说,如果我们想了解为什么英伟达显卡无法工作,那么首先得弄清驱动程序是否被正确载入或者说没有出现冲突。虽然对于普通用户来说,判断驱动程序未被载入的原因似乎有些困难,但至少我们已经了解到导致问题的根源,这也算是个了不起的成果。

/sys/devices
现在我们再来看看更实用的检查方法。将启动信息与dmesg结合起来虽然能为我们提供一些基本信息,但这些信息却并不十分可靠。在无法断定信息真伪的情况下,大家需要直接审查内核架构并检测载入的驱动程序。
在Linux系统中,由于架构的单一特性,组件会直接通过编译进入内核或作为可动态加载的模块。与硬件之间相互通信的模块就被称为驱动程序。无论是直接进入内核还是成为可加载模块,组件最终都会出于某种目的而驻留在内核中。这是一种抽象软件层,用户无法直接进行控制。
然而,以间接方式进行部分控制还是可以的,我们能够利用伪文件系统/proc及/sys渗透到一部分内核架构中去。大家可以通过修改看似普通的文件来实时变更内核架构,这将改变系统的运作方式。/sys文件系统则允许用户对硬件以及内核模块进行修改。

现在,如果大家还记得之前图片中列出的数字,我们已经可以让它们派上些大用场。浏览/sys/devices下的子目录并检查哪些硬件组件已经连入注册接口。

某些模块拥有可写入参数,我们能够凭借root权限对其加以修改、进而改变硬件的运作方式。举例来说,我的LG笔记本的PCI插槽上接有USB5设备,它正好拥有可写入参数。如果大家在这个文件中填写不同数值,就能够启动或关闭对特定USB接口的访问。
在实践中,大家会发现浏览/sys绝对是个对经验与知识要求很高的细致活,这点在尝试解决硬件问题时尤为明显。普通用户对不同参数及值的理解更是有所欠缺,但这都不要紧,我想强调的只有一点:/sys目录能够提供很多有用的信息
Linux系统中的硬件问题如何排查?(3)的更多相关文章
- Linux系统中的硬件问题如何排查?(6)
Linux系统中的硬件问题如何排查?(6) 2013-03-27 10:32 核子可乐译 51CTO.com 字号:T | T 在Linux系统中,对于硬件故障问题的排查可能是计算机管理领域最棘手的工 ...
- Linux系统中的硬件问题如何排查?(5)
Linux系统中的硬件问题如何排查?(5) 2013-03-27 10:32 核子可乐译 51CTO.com 字号:T | T 在Linux系统中,对于硬件故障问题的排查可能是计算机管理领域最棘手的工 ...
- Linux系统中的硬件问题如何排查?(4)
Linux系统中的硬件问题如何排查?(4) 2013-03-27 10:32 核子可乐译 51CTO.com 字号:T | T 在Linux系统中,对于硬件故障问题的排查可能是计算机管理领域最棘手的工 ...
- Linux系统中的硬件问题如何排查?(2)
Linux系统中的硬件问题如何排查?(2) 2013-03-27 10:32 核子可乐译 51CTO.com 字号:T | T 在Linux系统中,对于硬件故障问题的排查可能是计算机管理领域最棘手的工 ...
- Linux系统中的硬件问题如何排查?(1)
在Linux系统中,对于硬件故障问题的排查可能是计算机管理领域最棘手的工作,即使是经验相当丰富的用户有时也会遇上自己搞不定的状况,本文分享一些实用的技巧与处理方法,希望有助于读者朋友理解.查明并最终搞 ...
- Linux系统之运行状态分析及问题排查思路
〇.一件事儿 以下分析是站在Java工程师的角度来分析的. 一.CPU分析 分析CPU的繁忙程度,两个指标:系统负载和CPU利用率 1.系统负载分析 系统负载:在Linux系统中表示,一段时间内正在执 ...
- 用户管理 之 Linux 系统中的超级权限的控制
在Linux操作系统中,root的权限是最高的,也被称为超级权限的拥有者.普通用户无法执行的操作,root用户都能完成,所以也被称之为超级管理用户. 在系统中,每个文件.目录和进程,都归属于某一个用户 ...
- Linux系统下查看硬件信息命令大全
导读 有许多命令可以用来查看 Linux 系统上的硬件信息.有些命令只能够打印出像 CPU 和内存这一特定的硬件组件信息,另外一些命令可以查看多种硬件组件的信息. 这个教程可以带大家快速了解一下查看各 ...
- 云服务器 ECS Linux 系统中常见的日志文件介绍
云服务器 ECS Linux 系统中,日志文件是非常重要的文件,它们记录了很多系统中重要的事.Linux 系统中常见日志文件概述如下: /var/log/cron可以在 cron 文件中检查 cron ...
随机推荐
- asp.net mvc 依赖注入Ninject
1.安装Ninject 2.使用Ninject 一 安装Ninject Nuget:Ninject 二 使用Ninject public interface IStudent { string Get ...
- 【VS开发】循序渐进学习使用WINPCAP(一)
winpcap教程 中文教程 http://www.ferrisxu.com/WinPcap/html/index.html 除此之外, WinPcap · Developer Resources下载 ...
- 记录一些Xampp的使用过程和遇到的问题
1.Xmapp需要安装在C盘的Xampp目录,否则很容易出错,一定要在C:/xampp,这样Apache和MySQL才能正常启动,和错误提示的端口冲突或者路径错误无关. 2.Xmapp尽量选择低版本的 ...
- 普通帐号起redis
wget http://download.redis.io/releases/redis-4.0.11.tar.gz $ tar xzf redis-4.0.11.tar.gzmv redis-4.0 ...
- Java第四周总结报告
本周做了什么? 学习了Java的面向对象知识,包括对类,对象,抽象的理解 下周准备做什么? 学习Java面向对象的有关知识,包括对象与类,继承关系等内容 代码联系时间五个小时,看书四个小时. 本周遇到 ...
- numpy数组转置与轴变换
numpy数组转置与轴变换 矩阵的转置 >>> import numpy as np >>> arr=np.arange(15).reshape((3,5)) &g ...
- HDUST-1245 Interpreter(模拟)
1245: Problem E: Interpreter 时间限制: 1 Sec 内存限制: 128 MB提交: 4 解决: 2[提交][状态][讨论版] 题目描述 Problem E: Inte ...
- Quartz的job中注入的services接口为空的解决办法
自己重新定义一个类继承AdaptableJobFactory类 public class JobFactory extends AdaptableJobFactory { @Autowired pri ...
- npm 关联 git包
npm 关联 git包 由于现在项目越做越多,很多公共的部分相互公用,需要尽可能早地提炼出来,这样便可以在其他项目进行引用,而不是每次建一个项目就需要进行拷贝,这样太痛苦了,因而想通过类似npm包管理 ...
- mac系统homebrew安装mysql
homebrew 安装 mysql homebrew 是 macOS 缺失的软件包管理器,譬如可以下载 mysql.redis.wget 等等.操作系统:macOS High Sierra Versi ...
