bordaigorl / rmview

A live viewer for reMarkable written in PyQt5
GNU General Public License v3.0
742 stars 61 forks source link

Error that occurs while connecting to rmview #126

Closed MinuteLow726 closed 2 years ago

MinuteLow726 commented 2 years ago

In earlier versions I was able to use rmview. Currently, I cannot.

The version of the remarkable is 2.11.0.442, and I have the following issue both with Ubuntu and Windows.

I am able to install rmview but when I try to connect to the Remarkable after selecting "Present with Screen Share" the app rmview opens (with the image connecting to Remarkable ...) without showing the screen of the remarkable. Here the red dot works.

On the command prompt, however, a duplicateOptionError is displayed continuously: it appears "received timestamp challenge 1642427633684" and it ends with "While reading from '' [line 56]: option 'direct-hi-android_5bd8' in section 'wifinetworks' already exists".

Thank you in advance for your time and for developing this tool.

bordaigorl commented 2 years ago

Hi, could you include the log on the command prompt when running rmview -v (verbose option)? Also relevant: are you on RM1 or RM2? If RM2: do you have rm2fb enabled? It is known to interfere with the screen sharing (on the tablet side, nothing that rmview can fix by itself).

MinuteLow726 commented 2 years ago

Hi, I am on RM1.

Here is the log:

[INFO] STARTING: Mon Jan 17 15:36:11 2022
[INFO] Searching configuration in rmview.json, C:/Users/CruzDesktop/AppData/Local/python\rmview.json
[DEBUG] Configuration failure in rmview.json: [Errno 2] No such file or directory: 'rmview.json'
[INFO] Fetching configuration from C:/Users/CruzDesktop/AppData/Local/python\rmview.json
[WARNING] Config file "C:/Users/CruzDesktop/AppData/Local/python\rmview.json" is readable by others (permissions=666). If your config file contains secrets (e.g. password) you are strongly encouraged to make sure it's not readable by other users (chmod 600 C:/Users/CruzDesktop/AppData/Local/python\rmview.json)
[DEBUG] Config values: {'ssh': {'address': '10.11.99.1', 'password': '**********'}, 'orientation': 'auto', 'pen_size': 15, 'pen_color': 'red', 'pen_trail': 200}
[INFO] Using system default known hosts file
[INFO] Loading system default known hosts file, this may take a while...
[INFO] System default known host file loaded
[INFO] Connecting...
[INFO] Connected to 10.11.99.1
[DEBUG] Stopping connection worker
[INFO] Detected reMarkable 1.0
[INFO] Using backend 'screenshare'
[INFO] Connecting to ScreenShare, make sure you enable it
[WARNING] Authenticating, please wait...
2022-01-17 15:36:26+0100 [-] ChallengeReaderProtocol starting on 5901
2022-01-17 15:36:26+0100 [-] Starting protocol <rmview.screenstream.screenshare.ChallengeReaderProtocol object at 0x000002777F7F82B0>
[INFO] received timestamp challenge 1642427633684
2022-01-17 15:36:27+0100 [ChallengeReaderProtocol (UDP)] Unhandled Error
        Traceback (most recent call last):
          File "c:\users\cruzdesktop\appdata\local\programs\python\python39\lib\site-packages\twisted\python\log.py", line 86, in callWithContext
            return context.call({ILogContext: newCtx}, func, *args, **kw)
          File "c:\users\cruzdesktop\appdata\local\programs\python\python39\lib\site-packages\twisted\python\context.py", line 122, in callWithContext
            return self.currentContext().callWithContext(ctx, func, *args, **kw)
          File "c:\users\cruzdesktop\appdata\local\programs\python\python39\lib\site-packages\twisted\python\context.py", line 85, in callWithContext
            return func(*args,**kw)
          File "c:\users\cruzdesktop\appdata\local\programs\python\python39\lib\site-packages\twisted\internet\selectreactor.py", line 149, in _doReadOrWrite
            why = getattr(selectable, method)()
        --- <exception caught here> ---
          File "c:\users\cruzdesktop\appdata\local\programs\python\python39\lib\site-packages\twisted\internet\udp.py", line 249, in doRead
            self.protocol.datagramReceived(data, addr)
          File "c:\users\cruzdesktop\appdata\local\programs\python\python39\lib\site-packages\rmview\screenstream\screenshare.py", line 46, in datagramReceived
            if not self.callback(timestamp):
          File "c:\users\cruzdesktop\appdata\local\programs\python\python39\lib\site-packages\rmview\screenstream\screenshare.py", line 119, in runVnc
            userId = self.get_userid()
          File "c:\users\cruzdesktop\appdata\local\programs\python\python39\lib\site-packages\rmview\screenstream\screenshare.py", line 104, in get_userid
            cfg.read_string(file_content)
          File "c:\users\cruzdesktop\appdata\local\programs\python\python39\lib\configparser.py", line 723, in read_string
            self.read_file(sfile, source)
          File "c:\users\cruzdesktop\appdata\local\programs\python\python39\lib\configparser.py", line 718, in read_file
            self._read(f, source)
          File "c:\users\cruzdesktop\appdata\local\programs\python\python39\lib\configparser.py", line 1093, in _read
            raise DuplicateOptionError(sectname, optname,
        configparser.DuplicateOptionError: While reading from '<string>' [line 56]: option 'direct-hi-android_5bd8' in section 'wifinetworks' already exists
bordaigorl commented 2 years ago

Ah that's new! What seems to be happening is that the file /etc/remarkable.conf on your tablet has two entries for the same wifi network. The parser that rmview uses to find your userId for authentication is choking on the duplicate entry. One workaround is to manually amend the offending entries in /etc/remarkable.conf (you can ssh on the tablet and edit the file with any editor eg. vi). Make a backup just in case.

I will update rmview to use a more lax parser of the configuration, which would allow you to use rmview even with the duplicate entries (if indeed this is the only problem here).

MinuteLow726 commented 2 years ago

Hi bordaigorl, Thank you! This fixed the issue and now it works quite well!