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에서 두 번째(GPIO 기반 i2c)를 활성화하여 다음을 연결하려고 합니다.감지기. RPi가 다른 핀의 모자로 사용되므로 기본 i2c 핀은 물리적으로 점유됩니다.판자. 수많은 기사나 유사한 질문을 읽었지만 센서를 감지할 수 없습니다.

여기 내/boot/config.txt:

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

/boot/config.txt좋아, 여러 번의 실험 끝에 RPi의 Ubuntu는 어떤 이유로든 위치를 선호하여 설정을 무시하거나 덮어쓴다는 사실을 알아냈습니다 /boot/firmware. 나는 /boot/firmware/syscfg.txt거기에서 동일한 설정을 조사하고 발견했습니다. 그래서 나는 맹목적 dtoverlay=i2c-gpio,...으로 추가했습니다.syscfg재부팅 후 내 i2c 센서가 마술처럼 목록에 나타났습니다. 모든 가이드가 /boot/config.txt단일 진실 지점으로 언급한 것처럼 그것은 이상하고 실망스럽습니다. 나는 그것에 너무 많은 시간을 낭비했습니다.

관련 정보