Linux系统中的硬件问题如何排查?(3)

2013-03-27 10:32 核子可乐译 51CTO.com 字号:T | T

在Linux系统中,对于硬件故障问题的排查可能是计算机管理领域最棘手的工作,即使是经验相当丰富的用户有时也会遇上自己搞不定的状况,本文分享一些实用的技巧与处理方法,希望有助于读者朋友理解、查明并最终搞定硬件难题。

AD:2014WOT全球软件技术峰会北京站 课程视频发布

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)的更多相关文章

  1. Linux系统中的硬件问题如何排查?(6)

    Linux系统中的硬件问题如何排查?(6) 2013-03-27 10:32 核子可乐译 51CTO.com 字号:T | T 在Linux系统中,对于硬件故障问题的排查可能是计算机管理领域最棘手的工 ...

  2. Linux系统中的硬件问题如何排查?(5)

    Linux系统中的硬件问题如何排查?(5) 2013-03-27 10:32 核子可乐译 51CTO.com 字号:T | T 在Linux系统中,对于硬件故障问题的排查可能是计算机管理领域最棘手的工 ...

  3. Linux系统中的硬件问题如何排查?(4)

    Linux系统中的硬件问题如何排查?(4) 2013-03-27 10:32 核子可乐译 51CTO.com 字号:T | T 在Linux系统中,对于硬件故障问题的排查可能是计算机管理领域最棘手的工 ...

  4. Linux系统中的硬件问题如何排查?(2)

    Linux系统中的硬件问题如何排查?(2) 2013-03-27 10:32 核子可乐译 51CTO.com 字号:T | T 在Linux系统中,对于硬件故障问题的排查可能是计算机管理领域最棘手的工 ...

  5. Linux系统中的硬件问题如何排查?(1)

    在Linux系统中,对于硬件故障问题的排查可能是计算机管理领域最棘手的工作,即使是经验相当丰富的用户有时也会遇上自己搞不定的状况,本文分享一些实用的技巧与处理方法,希望有助于读者朋友理解.查明并最终搞 ...

  6. Linux系统之运行状态分析及问题排查思路

    〇.一件事儿 以下分析是站在Java工程师的角度来分析的. 一.CPU分析 分析CPU的繁忙程度,两个指标:系统负载和CPU利用率 1.系统负载分析 系统负载:在Linux系统中表示,一段时间内正在执 ...

  7. 用户管理 之 Linux 系统中的超级权限的控制

    在Linux操作系统中,root的权限是最高的,也被称为超级权限的拥有者.普通用户无法执行的操作,root用户都能完成,所以也被称之为超级管理用户. 在系统中,每个文件.目录和进程,都归属于某一个用户 ...

  8. Linux系统下查看硬件信息命令大全

    导读 有许多命令可以用来查看 Linux 系统上的硬件信息.有些命令只能够打印出像 CPU 和内存这一特定的硬件组件信息,另外一些命令可以查看多种硬件组件的信息. 这个教程可以带大家快速了解一下查看各 ...

  9. 云服务器 ECS Linux 系统中常见的日志文件介绍

    云服务器 ECS Linux 系统中,日志文件是非常重要的文件,它们记录了很多系统中重要的事.Linux 系统中常见日志文件概述如下: /var/log/cron可以在 cron 文件中检查 cron ...

随机推荐

  1. W3C验证工具

    HTML验证工具:http://validator.w3.org/ CSS验证工具:http://jigsaw.w3.org/css-validator/

  2. 【PI系列】SAP IDOC发送状态03,PI没有收到消息的解决办法

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[PI系列]SAP IDOC发送状态03,PI没 ...

  3. LeetCode.989-数组形式的整数做加法(Add to Array-Form of Integer)

    这是悦乐书的第371次更新,第399篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第233题(顺位题号是989).对于非负整数X,X的数组形式是从左到右顺序的数字数组.例 ...

  4. TortoiseGit 中文汉化

    TortoiseGit程序以及中文汉化包:https://tortoisegit.org/download/ TortoiseGit程序: 汉化包:

  5. jenkins pipline和jenkinsfile

    Jenkins Pipeline(或简称为 "Pipeline")是一套插件,将持续交付的实现和实施集成到 Jenkins 中. Jenkins Pipeline 提供了一套可扩展 ...

  6. java 内容仓储

    什么是JAVA内容仓库(Java Content Repository)(2) 转载 自:http://blog.csdn.net/vltic/article/details/7249395 内容仓库 ...

  7. 洛谷 P2796 Facer的程序 题解

    题面 一个树形DP, f[i]=表示以i为根可以得到的子树个数: 则f[i]*=(f[j]+1): 初始化f[i]=1; ans=sigma(f[i]); #include <bits/stdc ...

  8. python3抓取中国天气网不同城市7天、15天实时数据

    思路:1.根据city.txt文档来获取不同城市code2.获取中国天气网7d和15d不同城市url3.利用requests库请求url获取html内容4.利用beautifulsoup获取7d和15 ...

  9. numpy-tile 数组复制

    tile(A, reps):把数组A复制成新数组 # 把 矩阵 看做一个整体,第二个参数代表把 矩阵 复制 m*n 次 b = np.arange(1, 5).reshape(2, 2) print( ...

  10. MySQL表存在外键关系无法清空数据的解决方案

    先 SET FOREIGN_KEY_CHECKS=0; 然后delete删除,再 SET FOREIGN_KEY_CHECKS=1;