๐๋ผ์ฆ๋ฒ ๋ฆฌํ์ด - OTG ํด๋ฌ์คํฐ
4019 ๋จ์ด appwr
์ ์
์ด ๊ฐ์ด๋์์๋ Raspberrypi์ ์คํํ๋ Raspberrypi OS ์ฅ์น๋ง ์ฌ์ฉํ์ฌ ๊ฐ์ฅ ๊ฐ๋จํ ์ฌ๋ ์ด๋ธ/๋ง์คํฐ ์๋ฒ ๊ตฌ์ฑ์ ์์ฑํฉ๋๋ค.
๊ณ ํ์ง ์ผ์ด๋ธ์ ์ฌ์ฉํ์ฌ ๊ฐ ์ฅ์น๋ฅผ ์ฐ๊ฒฐํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
์ด ์ค์ ์ ์ ํ์ด ์๋ USB-A Male to Micro B ์ผ์ด๋ธ์์๋ ์๋ํ์ง ์์ต๋๋ค.
๋ง์คํฐ์ ์ ํฉํ ์ฅ์น๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. Pi4-B์ ์ฌ์ฉํ๊ฒ ์ต๋๋ค.
์ฌ๋ ์ด๋ธ๋ก ๋ ๊ฐPi Zero W๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์๊ตฌ ์ฌํญ
Rasperrypi OS๊ฐ ์ฌ์ ์ค์น๋ Pi4-B 1๊ฐ
Raspberrypi OS๊ฐ ์ฌ์ ์ค์น๋ 2 Pi Zero(W)
Pi Zero(W)์ฉ ์ ์ ๊ณต๊ธ ์ฅ์น 2๊ฐ, ๊ฐ Pi Zero์๋ ์์ฒด ์ ์ ๊ณต๊ธ ์ฅ์น๊ฐ ํ์ํจ
๊ฐ ์ฅ์น์ ์ค์น๋ DHCPCD ํด๋ผ์ด์ธํธ
์ค์น
๋ ธ์
๊ฐ ์ฌ๋ ์ด๋ธ ์๋ฒ์ ๋ํด ํธ์ง
/boot/cmdline.txt
ํ๊ณ dwc2 ๋ฐ g_ether ๋ชจ๋์ด ํ์ฑํ๋์๋์ง ํ์ธํฉ๋๋ค.๋ํ g_ether.host ๋ฐ g_ether.dev_addr์ ๋ํ MAC ์ฃผ์๋ฅผ ํ ๋นํฉ๋๋ค.
์๋ ์์์ ์ ๊ณต๋ MAC์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
$ cat /boot/cmdline.txt
์๋ ๋ผ์ธ๊ณผ ๋น์ทํ ๊ฒ์ ์ถ๋ ฅํด์ผ ํฉ๋๋ค. g_ether.host์ g_ether.dev_addr MAC์ ์ฐจ์ด์ ์ ์ ์ํ์ญ์์ค.
console=serial0,115200 console=tty1 root=PARTUUID=33a0f260-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2,g_ether g_ether.host_addr=00:22:82:ff:ff:03 g_ether.dev_addr=00:22:82:ff:ff:13
๊ฐ ์ฌ๋ ์ด๋ธ์ ๋ํด ํ๋ก์ธ์ค๋ฅผ ๋ฐ๋ณตํ๊ณ g_ether.host์ g_ether.dev_addr์ ์ฐจ์ด์ ์ ์ ์ํ์ญ์์ค.
console=serial0,115200 console=tty1 root=PARTUUID=7a235f18-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2,g_ether g_ether.host_addr=00:22:82:ff:ff:04 g_ether.dev_addr=00:22:82:ff:ff:14
์์ ๋์ด๋ ๊ฐ MAC ์ฃผ์์ ๋ง์ง๋ง ๋ ์๋ฆฌ๋ฅผ ๊ธฐ๋กํด ๋์ญ์์ค.
์ฌ๋ ์ด๋ธ ํธ์คํธ ์ด๋ฆ
๊ฐ๊ฐ
/etc/hostname
์ ํธ์งํ๊ณ ๊ฐ ์ฌ๋ ์ด๋ธ์ ๊ณ ์ ํ ํธ์คํธ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. ๊ฐ๊ฐ pisrv03 ๋ฐ pisrv04๋ฅผ ์ฌ์ฉํฉ๋๋ค. ํธ์คํธ ์ด๋ฆ ํ์ผ ๋ด์ฉ์ ๋ค์ ์ค๊ณผ ๊ฐ์์ผ ํฉ๋๋ค.pisrv03
์ฌ๋ ์ด๋ธ ํธ์คํธ
๊ฐ๊ฐ
/etc/hosts
์ ํธ์งํ๊ณ ํธ์คํธ ์ด๋ฆ์ด pisrv03์ธ ์ฌ๋ ์ด๋ธ์ ๋ํด localhost๋ก ํธ์คํธ ์ด๋ฆ์ ๋งคํํฉ๋๋ค.127.0.0.1 localhost pisrv03
ํธ์คํธ ์ด๋ฆ์ด pisrv04์ธ ์ฌ๋ ์ด๋ธ์ ๊ฒฝ์ฐ:
127.0.0.1 localhost pisrv04
๋ฑ๋ฑ.
์ฌ๋ ์ด๋ธ DHCP
์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ DHCPCD๋ฅผ ์ค์นํฉ๋๋ค.
$ apt install dhcpcd
/etc/dhcpcd.conf
๋ฅผ ํธ์งํ๊ณ USB ์ธํฐํ์ด์ค usb0์ ์ ์ IP๋ฅผ ์ ๊ณตํ๋ฉด ๋ค์ ํ์ ์ฐธ์กฐํ ์ ์์ต๋๋ค.(pisrv03)
interface usb0
static ip_address=10.0.13.2
(pisrv04)
interface usb0
static ip_address=10.0.13.2
๋ฑ๋ฑ.
์ฃผ์ธ
๋ง์คํฐ ์๋ฒ์์
/boot/cmdline.txt
์ ์ก์ธ์คํ๊ณ dwc2 ๋ฐ g_ether ๋ชจ๋์ด ํ์ฑํ๋์ด ์๋์ง ํ์ธํ์ญ์์ค.๊ฐ ๋ชจ๋์ ์ผํ๋ก ๊ตฌ๋ถ๋์ด์ผ ํ๋ฉฐ ๊ณต๋ฐฑ์ด ์์ด์ผ ํฉ๋๋ค.
$ cat /boot/cmdline.txt
์ถ๋ ฅ์ ๋ค์ ์ค๊ณผ ์ ์ฌํด์ผ ํฉ๋๋ค. *modules-load *:
console=serial0,115200 console=tty1 root=PARTUUID=fb57ee21-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2,g_ether
์ฌ์ฉ์ ๊ณต๊ฐ /dev
udev์ ์ ๊ท์น ์ธํธ๋ฅผ ์ถ๊ฐํ์ญ์์ค. ์ ํ์ผ์ ๋ง๋ค๋ฉด 90-picluster.rules๋ผ๊ณ ํฉ๋๋ค.
$ touch /etc/udev/rules.d/90-picluster.rules
์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ ์ฅ์น MAC์ ๋งคํํฉ๋๋ค.
๋ ธ์ pisrv03์ ๊ฒฝ์ฐ
SUBSYSTEM=="net", ATTR{address}=="00:22:82:ff:ff:03", NAME="eth3pi"
๋ ธ์ pisrv04์ ๊ฒฝ์ฐ
SUBSYSTEM=="net", ATTR{address}=="00:22:82:ff:ff:04", NAME="eth4pi"
๋ฑ๋ฑ.
90-picluster.rules๋ ๋ค์๊ณผ ๊ฐ์์ผ ํฉ๋๋ค.
SUBSYSTEM=="net", ATTR{address}=="00:22:82:ff:ff:03", NAME="eth3pi"
SUBSYSTEM=="net", ATTR{address}=="00:22:82:ff:ff:04", NAME="eth4pi"
DHCP
๋ง์ง๋ง์ผ๋ก DHCPCD ๊ตฌ์ฑ ํ์ผ(์ผ๋ฐ์ ์ผ๋ก
/etc/dhcpcd.conf
)์ ํธ์งํ๊ณ ๊ฐ ์ฌ๋ ์ด๋ธ์ ๋ก์ปฌ IP ๋ฒ์๋ฅผ ์ง์ ํฉ๋๋ค.interface eth3pi
static ip_address=10.0.13.1/24
interface eth4pi
static ip_address=10.0.14.1/24
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐๋ผ์ฆ๋ฒ ๋ฆฌํ์ด - OTG ํด๋ฌ์คํฐ), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://dev.to/jacopo/raspberrypi-otg-cluster-iiaํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค