Linux: /proc/cpuinfo๊ฐ€ arm64์—์„œ ํ•˜๋“œ์›จ์–ด/๊ฐœ์ •ํŒ/์‹œ๋ฆฌ์–ผ ๋ˆ„๋ฝ

์— ๋งŒ๋“  2017๋…„ 07์›” 11์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: raspberrypi/linux

arm64 ์ปค๋„์„ ์‚ฌ์šฉํ•˜๋Š” ๋™์•ˆ /proc/cpuinfo์— ํฌํ•จ๋œ ์ •๋ณด๋Š” 32๋น„ํŠธ arm ๋ฒ„์ „๋ณด๋‹ค ์ ์€ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋ฏ€๋กœ ์‹œ์Šคํ…œ์ด ์˜ˆ๋ฅผ ๋“ค์–ด RPi.GPIO ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ Raspberry Pi๋กœ ์ธ์‹๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํŠนํžˆ, ๊ฐœ๋ณ„ CPU ์•„๋ž˜์— ๋ˆ„๋ฝ๋œ Hardware/Revision ๋ผ์ธ์€ ํŠน์ • ๋ชจ๋ธ ์‹๋ณ„์— ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.

์†Œ์Šค ์ฝ”๋“œ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด arm64์˜ ๊ฒฝ์šฐ cpuinfo๋Š” https://github.com/raspberrypi/linux/blob/rpi-4.12.y/arch/arm64/kernel/cpuinfo.c ์—์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. arm์€ setup.c์—์„œ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค(arm64์˜ ๊ฒฝ์šฐ https://github.com/raspberrypi/linux/blob/rpi-4.12.y/arch/arm64/kernel/setup.c).

arm64 ์ปค๋„์ด ์žˆ๋Š” /proc/cpuinfo์˜ ๋‚ด์šฉ:

processor   : 0
BogoMIPS    : 38.40 
Features    : fp asimd evtstrm crc32
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x0
CPU part    : 0xd03
CPU revision    : 4

... ... ...

๋‚ด๊ฐ€ ์˜ˆ์ƒํ•œ ๊ฒƒ(32๋น„ํŠธ ์•” ์ปค๋„์—์„œ ์‹คํ–‰, ์ง๋ ฌ ์ œ๊ฑฐ):

processor       : 0
model name      : ARMv7 Processor rev 4 (v7l)
BogoMIPS        : 38.40
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

... ... ...

Hardware        : BCM2709
Revision        : a22082
Serial          : 00000000XXXXXXXX

์ถ”๊ฐ€ ์‹œ์Šคํ…œ ์ •๋ณด:

$ cat /etc/os-release 
PRETTY_NAME="Debian GNU/Linux 8 (jessie)"
NAME="Debian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=debian
HOME_URL="http://www.debian.org/"
SUPPORT_URL="http://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
HYPRIOT_OS="HypriotOS/arm64"
HYPRIOT_OS_VERSION="v1.1.1"
HYPRIOT_DEVICE="Raspberry Pi 3 64bit"
HYPRIOT_IMAGE_VERSION="v20170303-185520"
$ uname -a
Linux black-pearl 4.9.13-bee42-v8 #1 SMP PREEMPT Fri Mar 3 16:42:37 UTC 2017 aarch64 GNU/Linux

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋งค์šฐ ์šฐ์•„ํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ์ด์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•(์‚ฌ์šฉ์ž ๊ณต๊ฐ„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋˜๋Š” ์ปค๋„ ํŒจ์น˜ ์—†์ด)์€ ํ•„์š”ํ•  ๋•Œ /proc/cpuinfo ์˜ ๊ฐ€์งœ ๋ฒ„์ „์„ ๋ฐ”์ธ๋“œ ๋งˆ์šดํŠธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์—ฌ๊ธฐ ๋‚ด ๊ฒŒ์‹œ๋ฌผ์„ ์ฐธ์กฐ

rpi-4.19.y ์ปค๋„์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด๊ฒƒ์€ ์˜ˆ๋ฅผ ๋“ค์–ด picamera lib๊ฐ€ ์ž‘๋™ํ•˜๋„๋ก ํ•˜๋Š” ๋ฐ ์ถฉ๋ถ„ํ•˜๋ฉฐ(์˜ˆ: ์—ฌ๊ธฐ (64๋น„ํŠธ ์ปค๋„, ์ด ๊ฒฝ์šฐ 32๋น„ํŠธ Raspbian ์‚ฌ์šฉ์ž ๊ณต๊ฐ„ ์ฐธ์กฐ)) iirc๊ฐ€ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. wiringpi ์˜ 64๋น„ํŠธ ๋นŒ๋“œ๋Š” OK(64๋น„ํŠธ ์ปค๋„, 64๋น„ํŠธ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„)๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. YMMV.

๋‹น์‹ ์€ ์˜ˆ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค๋ฅผ ๋งˆ์šดํŠธ (์‹œ์Šคํ…œ์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”์ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€์ƒ ์•ฑ ๋น„๋ก ๊ฐ€์žฅ ์ž˜ ๋™์ž‘ํ•˜๋Š” 64 ๋น„ํŠธ ์œ ์ € ๋žœ๋“œ ๋ฌผ๊ฑด์ด ์•„๋‹Œ, ์—ฌํ•˜ํŠผ devicetree์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ /proc/cpuinfo , ๋“ฑ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค ^-^).

์•—,
์‚ฌ์นดํ‚ค

๋ชจ๋“  4 ๋Œ“๊ธ€

์ด ๋ฌธ์ œ๋Š” ์ด ์•„ํ‚คํ…์ฒ˜์—์„œ ๋ชจ๋“  Rasberry Pi GPIO ๋“ฑ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  1. ์šฐ๋ฆฌ๋Š” 64๋น„ํŠธ ๋นŒ๋“œ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์ง€๋งŒ ์šฐ๋ฆฌ๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ„๋‹จํ•œ ์ผ(์˜ˆ: arm64์šฉ defconfigs ํ˜ธ์ŠคํŒ…)์ด ์žˆ๋‹ค๋ฉด ์ง€์›ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
  2. arm64๋ฅผ ์ง€์›ํ•˜๋ฉด ์—…์ŠคํŠธ๋ฆผ ์ปค๋„์— ๋Œ€ํ•œ ์ตœ์†Œ ๋ณ€๊ฒฝ ์ˆ˜(์ด์ƒ์ ์œผ๋กœ๋Š” ์—†์Œ)๊ฐ€ ๋  ๊ฒƒ์ด๋ฉฐ /proc/cpuinfo์˜ ๋‚ด์šฉ์€ ์šฐ์„  ์ˆœ์œ„ ๋ชฉ๋ก์—์„œ ๋†’์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ณด๋“œ ๊ฐœ์ • ๋ฒˆํ˜ธ์™€ ์ผ๋ จ ๋ฒˆํ˜ธ๋Š” arm64 ์•„ํ‚คํ…์ฒ˜์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ด๋Š” ๊ฐœ๋…์ด์ง€๋งŒ /proc/device-tree/system/linux,revision ๋ฐ /proc/device-tree/system/linux,serial ๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์ •๋ณด๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ณ  ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๋ฒ„์ „์€ /proc/device-tree/model ๋ฐ /proc/device-tree/serial-number .

์ด๊ฒƒ์€ ๊ณ ์น  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋งค์šฐ ์šฐ์•„ํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ์ด์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•(์‚ฌ์šฉ์ž ๊ณต๊ฐ„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋˜๋Š” ์ปค๋„ ํŒจ์น˜ ์—†์ด)์€ ํ•„์š”ํ•  ๋•Œ /proc/cpuinfo ์˜ ๊ฐ€์งœ ๋ฒ„์ „์„ ๋ฐ”์ธ๋“œ ๋งˆ์šดํŠธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์—ฌ๊ธฐ ๋‚ด ๊ฒŒ์‹œ๋ฌผ์„ ์ฐธ์กฐ

rpi-4.19.y ์ปค๋„์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด๊ฒƒ์€ ์˜ˆ๋ฅผ ๋“ค์–ด picamera lib๊ฐ€ ์ž‘๋™ํ•˜๋„๋ก ํ•˜๋Š” ๋ฐ ์ถฉ๋ถ„ํ•˜๋ฉฐ(์˜ˆ: ์—ฌ๊ธฐ (64๋น„ํŠธ ์ปค๋„, ์ด ๊ฒฝ์šฐ 32๋น„ํŠธ Raspbian ์‚ฌ์šฉ์ž ๊ณต๊ฐ„ ์ฐธ์กฐ)) iirc๊ฐ€ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. wiringpi ์˜ 64๋น„ํŠธ ๋นŒ๋“œ๋Š” OK(64๋น„ํŠธ ์ปค๋„, 64๋น„ํŠธ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„)๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. YMMV.

๋‹น์‹ ์€ ์˜ˆ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค๋ฅผ ๋งˆ์šดํŠธ (์‹œ์Šคํ…œ์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”์ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€์ƒ ์•ฑ ๋น„๋ก ๊ฐ€์žฅ ์ž˜ ๋™์ž‘ํ•˜๋Š” 64 ๋น„ํŠธ ์œ ์ € ๋žœ๋“œ ๋ฌผ๊ฑด์ด ์•„๋‹Œ, ์—ฌํ•˜ํŠผ devicetree์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ /proc/cpuinfo , ๋“ฑ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค ^-^).

์•—,
์‚ฌ์นดํ‚ค

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰