Facebook์ ์ํ ์์ ์๊ณ ๋ฐ GNSS ์์ ๊ธฐ ๊ตฌํ์ ํฌํจํ์ฌ PCIe ๋ณด๋ ์์ฑ๊ณผ ๊ด๋ จ๋ ๊ฐ๋ฐ ๋ด์ฉ์ ๋ฐํํ์ต๋๋ค. ์ด ๋ณด๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ณ๋์ ์๊ฐ ๋๊ธฐํ ์๋ฒ์ ์๋์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ๋ณด๋ ์ ์์ ํ์ํ ์ฌ์, ํ๋ก๋, BOM, Gerber, PCB ๋ฐ CAD ํ์ผ์ด GitHub์ ๊ฒ์๋์ด ์์ต๋๋ค. ์ด ๋ณด๋๋ ์๋ ๋ชจ๋์ ์ฅ์น๋ก ์ค๊ณ๋์ด SA5X, mRO-50, SA.45s ๋ฐ u-blox RCB-F9T์ ๊ฐ์ ๋ค์ํ ๊ธฐ์ฑ ์์ ์๊ณ ์นฉ ๋ฐ GNSS ๋ชจ๋์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ค๋น๋ ์ฌ์์ ๋ฐํ์ผ๋ก ๊ธฐ์ฑํ ๋ณด๋ ์์ฐ์ด Orolia์์ ์์๋ ์์ ์ ๋๋ค.
Time Card๋ ์ธํ๋ผ์ ๋ฐฐํฌํ๊ณ ์๋ฅผ ๋ค์ด ์กฐ์งํํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ณธ(Time Master) ์ ํํ ์๊ฐ ์๋ฒ(Open Time Server)๋ฅผ ์์ฑํ๊ธฐ ์ํ ๊ตฌ์ฑ ์์๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ ๋ณด๋ค ๊ธ๋ก๋ฒํ Time Appliance ํ๋ก์ ํธ์ ์ผ๋ถ๋ก ๊ฐ๋ฐ๋๊ณ ์์ต๋๋ค. ๋ฐ์ดํฐ ์ผํฐ์ ์๊ฐ ๋๊ธฐํ. ๋ณ๋์ ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ฉด ์ ํํ ์๊ฐ ๋๊ธฐํ๋ฅผ ์ํด ์ธ๋ถ ๋คํธ์ํฌ ์๋น์ค์ ์์กดํ์ง ์์๋ ๋๋ฉฐ, ๋ด์ฅ๋ ์์์๊ณ๊ฐ ์์ผ๋ฉด ์์ฑ ์์คํ ์ผ๋ก๋ถํฐ ๋ฐ์ดํฐ ์์ ์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ์๋ ๋์ ์์ค์ ์์จ์ฑ์ ์ ๊ณตํฉ๋๋ค(์: ๊ธฐ์ ์กฐ๊ฑด์ด๋ ๊ณต๊ฒฉ์ผ๋ก ์ธํด).
ํ๋ก์ ํธ์ ํน์ง์ ๊ธฐ๋ณธ ์ ํํ ์๊ฐ ์๋ฒ๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํด ์ผ๋ฐ์ ์ธ ๋คํธ์ํฌ ์นด๋์ ํ์ ์นด๋๋ฅผ ํฌํจํ๋ x86 ์ํคํ ์ฒ ๊ธฐ๋ฐ์ ์ผ๋ฐ ์๋ฒ๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ด๋ฌํ ์๋ฒ์์๋ GNSS๋ฅผ ํตํด ์์ฑ์ผ๋ก๋ถํฐ ์ ํํ ์๊ฐ ์ ๋ณด๋ฅผ ์์ ํ๊ณ , ์์์๊ณ๋ GNSS๋ฅผ ํตํ ์ ๋ณด ํ๋์ ์คํจํ๋ ๊ฒฝ์ฐ์๋ ๋์ ์ ํ๋๋ฅผ ์ ์งํ๊ธฐ ์ํด ๋งค์ฐ ์์ ์ ์ธ ๋ฐ์ง๊ธฐ ์ญํ ์ ํฉ๋๋ค. ์ ์๋ ๋ณด๋์์ GNSS๋ฅผ ํตํ ๋ฐ์ดํฐ ์์ ์คํจ ์ ์ ํํ ์๊ฐ๊ณผ์ ํธ์ฐจ๋ ํ๋ฃจ ์ฝ 300๋๋ ธ์ด๋ก ์ถ์ ๋๋ค.
Linux์ ๊ฒฝ์ฐ ocp_pt ๋๋ผ์ด๋ฒ๊ฐ ์ค๋น๋์ด ์์ผ๋ฉฐ Linux 5.15 ์ปค๋์ ์ฃผ์ ๊ตฌ์ฑ์ ํฌํจ๋ ์์ ์ ๋๋ค. ๋๋ผ์ด๋ฒ๋ PTP POSIX(/dev/ptp2), ์ง๋ ฌ์ ํตํ GNSS(/dev/ttyS7), ์ง๋ ฌ์ ํตํ ์์ ์๊ณ(/dev/ttyS8) ๋ฐ ๋ ๊ฐ์ i2c ์ฅ์น(/dev/i2c-*) ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํฉ๋๋ค. ์ฌ์ฉ์ ํ๊ฒฝ์์ ํ๋์จ์ด ์๊ณ(PHC) ๊ธฐ๋ฅ์ ์ก์ธ์คํ ์ ์์ต๋๋ค. NTP(Network Time Protocol) ์๋ฒ๋ฅผ ์์ํ ๋ Chrony ๋ฐ NTPd๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. PTP(Precision Time Protocol) ์๋ฒ๋ฅผ ์์ํ ๋๋ ์๊ฐ ๊ฐ ๋ณต์ฌ๋ฅผ ์ ๊ณตํ๋ phc4sys ์คํ๊ณผ ํจ๊ป ptp4u ๋๋ ptp2l์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์์์๊ณ๋ถํฐ ๋คํธ์ํฌ ์นด๋๊น์ง.
GNSS ์์ ๊ธฐ์ ์์์๊ณ์ ์๋ ์กฐ์ ์ ํ๋์จ์ด์ ์ํํธ์จ์ด ๋ชจ๋์์ ์ํ๋ ์ ์์ต๋๋ค. ๋งค์นญ ๋ชจ๋์ ํ๋์จ์ด ๊ธฐ๋ฅ์ FPGA๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํ๋๋ฉฐ ์ํํธ์จ์ด ๋ฒ์ ์ ptp4l ๋ฐ chronyd์ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์์ GNSS ์์ ๊ธฐ ๋ฐ ์์ ์๊ณ์ ์ํ๋ฅผ ์ง์ ๋ชจ๋ํฐ๋งํ๋ ์์ค์์ ์๋ํฉ๋๋ค.
์์ฅ์์ ๊ธฐ์ฑ ์๋ฃจ์
์ ์ฌ์ฉํ๋ ๋์ ๊ฐ๋ฐฉํ ๋ณด๋๋ฅผ ๊ฐ๋ฐํ๋ ์ด์ ๋ ํด๋น ์ ํ์ ๋
์ ํน์ฑ์ผ๋ก ์ธํด ๊ตฌํ์ ์ ํ์ฑ, ์ ์๋ ์ํํธ์จ์ด ๋ฐ ๋ณด์ ์๊ตฌ ์ฌํญ ๊ฐ์ ๋ถ์ผ์น(๋๋ถ๋ถ์ ๊ฒฝ์ฐ)๋ฅผ ํ์ธํ ์ ์๊ธฐ ๋๋ฌธ์
๋๋ค. ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์ค๋๋ ํ๋ก๊ทธ๋จ์ด ์ ๊ณต๋๊ณ ์ทจ์ฝ์ ์์ ์ ์ ๊ณตํ๋ ๋ฐ ๋ช ๋ฌ ๋๋ ๋ช ๋
์ด ๊ฑธ๋ฆด ์ ์์), ์ ํ๋ ๋ชจ๋ํฐ๋ง(SNMP) ๋ฐ ๊ตฌ์ฑ ์ต์
(์์ฒด CLI ๋๋ ์น UI ์ ๊ณต)๋ ํฌํจ๋ฉ๋๋ค.
์ถ์ฒ : opennet.ru