Closed msdobrescu closed 5 years ago
Is this the latest version from git master? Solaar as shipped with distributions might be very out of date. If you do have the latest version, start it from the shell with solaar --debug
for more diagnostics messages.
Not OP, but I'm also having the same issue.
It seems to trigger most consistantly when the process is background-ed. If it's actively run in a terminal, it usually runs fine, but bg
, solaar &
, or executing the process from a launcher (dmenu
in this case) all result in the problem described in this issue most often.
Running Solaar 0.9.2, built from latest git revision.
Here's the output of the --debug
command, while background-ed:
┌──[tom@magrathea]──[9:13:16]
└─▶ ~:% solaar --debug &
[1] 5368
┌──[tom@magrathea]──[9:13:22]
└─▶ ~:% 09:13:22,338 INFO [MainThread] root: language en_US (UTF-8), translations path None
09:13:22,458 INFO [MainThread] solaar.upower: connected to system dbus, watching for suspend/resume events
09:13:22,612 INFO [MainThread] solaar.listener: starting receiver listening threads
09:13:22,623 INFO [MainThread] solaar.listener: receiver event add DeviceInfo(path='/dev/hidraw3', vendor_id='046d', product_id='c52b', serial='', release=b'1207', manufacturer=b'Logitech', product=b'USB Receiver', interface=2, driver='logitech-djreceiver')
09:13:22,626 ERROR [MainThread] logitech_receiver.receiver: open DeviceInfo(path='/dev/hidraw3', vendor_id='046d', product_id='c52b', serial='', release=b'1207', manufacturer=b'Logitech', product=b'USB Receiver', interface=2, driver='logitech-djreceiver')
Traceback (most recent call last):
File "/usr/lib/python3.7/site-packages/logitech_receiver/receiver.py", line 531, in open
return Receiver(handle, device_info)
File "/usr/lib/python3.7/site-packages/logitech_receiver/receiver.py", line 348, in __init__
if self.product_id == 'c539' or slef.product_id == 'c53a':
NameError: name 'slef' is not defined
Exception ignored in: <function Receiver.__del__ at 0x7ffbc4bc1400>
Traceback (most recent call last):
File "/usr/lib/python3.7/site-packages/logitech_receiver/receiver.py", line 370, in __del__
self.close()
File "/usr/lib/python3.7/site-packages/logitech_receiver/receiver.py", line 366, in close
self._devices.clear()
AttributeError: 'Receiver' object has no attribute '_devices'
09:13:22,627 WARNING [MainThread] solaar.listener: failed to open DeviceInfo(path='/dev/hidraw3', vendor_id='046d', product_id='c52b', serial='', release=b'1207', manufacturer=b'Logitech', product=b'USB Receiver', interface=2, driver='logitech-djreceiver')
Adding some additional context here:
While troubleshooting, I've found an issue with a typo on the latest commit. It's fixed here: #534.
I've also applied the latest firmware update for the Unifying receiver (which fwupd
was able to see and apply correctly):
Unifying Receiver has firmware updates:
Device ID: e37c055c03b2862571e22b9b3c44df9c0023363b
GUID: 9d131a0c-a606-580f-8eda-80587250b8d6
GUID: 279ed287-3607-549e-bacc-f873bb9838c4
ID: com.logitech.Unifying.RQR12.firmware
Update Version: RQR12.08_B0030
Update Name: Unifying Receiver Device Update Update
Update Summary: Firmware for the Logitech Unifying receiver
Update Remote ID: lvfs
Update Duration: 7 seconds
Update Checksum: SHA1(8dabc1e0fdd536c13d1e94c637d300f3541d3bf1)
Update Location: https://fwupd.org/downloads/690feedb8fe9cb05d1eaf80f903d66381eec7200-Logitech-Unifying-RQR12.08_B0030.cab
Update Description: This release addresses an encrypted keystroke injection issue known as Bastille security issue #13. The vulnerability is complex to replicate and would require a hacker to be physically close to a target.
A few of Logitech's devices used to send select buttons in an unencrypted way, and in an effort to protect against this vulnerability, Logitech removed the feature. Affected hardware is:
• Wireless Mouse M335
• Zone Touch Mouse T400
• Wireless Mouse M545
• Wireless Mouse M560
• Touch Mouse M600
• Touch Mouse T620
• Wireless Rechargeable Touchpad T650
Although Logitech does not recommend it, these features may be re-activated by keeping/downgrading the receiver to an older firmware.
Despite both of these changes, solaar still does not seem to recognize the receiver properly, unless it's unplugged and replugged continually.
have you tried running rules.d/install.sh ? that helped for me at least once
I have. The udev rules exist on my system.
I have the same issue as OP, and changing the typo in receiver.py fixed it for me.
However I didn't have the issue where it was working in the terminal but not when backgrounded. It didn't work either way for me. After correcting the typo it finds the receiver immediately on startup. So that might be a separate issue.
Hello, you can find here the Sabayon info on the provided package: https://packages.sabayon.org/quicksearch?q=solaar&x=0&y=0
Run with '--debug' displays one device only: ...despite reports both paired (the K800 is missing): Here is the log: solaar.log
Hello, one of Sabayon team members found the reason: python version. python2.7 /usr/bin/solaar works.
Hello!
Relevant log parts from @msdobrescu:
File "/usr/lib64/python3.6/site-packages/logitech_receiver/settings.py", line 297, in prepare_write
b = ord(to_write[i])
TypeError: ord() expected string of length 1, but int found
and (looks like #468)
File "/usr/lib64/python3.6/site-packages/logitech_receiver/notifications.py", line 130, in _process_hidpp10_custom_notification
if n.sub_id == _R.illumination:
AttributeError: 'NamedInts' object has no attribute 'illumination'
hope it helps.
Oh and version is 0.9.2.
Adding some additional context here:
While troubleshooting, I've found an issue with a typo on the latest commit. It's fixed here: #534. I've also applied the latest firmware update for the Unifying receiver (which
fwupd
was able to see and apply correctly):Unifying Receiver has firmware updates: Device ID: e37c055c03b2862571e22b9b3c44df9c0023363b GUID: 9d131a0c-a606-580f-8eda-80587250b8d6 GUID: 279ed287-3607-549e-bacc-f873bb9838c4 ID: com.logitech.Unifying.RQR12.firmware Update Version: RQR12.08_B0030 Update Name: Unifying Receiver Device Update Update Update Summary: Firmware for the Logitech Unifying receiver Update Remote ID: lvfs Update Duration: 7 seconds Update Checksum: SHA1(8dabc1e0fdd536c13d1e94c637d300f3541d3bf1) Update Location: https://fwupd.org/downloads/690feedb8fe9cb05d1eaf80f903d66381eec7200-Logitech-Unifying-RQR12.08_B0030.cab Update Description: This release addresses an encrypted keystroke injection issue known as Bastille security issue #13. The vulnerability is complex to replicate and would require a hacker to be physically close to a target. A few of Logitech's devices used to send select buttons in an unencrypted way, and in an effort to protect against this vulnerability, Logitech removed the feature. Affected hardware is: • Wireless Mouse M335 • Zone Touch Mouse T400 • Wireless Mouse M545 • Wireless Mouse M560 • Touch Mouse M600 • Touch Mouse T620 • Wireless Rechargeable Touchpad T650 Although Logitech does not recommend it, these features may be re-activated by keeping/downgrading the receiver to an older firmware.
Despite both of these changes, solaar still does not seem to recognize the receiver properly, unless it's unplugged and replugged continually.
Could you try the sleep workaournd, I've added to: https://github.com/pwr-Solaar/Solaar/issues/537
Had the same issue: Receiver wasn't recognized since some update.
Launching it with python 2.7, I have a new issue: first it starts, has the devices listed. After a while, the keyboard being wireless, goes in sleep mode. It is displayed as disabled in Solaar. At the first key pressed, the list is emptied and Solaar looks empty again.
21:42:28,759 ERROR [ReceiverListener:hidraw0] logitech_receiver.base: write failed, assuming handle 4 no longer available 21:42:28,759 ERROR [ReceiverListener:hidraw0] logitech_receiver.listener: processing Notification(2,41,04,B11020) Traceback (most recent call last): File "/usr/lib64/python2.7/site-packages/logitech_receiver/listener.py", line 185, in run self._notifications_callback(n) File "/usr/lib64/python2.7/site-packages/solaar/listener.py", line 207, in _notifications_handler _notifications.process(dev, n) File "/usr/lib64/python2.7/site-packages/logitech_receiver/notifications.py", line 54, in process return _process_device_notification(device, status, notification) File "/usr/lib64/python2.7/site-packages/logitech_receiver/notifications.py", line 97, in _process_device_notification return _process_hidpp10_notification(device, status, n) File "/usr/lib64/python2.7/site-packages/logitech_receiver/notifications.py", line 174, in _process_hidpp10_notification status.changed(active=link_established) File "/usr/lib64/python2.7/site-packages/logitech_receiver/status.py", line 255, in changed self[KEYS.NOTIFICATION_FLAGS] = d.enable_notifications() File "/usr/lib64/python2.7/site-packages/logitech_receiver/receiver.py", line 270, in enable_notifications ok = _hidpp10.set_notification_flags(self, set_flag_bits) File "/usr/lib64/python2.7/site-packages/logitech_receiver/hidpp10.py", line 328, in set_notification_flags result = write_register(device, REGISTERS.notifications, _int2bytes(flag_bits, 3)) File "/usr/lib64/python2.7/site-packages/logitech_receiver/hidpp10.py", line 149, in write_register return device.request(request_id, value) File "/usr/lib64/python2.7/site-packages/logitech_receiver/receiver.py", line 281, in request return _base.request(self.receiver.handle, self.number, request_id, params) File "/usr/lib64/python2.7/site-packages/logitech_receiver/base.py", line 340, in request write(ihandle, devnumber, request_data) File "/usr/lib64/python2.7/site-packages/logitech_receiver/base.py", line 171, in write raise NoReceiver(reason=reason) NoReceiver: {'reason': OSError(32, 'Broken pipe')} 21:42:28,761 ERROR [ReceiverListener:hidraw0] logitech_receiver.base: read failed, assuming handle 4 no longer available 21:42:28,761 WARNING [ReceiverListener:hidraw0] logitech_receiver.listener: receiver disconnected 21:42:28,761 INFO [ReceiverListener:hidraw0] solaar.listener: <UnifyingReceiver(/dev/hidraw0,4)>: notifications listener has stopped 21:42:36,362 INFO [MainThread] solaar.ui.notify: stopping desktop notifications 21:42:36,382 INFO [MainThread] solaar.configuration: saved {u'2010:FFC65665': {u'fn-swap': False, u'hand-detection': True, u'_name': u'Wireless Illuminated Keyboard K800'}, u'_version': u'0.9.2', u'101B:7C44B18E': {u'side-scroll': True, u'smooth-scroll': False, u'_name': u'Marathon Mouse M705'}} to /home/user/.config/solaar/config.json
Have you tried that with my pull request included?
Have you tried that with my pull request included?
No.
21:42:28,759 ERROR [ReceiverListener:hidraw0] logitech_receiver.base: write failed, assuming handle 4 no longer available
This is exactly the error, my pullrequest ist trying to address (broken pipe).
If you could give it a try it would be great.
I've tried it, but I lose the mouse and the keyboard completely. I've had to plug some non unifier mouse and keyboard in order to forcibly close Solaar.
@FFY00 I just tried https://github.com/pwr-Solaar/Solaar/commit/155e2f8c4066b1061fd9151563f9b1c7095f72b9 and it's significantly worse now.
The mouse is not detected at all (even after hot-plugging the unifying receiver).
I'll send a patch in a second. I'll @ to verify it works.
Hi, I have Sabayon Linux up to date, and Solaar KDE applet/plasmoid in the system tray is empty, although a K800 and a M705 are paired and I receive battery level messages in a very aggressive way when the batteries are almost depleted (this made me opening it to try setting the frequency of these messages, while the power management was triggering them, actually).