उबंटू मेरे लैपटॉप के मेक और मॉडल को कैसे जानता है?


33

मैंने अभी अपने नए लैपटॉप पर 15.04 स्थापित किए हैं, और इंस्टॉलर ने कंप्यूटर का नाम सुझाया है carl-lenovo-g710

लैपटॉप वास्तव में एक लेनोवो 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?
हंटरज़र

स्पष्ट करने के लिए, आप जानना चाहते हैं कि सिस्टम में वह जानकारी कहाँ पाई जाती है / जो इसका पता लगाती है? या खुद उस जानकारी को कैसे पाएं?
हिल्टन शुमवे

@HiltonShumway उस सिस्टम में जहां जानकारी मिलती है।
कार्ल एच

जवाबों:


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

एलपी: # 628087

संपादित करें: आप इसे डाउनलोड करके अपने आप को कोड ब्राउज़ कर सकते हैं:

cd /tmp
apt-get source ubiquity

1
तो dmidecodeयह जानकारी कहां से मिलती है?
----

9
@hexafraction यह आपके पीसी, लेनोवो के निर्माता द्वारा इस मामले में केवल-पढ़ने वाली मेमोरी में संग्रहित है, और सिस्टम प्रशासक के लिए उपलब्ध है जिसे DMI नामक इंटरफेस के माध्यम से उपलब्ध कराया गया है । यही dmidecodeपढ़ता है। विंडोज यह भी जान सकता है।
फेडेरिको पोलोनी

20

dmidecodeआपके सिस्टम के बारे में सारी जानकारी दिखाता है। कमांड का उपयोग करके देखें:

sudo dmidecode | grep -A 9 "System Information"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.