Closed ambv closed 1 year ago
thanks for finding this, it could help future seekers.
generally we don't advise people tweak base OS, which includes running apt-get, basically because we haven't tested what might come down the pipe. a large motivation for norns' existence is a stable OS, whereupon we can control the rate of updates, so we don't need to worry about people updating their systems and everything breaking (we have over a decade's experience with this on MacOS trying to support grids.)
yeah i'd wonder if there is some other motivation for updating udev
. we could pin it, but then we'd want to pin a lot of other packages too :)
Environment
Hardware: a CS4270 Shield XL with a Raspberry Pi 4B. Image version: norns220306 base updated to 230614. Kernel: unchanged 5.10.92-18-v7l-g458e2253667a from the 220306 image
Problem
When you run
apt update
and upgradeudev
(along withlibudev
andlibudev-dev
) to 247.3-7+rpi1+deb11u2 from the version that ships with 220306 (247.3-6+rpi1), Matron is no longer able to recognize any 2021+ Grid.Before:
After:
The kernel discovers the device just fine after the update:
Diagnosis
It turns out the device is being recognized as before the update, but udev now reports a different child in the device tree from
udev_enumerate_*
. In turn, whenmatron/device/device_monitor.c
receives audev_device*
, that node doesn't contain theID_VENDOR
andID_MODEL
properties thatis_dev_monome_grid()
expects. If that function went up the tree, just likeget_device_name()
does, it would find the correct device and identify the Grid just fine.This issue happens both when connecting Grids directly to the Raspberry Pi, and when connecting via a USB hub. It happens on both the 2021 Grid 128 as well as on Grid Zero.
Workaround
If you need other packages upgraded, pin the working udev first by running:
This will allow other packages to upgrade while holding back those. This functionality is already used to keep the kernel from upgrading automatically.
At least as of tonight, this allows an otherwise full
apt upgrade
to keep working.The issue is not present on stock Norns
This doesn't happen on the same image, kernel, and udev version on stock Norns. In this case everything keeps working as before.