Kirjoittaja Aihe: Miten selvittää koneen arkkitehtuuri?  (Luettu 4161 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ä: 3933
  • 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ä: 3401
    • 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 »
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

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ä: 11441
    • 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ä: 3401
    • 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.
Autamme ilolla ja ilmaiseksi omalla ajallamme.  Ethän vaadi, uhoa tai isottele näin saamasi palvelun johdosta.

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?