GPIO 핀 중 하나에서 PPS(Pulse Per Second) 입력에 액세스할 수 있는 Raspberry Pi 3용 Linux 이미지를 빌드하려고 Buildroot를 사용하고 있습니다.
먼저, 표준 Raspbian 배포판에서 이것을 시도하고 다음과 같은 변경 사항을 적용하여 작동하도록 했습니다.
- 에 추가하세요.
dtoverlay=pps-gpio,gpiopin=20
/boot/config.txt
- 에 추가하세요.
pps-gpio
/etc/modules
그런 다음 /dev/pps0
PPS 신호가 있는 와이어를 RPi3의 물리적 핀 38에 연결하고 실행하면 pps-test /dev/pps0
예상되는 초당 하나의 신호를 얻습니다. 여태까지는 그런대로 잘됐다.
이제 Buildroot로 구축한 내 이미지를 사용하여 다시 만들고 싶습니다. 기본 configs/raspberrypi3_64_defconfig
구성을 사용했지만 다음과 같이 변경했습니다 make nconfig
.
rpi-4.14.y-rt
커널 브랜치 사용github.com/raspberrypi/linux
systemd
초기화 시스템으로/dev management using udev (from systemd)
Target packages
->Hardware handling
->pps-tools
활성화
(제가 변경한 내용은 이게 전부인 것 같은데, 뭔가 잊어버린 게 있을 수도 있겠네요..)
내가 얻은 출력에는 sdcard.img
부팅 파티션의 파일이 표시됩니다. 이 줄을 파일에 pps-gpio.dtbo
추가했습니다 . 또한 파일 시스템에 넣은 파일에 해당 행을 추가했습니다 .dtoverlay=pps-gpio,gpiopin=20
config.txt
pps-gpio
pps.conf
/etc/modules-load.d
시스템을 부팅하면 아무 항목도 얻지 못하지만 /dev/ppsX
, 실행하면 다음 lsmod
과 같은 항목이 나타납니다.
pps_gpio 16384 0 pps_core 20480 1 pps_gpio
dtoverlay
이는 올바르게 로드되었음을 의미합니까 ? 자격을 얻으려면 어떻게 해야 합니까 /dev/ppsX
?
답변1
누락된 것은 make nconfig
옵션이기도 합니다.
Kernel
->Build Device Tree with overlay support
또한 섹션이 다음과 같이 보이 도록 파일 내에 <buildroot>/board/raspberrypi3-64/genimage-raspberrypi3-64.cfg
파일을 추가합니다 .pps-gpio.dtbo
image boot.vfat
image boot.vfat {
vfat {
files = {
"bcm2710-rpi-3-b.dtb",
"bcm2710-rpi-3-b-plus.dtb",
"bcm2837-rpi-3-b.dtb",
"rpi-firmware/bootcode.bin",
"rpi-firmware/cmdline.txt",
"rpi-firmware/config.txt",
"rpi-firmware/fixup.dat",
"rpi-firmware/start.elf",
"Image"
}
file overlays/pps-gpio.dtbo {
image = "rpi-firmware/overlays/pps-gpio.dtbo"
}
}
size = 32M
}
아래에 파일을 넣을 필요가 없습니다 pps.conf
.etc/modules-load.d
이러한 변경으로 인해 /dev/pps0
시스템을 부팅할 때 자동으로 장치가 생성됩니다.