우분투는 어떻게 노트북의 제조사와 모델을 알고 있습니까?


33

새 랩톱에 방금 15.04를 설치했으며 설치 프로그램에서 컴퓨터 이름을 제안했습니다 carl-lenovo-g710.

랩탑은 실제로 Lenovo G710이지만 설치 프로그램은 그것을 어떻게 알았습니까?

나는 노력 sudo lshw | grep -i product했다.

product: Intel(R) Pentium(R) CPU 3550M @ 2.30GHz
product: Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller
product: 4th Gen Core Processor Integrated Graphics Controller
product: Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller
product: 8 Series/C220 Series Chipset Family USB xHCI
product: xHCI Host Controller
product: xHCI Host Controller
product: Flash Card Reader/Writer
product: Card  Reader
product: Lenovo EasyCamera
product: 8 Series/C220 Series Chipset Family MEI Controller #1
product: 8 Series/C220 Series Chipset Family USB EHCI #2
product: EHCI Host Controller
product: 8 Series/C220 Series Chipset High Definition Audio Controller
product: 8 Series/C220 Series Chipset Family PCI Express Root Port #2
product: QCA9565 / AR9565 Wireless Network Adapter
product: 8 Series/C220 Series Chipset Family PCI Express Root Port #3
product: QCA8172 Fast Ethernet
product: 8 Series/C220 Series Chipset Family USB EHCI #1
product: EHCI Host Controller
product: HM86 Express LPC Controller
product: 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode]
product: 8 Series/C220 Series Chipset Family SMBus Controller
product: DVDRAM GTA0N
product: ST1000LM024 HN-M

그런 다음 sudo lshw | grep -i 710아무것도 시도 하지 않았습니다.

그래서 lshw제조사와 모델을 알지 못한다. 이 정보는 어디에 저장되어 있습니까?


1
아마도 dmidecode?
hanetzer

명확히하기 위해, 시스템에서 정보가 어디에 있는지 / 무엇을 감지하는지 알고 싶습니까? 아니면 그 정보를 직접 찾는 방법?
힐튼 Shumway

@HiltonShumway 시스템에서 정보가있는 곳.
Carl H

답변:


37

우분투 설치가 라고 편재 . 편재 2.3.18변경 사항 언급

"Use dmidecode to get a more unique suffix for the hostname (LP: #628087)."

정확한 파이썬 코드는 다음과 같습니다.

def dmimodel():
    model = ''
    kwargs = {}
    if os.geteuid() != 0:
        # Silence annoying warnings during the test suite.
        kwargs['stderr'] = open('/dev/null', 'w')
    try:
        proc = subprocess.Popen(
            ['dmidecode', '--quiet', '--string', 'system-manufacturer'],
            stdout=subprocess.PIPE, universal_newlines=True, **kwargs)
        manufacturer = proc.communicate()[0]
        if not manufacturer:
            return
        manufacturer = manufacturer.lower()
        if 'to be filled' in manufacturer:
            # Don't bother with products in development.
            return
        if 'bochs' in manufacturer or 'vmware' in manufacturer:
            model = 'virtual machine'
            # VirtualBox sets an appropriate system-product-name.
        else:
            if 'lenovo' in manufacturer or 'ibm' in manufacturer:
                key = 'system-version'
            else:
                key = 'system-product-name'
            proc = subprocess.Popen(
                ['dmidecode', '--quiet', '--string', key],
                stdout=subprocess.PIPE,
                universal_newlines=True)
            model = proc.communicate()[0]
        if 'apple' in manufacturer:
            # MacBook4,1 - strip the 4,1
            model = re.sub('[^a-zA-Z\s]', '', model)
        # Replace each gap of non-alphanumeric characters with a dash.
        # Ensure the resulting string does not begin or end with a dash.
        model = re.sub('[^a-zA-Z0-9]+', '-', model).rstrip('-').lstrip('-')
        if model.lower() == 'not-available':
            return
        if model.lower() == "To be filled by O.E.M.".lower():
            return
    except Exception:
        syslog.syslog(syslog.LOG_ERR, 'Unable to determine the model from DMI')
    finally:
        if 'stderr' in kwargs:
            kwargs['stderr'].close()
    return model

LP : # 628087

편집 : 코드를 다운로드하여 자신을 탐색 할 수 있습니다 :

cd /tmp
apt-get source ubiquity

1
dmidecode이 정보 는 어디서 구할 수 있습니까?
ζ--

9
@hexafraction PC 생산자 (이 경우 Lenovo)가 읽기 전용 메모리에 저장하며 DMI 라는 인터페이스를 통해 시스템 관리자가 사용할 수 있습니다 . 그것이 dmidecode읽는 것입니다. Windows도 그것을 알 수 있습니다.
Federico Poloni

20

dmidecode시스템에 대한 모든 정보를 보여줍니다. 다음 명령을 사용하여 살펴보십시오.

sudo dmidecode | grep -A 9 "System Information"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.