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
์ด ๋ฌธ์ ๋ ์ด ์ํคํ ์ฒ์์ ๋ชจ๋ Rasberry Pi GPIO ๋ฑ ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋ง๋ญ๋๋ค.
/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
, ๋ฑ ์ ๊ฒฝ ์ฐ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค ^-^).
์,
์ฌ์นดํค
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋งค์ฐ ์ฐ์ํ์ง๋ ์์ง๋ง ์ด์ ๋ํ ๊ฐ๋จํ ํด๊ฒฐ ๋ฐฉ๋ฒ(์ฌ์ฉ์ ๊ณต๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋๋ ์ปค๋ ํจ์น ์์ด)์ ํ์ํ ๋
/proc/cpuinfo
์ ๊ฐ์ง ๋ฒ์ ์ ๋ฐ์ธ๋ ๋ง์ดํธํ๋ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด ์ฌ๊ธฐ ๋ด ๊ฒ์๋ฌผ์ ์ฐธ์กฐrpi-4.19.y
์ปค๋์ ์ฌ์ฉํ๋ฉด ์ด๊ฒ์ ์๋ฅผ ๋ค์ดpicamera
lib๊ฐ ์๋ํ๋๋ก ํ๋ ๋ฐ ์ถฉ๋ถํ๋ฉฐ(์: ์ฌ๊ธฐ (64๋นํธ ์ปค๋, ์ด ๊ฒฝ์ฐ 32๋นํธ Raspbian ์ฌ์ฉ์ ๊ณต๊ฐ ์ฐธ์กฐ)) iirc๊ฐ ํ์ฉํฉ๋๋ค.wiringpi
์ 64๋นํธ ๋น๋๋ OK(64๋นํธ ์ปค๋, 64๋นํธ ์ฌ์ฉ์ ๊ณต๊ฐ)๋ฅผ ์คํํฉ๋๋ค. YMMV.์,
์ฌ์นดํค