ฉันจะค้นหารุ่นฮาร์ดแวร์ใน Linux ได้อย่างไร


89

ฉันใช้โปรแกรมอรรถประโยชน์ข้อมูลระบบเพื่อใช้หมายเลขรุ่นของระบบและมาเธอร์บอร์ด

DMI System Manufacturer     LENOVO
DMI System Product          2306CTO
DMI System Version          ThinkPad X230
DMI Motherboard Product     2306CTO  

มีวิธีรับหมายเลขรุ่นในกรณีนี้2306CTOใน Linux หรือไม่



2
เพื่อความชัดเจนดูเหมือนว่าคุณสนใจในผลิตภัณฑ์ฮาร์ดแวร์ไม่ใช่เฉพาะมาเธอร์บอร์ด ตัวอย่างเช่น "ThinkPad X230" เป็นคอมพิวเตอร์ประเภทหนึ่งที่ไม่ใช่มาเธอร์บอร์ด
Bratchley

1
นอกจากนี้คุณยังสามารถรับข้อมูลบางอย่างโดยไม่ต้องแพ็คเกจเพิ่มเติมโดยใช้คำสั่ง dmesg หรือตรวจสอบ / var / log / dmesg *
เบลครุสโซ

คำตอบ:


114

ใช้dmidecode | grep -A3 '^System Information'คำสั่ง คุณจะพบข้อมูลทั้งหมดจาก BIOS และฮาร์ดแวร์ เหล่านี้เป็นตัวอย่างในเครื่องที่แตกต่างกันสามเครื่อง

System Information
    Manufacturer: Dell Inc.
    Product Name: Precision M4700

System Information
    Manufacturer: MICRO-STAR INTERANTIONAL CO.,LTD
    Product Name: MS-7368

System Information
    Manufacturer: HP
    Product Name: ProLiant ML330 G6

25
FWIW ก็อาจจะดีกว่าที่จะได้รับในนิสัยของการกรองประเภท DMI grepเฉพาะแทนที่จะใช้ dmidecode -t1สำหรับรูปแบบฮาร์ดแวร์โดยรวมที่จะเป็น วิธีนี้ทำให้คุณมีวิธีดึงข้อมูลออกจาก dmidecode อย่างง่ายและเพียงแค่ต้องจำประเภท DMI ทั่วไป นิสัยจะมีประโยชน์จริง ๆ เมื่อตรวจสอบการติดตั้ง RAM ( dmidecode -t17) เมื่อ grep สามารถสร้างผลลัพธ์ที่น่าเกลียดได้หากคุณป้อนข้อมูลผิด นอกจากนี้ผลลัพธ์ที่ได้-tจะสมบูรณ์มากขึ้น
Bratchley

@ JoelDavis ฉันไม่เคยรู้จักตัวเลือกเหล่านั้นมาก่อน ฉันจะใช้พวกเขา ขอบคุณ
eppesuig

13
หมายเหตุ: ต้องการรูท หากคุณต้องการข้อมูลทั้งหมดที่คุณมีสิทธิ์ใช้งานภายใต้ผู้ใช้ปัจจุบันให้ใช้: cat /sys/devices/virtual/dmi/id/*(และอนุญาตให้คุณรับชื่อรุ่นและการจัดเรียงโดยใช้ผู้ใช้ทั่วไป)
qwertzguy

การส่งออกไปป์ของ dmidecode ที่ไม่มีอาร์กิวเมนต์ให้ grep นั้นน่าสนใจ แต่ไม่ใช่วิธีที่มีประสิทธิภาพที่สุดในการรับข้อมูล dmidecode สามารถพิมพ์สิ่งที่ OP ต้องการโดยระบุสตริงคำหลัก 'system-product-name': sudo dmidecode -s system-product-name
cjac

ฉันคิดว่ามันคุ้มค่าที่จะทราบว่าระบบเก่า ๆ ไม่มีธงใช้ได้dmidecodeหรือแม้แต่หน้าคน ฉันคิดว่าคำตอบข้างต้นเป็นคำตอบที่พกพาได้มากที่สุดของ Linux -tและ-sธงที่มีประโยชน์เกี่ยวกับระบบใหม่สำหรับการตรวจสอบ
Joshua Detwiler

32

ลองsudo dmidecode -t baseboardสำหรับข้อมูลเต็มรูปแบบใน DMI เสื้อเนื้อหาสามารถที่เกี่ยวข้องกับกระดานข้างก้นของคุณในรูปแบบการอ่านของมนุษย์ สำหรับชื่อผลิตภัณฑ์ระบบคุณสามารถใช้อย่างใดอย่างหนึ่ง (พิมพ์dmidecode -sเพื่อรับรายการคำหลัก trings s ):

sudo dmidecode -s system-product-name
sudo dmidecode -s baseboard-product-name

ตัวเลือกอื่น ๆ ที่เกี่ยวข้องสำหรับข้อมูลเมนบอร์ดคือ

sudo dmidecode -s system-version
sudo dmidecode -s baseboard-version
sudo dmidecode -s system-manufacturer
sudo dmidecode -s baseboard-manufacturer

ลองsudo dmidecode -sดูรายการทั้งหมดของสตริง DMI ของระบบที่มีอยู่


24

สำหรับบันทึกข้อมูลส่วนใหญ่นี้มีอยู่ภายใต้ / sys / อุปกรณ์ / virtual / dmi / id บน Linuces ที่ทันสมัย ​​(เช่นตั้งแต่อย่างน้อย 2011) และมากถ้ามัน - สะดุดตาไม่รวมถึงหมายเลขซีเรียล - สามารถอ่านได้โดยผู้ใช้ปกติ . เพื่อตอบคำถามของผู้โพสต์ดั้งเดิมproduct_nameคือไฟล์ที่มีชื่อรุ่นของระบบ

bios_date
bios_vendor
bios_version
board_asset_tag
board_name
board_serial
board_vendor
board_version
chassis_asset_tag
chassis_serial
chassis_type
chassis_vendor
chassis_version
modalias
power
product_name
product_serial
product_uuid
product_version
smbios_version
subsystem
sys_vendor
uevent

และนี่จะเป็นสคริปต์แบบมีประโยชน์ที่ผู้ใช้สามารถเรียกใช้เพื่อแสดงความดี:

#!/bin/bash

cd /sys/devices/virtual/dmi/id/
for f in *; do
        printf "$f "
        cat $f 2>/dev/null || echo "***_Unavailable_***"
done

ไม่มีชื่อไฟล์ที่มีช่องว่างในพวกเขาดังนั้นข้อมูลนี้จะถูกจัดการได้อย่างง่ายดายโดยสาธารณูปโภคเช่น awk เพื่อวัตถุประสงค์ชั่วร้ายของคุณเอง!


ที่ดีที่ดีกับ Linux-based มากที่สุดของถ้าคุณไม่พบเครื่องมือในสิ่งที่คุณต้องการ (OS, ข้อมูลฮาร์ดแวร์) เป็นหนึ่งใน หรือ/sys /procขอบคุณ
Eduard Florinescu

2
น่ากลัว! วิธีแก้ปัญหาที่ใช้งานได้สำหรับผู้ที่ไม่รูท!
qwertzguy

1
โปรดทราบว่าข้อมูล dmi นี้อาจใช้ได้กับพีซีที่ใช้ Intel เท่านั้น ฉันมีอุปกรณ์เครือข่ายที่ขับเคลื่อนโดยคอมพิวเตอร์ ARM ที่ใช้ Linux และไม่มีไมโครไดรฟ์หรือพา ธ ใน / sys พร้อมใช้งาน
Mike S

12

บนระบบ Linux ที่ทันสมัยคุณสามารถทำสิ่งนี้ได้อย่างง่ายดายในฐานะผู้ใช้:

cat /sys/devices/virtual/dmi/id/sys_vendor

cat /sys/devices/virtual/dmi/id/product_name

นอกจากนี้ยังทำงานได้ดีสำหรับ CoreOS dmidecodeซึ่งไม่ได้มาพร้อมกับ

หมายเหตุ : นี้ได้รับการกล่าวถึงในคำตอบอื่น ๆ / ความเห็น dmidecodeแต่หวังว่าจะปรากฏขึ้นที่นี่เช่นนี้เป็นวิธีที่ง่ายกว่าการใช้



4

ทุกคนที่นี่พูดถึงdmidecodeคำสั่งที่ยอดเยี่ยมและ-tพารามิเตอร์ แต่ด้วยsudo lshw -shortคุณจะได้รับชื่อผลิตภัณฑ์และรุ่นได้อย่างง่ายดาย:

$ sudo lshw -short
H/W path       Device     Class          Description
====================================================
                          system         UX303UB (ASUS-NotebookSKU)
/0                        bus            UX303UB

คำสั่งที่ยอดเยี่ยมอื่น ๆ สำหรับการรับข้อมูลฮาร์ดแวร์:

  • lscpu # ดีกว่า / proc / cpuinfo
  • lsusb [-v]
  • lsblk[-a] # ดีกว่า df -h ข้อมูลอุปกรณ์ที่ถูกบล็อก
  • sudo hdparm /dev/sda1

นอกเหนือจาก lshw แล้วไม่มีคำสั่งใดที่ตอบคำถามที่ OP ถาม พวกเขากำลังสาธารณูปโภคมีประโยชน์อย่างมากใช่ แต่ไม่ได้ว่าอยู่ในขอบเขตของคำถาม ...
Shadur

@shadur ทำไมคุณถึงลงคะแนนฉัน ฉันตอบคำถามด้วยวิธีที่คำตอบอื่นใดทำแล้วเพียงแค่ให้ข้อมูลที่มีประโยชน์พิเศษคำสั่งสวย ๆ ในโพสต์ที่ยอดเยี่ยมใด ๆ
Pablo

2

เครื่องมือข้อมูลระบบinxiแสดงข้อมูลอย่างหมดจดและไม่ต้องทำการตรวจสอบทั้งหมดของ dmidecode / / sys ด้วยตนเอง ดูman pageสำหรับรายการคุณสมบัติเต็มรูปแบบ

สนับสนุนระบบที่มีและไม่มี / sys แม้ว่าจะมี / sys data แต่คุณไม่จำเป็นต้องรูทเพื่อรับเอาท์พุทฮาร์ดแวร์เต็มรูปแบบด้วย dmidecode ที่คุณทำ

$inxi -M
Machine:   Device: desktop Mobo: ASRock model: A770DE+
           BIOS: American Megatrends v: P1.70 date: 09/07/2010

ในฐานะที่เป็น root คุณสามารถบังคับให้ข้อมูลมาจาก dmidecode ได้เช่นกัน

#inxi -! 33 -Mxxx ## inxi 2.3.56 and older
#inxi --dmidecode -Mxxx ## inxi 2.9 and newer
Machine:   Device: desktop Mobo: ASRock model: A770DE+
           BIOS: American Megatrends v: P1.70 rv 8.14 date: 09/07/2010 rom size: 1024 kB

inxi มีอยู่ใน repos ของการกระจาย GNU / Linux ส่วนใหญ่หรือสามารถติดตั้งได้โดยตรงโดยเพียงแค่คว้าสคริปต์และติดตั้ง

ตัวอย่างโหมดเอาต์พุตพื้นฐาน (-b)

$inxi -bxx
System:    Host: my-box Kernel: 4.6-6.1-liquorix-686-pae i686 (32 bit gcc: 5.4.1)
           Desktop: Xfce 4.12.3 (Gtk 2.24.30) dm: lightdm
           Distro: Debian GNU/Linux 7.0
Machine:   Device: desktop Mobo: ASRock model: A770DE+
           BIOS: American Megatrends v: P1.70 date: 09/07/2010
CPU:       Dual core AMD Athlon 64 X2 5000+ (-MCP-) speed/max: 1000/2600 MHz
Graphics:  Card: NVIDIA GT218 [GeForce 210] bus-ID: 02:00.0 chip-ID: 10de:0a65
           Display Server: X.Org 1.19.0 driver: nvidia
           Resolution: 1280x1024@60.02hz, 1280x1024@60.02hz
           GLX Renderer: GeForce 210/PCIe/SSE2/3DNOW!
           GLX Version: 3.3.0 NVIDIA 340.101 Direct Rendering: Yes
Network:   Card: Intel 82574L Gigabit Network Connection
           driver: e1000e v: 3.2.6-k port: c800
           bus-ID: 01:00.0 chip-ID: 8086:10d3
Drives:    HDD Total Size: 1080.2GB (36.8% used)
Info:      Processes: 313 Uptime: 26 days Memory: 4457.2/8094.0MB
           Init: systemd v: 232 runlevel: 5 default: 3
           Gcc sys: 6.3.0 alt: 4.0/4.2/4.4/4.5/4.6/4.7/4.8/4.9/5
           Client: Shell (bash 4.4.51 running in xfce4-terminal) inxi: 2.3.8

รูปแบบเอาต์พุตใหม่ใน inxi 3.x

inxi -bxxxzy80
System:
  Host: yawn Kernel: 4.17.0-10.1-liquorix-amd64 x86_64 bits: 64 compiler: gcc 
  v: 7.3.0 Desktop: Xfce 4.12.4 tk: Gtk 2.24.31 info: xfce4-panel wm: xfwm4 
  dm: lightdm 1.18.3 Distro: Debian GNU/Linux buster/sid 
Machine:
  Type: Desktop System: Gigabyte product: X470 AORUS ULTRA GAMING v: N/A 
  serial: <filter> 
  Mobo: Gigabyte model: X470 AORUS ULTRA GAMING-CF v: x.x serial: <filter> 
  UEFI [Legacy]: American Megatrends v: F2 date: 03/14/2018 
CPU:
  6-Core: AMD Ryzen 5 2600 type: MT MCP arch: Zen speed: 2300 MHz 
  min/max: 1550/3400 MHz 
Graphics:
  Card-1: NVIDIA GT218 [GeForce 210] vendor: Gigabyte driver: nvidia 
  v: 340.107 bus ID: 09:00.0 chip ID: 10de:0a65 
  Display: x11 server: X.Org 1.20.0 driver: nvidia 
  resolution: 1280x1024~60Hz, 1280x1024~60Hz 
  OpenGL: renderer: GeForce 210/PCIe/SSE2 v: 3.3.0 NVIDIA 340.107 
  direct render: Yes 
Network:
  Card-1: Intel I211 Gigabit Network driver: igb v: 5.4.0-k port: f000 
  bus ID: 06:00 chip ID: 8086:1539 
  Card-2: Apple Ethernet Adapter [A1277] type: USB driver: asix bus ID: 1:13 
  chip ID: 05ac:1402 
Drives:
  Local Storage: total: 1.08 TiB used: 496.05 GiB (45.0%) 
Info:
  Processes: 339 Uptime: 3d 6h 22m Memory: 31.43 GiB used: 4.04 GiB (12.8%) 
  Init: systemd v: 239 runlevel: 5 Compilers: gcc: 8.1.0 alt: 5/6/7/8 
  Shell: bash v: 4.4.23 running in: xfce4-terminal inxi: 3.0.20

ดูดี. ฉันสงสัยว่ามีวิธีที่เครื่องมือนี้จะส่งคืนระบบหรือหมายเลขซีเรียลบอร์ดหรือไม่? จากนั้นคุณไม่จำเป็นต้องรูทสำหรับระบบวิปัสสนาแบบนี้ (ฉันคาดเดาคำตอบคือ "ไม่")
Mike S

ก่อนการเปลี่ยนแปลงในเคอร์เนล linux ซึ่งสร้างระบบไฟล์ / sys คุณสามารถรับหมายเลขซีเรียลสำหรับสิ่งเหล่านี้ได้โดยไม่ต้องเป็น root แต่หลังจากการเปลี่ยนแปลงซึ่งอยู่นอกเหนือการควบคุมของ inxi คุณต้องเป็น root และ ไม่มีวิธีแก้ไขสิ่งนั้น เห็นได้ชัดว่านั่นเป็นการตัดสินใจที่โง่เขลาและการถดถอยบนพื้นฐานของความคิดที่ไม่ดีที่ใครบางคนมี แต่ไม่มีสิ่งใดที่ inxi สามารถทำได้เพื่อแก้ไขปัญหานั้น sudo inxi -Mxxx ส่งคืน serials เสมอ ในบางระบบไม่จำเป็นต้องใช้ sudo ขึ้นอยู่กับรุ่นเคอร์เนลที่ฉันคิด
Lizardx

โปรดทราบว่า inxi 3.0 และใหม่กว่าห้ามใช้ -! 33 อีกต่อไปพวกเขาใช้ --dmidecode
Lizardx

1

คุณสามารถใช้ได้:

dmidecode -t 1

ซึ่งแสดงผลเช่น:

System Information
    Manufacturer: Dell Inc.
    Product Name: PowerEdge R210 II
    Version: Not Specified
    Serial Number: 1234ABC
    UUID: ABABABAB-0101-2323-5A5A-ABCDEF123456
    Wake-up Type: Power Switch
    SKU Number: Not Specified
    Family: Not Specified

1
# dmidecode -t baseboard

หากได้รับการสนับสนุนจากผู้ผลิตจะให้ข้อมูลแก่คุณ

dmidecode เป็นเครื่องมือสำหรับทิ้งเนื้อหาตาราง DMI ของคอมพิวเตอร์ (บางคนบอกว่า SMBIOS) ในรูปแบบที่มนุษย์สามารถอ่านได้ ตารางนี้มีคำอธิบายของส่วนประกอบฮาร์ดแวร์ของระบบรวมถึงข้อมูลที่เป็นประโยชน์อื่น ๆ เช่นหมายเลขซีเรียลและการแก้ไข BIOS ต้องขอบคุณตารางนี้คุณสามารถดึงข้อมูลนี้ได้โดยไม่ต้องตรวจสอบฮาร์ดแวร์จริง แม้ว่านี่จะเป็นจุดที่ดีในแง่ของความเร็วรายงานและความปลอดภัย แต่ก็ทำให้ข้อมูลที่นำเสนอนั้นไม่น่าเชื่อถือ


grepต้องการคำพูด
Joshua Detwiler

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.