Kirjoittaja Aihe: Miten selvittää koneen arkkitehtuuri?  (Luettu 6016 kertaa)

Rommel2

  • Käyttäjä
  • Viestejä: 73
    • Profiili
Miten selvittää koneen arkkitehtuuri?
« : 08.08.12 - klo:20.48 »
Terve,

Yritän löytää varman tavan selvittää tietokoneen arkkitehtuurin. Kyse on siis laitteen arkkitehtuurista eikä käyttöjärjestelmän arkkitehtuurista (32/64-bit). Tavoite on löytää yksi komento, jolla voi selvittää mitä arkkitehtuuria käyttäjän kone on seuraavista neljästä arkkitehtuurista:

x86
x86-64/amd64
MIPS
ARM

Kysymyksiä:

1. Onko jompikumpi seuraavista varma tapa selvittää koneen arkkitehtuuri?

lshw -C cpu | grep capabilities

tai

cat /proc/cpuinfo | grep flags

2. Millaisia lippuja näistä komennoista voi saada kullekin arkkitehtuurille?

Koodia: [Valitse]
lshw -C cpu | grep capabilities

x86
x86-64/amd64        x86-64
MIPS
ARM

cat /proc/cpuinfo | grep flags

x86
x86-64/amd64        lm
MIPS
ARM

Tavoitteeni on kirjoittaa aiheesta ohjeet h-node.org -sivustolle, joka on laitetietokanta, joka kerää tietoa laitteista jotka toimivat (tai eivät toimi) vain vapailla ohjelmilla (ajurit, firmware etc.).
« Viimeksi muokattu: 08.08.12 - klo:20.55 kirjoittanut Rommel2 »

Jakke77

  • Käyttäjä
  • Viestejä: 3985
  • Oulu (Oinaansuo)
    • Profiili
Vs: Miten selvittää koneen arkkitehtuuri?
« Vastaus #1 : 09.08.12 - klo:06.45 »
eikö pelkkä sudo lshw listaa kaiken
U_G_H

Aspire E5-575G V1.27 CPU: Intel i3-6100U (4) @ 2.300GHz GPU: Intel® HD Graphics 520 GPU: NVIDIA GeForce 940MX Samsung SSD 970 EVO Plus 500GB

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3403
    • Profiili
Vs: Miten selvittää koneen arkkitehtuuri?
« Vastaus #2 : 09.08.12 - klo:08.51 »
Lainaus
2. Millaisia lippuja näistä komennoista voi saada kullekin arkkitehtuurille?

Näistä pääsee asian jäljille mutta teettää varmaan hieman pähkäilyä miten edetä:

http://unix.stackexchange.com/questions/43539/what-do-the-flags-in-proc-cpuinfo-mean

http://en.wikipedia.org/wiki/CPUID#EAX.3D1%3a_Processor_Info_and_Feature_Bits

http://lxr.linux.no/linux+%2a/arch/x86/include/asm/cpufeature.h

Pelkästään Intel: ä koskeva 595 sivuinen dokumentti "Intel® Advanced Vector Extensions
Programming Reference":

http://software.intel.com/file/36945


Lyhyt ohjelmallinen tapa tehdä tuo ympäristön tunnistus kiinnostaa kyllä itseänikin.  Tuolla saat pelkät liput muuttujaan "flags":

Koodia: [Valitse]
#!/bin/bash
a=$(grep "flags" /proc/cpuinfo)
flags=$(echo ${a##*:})



« Viimeksi muokattu: 09.08.12 - klo:10.56 kirjoittanut ajaaskel »

Rommel2

  • Käyttäjä
  • Viestejä: 73
    • Profiili
Vs: Miten selvittää koneen arkkitehtuuri?
« Vastaus #3 : 11.08.12 - klo:19.01 »
En saa selkoa MIP:istä ja ARM:stä, mutta luulen että olen löytänyt nopean ja varman tavan selvittää ero x86:n ja x86-64:n välillä:

Koodia: [Valitse]
uname -m

Jos saadaan i386, niin arkkitehtuuri on x86.
Jos saadaan i686, niin ajetaan seuraava komento:

Koodia: [Valitse]
cat /proc/cpuinfo | grep lm

Jos lm löytyy, niin arkkitehtuuri on x86-64.
Jos ei, niin se on x86

Onko tämä 100% luotettava tapa? Mitä jos käyttäjällä onkin MIPS tai ARM? Miten ne vaikuttavat ylläolevaan?

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11597
    • Profiili
    • Tomin kotisivut
Vs: Miten selvittää koneen arkkitehtuuri?
« Vastaus #4 : 11.08.12 - klo:21.00 »
En saa selkoa MIP:istä ja ARM:stä, mutta luulen että olen löytänyt nopean ja varman tavan selvittää ero x86:n ja x86-64:n välillä:

Koodia: [Valitse]
uname -m

Jos saadaan i386, niin arkkitehtuuri on x86.
Luulisin, että tuolla ei voi selvittää onko kone varmasti vain 32-bittinen. lm-lippu kyllä kertoo että kone on varmasti 64-bittinen.

Mitä jos käyttäjällä onkin MIPS tai ARM? Miten ne vaikuttavat ylläolevaan?
Kännykästäni:
Koodia: [Valitse]
~ $ uname -m
armv7l
~ $ cat /proc/cpuinfo |grep flags
~ $ cat /proc/cpuinfo |grep -i features
Features        : swp half thumb fastmult vfp edsp neon vfpv3
~ $
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

ajaaskel

  • Palvelimen ylläpitäjä
  • Käyttäjä
  • Viestejä: 3403
    • Profiili
Vs: Miten selvittää koneen arkkitehtuuri?
« Vastaus #5 : 11.08.12 - klo:22.48 »
Se "uname -m" kertoo vain käynnissolevan käyttöjärjestelmän bittisyyden. Jos ajat 64-bittisessä koneessa vuoroon 64 tai 32 bittistä Ubuntua niin tuolla näkee kumpi on käynnissä.  Jotkut dokumentit kertovat väärin tuosta komennosta että se näytäisi koneen bittisyyden.

Rommel2

  • Käyttäjä
  • Viestejä: 73
    • Profiili
Vs: Miten selvittää koneen arkkitehtuuri?
« Vastaus #6 : 13.08.12 - klo:22.19 »
cat /proc/cpuinfo | grep LIPPU

Onko olemassa LIPPUa, josta selviää että kyseessä on varmasti x86 arkkitehtuuri?