标签 硬件 下的文章

了解是什么原因导致你的 Linux 硬件发生故障,以便你可以将其恢复并快速运行。

Linux 服务器在物理机、虚拟化、私有云、公共云和混合云等许多不同种类的基础设施中运行着关键的业务应用程序。对于 Linux 系统管理员来说,了解如何管理 Linux 硬件基础设施(包括与 网络、存储、Linux 容器相关的软件定义功能)和 Linux 服务器上的多种工具非常重要。

在 Linux 上进行排除和解决与硬件相关的问题可能需要一些时间。即使是经验丰富的系统管理员,有时也会花费数小时来解决神秘的硬件和软件差异。

以下提示可以使你更快、更轻松地对 Linux 中的硬件进行故障排除。许多不同的事情都可能导致 Linux 硬件出现问题。在开始诊断它们之前,明智的做法是了解最常见的问题以及最有可能找到问题的地方。

快速诊断设备、模块和驱动程序

故障排除的第一步通常是显示 Linux 服务器上安装的硬件的列表。你可以使用诸如 lspcilsblklscpulsscsi 之类的列出命令获取有关硬件的详细信息。例如,这是 lsblk 命令的输出:

# lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  50G  0 disk
├─xvda1 202:1    0   1M  0 part
└─xvda2 202:2    0  50G  0 part /
xvdb    202:16   0  20G  0 disk
└─xvdb1 202:17   0  20G  0 part

如果这些列出命令没有显示任何错误,请使用初始化系统(例如 systemd)查看 Linux 服务器的工作方式。 systemd 是最流行的初始化系统,用于启动用户空间并控制多个系统进程。例如,这是 systemctl status 命令的输出:

# systemctl status
● bastion.f347.internal
    State: running
     Jobs: 0 queued
   Failed: 0 units
    Since: Wed 2018-11-28 01:29:05 UTC; 2 days ago
   CGroup: /
           ├─1 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
           ├─kubepods.slice
           │ ├─kubepods-pod3881728a_f2af_11e8_af77_06af52f87498.slice
           │ │ ├─docker-88b27385f4bae77bba834fbd60a61d19026bae13d18eb147783ae27819c34967.scope
           │ │ │ └─23860 /opt/bridge/bin/bridge --public-dir=/opt/bridge/static --config=/var/console-config/console-c
           │ │ └─docker-a4433f0d523c7e5bc772ee4db1861e4fa56c4e63a2d48f6bc831458c2ce9fd2d.scope
           │ │   └─23639 /usr/bin/pod
....

深入到各个日志当中

使用 dmesg 可以找出内核最新消息中的错误和警告。例如,这是 dmesg | more 命令的输出:

# dmesg | more
....
[ 1539.027419] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 1539.042726] IPv6: ADDRCONF(NETDEV_UP): veth61f37018: link is not ready
[ 1539.048706] IPv6: ADDRCONF(NETDEV_CHANGE): veth61f37018: link becomes ready
[ 1539.055034] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 1539.098550] device veth61f37018 entered promiscuous mode
[ 1541.450207] device veth61f37018 left promiscuous mode
[ 1542.493266] SELinux: mount invalid.  Same superblock, different security settings for (dev mqueue, type mqueue)
[ 9965.292788] SELinux: mount invalid.  Same superblock, different security settings for (dev mqueue, type mqueue)
[ 9965.449401] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 9965.462738] IPv6: ADDRCONF(NETDEV_UP): vetheacc333c: link is not ready
[ 9965.468942] IPv6: ADDRCONF(NETDEV_CHANGE): vetheacc333c: link becomes ready
....

你还可以在 /var/log/messages 文件中查看所有 Linux 系统日志,在该文件中你可以找到与特定问题相关的错误。当你对硬件进行修改(例如安装额外的磁盘或添加以太网网卡)时,通过 tail 命令实时监视消息是值得的。例如,这是 tail -f /var/log/messages 命令的输出:

# tail -f /var/log/messages
Dec  1 13:20:33 bastion dnsmasq[30201]: using nameserver 127.0.0.1#53 for domain in-addr.arpa
Dec  1 13:20:33 bastion dnsmasq[30201]: using nameserver 127.0.0.1#53 for domain cluster.local
Dec  1 13:21:03 bastion dnsmasq[30201]: setting upstream servers from DBus
Dec  1 13:21:03 bastion dnsmasq[30201]: using nameserver 192.199.0.2#53
Dec  1 13:21:03 bastion dnsmasq[30201]: using nameserver 127.0.0.1#53 for domain in-addr.arpa
Dec  1 13:21:03 bastion dnsmasq[30201]: using nameserver 127.0.0.1#53 for domain cluster.local
Dec  1 13:21:33 bastion dnsmasq[30201]: setting upstream servers from DBus
Dec  1 13:21:33 bastion dnsmasq[30201]: using nameserver 192.199.0.2#53
Dec  1 13:21:33 bastion dnsmasq[30201]: using nameserver 127.0.0.1#53 for domain in-addr.arpa
Dec  1 13:21:33 bastion dnsmasq[30201]: using nameserver 127.0.0.1#53 for domain cluster.local

分析网络功能

你可能有成千上万的云原生应用程序在一个复杂的网络环境中为业务提供服务,其中可能包括虚拟化、多云和混合云。这意味着,作为故障排除的一部分,你应该分析网络连接是否正常工作。弄清 Linux 服务器中网络功能的有用命令包括:ip addrtraceroutenslookupdigping 等。例如,这是 ip addr show 命令的输出:

# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000
    link/ether 06:af:52:f8:74:98 brd ff:ff:ff:ff:ff:ff
    inet 192.199.0.169/24 brd 192.199.0.255 scope global noprefixroute dynamic eth0
       valid_lft 3096sec preferred_lft 3096sec
    inet6 fe80::4af:52ff:fef8:7498/64 scope link
       valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
    link/ether 02:42:67:fb:1a:a2 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 scope global docker0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:67ff:fefb:1aa2/64 scope link
       valid_lft forever preferred_lft forever
....

总结

对 Linux 硬件进行故障排除需要大量的知识,包括如何使用功能强大的命令行工具以及找出系统日志记录。 你还应该知道如何诊断内核空间,在那里你可以找到许多硬件问题的根本原因。请记住,Linux 中的硬件问题可能来自许多不同的来源,包括设备、模块、驱动程序、BIOS、网络,甚至是普通的旧硬件故障。


via: https://opensource.com/article/18/12/troubleshooting-hardware-problems-linux

作者:Daniel Oh 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

通过命令行获取计算机硬件详细信息。

你可能会有很多的原因需要查清计算机硬件的详细信息。例如,你需要修复某些问题并在论坛上发出请求,人们可能会立即询问你的计算机具体的信息。或者当你想要升级计算机配置时,你需要知道现有的硬件型号和能够升级的型号。这些都需要查询你的计算机具体规格信息。

最简单的方法是使用标准的 Linux GUI 程序之一:

  • i-nex 收集硬件信息,并且类似于 Windows 下流行的 CPU-Z 的显示。
  • HardInfo 显示硬件具体信息,甚至包括一组八个的流行的性能基准程序,你可以用它们评估你的系统性能。
  • KInfoCenterLshw 也能够显示硬件的详细信息,并且可以从许多软件仓库中获取。

或者,你也可以拆开计算机机箱去查看硬盘、内存和其他设备上的标签信息。或者你可以在系统启动时,按下相应的按键进入 UEFI 和 BIOS 界面获得信息。这两种方式都会向你显示硬件信息但省略软件信息。

你也可以使用命令行获取硬件信息。等一下… 这听起来有些困难。为什么你会要这样做?

有时候通过使用一条针对性强的命令可以很轻松的找到特定信息。也可能你没有可用的 GUI 程序或者只是不想安装这样的程序。

使用命令行的主要原因可能是编写脚本。无论你是使用 Linux shell 还是其他编程语言来编写脚本通常都需要使用命令行。

很多检测硬件信息的命令行都需要使用 root 权限。所以要么切换到 root 用户,要么使用 sudo 在普通用户状态下发出命令:

sudo <the_line_command> 

并按提示输入你的密码。

这篇文章介绍了很多用于发现系统信息的有用命令。文章最后的快速查询表对它们作出了总结。

硬件概述

下面几条命令可以全面概述计算机硬件信息。

inxi 命令能够列出包括 CPU、图形、音频、网络、驱动、分区、传感器等详细信息。当论坛里的人尝试帮助其他人解决问题的时候,他们常常询问此命令的输出。这是解决问题的标准诊断程序:

inxi -Fxz

-F 参数意味着你将得到完整的输出,x 增加细节信息,z 参数隐藏像 MAC 和 IP 等私人身份信息。

hwinfolshw 命令以不同的格式显示大量相同的信息:

hwinfo --short

lshw -short

这两条命令的长格式输出非常详细,但也有点难以阅读:

hwinfo

lshw

CPU 详细信息

通过命令你可以了解关于你的 CPU 的任何信息。使用 lscpu 命令或与它相近的 lshw 命令查看 CPU 的详细信息:

lscpu

lshw -C cpu

在这两个例子中,输出的最后几行都列出了所有 CPU 的功能。你可以查看你的处理器是否支持特定的功能。

使用这些命令的时候,你可以通过使用 grep 命令过滤复杂的信息,并缩小所需信息范围。例如,只查看 CPU 品牌和型号:

lshw -C cpu | grep -i product

仅查看 CPU 的速度(兆赫兹):

lscpu | grep -i mhz

或其 BogoMips 额定功率:

lscpu | grep -i bogo

grep 命令的 -i 参数代表搜索结果忽略大小写。

内存

Linux 命令行使你能够收集关于你的计算机内存的所有可能的详细信息。你甚至可以不拆开计算机机箱就能确定是否可以为计算机添加额外的内存条。

使用 dmidecode 命令列出每根内存条和其容量:

dmidecode -t memory | grep -i size

使用以下命令获取系统内存更多的信息,包括类型、容量、速度和电压:

lshw -short -C memory

你肯定想知道的一件事是你的计算机可以安装的最大内存:

dmidecode -t memory | grep -i max

现在检查一下计算机是否有空闲的插槽可以插入额外的内存条。你可以通过使用命令在不打开计算机机箱的情况下就做到:

lshw -short -C memory | grep -i empty

输出为空则意味着所有的插槽都在使用中。

确定你的计算机拥有多少显卡内存需要下面的命令。首先使用 lspci 列出所有设备信息然后过滤出你想要的显卡设备信息:

lspci | grep -i vga

视频控制器的设备号输出信息通常如下:

00:02.0 VGA compatible controller: Intel Corporation 82Q35 Express Integrated Graphics Controller (rev 02)

现在再加上视频设备号重新运行 lspci 命令:

lspci -v -s 00:02.0

输出信息中 prefetchable 那一行显示了系统中的显卡内存大小:

...
Memory at f0100000 (32-bit, non-prefetchable) [size=512K]
I/O ports at 1230 [size=8]
Memory at e0000000 (32-bit, prefetchable) [size=256M]
Memory at f0000000 (32-bit, non-prefetchable) [size=1M]
...

最后使用下面的命令展示当前内存使用量(兆字节):

free -m

这条命令告诉你多少内存是空闲的,多少命令正在使用中以及交换内存的大小和是否正在使用。例如,输出信息如下:

              total        used        free     shared    buff/cache   available
Mem:          11891        1326        8877      212        1687       10077
Swap:          1999           0        1999

top 命令为你提供内存使用更加详细的信息。它显示了当前全部内存和 CPU 使用情况并按照进程 ID、用户 ID 及正在运行的命令细分。同时这条命令也是全屏输出:

top

磁盘文件系统和设备

你可以轻松确定有关磁盘、分区、文件系统和其他设备信息。

显示每个磁盘设备的描述信息:

lshw -short -C disk

通过以下命令获取任何指定的 SATA 磁盘详细信息,例如其型号、序列号以及支持的模式和扇区数量等:

hdparm -i /dev/sda

当然,如果需要的话你应该将 sda 替换成 sdb 或者其他设备号。

要列出所有磁盘及其分区和大小,请使用以下命令:

lsblk

使用以下命令获取更多有关扇区数量、大小、文件系统 ID 和 类型以及分区开始和结束扇区:

fdisk -l

要启动 Linux,你需要确定 GRUB 引导程序的可挂载分区。你可以使用 blkid 命令找到此信息。它列出了每个分区的唯一标识符(UUID)及其文件系统类型(例如 ext3 或 ext4):

blkid

使用以下命令列出已挂载的文件系统和它们的挂载点,以及已用的空间和可用的空间(兆字节为单位):

df -m

最后,你可以列出所有的 USB 和 PCI 总线以及其他设备的详细信息:

lsusb

lspci

网络

Linux 提供大量的网络相关命令,下面只是几个例子。

查看你的网卡硬件详细信息:

lshw -C network

ifconfig 是显示网络接口的传统命令:

ifconfig -a

但是现在很多人们使用:

ip link show

netstat -i

在阅读输出时,了解常见的网络缩写十分有用:

缩写含义
lo回环接口
eth0enp*以太网接口
wlan0无线网接口
ppp0点对点协议接口(由拨号调制解调器、PPTP VPN 连接或者 USB 调制解调器使用)
vboxnet0vmnet*虚拟机网络接口

表中的星号是通配符,代表不同系统的任意字符。

使用以下命令显示默认网关和路由表:

ip route | column -t

netstat -r

软件

让我们以显示最底层软件详细信息的两条命令来结束。例如,如果你想知道是否安装了最新的固件该怎么办?这条命令显示了 UEFI 或 BIOS 的日期和版本:

dmidecode -t bios

内核版本是多少,以及它是 64 位的吗?网络主机名是什么?使用下面的命令查出结果:

uname -a

快速查询表

用途命令
显示所有硬件信息inxi -Fxzhwinfo --shortlshw -short
CPU 信息lscpulshw -C cpu
显示 CPU 功能(例如 PAE、SSE2)`lshw -C cpugrep -i capabilities`
报告 CPU 位数`lshw -C cpugrep -i width`
显示当前内存大小和配置`dmidecode -t memorygrep -i sizelshw -short -C memory`
显示硬件支持的最大内存`dmidecode -t memorygrep -i max`
确定是否有空闲内存插槽`lshw -short -C memorygrep -i empty`(输出为空表示没有可用插槽)
确定显卡内存数量`lspcigrep -i vga 然后指定设备号再次使用;例如:lspci -v -s 00:02.0 显卡内存数量就是 prefetchable` 的值
显示当前内存使用情况free -mtop
列出磁盘驱动器lshw -short -C disk
显示指定磁盘驱动器的详细信息hdparm -i /dev/sda(需要的话替换掉 sda
列出磁盘和分区信息lsblk(简单) 或 fdisk -l(详细)
列出分区 ID(UUID)blkid
列出已挂载文件系统挂载点以及已用和可用空间df -m
列出 USB 设备lsusb
列出 PCI 设备lspci
显示网卡详细信息lshw -C network
显示网络接口ifconfig -aip link shownetstat -i
显示路由表`ip routecolumn -tnetstat -r`
显示 UEFI/BIOS 信息dmidecode -t bios
显示内核版本网络主机名等uname -a

你有喜欢的命令被我忽略掉的吗?请添加评论分享给大家。


via: https://opensource.com/article/19/9/linux-commands-hardware-information

作者:Howard Fosdick 选题:lujun9972 译者:way-ww 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在 Linux 系统上有许多工具可用于查找硬件规格。在这里,我列出了四种最常用的工具,可以获取 Linux 系统的几乎所有硬件(和软件)细节。好在是这些工具在某些 Linux 发行版上默认预装。我在 Ubuntu 18.04 LTS 桌面上测试了这些工具,但是它们也适用于其他 Linux 发行版。

1、LSHW

lshw(硬件列表)是一个简单但功能齐全的实用程序,它提供了 Linux 系统上的硬件规格的详细信息。它可以报告确切的内存规格、固件版本、主板规格、CPU 版本和速度、缓存规格、总线速度等。信息可以以纯文本、XML 或 HTML 格式输出。

它目前支持 DMI(仅限 x86 和 EFI)、Open Firmware 设备树(仅限 PowerPC)、PCI/AGP、ISA PnP(x86)、CPUID(x86)、IDE/ATA/ATAPI、PCMCIA(仅在 x86 上测试过)、USB 和 SCSI。

就像我已经说过的那样,Ubuntu 默认预装了 lshw。如果它未安装在你的 Ubuntu 系统中,请使用以下命令安装它:

$ sudo apt install lshw lshw-gtk

在其他 Linux 发行版上,例如 Arch Linux,运行:

$ sudo pacman -S lshw lshw-gtk

安装后,运行 lshw 以查找系统硬件详细信息:

$ sudo lshw

你将看到输出详细的系统硬件。

示例输出:

使用 lshw 在 Linux 上查找硬件规格

请注意,如果你没有以 sudo 权限运行 lshw 命令,则输出可能不完整或不准确。

lshw 可以将输出显示为 HTML 页面。为此,请使用:

$ sudo lshw -html

同样,我们可以将设备树输出为 XML 和 json 格式,如下所示:

$ sudo lshw -xml
$ sudo lshw -json

要输出显示硬件路径的设备树,请使用 -short 选项:

$ sudo lshw -short

使用 lshw 显示具有硬件路径的设备树

要列出设备的总线信息、详细的 SCSI、USB、IDE 和 PCI 地址,请运行:

$ sudo lshw -businfo

默认情况下,lshw 显示所有硬件详细信息。你还可以使用类选项查看特定硬件详细信息的硬件信息,例如处理器、内存、显示器等。可以使用 lshw -shortlshw -businfo 找到类选项。

要显示特定硬件详细信息,例如处理器,请执行以下操作:

$ sudo lshw -class processor

示例输出:

*-cpu
description: CPU
product: Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz
vendor: Intel Corp.
physical id: 4
bus info: [email protected]
version: Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz
serial: To Be Filled By O.E.M.
slot: CPU 1
size: 913MHz
capacity: 2300MHz
width: 64 bits
clock: 100MHz
capabilities: x86-64 fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm arat pln pts md_clear flush_l1d cpufreq
configuration: cores=2 enabledcores=1 threads=2

类似的,你可以得到系统细节:

$ sudo lshw -class system

硬盘细节:

$ sudo lshw -class disk

网络细节:

$ sudo lshw -class network

内存细节:

$ sudo lshw -class memory

你也可以像下面这样列出多个设备的细节:

$ sudo lshw -class storage -class power -class volume

如果你想要查看带有硬件路径的细节信息,加上 -short 选项即可:

$ sudo lshw -short -class processor

示例输出:

H/W path Device Class Description
=======================================================
/0/4 processor Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz

有时,你可能希望将某些硬件详细信息共享给别人,例如客户支持人员。如果是这样,你可以从输出中删除潜在的敏感信息,如 IP 地址、序列号等,如下所示。

$ lshw -sanitize

lshw-gtk GUI 工具

如果你对 CLI 不熟悉,可以使用 lshw-gtk,这是 lshw 命令行工具的图形界面。

它可以从终端或 Dash 中打开。

要从终端启动它,只需执行以下操作:

$ sudo lshw-gtk

这是 lshw 工具的默认 GUI 界面。

使用 lshw-gtk 在 Linux 上查找硬件

只需双击“Portable Computer”即可进一步展开细节。

使用 lshw-gtk GUI 在 Linux 上查找硬件

你可以双击后续的硬件选项卡以获取详细视图。

有关更多详细信息,请参阅手册页。

$ man lshw

2、Inxi

Inxi 是我查找 Linux 系统上几乎所有内容的另一个最喜欢的工具。它是一个自由开源的、功能齐全的命令行系统信息工具。它显示了系统硬件、CPU、驱动程序、Xorg、桌面、内核、GCC 版本、进程、RAM 使用情况以及各种其他有用信息。无论是硬盘还是 CPU、主板还是整个系统的完整细节,inxi 都能在几秒钟内更准确地显示它。由于它是 CLI 工具,你可以在桌面或服务器版本中使用它。有关更多详细信息,请参阅以下指南。

3、Hardinfo

Hardinfo 将为你提供 lshw 中没有的系统硬件和软件详细信息。

HardInfo 可以收集有关系统硬件和操作系统的信息,执行基准测试,并以 HTML 或纯文本格式生成可打印的报告。

如果 Ubuntu 中未安装 Hardinfo,请使用以下命令安装:

$ sudo apt install hardinfo

安装后,Hardinfo 工具可以从终端或菜单中进行。

以下是 Hardinfo 默认界面的外观。

使用 Hardinfo 在 Linux 上查找硬件

正如你在上面的屏幕截图中看到的,Hardinfo 的 GUI 简单直观。

所有硬件信息分为四个主要组:计算机、设备、网络和基准。每个组都显示特定的硬件详细信息。

例如,要查看处理器详细信息,请单击“设备”组下的“处理器”选项。

使用 hardinfo 显示处理器详细信息

lshw 不同,Hardinfo 可帮助你查找基本软件规范,如操作系统详细信息、内核模块、区域设置信息、文件系统使用情况、用户/组和开发工具等。

使用 hardinfo 显示操作系统详细信息

Hardinfo 的另一个显着特点是它允许我们做简单的基准测试来测试 CPU 和 FPU 功能以及一些图形用户界面功能。

使用 hardinfo 执行基准测试

建议阅读:

我们可以生成整个系统以及各个设备的报告。要生成报告,只需单击菜单栏上的“生成报告”按钮,然后选择要包含在报告中的信息。

使用 hardinfo 生成系统报告

Hardinfo 也有几个命令行选项。

例如,要生成报告并在终端中显示它,请运行:

$ hardinfo -r

列出模块:

$ hardinfo -l

更多信息请参考手册:

$ man hardinfo

4、Sysinfo

Sysinfo 是 HardInfo 和 lshw-gtk 实用程序的另一个替代品,可用于获取下面列出的硬件和软件信息。

  • 系统详细信息,如发行版版本、GNOME 版本、内核、gcc 和 Xorg 以及主机名。
  • CPU 详细信息,如供应商标识、型号名称、频率、L2 缓存、型号和标志。
  • 内存详细信息,如系统全部内存、可用内存、交换空间总量和空闲、缓存、活动/非活动的内存。
  • 存储控制器,如 IDE 接口、所有 IDE 设备、SCSI 设备。
  • 硬件详细信息,如主板、图形卡、声卡和网络设备。

让我们使用以下命令安装 sysinfo:

$ sudo apt install sysinfo

Sysinfo 可以从终端或 Dash 启动。

要从终端启动它,请运行:

$ sysinfo

这是 Sysinfo 实用程序的默认界面。

sysinfo 界面

如你所见,所有硬件(和软件)详细信息都分为五类,即系统、CPU、内存、存储和硬件。单击导航栏上的类别以获取相应的详细信息。

使用 Sysinfo 在 Linux 上查找硬件

更多细节可以在手册页上找到。

$ man sysinfo

就这样。就像我已经提到的那样,可以有很多工具可用于显示硬件/软件规范。但是,这四个工具足以找到你的 Linux 发行版的所有软硬件规格信息。


via: https://www.ostechnix.com/getting-hardwaresoftware-specifications-in-linux-mint-ubuntu/

作者:sk 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

对于 Linux 图形界面用户和 Windows 用户来说获取系统硬件信息都不算问题,但是对命令行用户来说想要获取这些细节时有点儿麻烦。

甚至我们中的大多数都不知道获取这些信息最好的命令是什么。Linux 中有许多可用的工具集来获取诸如制造商、型号和序列号等硬件信息。

在这里我尝试写下获取这些细节的可能的方式,你可以挑选一种最好用的。

你必须知道所有这些信息,因为当你向硬件制造商提交任何硬件问题时,你会需要它们。

这可以通过 6 种方法来实现,下面我来演示一下怎么做。

方法一:使用 dmidecode 命令

dmidecode 是一个读取电脑 DMI( 桌面管理接口 Desktop Management Interface )表内容并且以人类可读的格式显示系统硬件信息的工具。(也有人说是读取 SMBIOS —— 系统管理 BIOS System Management BIOS

这个表包含系统硬件组件的说明,也包含如序列号、制造商、发布日期以及 BIOS 修订版本号等其它有用的信息。

DMI 表不仅描述了当前的系统构成,还可以报告可能的升级信息(比如可以支持的最快的 CPU 或者最大的内存容量)。

这将有助于分析你的硬件兼容性,比如是否支持最新版本的程序。

# dmidecode -t system

# dmidecode 2.12
# SMBIOS entry point at 0x7e7bf000
SMBIOS 2.7 present.

Handle 0x0024, DMI type 1, 27 bytes
System Information
 Manufacturer: IBM
 Product Name: System x2530 M4: -[1214AC1]-
 Version: 0B
 Serial Number: MK2RL11
 UUID: 762A99BF-6916-450F-80A6-B2E9E78FC9A1
 Wake-up Type: Power Switch
 SKU Number: Not Specified
 Family: System X

Handle 0x004B, DMI type 12, 5 bytes
System Configuration Options
 Option 1: JP20 pin1-2: TPM PP Disable, pin2-3: TPM PP Enable

Handle 0x004D, DMI type 32, 20 bytes
System Boot Information
 Status: No errors detected

推荐阅读: Dmidecode –– 获取 Linux 系统硬件信息的简单方式

方法二:使用 inxi 命令

inxi 是 Linux 上查看硬件信息的一个灵巧的小工具,它提供了大量的选项来获取所有硬件信息,这是我在现有的其它 Linux 工具集里所没见到过的。它是从 locsmif 编写的古老的但至今看来都异常灵活的 infobash fork 出来的。

inxi 是一个可以快速显示系统硬件、CPU、驱动、Xorg、桌面、内核、GCC 版本、进程、内存使用以及大量其它有用信息的脚本,也可以用来做技术支持和调试工具。

# inxi -M
Machine: Device: server System: IBM product: N/A v: 0B serial: MK2RL11
 Mobo: IBM model: 00Y8494 serial: 37M17D UEFI: IBM v: -[VVE134MUS-1.50]- date: 08/30/2013

推荐阅读: inxi —— 一个很棒的查看 Linux 硬件信息的工具

方法三:使用 lshw 命令

lshw(指 硬件监听器 Hardware Lister )是一个小巧灵活的工具,可以生成如内存配置、固件版本、主板配置、CPU 版本和速度、缓存配置、USB、网卡、显卡、多媒体、打印机以及总线速度等机器中各种硬件组件的详细报告。

它通过读取 /proc 目录下各种文件的内容和 DMI 表来生成硬件信息。

lshw 必须以超级用户的权限运行来检测完整的硬件信息,否则它只汇报部分信息。lshw 里有一个叫做 class 的特殊选项,它可以以详细的模式显示特定的硬件信息。

# lshw -C system
enal-dbo01t
 description: Blade
 product: System x2530 M4: -[1214AC1]-
 vendor: IBM
 version: 0B
 serial: MK2RL11
 width: 64 bits
 capabilities: smbios-2.7 dmi-2.7 vsyscall32
 configuration: boot=normal chassis=enclosure family=System X uuid=762A99BF-6916-450F-80A6-B2E9E78FC9A1

推荐阅读: LSHW (Hardware Lister) –– 获取 Linux 硬件信息的灵巧的小工具

方法四:使用 /sys 文件系统

内核在 /sys 目录下的文件中公开了一些 DMI 信息。因此,我们可以通过如下方式运行 grep 命令来轻易地获取机器类型。

# grep "" /sys/class/dmi/id/[pbs]*

或者,可以使用 cat 命令仅打印出特定的详细信息。

# cat /sys/class/dmi/id/board_vendor
IBM

# cat /sys/class/dmi/id/product_name
System x2530 M4: -[1214AC1]-

# cat /sys/class/dmi/id/product_serial
MK2RL11

# cat /sys/class/dmi/id/bios_version
-[VVE134MUS-1.50]-

方法五:使用 dmesg 命令

dmesg 命令是在 Linux 上 syslogdklogd 启动前用来记录内核消息(启动阶段的消息)的。它通过读取内核的环形缓冲区来获取数据。在排查问题或只是尝试获取系统硬件信息时,dmesg 非常有用。

# dmesg | grep -i DMI
DMI: System x2530 M4: -[1214AC1]-/00Y8494, BIOS -[VVE134MUS-1.50]- 08/30/2013

方法六:使用 hwinfo 命令

hwinfo 硬件信息 hardware information )是另一个很棒的工具,用于检测当前系统存的硬件,并以人类可读的方式显示各种硬件模块的详细信息。

它报告关于 CPU、内存、键盘、鼠标、显卡、声卡、存储、网络接口、磁盘、分区、BIOS 以及桥接器等信息。它可以比其它像 lshwdmidecodeinxi 等工具显示更为详细的信息。

hwinfo 使用 libhd 库 libhd.so 来收集系统上的硬件信息。该工具是为 openSuse 特别设计的,后来其它发行版也将它包含在其官方仓库中。

# hwinfo | egrep "system.hardware.vendor|system.hardware.product"
 system.hardware.vendor = 'IBM'
 system.hardware.product = 'System x2530 M4: -[1214AC1]-'

推荐阅读: hwinfo (Hardware Info) –– 一款灵活的检测 Linux 系统硬件信息的工具


via: https://www.2daygeek.com/how-to-check-system-hardware-manufacturer-model-and-serial-number-in-linux/

作者:VINOTH KUMAR 选题:lujun9972 译者:icecoobe 校对:pityonline

本文由 LCTT 原创编译,Linux中国 荣誉推出

最大化你的项目影响。

科学社区正在加速拥抱 自由及开源硬件 Free and Open Source Hardware FOSH)。 研究员正忙于改进他们自己的装备并创造数以百计的基于分布式数字制造模型的设备来推动他们的研究。

热衷于 FOSH 的主要原因还是钱: 有研究表明,和专用设备相比,FOSH 可以节省 90% 到 99% 的花费。基于开源硬件商业模式的科学 FOSH 的商业化已经推动其快速地发展为一个新的工程领域,并为此定期举行 GOSH 年会

特别的是,不止一本,而是关于这个主题的[两本学术期刊]:[Journal of Open Hardware] (由 Ubiquity 出版,一个新的自由访问出版商,同时出版了 Journal of Open Research Software )以及 HardwareX(由 Elsevier 出版的一种自由访问期刊,它是世界上最大的学术出版商之一)。

由于学术社区的支持,科学 FOSH 的开发者在获取制作乐趣并推进科学快速发展的同时获得学术声望。

科学 FOSH 的5个步骤

Shane Oberloier 和我在名为 Designs 的自由访问工程期刊上共同发表了一篇关于设计 FOSH 科学设备原则的文章。我们以滑动式烘干机为例,制造成本低于 20 美元,仅是专用设备价格的三百分之一。科学医疗设备往往比较复杂,开发 FOSH 替代品将带来巨大的回报。

我总结了 5 个步骤(包括 6 条设计原则),它们在 Shane Oberloier 和我发表的文章里有详细阐述。这些设计原则也可以推广到非科学设备,而且制作越复杂的设计越能带来更大的潜在收益。

如果你对科学项目的开源硬件设计感兴趣,这些步骤将使你的项目的影响最大化。

  1. 评估类似现有工具的功能,你的 FOSH 设计目标应该针对实际效果而不是现有的设计(LCTT 译注:作者的意思应该是不要被现有设计缚住手脚)。必要的时候需进行概念证明。
  2. 使用下列设计原则:

    • 在设备生产中,仅使用自由和开源的软件工具链(比如,开源的 CAD 工具,例如 OpenSCADFreeCADBlender)和开源硬件。
    • 尝试减少部件的数量和类型并降低工具的复杂度
    • 减少材料的数量和制造成本。
    • 尽量使用能够分发的部件或使用方便易得的工具(比如 RepRap 3D 打印机)进行部件的数字化生产。
    • 对部件进行参数化设计,这使他人可以对你的设计进行个性化改动。相较于特例化设计,参数化设计会更有用。在未来的项目中,使用者可以通过修改核心参数来继续利用它们。
    • 所有不能使用现有的开源硬件以分布式的方式轻松且经济地制造的零件,必须选择现货产品以方便采购。
  3. 验证功能设计。
  4. 提供关于设计、生产、装配、校准和操作的详尽设备文档。包括原始设计文件而不仅仅是用于生产的。 开源硬件协会 Open Source Hardware Association 对于开源设计的发布和文档化有额外的指南,总结如下:

    • 以通用的形式分享设计文件。
    • 提供详尽的材料清单,包括价格和采购信息。
    • 如果涉及软件,确保代码对大众来说清晰易懂。
    • 作为生产时的参考,必须提供足够的照片,以确保没有任何被遮挡的部分。
    • 在描述方法的章节,整个制作过程必须被细化成简单步骤以便复制此设计。
    • 在线上分享并指定许可证。这为用户提供了合理使用该设计的信息。
  5. 主动分享!为了使 FOSH 发扬光大,设计必须被广泛、频繁和有效地分享以提升它们的存在感。所有的文档应该在自由访问文献中发表,并与适当的社区共享。 开源科学框架 Open Science Framework 是一个值得考虑的优雅的通用存储库,它由 开源科学中心 Center for Open Science 主办,该中心设置为接受任何类型的文件并处理大型数据集。

这篇文章得到了 Fulbright Finland 的支持,该公司赞助了芬兰 Fulbright-Aalto 大学的特聘校席 Joshua Pearce 在开源科学硬件方面的研究工作。


via: https://opensource.com/article/18/2/5-steps-creating-successful-open-hardware

作者:Joshua Pearce 译者:kennethXia 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

制造自己的硬件比以往任何时候都更容易,更便宜。以下是你设计、构建和测试你的第一块板子所需的事情。

 title=

著名的计算机科学家 阿伦凯 Alan Kay 曾经说过:“认真对待软件的人应该制造他们自己的硬件。” 我认为如今就如 同 1982 年他所说的一样。然而,现在和那时之间的不同是硬件变得越来越快、越来越小,最重要的是:更便宜。 现在可以用 5 美元购买一台完整的电脑。

随着大公司降低自己产品的价格,能够生产生产级硬件的制造业生态系统得以增长,这些硬件的成本足够便宜,并且达到了普通人都可以接受的程度。这种可用性以及可负担性正在帮助推动诸如众筹和创客运动之类的事情,但同时它们也让更多的个人能够通过开源硬件参与到开源当中。

探索开源硬件

开源硬件和非开源硬件有很多区别,但是开源硬件联盟(OSHWA)定义了一个大多数人同意的定义,如果你熟悉开源软件,这不会听上去太奇怪:

“开源硬件(OSHW)是一个指有形的造物:机器、设备或者其它物理东西的术语——其设计向公众发布,任何人可以制造、修改、分发并使用那些造物。”

我们身边已经有很多开源硬件了。你可能没有注意到你在使用的主板实际上可能是开源硬件。从低调而多能的 Arduino,一直到像 BeagleBone 系列和 C.H.I.P. 计算机这样的完整功能的电脑,有很多开源硬件的例子,还有更多的在设计中。

硬件可能很复杂,对初学者而言有时候不太理解为什么设计需要某些东西。但开源硬件使你不仅可以看到工作示例,还可以更改这些设计,或者在你自己的设计中剔除或复制所需的部分,就如复制和粘贴一样简单。

我该如何开始?

我们先要指出硬件很“硬”,它很复杂甚至很深奥,你可能用到的工具并不总是最人性化的。任何一个玩微处理器的时间足够长的人都可以向你证实:你会烧坏一些东西,看到神奇的烟雾在某个时刻冒出来。没关系,我们都遇到过,有些人还会反复遭遇,因为我们在做一件事情的前 100 次时都不会得到教训,但不要让这些阻碍你:当做错事情时,你会学到教训,而且你将来还可以将有趣的故事告诉别人。

建模

首先要做的是使用现有的电路板、跳线、面包板以及你要连接的任何设备来建模你想要做的事情。在许多情况下,最简单的事情就是在板上添加更多的 LED,并以新颖的方式让它们闪烁起来。这是一个很好的做出原型的方式,也是一个常见的做法。它看上去并不漂亮,你可能会发现你的线接错了,但这些都是原型 - 你只是想证明硬件可以工作。当硬件不工作时,一定要仔细检查一切,不要害怕寻求帮助 - 有时第二双眼睛会发现你奇怪的接地短路。

设计

当你弄清楚你想要构建的硬件,现在是时候把你的想法从跳线和面包板变成实际的设计了。这时事情会变得让人气馁,但是从小处开始,事情上,可以从熟悉加工和处理这样非常小的地方开始,所以为什么不从制作一块带有 LED 和电池的印刷电路板开始?认真地说,这可能听起来过于简单,但在这里有很多新的基础要了解。

  1. 找到一个电子设计自动化(EDA)工具来使用。 有很多好的开源软件可以选择,但是它们并不总是用户友好的。FritzinggEDA 还有 KiCad 都是开源的,并且其可用性一个比一个好。如果你想要尝试更多的商业软件,那么还有一些其他的选择。Eagle 有个受限的免费版本可供使用,有许多的开源硬件是用它设计的。
  2. 在 EDA 工具中设计你的电路板。 依据你选择的工具,这可能会非常快,或者可能是学习如何设计的很好的练习。这是我建议从小的硬件开始的原因之一。一个带 LED 的电路可以如一块电池、一个电阻、一个 LED 一样简单。电路图非常简单,并且板子也会非常小、非常简单。
  3. 为打样而导出设计。 这与列表中的下一件事情紧密相连,但如果你以前没有这样做过,这也可能是一个令人困惑的过程。当你在导出时,你会有很多细节需要调整,并且需要以某种方式导出以便电路板工厂能确切知道你要做的。
  4. 找到一个电路板工厂。 有许多电路板工厂可以制作你的设计,并且一些比其他更加友好及有帮助。一个特别棒的地方是 OSH Park,这些人非常友好并支持开源硬件。他们也有一个非常扎实的流程来确认你发送给它的就是会被制造的,所以他们值得一试。还有很多其他选择;看看 PCB Shopper,它可以让你比较不同实体 PCB 商家的价格、周转时间等等。
  5. 等待。 这或许是在制造你自己的电路板中最难的一部分了,因为它会花费时间将数字部分变成物理产品。计划好两周时间来拿到你的电路板。这是你继续下个项目的绝好时间,买到或确保你当前制造的所有部分都有了,或者随便试试而不要担心。你的第一块电路板是艰难的 - 你现在非常想要,但是保持耐心。
  6. 修补并提升。 一旦拿到你的板子,是时候上电测试了。如果你是以 LED 电路开始,那么它很容易调试,并且你会得到一些可以工作起来的东西。如果你有更复杂的电路,那么需要有条理并且有耐心。有时候电路不工作,并且你需要用你的调试技能来追踪问题。
  7. 最后,如果你做的是开源硬件,那就发布它。* 我们谈论的是开源硬件,因此确保它包含了一个许可,发布它、共享它,把它放在人们可以看见你所做的地方。你或许会想写一篇博客并提交到如 Hackaday 上面。
  8. 最重要的是,玩得开心。 坦白说,如果你在做一些事但是你不开心,你应该停止这样做。开源硬件可以很有趣,虽然有时是困难而且复杂的。但是不是一切都工作:见鬼,我已经设计了一半的电路不工作;或者我(意外地)在电源和接地之间造成了 12 次短路;这些电路板是双层板:是的。我在这个过程中学到了一些东西:非常多,并且我不会再犯同样的错误。我会做出新的板子,但不是这些。(我会支持并盯着这些板子和它们的错误,悲伤的是,它们不会在我盯着它们时感到良心会痛)。

现在有许多的开源硬件,有许多好的例子从中可以查看、复制、衍生,并且有很多信息使制造硬件变得简单。这就是开源硬件:一个人们制造它们、共享它们的社区,每个人可以制作他们自己的东西并构建他们想要的硬件——而不是他们可以得到的硬件。

(题图:Thomas Hawk on Flickr. CC BY-NC 2.0 。由 Opensource.com 修改)


作者简介:

John 'Warthog9' Hawley - John 在 VMWare 的开源项目办公室为上游开源项目工作。在以前的生活中,他曾在 MinnowBoard 开源硬件项目上工作,领导了 kernel.org 的系统管理团队,并在桌面集群变得很酷之前构建了它们。为了乐趣,他构建了多个明星项目,比如一个受欢迎的英国电视节目 K-9 的复制品,在无人机的飞行计算机视觉处理中完成,设计并制作了一堆自己的硬件。


via: https://opensource.com/article/17/5/8-ways-get-started-open-source-hardware

作者:John 'Warthog9' Hawley 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出