Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Laitealue => Aiheen aloitti: Rommel2 - 08.08.12 - klo:20.48

Otsikko: Miten selvittää koneen arkkitehtuuri?
Kirjoitti: Rommel2 - 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 (http://www.h-node.org) -sivustolle, joka on laitetietokanta, joka kerää tietoa laitteista jotka toimivat (tai eivät toimi) vain vapailla ohjelmilla (ajurit, firmware etc.).
Otsikko: Vs: Miten selvittää koneen arkkitehtuuri?
Kirjoitti: Jakke77 - 09.08.12 - klo:06.45
eikö pelkkä sudo lshw listaa kaiken
Otsikko: Vs: Miten selvittää koneen arkkitehtuuri?
Kirjoitti: ajaaskel - 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://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://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 (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 (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##*:})



Otsikko: Vs: Miten selvittää koneen arkkitehtuuri?
Kirjoitti: Rommel2 - 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?
Otsikko: Vs: Miten selvittää koneen arkkitehtuuri?
Kirjoitti: Tomin - 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
~ $
Otsikko: Vs: Miten selvittää koneen arkkitehtuuri?
Kirjoitti: ajaaskel - 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.
Otsikko: Vs: Miten selvittää koneen arkkitehtuuri?
Kirjoitti: Rommel2 - 13.08.12 - klo:22.19
cat /proc/cpuinfo | grep LIPPU

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