Raspberry Pi 3의 Buildroot 이미지가 포함된 PPS GPIO

Raspberry Pi 3의 Buildroot 이미지가 포함된 PPS GPIO

GPIO 핀 중 하나에서 PPS(Pulse Per Second) 입력에 액세스할 수 있는 Raspberry Pi 3용 Linux 이미지를 빌드하려고 Buildroot를 사용하고 있습니다.

먼저, 표준 Raspbian 배포판에서 이것을 시도하고 다음과 같은 변경 사항을 적용하여 작동하도록 했습니다.

  • 에 추가하세요.dtoverlay=pps-gpio,gpiopin=20/boot/config.txt
  • 에 추가하세요.pps-gpio/etc/modules

그런 다음 /dev/pps0PPS 신호가 있는 와이어를 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=20config.txtpps-gpiopps.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.dtboimage 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시스템을 부팅할 때 자동으로 장치가 생성됩니다.

관련 정보