Как получить серийный номер?

Где я могу найти серийный номер Raspberry Pi, который я использую в настоящее время?

54 голоса | спросил Alex Chamberlain 4 +04002012-10-04T23:00:32+04:00312012bEurope/MoscowThu, 04 Oct 2012 23:00:32 +0400 2012, 23:00:32

8 ответов


63

Серийный номер можно найти в /proc /cpuinfo; например,

pi @ raspberrypi: ~ $ cat /proc /cpuinfo
 Процессор: ARMv6-совместимый процессор rev 7 (v6l)
 BogoMIPS: 697,95
 Особенности: swp half thumb fastmult vfp edsp java tls
 Процессор: 0x41
 Архитектура процессора: 7
 Вариант процессора: 0x0
 Часть процессора: 0xb76
 Версия процессора: 7

 Оборудование: BCM2708
 Просмотр: 1000002
 Номер: 000000000000000d

Bash

Вы можете использовать очень простой трубопровод bash

cat /proc /cpuinfo | grep Serial | cut -d '' -f 2

Поскольку вкладки используются в левой части двоеточия, вырезание символа пробега будет надежно захватывать только серийный номер.

  

Предыдущие версии этого ответа разрезают двоеточие, которое создало ведущее место в переменной. Это ведущее пространство не удаляется при назначении переменной, как было предложено ранее.

Bash /Perl

В Bash очень просто извлечь ... с помощью Perl. Используйте

cat /proc /cpuinfo | perl -n -e '/^ Serial [] *: ([0-9a-f] {16}) $ /& & & print "$ 1 \ n" '

Например,

$ cat cpuinfo | perl -n -e '/^ Serial [] *: ([0-9a-f] {16}) $ /& & & print "$ 1 \ n" '
000000000000000d

Python

Малина Spy предоставляет очень полезный пример Python.

def getserial ():
  # Извлечь последовательный файл cpuinfo
  cpuserial = "0000000000000000"
  пытаться:
    f = open ('/proc /cpuinfo', 'r')
    для строки в f:
      if line [0: 6] == 'Serial':
        cpuserial = line [10:26]
    f.close ()
  Кроме:
    cpuserial = "ERROR000000000"

  возвращать cpuserial

Ссылки

  1. страницы лицензионных ключевых продуктов
  2. Малина Шпион: получение серийного номера малины Pi с помощью Python
ответил Alex Chamberlain 4 +04002012-10-04T23:00:32+04:00312012bEurope/MoscowThu, 04 Oct 2012 23:00:32 +0400 2012, 23:00:32
10

Баш /Grep

Использование grep:

grep -Po '^ Серийный \ s *: \ s * \ K [[: xdigit:]] {16}' /proc /cpuinfo

Bash

Использование чистого Bash без использования каких-либо внешних утилит:

паттерн = '^ Последовательный * ([[: xdigit:]] {16}). $'
при чтении строки -r
делать
    если [[$ line = ~ $ pattern]]
    тогда
        echo "$ {BASH_REMATCH [1]}"
    фи
done </Proc /CPUInfo

Вывод любого из вышеперечисленных значений одинаковый.

ответил Dennis Williamson 5 +04002012-10-05T01:18:22+04:00312012bEurope/MoscowFri, 05 Oct 2012 01:18:22 +0400 2012, 01:18:22
7

Баш /Awk

Так как это оказалось своего рода «сколько способов вы можете получить сериал», вот версия awk

  awk '/^ Серийный \ s *: \ s /{print $ 3}' /proc /cpuinfo
ответил ps-rpi 30 52012vEurope/Moscow11bEurope/MoscowFri, 30 Nov 2012 03:31:25 +0400 2012, 03:31:25
4
grep -i serial /proc /cpuinfo | cut -d: -f2
ответил user14752 9 Maypm14 2014, 19:22:51
4

Использование awk:

cat /proc /cpuinfo | grep Serial | awk '{print $ 3}'
ответил Name 31 J000000Wednesday13 2013, 15:44:12
3

NodeJS

Для всех, кто интересуется здесь, можно получить серийный номер малины с помощью NodeJS:

function getserial () {

   var fs = require ('fs');

   var content = fs.readFileSync ('/proc /cpuinfo', 'utf8');

   var cont_array = content.split ("\ n");

   var serial_line = cont_array [cont_array.length-2];

   var serial = serial_line.split (":");

   return serial [1] .slice (1);

}
ответил M. Martins 22 PM000000120000001531 2016, 12:50:15
1

Да. Действительно, это способ получить это.

Забавно, что мой Pi0 имеет те же данные (серийный), что и выше. Нет никакого различия между моим серийным номером PI0 и тем, который был отправлен Алексом Чемберлейном

Для PI3 yo получено 4 процессора

#cat /proc /cpuinfo

процессор: 0
Название модели: ARMv7 Процессор rev 4 (v7l)
BogoMIPS: 38,40
Особенности: половина большого пальца fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
Процессор: 0x41
Архитектура процессора: 7
Вариант процессора: 0x0
Часть процессора: 0xd03
Версия процессора: 4

Процессор: 1
Название модели: ARMv7 Процессор rev 4 (v7l)
BogoMIPS: 38,40
Особенности: половина большого пальца fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
Процессор: 0x41
Архитектура процессора: 7
Вариант процессора: 0x0
Часть процессора: 0xd03
Версия процессора: 4

процессор: 2
Название модели: ARMv7 Процессор rev 4 (v7l)
BogoMIPS: 38,40
Особенности: половина большого пальца fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
Процессор: 0x41
Архитектура процессора: 7
Вариант процессора: 0x0
Часть процессора: 0xd03
Версия процессора: 4

процессор: 3
Название модели: ARMv7 Процессор rev 4 (v7l)
BogoMIPS: 38,40
Особенности: половина большого пальца fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
Процессор: 0x41
Архитектура процессора: 7
Вариант процессора: 0x0
Часть процессора: 0xd03
Версия процессора: 4

Оборудование: BCM2709
Просмотр: a02082
Номер: 000000003d1d1c36
ответил Colateral 8 J000000Friday16 2016, 12:09:45
1

Самый короткий и самый простой пока не был представлен как ответ. Это, в sed:

sed -n '/^Serial/{s/.* //; p}' /proc /cpuinfo

значение:

  • sed -n - запустить редактор потока без печати каждой строки
  • /^ Serial / - соответствуют только строки, которые начинают со словом «Сериал»
  • s /.* //; - заменить все до последнего пробела ничем (sed regexes жадный , кстати)
  • p - напечатать результат.

sed иногда получает плохое имя для того, чтобы быть сложным в использовании и загадочным, но он доступен и работает одинаково (до тех пор, пока вы придерживаетесь соглашений POSIX) на многих типах Linux и Unix.

ответил scruss 15 ThuEurope/Moscow2016-12-15T22:49:15+03:00Europe/Moscow12bEurope/MoscowThu, 15 Dec 2016 22:49:15 +0300 2016, 22:49:15

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132