Menu

#72 Reboot of remote changes USB address

open
nobody
None
5
2020-04-30
2020-04-26
No

On my Linux system, I use mdev as the hotplug handler. I'm not sure if it's a peculiarity of mdev, but detection of a new USB device causes it to be given the next sequential address.

When I use Congruity, everything works fine and the Harmony remote is programmed correctly, up to the point when the software reboots the remote. Then it can't find the remote, presumably because it now has a different USB address, due to having disconnected and reconnected.

Incidentally, the timeout before Congruity decides that it can't find the remote is very, very, very long.

Discussion

  • Scott Talbert

    Scott Talbert - 2020-04-27

    My first thought is that this situation should probably work, although I don't know if anyone has ever tested concordance/congruity with mdev before. What model of remote are you using? Also, what Linux distribution are you using? And can you tell me the versions of concordance/libconcord, hidapi, and libusb that you're using?

    Also, just to simplify the problem, can you plug in your remote and try just a reboot from concordance with "concordance -r" and see if that works or fails?

     
  • Steve Graham

    Steve Graham - 2020-04-27

    I'm using Devuan, the stable or "beowulf" release. My versions of concordance and libconcordance show as 1.3-1 in the package manager. The version of hidapi-libusb is 0.8.0 and libusb is 1.0-0. The remote is a Harmony 525 .

    I thought the test of "concordance -r" wasn't going to tell me much, since the reboot isn't the problem, it's accessing the remote after a reboot.
    However, what actually happens with that command is that the remote reboots immediately, going to "Welcome to your remote" but concordance shows "Resetting..." for a full 60 seconds before printing "Success!". I suspect that the program has actually timed out while looking for the remote after reboot.

     
  • Steve Graham

    Steve Graham - 2020-04-27

    I should have done this to begin with -- here is the error message. (I had forgotten that you can click on "Details" to reveal it.)

    Error connecting or finding the remote
    NOTE: if you recently plugged in your remote and you have a newer remote, you
    may need to wait a few additional seconds for your remote to be fully connected.
    (libconcord function update_configuration error 11)

    Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/congruity/congruity.py", line 720, in _WorkerFunction
    self._WorkerFunctionBody()
    File "/usr/lib/python3/dist-packages/congruity/congruity.py", line 849, in _WorkerFunctionBody
    0
    File "/usr/lib/python3/dist-packages/libconcord.py", line 126, in call
    raise LibConcordException(self.func_name, result)
    libconcord.LibConcordException: libconcord function 'update_configuration' failed with error code 11 ('Error connecting or finding the remote\nNOTE: if you recently plugged in your remote and you have a newer remote, you\nmay need to wait a few additional seconds for your remote to be fully connected.')

     
  • Scott Talbert

    Scott Talbert - 2020-04-27

    Okay, so it sounds like that's roughly Debian Stable, minus udev of course.

    The "concordance -r" test should actually be useful because it should be waiting for the remote to come back after rebooting. The fact that it seems to be able to talk to the remote fine is interesting. It is a little suspicious that it took ~60 seconds though.

     
  • Scott Talbert

    Scott Talbert - 2020-04-27

    Actually, yes you are right. The "concordance -r" does ignore the result of the reboot so given that it is waiting for ~60 seconds it does appear that it is just waiting for the maximum number of retries before giving up.

     
  • Scott Talbert

    Scott Talbert - 2020-04-30

    So, it seems clear to me that the problem is in concordance (or lower in the stack). Would you be up for building a debug version of concordance?

     

Log in to post a comment.