Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Blink2Control2 "no device connected" #178

Closed
tnagels opened this issue Sep 25, 2022 · 11 comments
Closed

Blink2Control2 "no device connected" #178

tnagels opened this issue Sep 25, 2022 · 11 comments

Comments

@tnagels
Copy link

tnagels commented Sep 25, 2022

On my fresh Debian install I get "no device connected" although a Blink1 is plugged in. On another computer it works, so the unit is not defective.

When I open developer tools, this is what I get in the console: No blink(1)'s with serial number 3C158110 could be found.

So it seems like the software does "see" the blink(1) but cannot control it.

To clarify: I just installed the .deb file and did nothing else as the installation steps on Github seem to indicate that they are only needed for development.

@todbot
Copy link
Owner

todbot commented Sep 25, 2022

It sounds like you need to install the udev rules that Linux requires to access non-keyboard/mice USB HID devices.
See: https://github.com/todbot/Blink1Control2#linux

@tnagels
Copy link
Author

tnagels commented Sep 26, 2022

That fixed it indeed.
Is this the only thing I need to do from the "development" installation procedure? The documentation could be clearer on this.

@todbot
Copy link
Owner

todbot commented Sep 26, 2022

That is the only thing you should need to do.
Apologies, getting Linux to deal with peripherals is always a bit tricky.

We could be better at informing what needs to be done on first startup.
I've added issue #179 to expand on this idea and will close this issue for now.

@todbot todbot closed this as completed Sep 26, 2022
@vargn
Copy link

vargn commented Jan 2, 2024

I'm seeing no device connected from Blink1Control2 and blink1-tool. I have added the udev rules and reloaded udev.

The device is picked up by the system and clearly shown when running lsusb and when listing devices with udevadm. I have tried +5 micro USB cables, still no luck.

I'm using Arch, any ideas what could be the issue?

@todbot
Copy link
Owner

todbot commented Jan 2, 2024

I'm seeing no device connected from Blink1Control2 and blink1-tool. I have added the udev rules and reloaded udev.

The device is picked up by the system and clearly shown when running lsusb and when listing devices with udevadm. I have tried +5 micro USB cables, still no luck.

I'm using Arch, any ideas what could be the issue?

I don't know Arch Linux, sorry. I'll try getting a VM setup to try it out.

Does Arch even use udev and hidraw? The lsusb command will only USB devices and doesn't indicate if a USB HID device (which blink(1) is) is detected properly by the hidraw. You should be able to see a message in the system log if a device is bound to a driver when the device is connected.

When you do sudo blink1-tool --red does it work?

@todbot
Copy link
Owner

todbot commented Jan 3, 2024

Hi @vargn,
I installed Arch VM from the official VM repo, got it running on VirtualBox and plugged in a blink(1).
Then I downloaded and tried the blink1-tool-v2.3.0-linux-x86_64.zip bundle in the Releases section. Looks like it works. Here's the commands I did and their output:

[arch@archlinux Downloads]$ uname -r
6.6.8-arch1-1
[arch@archlinux Downloads]$ unzip blink1-tool-v2.3.0-linux-x86_64.zip 
Archive:  blink1-tool-v2.3.0-linux-x86_64.zip
  inflating: blink1-tool

# check if we can just run blink1-tool:
[arch@archlinux Downloads]$ ./blink1-tool  --list
cannot open blink(1), bad id or serial number
Have you added udev rules? Try blink1-tool --add_udev_rules

# nope, check if we can do control via sudo
[arch@archlinux blink1-tool]$ sudo ./blink1-tool --list
blink(1) list: 
id:0 - serialnum:39d6e131 (mk3) fw version:304
[arch@archlinux blink1-tool]$ sudo ./blink1-tool --red
set dev:0:0 to rgb:0xff,0x00,0x00 over 300 msec
[arch@archlinux blink1-tool]$ sudo ./blink1-tool --off
set dev:0:0 to rgb:0x00,0x00,0x00 over 300 msec

# that works, so add udev rules
[arch@archlinux Downloads]$ ./blink1-tool  --add_udev_rules
Attempting to add udev rules.
'sudo' will be used. Please have your password ready
Script being run:
#/bin/bash 
fn=/etc/udev/rules.d/51-blink1.rules 
if [ ! -e $fn ] ; then 
  echo 'ATTRS{idVendor}=="27b8", ATTRS{idProduct}=="01ed", MODE:="666", GROUP="plugdev"' | sudo tee $fn 
fi 
sudo udevadm control --reload 
sudo udevadm trigger 

Running script...
ATTRS{idVendor}=="27b8", ATTRS{idProduct}=="01ed", MODE:="666", GROUP="plugdev"
...Done.

# try again as non-root
[arch@archlinux Downloads]$ ./blink1-tool  --list
blink(1) list: 
id:0 - serialnum:39d6e131 (mk3) fw version:304
[arch@archlinux Downloads]$ ./blink1-tool  --on
set dev:0:0 to rgb:0xff,0xff,0xff over 300 msec
[arch@archlinux Downloads]$ ./blink1-tool  --off
set dev:0:0 to rgb:0x00,0x00,0x00 over 300 msec

@vargn
Copy link

vargn commented Jan 3, 2024

Hi @todbot
Thank you for a very quick response. I attempted the same steps as you did, which is what I have done previously without luck.

image

I have AppArmor enabled and I also use Firejail. Could this be why it is not working as intended?

@todbot
Copy link
Owner

todbot commented Jan 3, 2024

I have AppArmor enabled and I also use Firejail. Could this be why it is not working as intended?

No clue, @vargn, I don't use either of those. But any kind of security system that interposes between the real world and the OS could definitely be an issue. I would check the logs of both of those and see if they print something out when either the blink(1) is inserted or when you try to run blink1-tool. Then I'd look in the manuals for both about setting up explicit exceptions for certain devices.

@vargn
Copy link

vargn commented Jan 3, 2024

Thank you for taking the time and replying.

I think I have found the problem. When executing systemctl status systemd-udevd.service:

jan 03 20:27:13 main systemd-udevd[444]: /etc/udev/rules.d/51-blink1.rules:1 Unknown group 'plugdev', ignoring.

I then found this: https://wiki.archlinux.org/title/udev#Allowing_regular_users_to_use_devices

Also, should I leave this section as is ATTRS{idVendor}=="27b8", ATTRS{idProduct}=="01ed"? Or should I edit it with the output of lsusb?

Bus 001 Device 010: ID 20a0:41e5 Clay Logic BlinkStick

Would that be ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="41e5"?

@todbot
Copy link
Owner

todbot commented Jan 3, 2024

@vargn, BlinkStick is not our product.

@vargn
Copy link

vargn commented Jan 3, 2024

@todbot Oh my god... That's what I get for buying something, leaving it untouched for months and then google the product name from memory. I guess this explains why I couldn't get it to work. Let's pretend this never happened lmao.
Sorry for wasting your time!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants