keyboardio / Chrysalis

Graphical configurator for Kaleidoscope-powered keyboards
https://github.com/keyboardio/Chrysalis#chrysalis
GNU General Public License v3.0
497 stars 65 forks source link

Atreus not found on Fedora 36 #1257

Closed TrevorFSmith closed 1 year ago

TrevorFSmith commented 1 year ago

Describe the bug Chrysalis does not find a new Keyboardio Atreus

To Reproduce Steps to reproduce the behavior:

  1. Plug in the Atreus to a Fedora Linux laptop
  2. Run the 0.12.0 AppImage
  3. See the "No keyboards found" message

Expected behavior I expected the keyboard to be found.

After reading a few closed issues here I tried a few things:

No luck so far.

Screenshots

Desktop (please complete the following information):

Additional context Add any other context about the problem here. chrysalis-debug.json.txt

obra commented 1 year ago

Weirdly, /dev/ttyACM0 has an intel vendor id associated with it. Is the keyboard plugged into a docking station or directly into the computer?

After you added the udev rules, did you udevadm control --reload-rules && udevadm trigger?

I don't have a current fedora machine handy to check, but do you have devices under /dev/serial/?

On Wed, Feb 22, 2023 at 8:05 PM Trevor Flowers @.***> wrote:

Describe the bug Chrysalis does not find a new Keyboardio Atreus

To Reproduce Steps to reproduce the behavior:

  1. Plug in the Atreus to a Fedora Linux laptop
  2. Run the 0.12.0 AppImage
  3. See the "No keyboards found" message

Expected behavior I expected the keyboard to be found.

After reading a few closed issues here I tried a few things:

No luck so far.

Screenshots

Desktop (please complete the following information):

  • OS: Fedora 36 running i3wm on a Razor Blade 15
  • Chrysalis Version: 0.12.0

Additional context Add any other context about the problem here. chrysalis-debug.json.txt https://github.com/keyboardio/Chrysalis/files/10810153/chrysalis-debug.json.txt

— Reply to this email directly, view it on GitHub https://github.com/keyboardio/Chrysalis/issues/1257, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAALC2EHTAXVEKO5FN3JXNTWY3OZ5ANCNFSM6AAAAAAVFD3J34 . You are receiving this because you are subscribed to this thread.Message ID: @.***>

TrevorFSmith commented 1 year ago

The keyboard's cable is connected directly to a USB-A port on the side of the laptop.

I did run a udev reload rules before but just in case I flubbed it I ran the command you wrote to no avail. I rebooted just in case with no change.

When I plug in the keyboard I see a link appear: /dev/serial/by-path/pci-0000:00:14.0-usb-0:1:1.0 -> ../../ttyACM0

Just to check that it's this laptop/OS and not the keyboard, I ran Chrysalis on a similar Razor Blade with Windows 11 on it and it was found with no problem. I successfully updated the firmware and loaded the Colemak layout, too, so I am not blocked on using the keyboard, I just can't modify it from my main Fedora laptop.

Just in case it's useful, I exported another Chrysalis debug file on my Fedora laptop: chrysalis-debug.json.txt

obra commented 1 year ago

I installed a Fedora 36 box and managed to reproduce the problem. This is...super weird.

On Thu, Feb 23, 2023 at 1:07 PM Trevor Flowers @.***> wrote:

The keyboard's cable is connected directly to a USB-A port on the side of the laptop.

I did run a udev reload rules before but just in case I flubbed it I ran the command you wrote to no avail. I rebooted just in case with no change.

When I plug in the keyboard I see a link appear: /dev/serial/by-path/pci-0000:00:14.0-usb-0:1:1.0 -> ../../ttyACM0

Just to check that it's this laptop/OS and not the keyboard, I ran Chrysalis on a similar Razor Blade with Windows 11 on it and it was found with no problem. I successfully updated the firmware and loaded the Colemak layout, too, so I am not blocked on using the keyboard, I just can't modify it from my main Fedora laptop.

Just in case it's useful, I exported another Chrysalis debug file on my Fedora laptop: chrysalis-debug.json.txt https://github.com/keyboardio/Chrysalis/files/10818479/chrysalis-debug.json.txt

— Reply to this email directly, view it on GitHub https://github.com/keyboardio/Chrysalis/issues/1257#issuecomment-1442433432, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAALC2EDMBBOEPN2ZMQDS43WY7GSRANCNFSM6AAAAAAVFD3J34 . You are receiving this because you commented.Message ID: @.***>

TrevorFSmith commented 1 year ago

Out of curiosity I connected the Atreus to an AMD tower machine running Fedora to see if it has the same issue. Chrysalis still reports that no keyboard is found.

In the serial port list /dev/ttyACM0 has different product and vendor IDs than listed on the laptop.

chrysalis-debug.json.txt

obra commented 1 year ago

What I'm seeing on fedora can be reproduced with this commandline:

npx @serialport/list -f jsonline

On fedora, it's showing the vendorid and deviceid for your usb controller. On macos, it's correctly showing the device's vendorid and deviceid.

I'd love to know if this is broken on fedora 35 or fedora 37

On Fri, Feb 24, 2023 at 7:17 PM Trevor Flowers @.***> wrote:

Out of curiosity I connected the Atreus to an AMD tower machine running Fedora to see if it has the same issue. Chrysalis still reports that no keyboard is found.

In the serial port list /dev/ttyACM0 has different product and vendor IDs than listed on the laptop.

chrysalis-debug.json.txt https://github.com/keyboardio/Chrysalis/files/10830127/chrysalis-debug.json.txt

— Reply to this email directly, view it on GitHub https://github.com/keyboardio/Chrysalis/issues/1257#issuecomment-1444971894, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAALC2BTGCKEKJAJDKDSGWTWZF2TNANCNFSM6AAAAAAVFD3J34 . You are receiving this because you commented.Message ID: @.***>

TrevorFSmith commented 1 year ago

Ok! I connected the Atreus to an Intel NUC running Fedora 37 and Chrysalis found it with no problem. It's not a one-to-one comparison with earlier info since it's a different machine than the Razor Blade and my AMD tower but it's still possible that the situation globally changed with the new version of Fedora. print-control-1.chrysalis-debug.json.txt

obra commented 1 year ago

Confirmed that the issue is specific to node-serialport and Fedora 36. Bug filed at https://github.com/serialport/node-serialport/issues/2604

On Sat, Feb 25, 2023 at 10:01 AM Trevor Flowers @.***> wrote:

Ok! I connected the Atreus to an Intel NUC running Fedora 37 and Chrysalis found it with no problem. It's not a one-to-one comparison with earlier info since it's a different machine than the Razor Blade and my AMD tower but it's still possible that the situation globally changed with the new version of Fedora. print-control-1.chrysalis-debug.json.txt https://github.com/keyboardio/Chrysalis/files/10831923/print-control-1.chrysalis-debug.json.txt

— Reply to this email directly, view it on GitHub https://github.com/keyboardio/Chrysalis/issues/1257#issuecomment-1445170785, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAALC2HE3J66RL73RCAJEP3WZJCHRANCNFSM6AAAAAAVFD3J34 . You are receiving this because you commented.Message ID: @.***>

TrevorFSmith commented 1 year ago

That's wild. I'm glad that it's no longer a mystery and that it's fixed by an OS update.

obra commented 1 year ago

this ended up turning out to be caused by a regression in systemd that showed up in fedora 36 and debian 11 and has since been patched

TrevorFSmith commented 1 year ago

Sweet! Thank you for looking into it.