I’m also strugging to get an LCD display to work. I did a previous topic on loading DT overlays. Now the device-tree processing part is clear, but I still don’t get a /dev/spidev0,0
device file on the system - a plain ArchlinuxArm with a vanilla linux-aarch64
kernel.
I will follow your advice to try and talk to it on the lines.
Other thing I tried recently : boot latest Ubuntu server edition. There I get the spidev1,0 device, but when using it with gpiod as root it fails (see log below). I specially ported a script to gpiod to make sure it works on a Raspberry Pi 4B. I’m using it with a Waveshare 1in44 LCD pHat, so the pins are static.
Traceback (most recent call last):
File "qr.py", line 10, in <module>
from gpiod_lcd import LCD_1in44
File "/home/lafleur/source/radioboite/gpiod_lcd/__init__.py", line 3, in <module>
from gpiod_lcd.LCD import LCD, LCD_1in44, LCD_1in8
File "/home/lafleur/source/radioboite/gpiod_lcd/LCD.py", line 36, in <module>
_raw_screen = LCD_GPIO()
File "/home/lafleur/source/radioboite/gpiod_lcd/LCD_GPIO.py", line 52, in __init__
self.bl_pin = LCD_GPIO._request_pin_out(LCD_BL_PIN, "BL")
File "/home/lafleur/source/radioboite/gpiod_lcd/LCD_GPIO.py", line 75, in _request_pin_out
line.request(config)
File "/usr/local/lib/python3.8/dist-packages/gpiod/libgpiodcxx/__init__.py", line 572, in request
rv = libgpiod.gpiod_line_request(_m_line, conf, default_val)
File "/usr/local/lib/python3.8/dist-packages/gpiod/libgpiod/__init__.py", line 499, in gpiod_line_request
return gpiod_line_request_bulk(bulk, config, [default_val])
File "/usr/local/lib/python3.8/dist-packages/gpiod/libgpiod/__init__.py", line 542, in gpiod_line_request_bulk
return _line_request_values(bulk, config, default_vals)
File "/usr/local/lib/python3.8/dist-packages/gpiod/libgpiod/__init__.py", line 403, in _line_request_values
status = ioctl(fd, GPIO_GET_LINEHANDLE_IOCTL, req)
OSError: [Errno 16] Device or resource busy