Ubuntu Server 20.04 / RPi Zero 2 W / A+ で追加の i2c_gpio が検出されない

Ubuntu Server 20.04 / RPi Zero 2 W / A+ で追加の i2c_gpio が検出されない

私はRPi Zero 2 W、Ubuntuサーバー20.04の2番目の(GPIOベースのi2c)を有効にして、次のものを接続しようとしていますセンサーRPiは別の用途で使用されているため、プライマリi2cピンは物理的に占有されていることに注意してください。ボードたくさんの記事や同様の質問を読みましたが、センサーを検出できませんでした。

これが私のブート構成ファイル:

start_x=1
enable_uart=1
dtparam=i2c_arm=on 
dtoverlay=i2c-gpio,bus4,i2c_gpio_delay_us=8,i2c_gpio_sda=23,i2c_gpio_scl=24

実際の配線は次のとおりです。配線

推奨に従って、SDA と SCL に 2x4.7 抵抗器も追加しました。抵抗器なしでも試してみました。

走るときi2c検出 -lデフォルトのバスのみが表示されます:

ubuntu@rpi:~$ i2cdetect -l
i2c-1   i2c         bcm2835 (i2c@7e804000)              I2C adapter

明らかに何も与えないi2c検出 -y 1:

ubuntu@rpi:~$ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- -- 

センサーはプライマリ i2c ポートに接続した場合にのみ表示されます。

ubuntu@rpi:~$ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- 77 

追加のシステム情報は次のとおりです:

ubuntu@rpi:~$ uname -a
Linux rpi 5.4.0-1050-raspi #56-Ubuntu SMP PREEMPT Thu Jan 13 13:09:35 UTC 2022 aarch64 aarch64 aarch64 GNU/Linux

すでにカーネルのアップグレードを試みましたが、Ubuntu 20.04 は 5.4 バージョンのままになっているようです。

ご意見をいただければ幸いです。

アップデート

  • 2022/01/31: 追加したdmesg ログ

答え1

いろいろ試した結果、RPi上のUbuntuは/boot/config.txt何らかの理由で設定を無視する(または上書きする)ので、/boot/firmware場所を優先することが判明しました。調べたところ、同じ設定が/boot/firmware/syscfg.txt見つかりました。そこで、dtoverlay=i2c-gpio,...syscfg再起動後、i2c センサーが魔法のようにリストに表示されました。すべてのガイドで/boot/config.txt真実の 1 つの点として言及されているように、これは奇妙で残念なことです。私はこれに何時間も無駄にしました。

関連情報