Hi Uwe,

On 02.07.25 09:31, Uwe Kleine-König wrote:
Hello Richard,

On Thu, Jun 26, 2025 at 07:16:31PM +0200, Richard wrote:
On 26.06.25 18:21, Uwe Kleine-König wrote:
On Tue, Jun 24, 2025 at 06:09:05PM +0200, Richard wrote:
[...]
This time around though, not the whole audio systems seems to crash. Audio 
output via speakers is still available.


Sadly, rebinding the driver doesn't seem to be an option still. Upon plugging 
in headphones to the audio expansion card, I see a new device under 
/sys/class/sound:


card2 -> 
../../devices/pci0000:00/0000:00:08.1/0000:c1:00.3/usb1/1-2/1-2.2/1-2.2:1.0/sound/card2


So technically I should be able to do


cd -P /sys/class/sound/card2/device/driver

echo 0000:c1:00.3 > unbind


but that only gives me


-bash: echo: write error: No such device
I would expect

        echo 1-2.2:1.0 > unbind

instead.

So the good news is, unbinding 1-2.2:1.0 does remove the module, but
binding it again doesn't activate it again. Not even unplugging the
module and plugging it back in results in it showing up again. Not in
Gnome settings, not in lsusb. That's what logs have to say about the
process:

Jun 26 18:54:09 kernel: usb 1-2.2: USB disconnect, device number 11
Jun 26 18:54:13 kernel: usb 1-2.2: new high-speed USB device number 12 using 
xhci_hcd
Jun 26 18:54:13 kernel: usb 1-2.2: New USB device found, idVendor=32ac, 
idProduct=0010, bcdDevice= 0.02
Jun 26 18:54:13 kernel: usb 1-2.2: New USB device strings: Mfr=1, Product=2, 
SerialNumber=0
Jun 26 18:54:13 kernel: usb 1-2.2: Product: Audio Expansion Card
Jun 26 18:54:13 kernel: usb 1-2.2: Manufacturer: Framework
Jun 26 18:54:13 kernel: input: Framework Audio Expansion Card Consumer Control 
as 
/devices/pci0000:00/0000:00:08.1/0000:c1:00.3/usb1/1-2/1-2.2/1-2.2:1.2/0003:32AC:0010.000F/input/input24
Jun 26 18:54:13 kernel: hid-generic 0003:32AC:0010.000F: input,hidraw7: USB HID 
v1.11 Device [Framework Audio Expansion Card] on usb-0000:c1:00.3-2.2/input2
Jun 26 18:54:14 kernel: input: Framework Audio Expansion Card Consumer Control 
as 
/devices/pci0000:00/0000:00:08.1/0000:c1:00.3/usb1/1-2/1-2.2/1-2.2:1.2/0003:32AC:0010.0010/input/input25
Jun 26 18:54:14 kernel: hid-generic 0003:32AC:0010.0010: input,hidraw7: USB HID 
v1.11 Device [Framework Audio Expansion Card] on usb-0000:c1:00.3-2.2/input2

(sent unbind at roughl 18:53:28, with bind following just a couple
moments later. Yet there are no other entries by the Kernel from
between that time stamp and 18:54:09. In the
/sys/bus/usb/drivers/snd-usb-audio directory is also, 1-2.2:1.1, but I
can only unbind it but not bind it. But that just seems to be the DP
module, as removing it also removes the entry.
I don't know about the details of usb. I would compare the messages to
the ones that are emitted when you plug in the audio stick the first
time.

That's literally it. Booting up with headphones plugged in creates these two 
lines in dmesg:


[  +0.000977] [Wed Jul  2 21:40:15 2025] input: Framework Audio Expansion Card 
Consumer Control as 
/devices/pci0000:00/0000:00:08.1/0000:c1:00.3/usb1/1-2/1-2.2/1-2.2:1.2/0003:32AC:0010.0004/input/input7
[  +0.052490] [Wed Jul  2 21:40:15 2025] hid-generic 0003:32AC:0010.0004: 
input,hidraw3: USB HID v1.11 Device [Framework Audio Expansion Card] on 
usb-0000:c1:00.3-2.2/input2


The only thing that does seem to change between boots is "0003:32AC:0010.0004", 
though that may be because I usually don't change the place I plug the module in.

The device seems to still provide 1-2.2:$something, so that part isn't
surprising. Maybe there is still something left of the binding that
prevents a proper reinitialisation.

That sounds like a bug to forward to upstream and/or framework.

So, not sure what the cause is. You mentioned I could also try to
restart the driver of the whole hub. But how would I do so? The
expansion card is on bus 1 with three entries:
from the data you provided I would expect that you can do that with:

        cd -P /sys/devices/pci0000:00/0000:00:08.1/driver
        echo 0000:00:08.1 > unbind
        echo 0000:00:08.1 > bind

That one actually looks like it's not really doing anything. Even with
that device unbound, audio still works through the module. And yes,
it's still showing in Kernel logs to be located at
"/devices/pci0000:00/0000:00:08.1/0000:c1:00.3/usb1/1-2/1-2.2/1-2.2:1.2/0003:32AC:0010.0004/input/input7".
It doesn't even change the number of entries of lspci. Though
unbinding seems to be successful, as unbinding again before bind
results in "no such device". Only logs entries for that (unbind and
then bind) being

Jun 26 19:13:11 framework16 kernel: pcieport 0000:00:08.1: PME: Signaling with 
IRQ 42
Jun 26 19:13:11 framework16 boltd[1359]: probing: started [1000]
Jun 26 19:13:13 framework16 boltd[1359]: probing: timeout, done: [2002817] 
(2000000)
After bind it's expected that
/devices/pci0000:00/0000:00:08.1/0000:c1:00.3/usb1/1-2/1-2.2/... works
again. Does this cure the problem that you have after unbinding
1-2.2:1.1?

Best regards
Uwe


So, maybe let me clear things up a bit more: in your last message you said

from the data you provided I would expect that you can do that with:


cd -P /sys/devices/pci0000:00/0000:00:08.1/driver
echo 0000:00:08.1 > unbind
echo 0000:00:08.1 > bind


this wouldn't work for me. To unbind the module, I need to do


cd -P /sys/class/sound/card0/device/driver
echo 1-2.2:1.0 > unbind


Following that with a echo 1-2.2:1.0 > bind doesn't bring the device back up. 
Kernel logs look like it, but it doesn't show up again in Gnome settings.


Jul 02 22:22:44 boltd[1351]: probing: started [1000]
Jul 02 22:22:44 systemd[6068]: Reached target sound.target - Sound Card.
Jul 02 22:22:47 boltd[1351]: probing: timeout, done: [2997515] (2000000)
Jul 02 22:22:50 kernel: usb 1-2.2: USB disconnect, device number 10
Jul 02 22:22:50 keyd[1143]: DEVICE: removed 32ac:0010:00c7003e Framework Audio 
Expansion Card Consumer Control
Jul 02 22:22:55 kernel: usb 1-2.2: new high-speed USB device number 11 using 
xhci_hcd
Jul 02 22:22:55 kernel: usb 1-2.2: New USB device found, idVendor=32ac, 
idProduct=0010, bcdDevice= 0.02
Jul 02 22:22:55 kernel: usb 1-2.2: New USB device strings: Mfr=1, Product=2, 
SerialNumber=0
Jul 02 22:22:55 kernel: usb 1-2.2: Product: Audio Expansion Card
Jul 02 22:22:55 kernel: usb 1-2.2: Manufacturer: Framework
Jul 02 22:22:55 kernel: input: Framework Audio Expansion Card Consumer Control 
as 
/devices/pci0000:00/0000:00:08.1/0000:c1:00.3/usb1/1-2/1-2.2/1-2.2:1.2/0003:32AC:0010.000D/input/input22
Jul 02 22:22:55 keyd[1143]: DEVICE: match    32ac:0010:00c7003e 
/etc/keyd/default.conf        (Framework Audio Expansion Card Consumer Control)
Jul 02 22:22:55 kernel: hid-generic 0003:32AC:0010.000D: input,hidraw3: USB HID 
v1.11 Device [Framework Audio Expansion Card] on usb-0000:c1:00.3-2.2/input2
Jul 02 22:22:55 mtp-probe[6819]: checking bus 1, device 11: 
"/sys/devices/pci0000:00/0000:00:08.1/0000:c1:00.3/usb1/1-2/1-2.2"
Jul 02 22:22:55 mtp-probe[6819]: bus: 1, device: 11 was not an MTP device
Jul 02 22:22:55 boltd[1351]: probing: started [1000]
Jul 02 22:22:55 keyd[1143]: DEVICE: removed 32ac:0010:00c7003e Framework Audio 
Expansion Card Consumer Control
Jul 02 22:22:56 kernel: input: Framework Audio Expansion Card Consumer Control 
as 
/devices/pci0000:00/0000:00:08.1/0000:c1:00.3/usb1/1-2/1-2.2/1-2.2:1.2/0003:32AC:0010.000E/input/input23
Jul 02 22:22:56 fwupd[4698]: 20:22:56.114 FuEngine failed to add device 
/sys/devices/pci0000:00/0000:00:08.1/0000:c1:00.3/usb1/1-2/1-2.2: failed to 
setup: failed to get firmware version info: unknown error -22
Jul 02 22:22:56 kernel: hid-generic 0003:32AC:0010.000E: input,hidraw3: USB HID 
v1.11 Device [Framework Audio Expansion Card] on usb-0000:c1:00.3-2.2/input2
Jul 02 22:22:58 boltd[1351]: probing: timeout, done: [2732716] (2000000)


unbinding and binding does cause the device to disappear and reappear as card0 
in /sys/class/sound/, but nothing more as far as I can tell. No idea if there's 
another place that could show the presence of the module. And no, unplugging it 
and plugging it back in also doesn't have it reappear, only a reboot seems to 
help. Though I was able to translate the unbinding you suggested to my system. 
For me it has to look like this:


cd -P /sys/devices/pci0000\:00/0000\:00\:08.1/0000\:c1\:00.3/driver
echo 0000:c1:00.3 > unbind
echo 0000:c1:00.3 > bind


This in fact does seem to remove something higher up the chain, as it kills 
both keyboard and fingerprint sensor, which are both on bus 1, only keeping the 
touchpad operational, which doesn't seem to show up as a dedicated device on 
either lsusb or lspci. But even rebinding that driver doesn't allow for the 
audio module to come back up fully.


Best regards

Richard

Reply via email to