Raspberry Pi 3のBuildrootイメージを含むPPS GPIO

Raspberry Pi 3のBuildrootイメージを含むPPS GPIO

GPIOピンの1つからPulse Per Second(PPS)入力にアクセスできる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予想される1秒あたり1つの信号が得られます。今まではそんなに良くなった。

今私は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.confetc/modules-load.d

この変更により、/dev/pps0システムの起動時に自動的にデバイスが作成されます。

おすすめ記事