В GNU/Linux, как я могу определить название модели моего процессора?

Я знаю несколько способов получения информации о моем процессоре в среде GNU/Linux, от cat /proc/cpuid для различных утилит, см., например, здесь

Тем не менее, никто из них не говорит мне, как называется моя модель процессора. Я имею в виду, у меня есть (для обсуждения) Intel Pentium 4 530J. Но информация, которую я могу получить об этом, в основном: Производитель / Продавец, Семейное моделирование, Тактовая частота (ну, еще несколько полей, но этого должно быть достаточно, чтобы однозначно определить марку, я думаю).

В Windows у нас есть бесплатные (как в пиве) утилиты, такие как HWInfo, которые сообщают нам название бренда (в моем случае - где-то должно появиться число 530). Разве нет ничего похожего и для Linux?

Заметки:

  • Ничего, требующего графического окружения, пожалуйста. Строго командная строка...
  • HWInfo определяет процессор как "Intel Pentium 4 530J (Prescott, E0)". Это в основном то, что я хочу видеть.

2 ответа

Самый простой, родной будет cat /proc/cpuinfo|grep vendor_id

[geek@phoebe ~]$ cat /proc/cpuinfo | grep vendor_id
vendor_id       : GenuineIntel
vendor_id       : GenuineIntel

(Его напечатано дважды, потому что это двухъядерная система)

Интересно, что это не работает с моим распи, который имеет совсем другой формат

Я не думаю, что он предустановлен во многих дистрибутивах, но lshw тоже подойдет. Использовать -class cpu флаг, чтобы просто выгрузить соответствующую информацию

 sudo lshw - класс процессора
  *-ЦПУ
       описание: процессор
       Продукт: Celeron (заполнить OEM)
       Производитель: Intel Corp.
       физический идентификатор: 34
       информация об автобусе: процессор @0
       версия: Intel(R) Celeron(R) CPU N2807 с частотой 1,58 ГГц
       слот: розетка 0
       размер: 1960 МГц
       емкость: 2400 МГц
       ширина: 64 бита
       часы: 83 МГц

Кроме того, это не работает на моем Raspberry Pi также не так. Однако это должно соответствовать x86 boxen.

Эквивалентное имя поставщика AMD для lshw - Advanced Micro Devices (AMD), а считывание /proc/cpuinfo для vendor_id - AuthenticAMD.

(Вы можете найти полный список vendor_ids здесь)

Короче говоря, флаг поставщика должен идентифицировать "бренд", а флаг продукта - как продаваемый продукт.

Ну, в Википедии есть пример (только для x86_64) листинга сборки для этой цели:

.section .data

s0 : .asciz "Processor Brand String: %.48s\n"
err : .asciz "Feature unsupported.\n"

.section .text

.global main
.type main,@function
.align 32
main:
    pushq   %rbp
    movq    %rsp,   %rbp
    subq    $48,    %rsp
    pushq   %rbx

    movl    $0x80000000,    %eax
    cpuid

    cmpl    $0x80000004,    %eax
    jl  error

    movl    $0x80000002,    %esi
    movq    %rsp,   %rdi

.align 16
get_brand:
    movl    %esi,   %eax
    cpuid

    movl    %eax,   (%rdi)
    movl    %ebx,   4(%rdi)
    movl    %ecx,   8(%rdi)
    movl    %edx,   12(%rdi)

    addl    $1, %esi
    addq    $16,    %rdi
    cmpl    $0x80000004,    %esi
    jle get_brand

print_brand:
    movq    $s0,    %rdi
    movq    %rsp,   %rsi
    xorb    %al,    %al
    call    printf

    jmp end

.align 16
error:
    movq    $err,   %rdi
    xorb    %al,    %al
    call    printf

.align 16
end:
    popq    %rbx
    movq    %rbp,   %rsp
    popq    %rbp
    xorl    %eax,   %eax
    ret

Скопируйте этот код в файл, скажем cpumodel.Sи скомпилируйте его с помощью gcc/gas:

gcc cpumodel.S -o cpumodel

После этого вы можете запустить его:

$ ./cpumodel
Processor Brand String: Intel(R) Core(TM)2 Duo CPU     T7300  @ 2.00GHz

Этот метод, вероятно, не будет работать для вас, так как кажется, что процессоры Pentium 4/D не имеют названия своей модели, доступной таким образом. Как вы можете видеть здесь, данные CPUID не содержат то, что вы хотите.

Другие вопросы по тегам