Em teoria, o comando que você está procurando é lscpu
, embora na verdade não diga o nome da geração da CPU como uma string de texto.
Exemplo de saída:
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 78
Stepping: 3
CPU MHz: 2808.000
BogoMIPS: 5616.00
Hypervisor vendor: Microsoft
Virtualization type: full
Os valores relevantes são Família da CPU e Modelo . Você pode compará-los (depois de converter valores decimais em valores hexadecimais, ou vice-versa) em relação a este gráfico da Intel se você tiver uma CPU mais antiga, mas esse gráfico não tiver sido atualizado desde 2012. Há um comentário abaixo dando mais informações (maio de 2015 ).
Por exemplo, nos dados acima, minha CPU tem família 6 e modelo 78 (0x4E). Infelizmente, isso não está listado na tabela.
Um comando alternativo é cat /proc/cpuinfo
. Isso produz basicamente as mesmas informações, mas também a linha nome do modelo , que conterá o número do modelo do processador. Por exemplo, recebo o seguinte:
$cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 78
model name : Intel(R) Core(TM) i7-6600U CPU @ 2.60GHz
stepping : 3
microcode : 0xffffffff
cpu MHz : 2808.000
cache size : 256 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 6
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm pni pclmulqdq est tm2 ssse3 fma cx16 xtpr sse4_1 sse4_2 movbe popcnt aes xsave osxsave avx f16c rdrand hypervisor
bogomips : 5616.00
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
...
A partir disso, você pode ver que tenho um Intel (R) Core (TM) i7-6600U , que é uma sexta geração (primeiro número após a parte "i7-"; consulte A página da Intel sobre números de processadores ) Processador da família principal. Infelizmente, não há uma maneira realmente fácil de mapear essas informações para uma sequência legal como "Skylake".
A melhor maneira que encontrei é ir para o link e colocar sua string de modelo ("i7-6600U") em na caixa de pesquisa, selecione a coisa que aparece (deve haver apenas uma) e marque a caixa "Produtos relacionados" à direita. Haverá uma linha dizendo "Produtos anteriormente < CODENAME >" que você pode usar para encontrar o codinome. Eu percebo que isso está longe de ser uma boa abordagem adequada para um script, mas se tudo o que importa é a geração, você pode rotular essa parte com o que está acima.