remarkable.guide icon indicating copy to clipboard operation
remarkable.guide copied to clipboard

Document rM Paper Pro

Open Eeems opened this issue 1 year ago • 43 comments

Start tracking information here about the device that may be useful to document, and PRs can be created to start integrating it into the correct place.

Eeems avatar Sep 13 '24 15:09 Eeems

  • lsmod:
    Module                  Size  Used by
    iw61x_sdw61x          712704  1
    rm_hwmon_keyboard      20480  0
    rm_hwmon_vsys          16384  0
    rm_hwmon_temp          16384  0
    overlay               114688  5
    ci_hdrc_imx            20480  0
    ci_hdrc                53248  2 ci_hdrc_imx
    ulpi                   16384  1 ci_hdrc
    ehci_hcd               53248  1 ci_hdrc
    iw61x_mlan            536576  1 iw61x_sdw61x
    usbmisc_imx            24576  1 ci_hdrc_imx
    suspend_event          16384  0
    usbcore               212992  2 ehci_hcd,ci_hdrc
    st_lis2dw12_i2c        16384  0
    max1726x_battery       24576  0
    max77963_charger       28672  0
    max77932               16384  0
    elants_spi             28672  0
    rm_hwmon               40960  3 rm_hwmon_temp,rm_hwmon_keyboard,rm_hwmon_vsys
    ctn730_rm              36864  1
    st_lis2dw12            24576  1 st_lis2dw12_i2c
    aw99703_bl             20480  0
    fusb303b               20480  0
    mfd_core               16384  1 rm_hwmon
    cfg80211              331776  1 iw61x_sdw61x
    rfkill                 24576  3 ctn730_rm,cfg80211
    rtc_snvs               16384  1
    
  • ps -a:
      PID USER       VSZ STAT COMMAND
        1 root     15640 S    {systemd} /sbin/init
        2 root         0 SW   [kthreadd]
        3 root         0 IW<  [rcu_gp]
        4 root         0 IW<  [rcu_par_gp]
        5 root         0 IW<  [slub_flushwq]
        6 root         0 IW<  [netns]
       10 root         0 IW<  [mm_percpu_wq]
       11 root         0 SW   [ksoftirqd/0]
       12 root         0 IW   [rcu_preempt]
       13 root         0 SW   [migration/0]
       14 root         0 SW   [cpuhp/0]
       15 root         0 SW   [cpuhp/1]
       16 root         0 SW   [migration/1]
       17 root         0 SW   [ksoftirqd/1]
       20 root         0 SW   [cpuhp/2]
       21 root         0 SW   [migration/2]
       22 root         0 SW   [ksoftirqd/2]
       25 root         0 SW   [cpuhp/3]
       26 root         0 SW   [migration/3]
       27 root         0 SW   [ksoftirqd/3]
       30 root         0 SW   [kdevtmpfs]
       31 root         0 IW<  [inet_frag_wq]
       34 root         0 SW   [kauditd]
       35 root         0 SW   [oom_reaper]
       36 root         0 IW<  [writeback]
       37 root         0 SW   [kcompactd0]
       38 root         0 SWN  [khugepaged]
       39 root         0 IW<  [cryptd]
       40 root         0 IW<  [kintegrityd]
       41 root         0 IW<  [kblockd]
       42 root         0 IW<  [blkcg_punt_bio]
       43 root         0 SW   [watchdogd]
       45 root         0 IW<  [kworker/0:1H-mm]
       46 root         0 SW   [kswapd0]
       50 root         0 IW<  [dm_bufio_cache]
       53 root         0 IW<  [sdhci]
       54 root         0 SW   [irq/21-mmc0]
       55 root         0 SW   [30902000.jr-eng]
       60 root         0 IW<  [mld]
       61 root         0 IW<  [ipv6_addrconf]
      172 root         0 IW   [kworker/3:2-cgr]
      175 root         0 SW   [irq/28-pca9450-]
      180 root         0 SW   [spi1]
      186 root         0 IW<  [sdhci]
      188 root         0 SW   [irq/199-mmc1]
      195 root         0 IW<  [mmc_complete]
      205 root         0 IW<  [kdmflush/254:1]
      206 root         0 IW<  [kcryptd_io/254:]
      207 root         0 IW<  [kcryptd/254:1]
      208 root         0 SW   [dmcrypt_write/2]
      210 root         0 SW   [jbd2/mmcblk0p3-]
      211 root         0 IW<  [ext4-rsv-conver]
      213 root         0 IW<  [kworker/1:1H-kb]
      218 root         0 IW<  [kworker/2:1H-kb]
      235 root     22088 S    /lib/systemd/systemd-journald
      257 root     16444 S    /lib/systemd/systemd-udevd
      266 systemd- 13740 S    /lib/systemd/systemd-networkd
      317 root         0 SW   [irq/93-ctn730_r]
      318 root         0 SW   [irq/98-serial0-]
      319 root         0 IW<  [cfg80211]
      320 root         0 SW   [irq/130-1-0068]
      326 root         0 SW   [irq/136-max1726]
      332 root         0 SW   [irq/95-st_lis2d]
      333 root         0 SW   [irq/138-max7796]
      334 root         0 SW   [irq/134-max7796]
      335 root         0 SW   [kworker/u8:5+au]
      339 root         0 SW   [irq/145-elants_]
      353 root         0 SW   [card0-crtc0]
      354 root         0 SW   [card0-crtc1]
      355 root         0 SW   [card0-crtc2]
      356 root         0 SW   [card0-crtc3]
      358 root         0 SW   [jbd2/mmcblk0p1-]
      360 root         0 IW<  [ext4-rsv-conver]
      367 root         0 IW<  [ci_otg]
      368 root         0 IW<  [ci_power_lost]
      372 root         0 IW<  [ci_otg]
      375 root         0 IW<  [ci_power_lost]
      402 root         0 SW   [irq/110-4-0021]
      407 systemd- 13648 S    /lib/systemd/systemd-resolved
      421 messageb  5352 S    /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
      422 root      5228 S    /sbin/agetty -o -p -- \u --noclear - linux
      427 root      2344 S    /sbin/agetty -8 -L ttymxc1 115200 linux
      429 root     12296 S    /lib/systemd/systemd-logind
      431 root      146m S    /usr/sbin/tee-supplicant
      436 root         0 IW<  [optee_bus_scan]
      461 root     77204 S    /usr/sbin/chronyd
      484 root     12076 S    systemd-tty-ask-password-agent --wall
      635 root         0 IW<  [kdmflush/254:0]
      636 root         0 IW<  [kcryptd_io/254:]
      637 root         0 IW<  [kcryptd/254:0]
      638 root         0 SW   [dmcrypt_write/2]
      650 root         0 SW   [jbd2/dm-0-8]
      651 root         0 IW<  [ext4-rsv-conver]
      657 root     49472 S    /usr/bin/crashuploader --path /home/root/
      667 root      8212 S    /usr/bin/marker-manager 60 80 300 0 1800 0 3
      720 root     13588 S    /usr/sbin/wpa_supplicant -u -c /home/root/.config/remarkable/wifi_networks.conf -I /etc/wpa_supplicant.conf -i wlan0
      729 root      936m S    /usr/bin/memfaultd --daemonize --config-file /etc/memfaultd.conf
      764 root      748m S    /usr/sbin/collectd -C /etc/collectd.conf -f
      766 root      373m S    /usr/bin/swupdate -k /usr/share/swupdate/swupdate-payload-key-pub.pem -H ferrari 1.0 -e stable copy1 -f /tmp/swupdate.cfg -u  -d -x
      806 root      245m S    /usr/bin/swupdate -k /usr/share/swupdate/swupdate-payload-key-pub.pem -H ferrari 1.0 -e stable copy1 -f /tmp/swupdate.cfg -u  -d -x
      808 root      121m S    /usr/bin/fakeupdateengine_service
     1054 root      3064 S    /usr/sbin/dropbear -G root -i -r /etc/dropbear/dropbear_ed25519_host_key -B
     1056 root      3984 S    -sh --login
     1452 root      3192 S    /usr/sbin/dropbear -G root -i -r /etc/dropbear/dropbear_ed25519_host_key -B
     1453 root      3984 S    -sh --login
     1586 root         0 IW<  [kworker/u9:0-MO]
     1592 root         0 IW<  [kworker/3:0H-kb]
     1797 root         0 IW   [kworker/2:0-mm_]
     1807 root         0 IW   [kworker/1:0-eve]
     1865 root         0 IW<  [kworker/1:0H]
     1866 root         0 IW<  [kworker/2:2H]
     1872 root         0 IW   [kworker/u8:7-kc]
     1879 root         0 IW   [kworker/u8:15-k]
     1884 root         0 SW   [hwrng]
     1919 root         0 IW<  [MOAL_HANG_WORK_]
     1920 root         0 IW<  [MOAL_WORK_QUEUE]
     1921 root         0 IW<  [MOAL_EVT_WORK_Q]
     1922 root         0 IW<  [MOAL_RX_WORK_QU]
     1923 root         0 SW   [woal_reassoc_se]
     1932 root         0 IW<  [CSAwlan17886120]
     1933 root         0 IW<  [MCLIST_WORK_QUE]
     1947 root      3064 D    /usr/sbin/dropbear -G root -i -r /etc/dropbear/dropbear_ed25519_host_key -B
     1948 root      3984 S    -sh --login
     2055 root         0 IW   [kworker/u8:0-ev]
     2107 root         0 IW   [kworker/0:0-eve]
     2124 root         0 IW<  [kworker/3:1H-kb]
     2171 root         0 IW   [kworker/2:2-eve]
     2190 root         0 IW   [kworker/1:1-eve]
     2215 root         0 IW<  [kworker/0:0H]
     2259 root         0 IW<  [kworker/u9:2-MO]
     2380 root         0 IW   [kworker/3:0-eve]
     2430 root         0 RW   [kworker/u8:1-ev]
     2437 root         0 IW   [kworker/0:2-eve]
     2514 root         0 IW<  [kworker/u9:1-MO]
     2538 root         0 IW   [kworker/0:1-eve]
     2574 root         0 IW<  [kworker/0:2H-kb]
     2602 root         0 IW   [kworker/1:2-eve]
     2614 root     1874m S    /usr/bin/xochitl --system
     2615 root      229m SN   /usr/bin/rm-sync
     2622 root         0 IW<  [kworker/2:0H]
     2627 root         0 IW   [kworker/3:1-eve]
     2635 root         0 IW   [kworker/2:1]
     2666 root      3492 R    ps
    
  • partition layout:
    NAME                    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
    mmcblk0                 179:0    0 58.3G  0 disk
    |-mmcblk0p1             179:1    0  100M  0 part /data
    |-mmcblk0p2             179:2    0    4G  0 part
    |-mmcblk0p3             179:3    0    4G  0 part /
    |-mmcblk0p4             179:4    0  1.6G  0 part
    | `-swap-encrypted-disk 254:1    0  1.5G  0 dm   [SWAP]
    `-mmcblk0p5             179:5    0 48.7G  0 part
      `-home-encrypted-disk 254:0    0 48.7G  0 dm   /var/log/journal
                                                     /etc/dropbear
                                                     /home
    mmcblk0boot0            179:32   0    4M  1 disk
    mmcblk0boot1            179:64   0    4M  1 disk
    
  • mount:
    /dev/mmcblk0p3 on / type ext4 (ro,relatime)
    devtmpfs on /dev type devtmpfs (rw,relatime,size=677724k,nr_inodes=169431,mode=755)
    proc on /proc type proc (rw,relatime)
    sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
    securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
    tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
    devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620,ptmxmode=666)
    tmpfs on /run type tmpfs (rw,nosuid,nodev,size=402432k,nr_inodes=819200,mode=755)
    tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,size=4096k,nr_inodes=1024,mode=755)
    cgroup2 on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate)
    cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,name=systemd)
    cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
    cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
    cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
    cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
    cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
    cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
    cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
    hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M)
    mqueue on /dev/mqueue type mqueue (rw,nosuid,nodev,noexec,relatime)
    tmpfs on /tmp type tmpfs (rw,nosuid,nodev,size=1006080k,nr_inodes=1048576)
    configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime)
    /dev/mmcblk0p1 on /data type ext4 (rw,relatime,sync,nodelalloc,data=journal)
    tmpfs on /var/volatile type tmpfs (rw,relatime)
    overlay on /var/cache type overlay (rw,relatime,lowerdir=/var/cache,upperdir=/var/volatile/cache,workdir=/var/volatile/.cache-work)
    overlay on /etc type overlay (rw,relatime,lowerdir=/etc,upperdir=/var/volatile/etc,workdir=/var/volatile/.etc-work)
    overlay on /srv type overlay (rw,relatime,lowerdir=/srv,upperdir=/var/volatile/srv,workdir=/var/volatile/.srv-work)
    overlay on /var/lib type overlay (rw,relatime,lowerdir=/var/lib,upperdir=/var/volatile/lib,workdir=/var/volatile/.lib-work)
    overlay on /var/spool type overlay (rw,relatime,lowerdir=/var/spool,upperdir=/var/volatile/spool,workdir=/var/volatile/.spool-work)
    ramfs on /run/credentials/systemd-sysusers.service type ramfs (ro,nosuid,nodev,noexec,relatime,mode=700)
    /dev/mapper/home-encrypted-disk on /home type ext4 (rw,relatime)
    /dev/mapper/home-encrypted-disk on /etc/dropbear type ext4 (rw,relatime)
    /dev/mapper/home-encrypted-disk on /var/log/journal type ext4 (rw,relatime)
    

Relevant pastebins Disk information and processes stuff if I recall correctly

FouzR avatar Sep 13 '24 16:09 FouzR

Enum values for pen colors on the new tablet. I.e., this part of rmscene defines the values 0 - 8 as black, gray, white, etc. https://github.com/ricklupton/rmscene/blob/ca34c8a2b3337f5968ba6b60d39fc57c2a994fc1/src/rmscene/scene_items.py#L59

knox-dawson avatar Sep 13 '24 16:09 knox-dawson

  • cat /proc/bus/input/devices w/ TypeFolio open:
    root@imx8mm-ferrari:~# cat /proc/bus/input/devices
    I: Bus=0019 Vendor=0000 Product=0000 Version=0000
    N: Name="30370000.snvs:snvs-powerkey"
    P: Phys=snvs-pwrkey/input0
    S: Sysfs=/devices/platform/soc@0/30000000.bus/30370000.snvs/30370000.snvs:snvs-powerkey/input/input0
    U: Uniq=
    H: Handlers=kbd event0
    B: PROP=0
    B: EV=3
    B: KEY=10000000000000 0
    
    I: Bus=0019 Vendor=0001 Product=0001 Version=0100
    N: Name="Hall effect sensors"
    P: Phys=gpio-keys/input0
    S: Sysfs=/devices/platform/gpio-hall-sensors/input/input1
    U: Uniq=
    H: Handlers=event1
    B: PROP=0
    B: EV=21
    B: SW=8001
    
    I: Bus=001c Vendor=0000 Product=0000 Version=0000
    N: Name="Elan marker input"
    P: Phys=
    S: Sysfs=/devices/platform/soc@0/30800000.bus/30800000.spba-bus/30830000.spi/spi_master/spi1/spi1.1/input/input2
    U: Uniq=
    H: Handlers=event2
    B: PROP=0
    B: EV=b
    B: KEY=1c03 0 0 0 0 0
    B: ABS=f000003
    
    I: Bus=001c Vendor=0000 Product=0000 Version=0000
    N: Name="Elan touch input"
    P: Phys=
    S: Sysfs=/devices/platform/soc@0/30800000.bus/30800000.spba-bus/30830000.spi/spi_master/spi1/spi1.1/input/input3
    U: Uniq=
    H: Handlers=event3
    B: PROP=2
    B: EV=b
    B: KEY=400 0 0 0 0 0
    B: ABS=ee1800000000000
    
    I: Bus=0019 Vendor=2edd Product=0001 Version=0100
    N: Name="rM_Keyboard"
    P: Phys=pogo/input0
    S: Sysfs=/devices/platform/soc@0/30800000.bus/30800000.spba-bus/30860000.serial/serial0/serial0-0/rm_hwmon_keyboard.3.auto/input/input7
    U: Uniq=RM08B024234002G
    H: Handlers=kbd leds event4
    B: PROP=0
    B: EV=120003
    B: KEY=40001e9000000000 77ffffffffffffe
    B: LED=102
    
  • The rM_Keyboard entry is removed when the keyboard folio is closed.
  • ls -l /dev/input/by-path/:
    lrwxrwxrwx    1 root     root             9 Apr 28  2022 platform-30370000.snvs:snvs-powerkey-event -> ../event0
    lrwxrwxrwx    1 root     root             9 Sep 13 02:33 platform-30830000.spi-cs-1-event -> ../event3
    lrwxrwxrwx    1 root     root             9 Sep 13 02:33 platform-30830000.spi-cs-1-event-mouse -> ../event2
    lrwxrwxrwx    1 root     root             9 Sep 13 16:22 platform-30860000.serial-platform-rm_hwmon_keyboard.3.auto-event-kbd -> ../event4
    lrwxrwxrwx    1 root     root             9 Apr 28  2022 platform-gpio-hall-sensors-event -> ../event1
    

themightychris avatar Sep 13 '24 19:09 themightychris

uname -a:

Linux imx8mm-ferrari 6.1.55+git+68a6c61fc0-imx8mm-ferrari #1 SMP PREEMPT Sun Sep  1 10:25:29 UTC 2024 aarch64 GNU/Linux

cat /etc/os-release:

ID=codex-ct-prototype
NAME="Codex Linux"
VERSION="4.0.809 (kirkstone)"
VERSION_ID=4.0.809
PRETTY_NAME="Codex Linux 4.0.809 (kirkstone)"
DISTRO_CODENAME="kirkstone"
BUILD_MODE_RM="public"
IMG_VERSION="3.14.1.10"

python3 --version Python 3.10.13

r2pilot avatar Sep 13 '24 20:09 r2pilot

Some info generated by evtest:

No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:      30370000.snvs:snvs-powerkey
/dev/input/event1:      Hall effect sensors
/dev/input/event2:      Elan marker input
/dev/input/event3:      Elan touch input
Select the device event number [0-3]: 2
Input driver version is 1.0.1
Input device ID: bus 0x1c vendor 0x0 product 0x0 version 0x0
Input device name: "Elan marker input"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 320 (BTN_TOOL_PEN)
    Event code 321 (BTN_TOOL_RUBBER)
    Event code 330 (BTN_TOUCH)
    Event code 331 (BTN_STYLUS)
    Event code 332 (BTN_STYLUS2)
  Event type 3 (EV_ABS)
    Event code 0 (ABS_X)
      Value  10305
      Min        0
      Max    11180
      Resolution    2832
    Event code 1 (ABS_Y)
      Value   4540
      Min        0
      Max    15340
      Resolution    2064
    Event code 24 (ABS_PRESSURE)
      Value      0
      Min        0
      Max     4096
    Event code 25 (ABS_DISTANCE)
      Value     50
      Min        0
      Max    65535
    Event code 26 (ABS_TILT_X)
      Value      0
      Min    -9000
      Max     9000
    Event code 27 (ABS_TILT_Y)
      Value      0
      Min    -9000
      Max     9000
Properties:
Testing ... (interrupt to exit)
Event: time 1726270496.480793, type 1 (EV_KEY), code 320 (BTN_TOOL_PEN), value 1
Event: time 1726270496.480793, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 0
Event: time 1726270496.480793, type 3 (EV_ABS), code 0 (ABS_X), value 484
Event: time 1726270496.480793, type 3 (EV_ABS), code 1 (ABS_Y), value 146
Event: time 1726270496.480793, -------------- SYN_REPORT ------------
Event: time 1726270496.482423, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 6
Event: time 1726270496.482423, -------------- SYN_REPORT ------------
Event: time 1726270496.498842, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 7
Event: time 1726270496.498842, -------------- SYN_REPORT ------------
Event: time 1726270496.505350, type 3 (EV_ABS), code 0 (ABS_X), value 481
Event: time 1726270496.505350, type 3 (EV_ABS), code 1 (ABS_Y), value 150
Event: time 1726270496.505350, -------------- SYN_REPORT ------------
Event: time 1726270496.507016, type 3 (EV_ABS), code 0 (ABS_X), value 478
Event: time 1726270496.507016, type 3 (EV_ABS), code 1 (ABS_Y), value 154
Event: time 1726270496.507016, -------------- SYN_REPORT ------------
Event: time 1726270496.507891, type 3 (EV_ABS), code 0 (ABS_X), value 475
Event: time 1726270496.507891, type 3 (EV_ABS), code 1 (ABS_Y), value 158
Event: time 1726270496.507891, -------------- SYN_REPORT ------------
Event: time 1726270496.512857, type 3 (EV_ABS), code 0 (ABS_X), value 472
Event: time 1726270496.512857, type 3 (EV_ABS), code 1 (ABS_Y), value 162
Event: time 1726270496.512857, -------------- SYN_REPORT ------------
Event: time 1726270496.514438, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 9
Event: time 1726270496.514438, -------------- SYN_REPORT ------------
Event: time 1726270496.514922, type 3 (EV_ABS), code 0 (ABS_X), value 469
Event: time 1726270496.514922, type 3 (EV_ABS), code 1 (ABS_Y), value 167
Event: time 1726270496.514922, -------------- SYN_REPORT ------------
Event: time 1726270496.518044, type 3 (EV_ABS), code 0 (ABS_X), value 465
Event: time 1726270496.518044, type 3 (EV_ABS), code 1 (ABS_Y), value 172
Event: time 1726270496.518044, -------------- SYN_REPORT ------------
Event: time 1726270496.519232, type 3 (EV_ABS), code 0 (ABS_X), value 461
Event: time 1726270496.519232, type 3 (EV_ABS), code 1 (ABS_Y), value 176
Event: time 1726270496.519232, -------------- SYN_REPORT ------------
Event: time 1726270496.520880, type 3 (EV_ABS), code 0 (ABS_X), value 457
Event: time 1726270496.520880, type 3 (EV_ABS), code 1 (ABS_Y), value 181
Event: time 1726270496.520880, -------------- SYN_REPORT ------------
Event: time 1726270496.522977, type 3 (EV_ABS), code 0 (ABS_X), value 453
Event: time 1726270496.522977, type 3 (EV_ABS), code 1 (ABS_Y), value 187
Event: time 1726270496.522977, -------------- SYN_REPORT ------------
Event: time 1726270496.524783, type 3 (EV_ABS), code 0 (ABS_X), value 449
Event: time 1726270496.524783, type 3 (EV_ABS), code 1 (ABS_Y), value 193
Event: time 1726270496.524783, -------------- SYN_REPORT ------------
Event: time 1726270496.528215, type 3 (EV_ABS), code 0 (ABS_X), value 445
Event: time 1726270496.528215, type 3 (EV_ABS), code 1 (ABS_Y), value 199
Event: time 1726270496.528215, -------------- SYN_REPORT ------------
Event: time 1726270496.531777, type 3 (EV_ABS), code 0 (ABS_X), value 440
Event: time 1726270496.531777, type 3 (EV_ABS), code 1 (ABS_Y), value 205
Event: time 1726270496.531777, -------------- SYN_REPORT ------------
Event: time 1726270496.533692, type 3 (EV_ABS), code 0 (ABS_X), value 436
Event: time 1726270496.533692, type 3 (EV_ABS), code 1 (ABS_Y), value 211
Event: time 1726270496.533692, -------------- SYN_REPORT ------------
Event: time 1726270496.535221, type 3 (EV_ABS), code 0 (ABS_X), value 431
Event: time 1726270496.535221, type 3 (EV_ABS), code 1 (ABS_Y), value 218
Event: time 1726270496.535221, -------------- SYN_REPORT ------------
Event: time 1726270496.536317, type 3 (EV_ABS), code 0 (ABS_X), value 426
Event: time 1726270496.536317, type 3 (EV_ABS), code 1 (ABS_Y), value 225
Event: time 1726270496.536317, -------------- SYN_REPORT ------------
Event: time 1726270496.537998, type 3 (EV_ABS), code 0 (ABS_X), value 421
Event: time 1726270496.537998, type 3 (EV_ABS), code 1 (ABS_Y), value 231
Event: time 1726270496.537998, -------------- SYN_REPORT ------------
Event: time 1726270496.539443, type 3 (EV_ABS), code 0 (ABS_X), value 416
Event: time 1726270496.539443, type 3 (EV_ABS), code 1 (ABS_Y), value 237
Event: time 1726270496.539443, -------------- SYN_REPORT ------------
Event: time 1726270496.544531, type 3 (EV_ABS), code 0 (ABS_X), value 410
Event: time 1726270496.544531, type 3 (EV_ABS), code 1 (ABS_Y), value 243
Event: time 1726270496.544531, -------------- SYN_REPORT ------------
Event: time 1726270496.547766, type 3 (EV_ABS), code 0 (ABS_X), value 404
Event: time 1726270496.547766, type 3 (EV_ABS), code 1 (ABS_Y), value 249
Event: time 1726270496.547766, -------------- SYN_REPORT ------------
Event: time 1726270496.549732, type 3 (EV_ABS), code 0 (ABS_X), value 398
Event: time 1726270496.549732, type 3 (EV_ABS), code 1 (ABS_Y), value 255
Event: time 1726270496.549732, -------------- SYN_REPORT ------------
Event: time 1726270496.550606, type 3 (EV_ABS), code 0 (ABS_X), value 393
Event: time 1726270496.550606, type 3 (EV_ABS), code 1 (ABS_Y), value 261
Event: time 1726270496.550606, -------------- SYN_REPORT ------------
Event: time 1726270496.552656, type 3 (EV_ABS), code 0 (ABS_X), value 388
Event: time 1726270496.552656, type 3 (EV_ABS), code 1 (ABS_Y), value 266
Event: time 1726270496.552656, -------------- SYN_REPORT ------------
Event: time 1726270496.554691, type 3 (EV_ABS), code 0 (ABS_X), value 384
Event: time 1726270496.554691, type 3 (EV_ABS), code 1 (ABS_Y), value 271
Event: time 1726270496.554691, -------------- SYN_REPORT ------------
Event: time 1726270496.555798, type 3 (EV_ABS), code 0 (ABS_X), value 380
Event: time 1726270496.555798, type 3 (EV_ABS), code 1 (ABS_Y), value 276
Event: time 1726270496.555798, -------------- SYN_REPORT ------------
Event: time 1726270496.560286, type 3 (EV_ABS), code 0 (ABS_X), value 377
Event: time 1726270496.560286, type 3 (EV_ABS), code 1 (ABS_Y), value 281
Event: time 1726270496.560286, -------------- SYN_REPORT ------------
Event: time 1726270496.563233, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 10
Event: time 1726270496.563233, -------------- SYN_REPORT ------------
Event: time 1726270496.563770, type 3 (EV_ABS), code 0 (ABS_X), value 374
Event: time 1726270496.563770, type 3 (EV_ABS), code 1 (ABS_Y), value 284
Event: time 1726270496.563770, -------------- SYN_REPORT ------------
Event: time 1726270496.566130, type 3 (EV_ABS), code 0 (ABS_X), value 372
Event: time 1726270496.566130, type 3 (EV_ABS), code 1 (ABS_Y), value 287
Event: time 1726270496.566130, -------------- SYN_REPORT ------------
Event: time 1726270496.566601, type 3 (EV_ABS), code 0 (ABS_X), value 370
Event: time 1726270496.566601, type 3 (EV_ABS), code 1 (ABS_Y), value 290
Event: time 1726270496.566601, -------------- SYN_REPORT ------------
Event: time 1726270496.568001, type 3 (EV_ABS), code 0 (ABS_X), value 368
Event: time 1726270496.568001, type 3 (EV_ABS), code 1 (ABS_Y), value 292
Event: time 1726270496.568001, -------------- SYN_REPORT ------------
Event: time 1726270496.570122, type 3 (EV_ABS), code 0 (ABS_X), value 367
Event: time 1726270496.570122, type 3 (EV_ABS), code 1 (ABS_Y), value 294
Event: time 1726270496.570122, -------------- SYN_REPORT ------------
Event: time 1726270496.578581, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 11
Event: time 1726270496.578581, -------------- SYN_REPORT ------------
Event: time 1726270496.581482, type 3 (EV_ABS), code 0 (ABS_X), value 369
Event: time 1726270496.581482, -------------- SYN_REPORT ------------
Event: time 1726270496.593052, type 3 (EV_ABS), code 0 (ABS_X), value 372
Event: time 1726270496.593052, type 3 (EV_ABS), code 1 (ABS_Y), value 293
Event: time 1726270496.593052, -------------- SYN_REPORT ------------
Event: time 1726270496.593977, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 13
Event: time 1726270496.593977, -------------- SYN_REPORT ------------
Event: time 1726270496.595112, type 3 (EV_ABS), code 0 (ABS_X), value 376
Event: time 1726270496.595112, type 3 (EV_ABS), code 1 (ABS_Y), value 291
Event: time 1726270496.595112, -------------- SYN_REPORT ------------
Event: time 1726270496.598211, type 3 (EV_ABS), code 0 (ABS_X), value 381
Event: time 1726270496.598211, type 3 (EV_ABS), code 1 (ABS_Y), value 289
Event: time 1726270496.598211, -------------- SYN_REPORT ------------
Event: time 1726270496.611616, type 3 (EV_ABS), code 0 (ABS_X), value 387
Event: time 1726270496.611616, type 3 (EV_ABS), code 1 (ABS_Y), value 286
Event: time 1726270496.611616, -------------- SYN_REPORT ------------
Event: time 1726270496.613558, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 14
Event: time 1726270496.613558, -------------- SYN_REPORT ------------
Event: time 1726270496.614725, type 3 (EV_ABS), code 0 (ABS_X), value 393
Event: time 1726270496.614725, type 3 (EV_ABS), code 1 (ABS_Y), value 283
Event: time 1726270496.614725, -------------- SYN_REPORT ------------
Event: time 1726270496.616676, type 3 (EV_ABS), code 0 (ABS_X), value 400
Event: time 1726270496.616676, type 3 (EV_ABS), code 1 (ABS_Y), value 280
Event: time 1726270496.616676, -------------- SYN_REPORT ------------
Event: time 1726270496.630159, type 3 (EV_ABS), code 0 (ABS_X), value 407
Event: time 1726270496.630159, type 3 (EV_ABS), code 1 (ABS_Y), value 278
Event: time 1726270496.630159, -------------- SYN_REPORT ------------
Event: time 1726270496.631360, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 15
Event: time 1726270496.631360, -------------- SYN_REPORT ------------
Event: time 1726270496.632267, type 3 (EV_ABS), code 0 (ABS_X), value 414
Event: time 1726270496.632267, type 3 (EV_ABS), code 1 (ABS_Y), value 277
Event: time 1726270496.632267, -------------- SYN_REPORT ------------
Event: time 1726270496.634931, type 3 (EV_ABS), code 0 (ABS_X), value 421
Event: time 1726270496.634931, -------------- SYN_REPORT ------------
Event: time 1726270496.648717, type 3 (EV_ABS), code 0 (ABS_X), value 426
Event: time 1726270496.648717, type 3 (EV_ABS), code 1 (ABS_Y), value 278
Event: time 1726270496.648717, -------------- SYN_REPORT ------------
Event: time 1726270496.650665, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 16
Event: time 1726270496.650665, -------------- SYN_REPORT ------------
Event: time 1726270496.651262, type 3 (EV_ABS), code 0 (ABS_X), value 431
Event: time 1726270496.651262, type 3 (EV_ABS), code 1 (ABS_Y), value 280
Event: time 1726270496.651262, -------------- SYN_REPORT ------------
Event: time 1726270496.653841, type 3 (EV_ABS), code 0 (ABS_X), value 435
Event: time 1726270496.653841, type 3 (EV_ABS), code 1 (ABS_Y), value 283
Event: time 1726270496.653841, -------------- SYN_REPORT ------------
Event: time 1726270496.667268, type 3 (EV_ABS), code 0 (ABS_X), value 438
Event: time 1726270496.667268, type 3 (EV_ABS), code 1 (ABS_Y), value 287
Event: time 1726270496.667268, -------------- SYN_REPORT ------------
Event: time 1726270496.668475, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 17
Event: time 1726270496.668475, -------------- SYN_REPORT ------------
Event: time 1726270496.669353, type 3 (EV_ABS), code 0 (ABS_X), value 440
Event: time 1726270496.669353, type 3 (EV_ABS), code 1 (ABS_Y), value 292
Event: time 1726270496.669353, -------------- SYN_REPORT ------------
Event: time 1726270496.671062, type 3 (EV_ABS), code 0 (ABS_X), value 441
Event: time 1726270496.671062, type 3 (EV_ABS), code 1 (ABS_Y), value 298
Event: time 1726270496.671062, -------------- SYN_REPORT ------------
Event: time 1726270496.685803, type 3 (EV_ABS), code 0 (ABS_X), value 442
Event: time 1726270496.685803, type 3 (EV_ABS), code 1 (ABS_Y), value 304
Event: time 1726270496.685803, -------------- SYN_REPORT ------------
Event: time 1726270496.688221, type 3 (EV_ABS), code 0 (ABS_X), value 443
Event: time 1726270496.688221, type 3 (EV_ABS), code 1 (ABS_Y), value 310
Event: time 1726270496.688221, -------------- SYN_REPORT ------------
Event: time 1726270496.690647, type 3 (EV_ABS), code 0 (ABS_X), value 444
Event: time 1726270496.690647, type 3 (EV_ABS), code 1 (ABS_Y), value 317
Event: time 1726270496.690647, -------------- SYN_REPORT ------------
Event: time 1726270496.704358, type 3 (EV_ABS), code 0 (ABS_X), value 446
Event: time 1726270496.704358, type 3 (EV_ABS), code 1 (ABS_Y), value 323
Event: time 1726270496.704358, -------------- SYN_REPORT ------------
Event: time 1726270496.706575, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 20
Event: time 1726270496.706575, -------------- SYN_REPORT ------------
Event: time 1726270496.707307, type 3 (EV_ABS), code 0 (ABS_X), value 448
Event: time 1726270496.707307, type 3 (EV_ABS), code 1 (ABS_Y), value 329
Event: time 1726270496.707307, -------------- SYN_REPORT ------------
Event: time 1726270496.708841, type 3 (EV_ABS), code 0 (ABS_X), value 451
Event: time 1726270496.708841, type 3 (EV_ABS), code 1 (ABS_Y), value 334
Event: time 1726270496.708841, -------------- SYN_REPORT ------------
Event: time 1726270496.722937, type 3 (EV_ABS), code 0 (ABS_X), value 456
Event: time 1726270496.722937, type 3 (EV_ABS), code 1 (ABS_Y), value 339
Event: time 1726270496.722937, -------------- SYN_REPORT ------------
Event: time 1726270496.724490, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 21
Event: time 1726270496.724490, -------------- SYN_REPORT ------------
Event: time 1726270496.725993, type 3 (EV_ABS), code 0 (ABS_X), value 464
Event: time 1726270496.725993, type 3 (EV_ABS), code 1 (ABS_Y), value 344
Event: time 1726270496.725993, -------------- SYN_REPORT ------------
Event: time 1726270496.727026, type 3 (EV_ABS), code 0 (ABS_X), value 473
Event: time 1726270496.727026, type 3 (EV_ABS), code 1 (ABS_Y), value 348
Event: time 1726270496.727026, -------------- SYN_REPORT ------------
Event: time 1726270496.741428, type 3 (EV_ABS), code 0 (ABS_X), value 484
Event: time 1726270496.741428, type 3 (EV_ABS), code 1 (ABS_Y), value 353
Event: time 1726270496.741428, -------------- SYN_REPORT ------------
Event: time 1726270496.742775, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 23
Event: time 1726270496.742775, -------------- SYN_REPORT ------------
Event: time 1726270496.743497, type 3 (EV_ABS), code 0 (ABS_X), value 497
Event: time 1726270496.743497, type 3 (EV_ABS), code 1 (ABS_Y), value 361
Event: time 1726270496.743497, -------------- SYN_REPORT ------------
Event: time 1726270496.745264, type 3 (EV_ABS), code 0 (ABS_X), value 510
Event: time 1726270496.745264, type 3 (EV_ABS), code 1 (ABS_Y), value 370
Event: time 1726270496.745264, -------------- SYN_REPORT ------------
Event: time 1726270496.758574, type 3 (EV_ABS), code 0 (ABS_X), value 523
Event: time 1726270496.758574, type 3 (EV_ABS), code 1 (ABS_Y), value 380
Event: time 1726270496.758574, -------------- SYN_REPORT ------------
Event: time 1726270496.761139, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 25
Event: time 1726270496.761139, -------------- SYN_REPORT ------------
Event: time 1726270496.762343, type 3 (EV_ABS), code 0 (ABS_X), value 536
Event: time 1726270496.762343, type 3 (EV_ABS), code 1 (ABS_Y), value 391
Event: time 1726270496.762343, -------------- SYN_REPORT ------------
Event: time 1726270496.763753, type 3 (EV_ABS), code 0 (ABS_X), value 548
Event: time 1726270496.763753, type 3 (EV_ABS), code 1 (ABS_Y), value 403
Event: time 1726270496.763753, -------------- SYN_REPORT ------------
Event: time 1726270496.778507, type 3 (EV_ABS), code 0 (ABS_X), value 560
Event: time 1726270496.778507, type 3 (EV_ABS), code 1 (ABS_Y), value 415
Event: time 1726270496.778507, -------------- SYN_REPORT ------------
Event: time 1726270496.780064, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 27
Event: time 1726270496.780064, -------------- SYN_REPORT ------------
Event: time 1726270496.781562, type 3 (EV_ABS), code 0 (ABS_X), value 571
Event: time 1726270496.781562, type 3 (EV_ABS), code 1 (ABS_Y), value 428
Event: time 1726270496.781562, -------------- SYN_REPORT ------------
Event: time 1726270496.782295, type 3 (EV_ABS), code 0 (ABS_X), value 581
Event: time 1726270496.782295, type 3 (EV_ABS), code 1 (ABS_Y), value 441
Event: time 1726270496.782295, -------------- SYN_REPORT ------------
Event: time 1726270496.796694, type 3 (EV_ABS), code 0 (ABS_X), value 591
Event: time 1726270496.796694, type 3 (EV_ABS), code 1 (ABS_Y), value 453
Event: time 1726270496.796694, -------------- SYN_REPORT ------------
Event: time 1726270496.798977, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 31
Event: time 1726270496.798977, -------------- SYN_REPORT ------------
Event: time 1726270496.799927, type 3 (EV_ABS), code 0 (ABS_X), value 601
Event: time 1726270496.799927, type 3 (EV_ABS), code 1 (ABS_Y), value 463
Event: time 1726270496.799927, -------------- SYN_REPORT ------------
Event: time 1726270496.801674, type 3 (EV_ABS), code 0 (ABS_X), value 610
Event: time 1726270496.801674, type 3 (EV_ABS), code 1 (ABS_Y), value 472
Event: time 1726270496.801674, -------------- SYN_REPORT ------------
Event: time 1726270496.815595, type 3 (EV_ABS), code 0 (ABS_X), value 621
Event: time 1726270496.815595, type 3 (EV_ABS), code 1 (ABS_Y), value 477
Event: time 1726270496.815595, -------------- SYN_REPORT ------------
Event: time 1726270496.817841, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 40
Event: time 1726270496.817841, -------------- SYN_REPORT ------------
Event: time 1726270496.818360, type 3 (EV_ABS), code 0 (ABS_X), value 634
Event: time 1726270496.818360, type 3 (EV_ABS), code 1 (ABS_Y), value 479
Event: time 1726270496.818360, -------------- SYN_REPORT ------------
Event: time 1726270496.820074, type 3 (EV_ABS), code 0 (ABS_X), value 648
Event: time 1726270496.820074, type 3 (EV_ABS), code 1 (ABS_Y), value 478
Event: time 1726270496.820074, -------------- SYN_REPORT ------------
Event: time 1726270496.834140, type 3 (EV_ABS), code 0 (ABS_X), value 666
Event: time 1726270496.834140, type 3 (EV_ABS), code 1 (ABS_Y), value 468
Event: time 1726270496.834140, -------------- SYN_REPORT ------------
Event: time 1726270496.836220, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 13896
Event: time 1726270496.836220, -------------- SYN_REPORT ------------
Event: time 1726270496.850176, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1726270496.850176, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 853
Event: time 1726270496.850176, type 3 (EV_ABS), code 0 (ABS_X), value 879
Event: time 1726270496.850176, type 3 (EV_ABS), code 1 (ABS_Y), value 287
Event: time 1726270496.850176, type 3 (EV_ABS), code 26 (ABS_TILT_X), value 1100
Event: time 1726270496.850176, type 3 (EV_ABS), code 27 (ABS_TILT_Y), value 400
Event: time 1726270496.850176, -------------- SYN_REPORT ------------
Event: time 1726270496.852466, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 13126
Event: time 1726270496.852466, -------------- SYN_REPORT ------------
Event: time 1726270496.852974, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 657
Event: time 1726270496.852974, type 3 (EV_ABS), code 0 (ABS_X), value 874
Event: time 1726270496.852974, type 3 (EV_ABS), code 1 (ABS_Y), value 275
Event: time 1726270496.852974, -------------- SYN_REPORT ------------
Event: time 1726270496.854331, type 3 (EV_ABS), code 0 (ABS_X), value 864
Event: time 1726270496.854331, type 3 (EV_ABS), code 1 (ABS_Y), value 250
Event: time 1726270496.854331, -------------- SYN_REPORT ------------
Event: time 1726270496.855536, type 3 (EV_ABS), code 0 (ABS_X), value 855
Event: time 1726270496.855536, type 3 (EV_ABS), code 1 (ABS_Y), value 227
Event: time 1726270496.855536, -------------- SYN_REPORT ------------
Event: time 1726270496.857696, type 3 (EV_ABS), code 0 (ABS_X), value 848
Event: time 1726270496.857696, type 3 (EV_ABS), code 1 (ABS_Y), value 210
Event: time 1726270496.857696, -------------- SYN_REPORT ------------
Event: time 1726270496.859721, type 3 (EV_ABS), code 0 (ABS_X), value 842
Event: time 1726270496.859721, type 3 (EV_ABS), code 1 (ABS_Y), value 197
Event: time 1726270496.859721, -------------- SYN_REPORT ------------
Event: time 1726270496.861105, type 3 (EV_ABS), code 0 (ABS_X), value 838
Event: time 1726270496.861105, type 3 (EV_ABS), code 1 (ABS_Y), value 187
Event: time 1726270496.861105, -------------- SYN_REPORT ------------
Event: time 1726270496.866091, type 3 (EV_ABS), code 0 (ABS_X), value 834
Event: time 1726270496.866091, type 3 (EV_ABS), code 1 (ABS_Y), value 180
Event: time 1726270496.866091, -------------- SYN_REPORT ------------
Event: time 1726270496.867700, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 12099
Event: time 1726270496.867700, type 3 (EV_ABS), code 0 (ABS_X), value 830
Event: time 1726270496.867700, type 3 (EV_ABS), code 1 (ABS_Y), value 174
Event: time 1726270496.867700, -------------- SYN_REPORT ------------
Event: time 1726270496.868952, type 3 (EV_ABS), code 0 (ABS_X), value 826
Event: time 1726270496.868952, type 3 (EV_ABS), code 1 (ABS_Y), value 170
Event: time 1726270496.868952, -------------- SYN_REPORT ------------
Event: time 1726270496.870978, type 3 (EV_ABS), code 0 (ABS_X), value 823
Event: time 1726270496.870978, type 3 (EV_ABS), code 1 (ABS_Y), value 167
Event: time 1726270496.870978, -------------- SYN_REPORT ------------
Event: time 1726270496.871568, type 3 (EV_ABS), code 0 (ABS_X), value 820
Event: time 1726270496.871568, type 3 (EV_ABS), code 1 (ABS_Y), value 166
Event: time 1726270496.871568, -------------- SYN_REPORT ------------
Event: time 1726270496.874302, type 3 (EV_ABS), code 0 (ABS_X), value 815
Event: time 1726270496.874302, type 3 (EV_ABS), code 1 (ABS_Y), value 165
Event: time 1726270496.874302, -------------- SYN_REPORT ------------
Event: time 1726270496.875742, type 3 (EV_ABS), code 0 (ABS_X), value 810
Event: time 1726270496.875742, -------------- SYN_REPORT ------------
Event: time 1726270496.878178, type 3 (EV_ABS), code 0 (ABS_X), value 804
Event: time 1726270496.878178, type 3 (EV_ABS), code 1 (ABS_Y), value 166
Event: time 1726270496.878178, -------------- SYN_REPORT ------------
Event: time 1726270496.882209, type 3 (EV_ABS), code 0 (ABS_X), value 798
Event: time 1726270496.882209, type 3 (EV_ABS), code 1 (ABS_Y), value 167
Event: time 1726270496.882209, -------------- SYN_REPORT ------------
Event: time 1726270496.883450, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 530
Event: time 1726270496.883450, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 12612
Event: time 1726270496.883450, type 3 (EV_ABS), code 0 (ABS_X), value 793
Event: time 1726270496.883450, type 3 (EV_ABS), code 1 (ABS_Y), value 168
Event: time 1726270496.883450, -------------- SYN_REPORT ------------
Event: time 1726270496.885480, type 3 (EV_ABS), code 0 (ABS_X), value 788
Event: time 1726270496.885480, type 3 (EV_ABS), code 1 (ABS_Y), value 171
Event: time 1726270496.885480, -------------- SYN_REPORT ------------
Event: time 1726270496.887064, type 3 (EV_ABS), code 0 (ABS_X), value 781
Event: time 1726270496.887064, type 3 (EV_ABS), code 1 (ABS_Y), value 175
Event: time 1726270496.887064, -------------- SYN_REPORT ------------
Event: time 1726270496.888315, type 3 (EV_ABS), code 0 (ABS_X), value 774
Event: time 1726270496.888315, type 3 (EV_ABS), code 1 (ABS_Y), value 180
Event: time 1726270496.888315, -------------- SYN_REPORT ------------
Event: time 1726270496.889689, type 3 (EV_ABS), code 0 (ABS_X), value 766
Event: time 1726270496.889689, type 3 (EV_ABS), code 1 (ABS_Y), value 187
Event: time 1726270496.889689, -------------- SYN_REPORT ------------
Event: time 1726270496.891107, type 3 (EV_ABS), code 0 (ABS_X), value 758
Event: time 1726270496.891107, type 3 (EV_ABS), code 1 (ABS_Y), value 195
Event: time 1726270496.891107, -------------- SYN_REPORT ------------
Event: time 1726270496.894235, type 3 (EV_ABS), code 0 (ABS_X), value 752
Event: time 1726270496.894235, type 3 (EV_ABS), code 1 (ABS_Y), value 203
Event: time 1726270496.894235, -------------- SYN_REPORT ------------
Event: time 1726270496.898272, type 3 (EV_ABS), code 0 (ABS_X), value 746
Event: time 1726270496.898272, type 3 (EV_ABS), code 1 (ABS_Y), value 211
Event: time 1726270496.898272, -------------- SYN_REPORT ------------
Event: time 1726270496.900120, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1726270496.900120, type 3 (EV_ABS), code 24 (ABS_PRESSURE), value 0
Event: time 1726270496.900120, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 13383
Event: time 1726270496.900120, type 3 (EV_ABS), code 26 (ABS_TILT_X), value 0
Event: time 1726270496.900120, type 3 (EV_ABS), code 27 (ABS_TILT_Y), value 0
Event: time 1726270496.900120, -------------- SYN_REPORT ------------
Event: time 1726270496.901968, type 3 (EV_ABS), code 0 (ABS_X), value 741
Event: time 1726270496.901968, type 3 (EV_ABS), code 1 (ABS_Y), value 217
Event: time 1726270496.901968, -------------- SYN_REPORT ------------
Event: time 1726270496.913549, type 3 (EV_ABS), code 0 (ABS_X), value 740
Event: time 1726270496.913549, type 3 (EV_ABS), code 1 (ABS_Y), value 220
Event: time 1726270496.913549, -------------- SYN_REPORT ------------
Event: time 1726270496.915375, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 12341
Event: time 1726270496.915375, type 3 (EV_ABS), code 0 (ABS_X), value 739
Event: time 1726270496.915375, type 3 (EV_ABS), code 1 (ABS_Y), value 222
Event: time 1726270496.915375, -------------- SYN_REPORT ------------
Event: time 1726270496.916663, type 3 (EV_ABS), code 0 (ABS_X), value 738
Event: time 1726270496.916663, type 3 (EV_ABS), code 1 (ABS_Y), value 226
Event: time 1726270496.916663, -------------- SYN_REPORT ------------
Event: time 1726270496.918736, type 3 (EV_ABS), code 0 (ABS_X), value 735
Event: time 1726270496.918736, type 3 (EV_ABS), code 1 (ABS_Y), value 233
Event: time 1726270496.918736, -------------- SYN_REPORT ------------
Event: time 1726270496.929681, type 3 (EV_ABS), code 0 (ABS_X), value 732
Event: time 1726270496.929681, type 3 (EV_ABS), code 1 (ABS_Y), value 242
Event: time 1726270496.929681, -------------- SYN_REPORT ------------
Event: time 1726270496.932020, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 10791
Event: time 1726270496.932020, type 3 (EV_ABS), code 0 (ABS_X), value 731
Event: time 1726270496.932020, type 3 (EV_ABS), code 1 (ABS_Y), value 246
Event: time 1726270496.932020, -------------- SYN_REPORT ------------
Event: time 1726270496.932463, type 3 (EV_ABS), code 0 (ABS_X), value 729
Event: time 1726270496.932463, type 3 (EV_ABS), code 1 (ABS_Y), value 251
Event: time 1726270496.932463, -------------- SYN_REPORT ------------
Event: time 1726270496.934454, type 3 (EV_ABS), code 0 (ABS_X), value 726
Event: time 1726270496.934454, type 3 (EV_ABS), code 1 (ABS_Y), value 260
Event: time 1726270496.934454, -------------- SYN_REPORT ------------
Event: time 1726270496.947926, type 3 (EV_ABS), code 0 (ABS_X), value 723
Event: time 1726270496.947926, type 3 (EV_ABS), code 1 (ABS_Y), value 270
Event: time 1726270496.947926, -------------- SYN_REPORT ------------
Event: time 1726270496.950424, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 10780
Event: time 1726270496.950424, type 3 (EV_ABS), code 0 (ABS_X), value 721
Event: time 1726270496.950424, type 3 (EV_ABS), code 1 (ABS_Y), value 274
Event: time 1726270496.950424, -------------- SYN_REPORT ------------
Event: time 1726270496.950896, type 3 (EV_ABS), code 0 (ABS_X), value 719
Event: time 1726270496.950896, type 3 (EV_ABS), code 1 (ABS_Y), value 278
Event: time 1726270496.950896, -------------- SYN_REPORT ------------
Event: time 1726270496.953317, type 3 (EV_ABS), code 0 (ABS_X), value 715
Event: time 1726270496.953317, type 3 (EV_ABS), code 1 (ABS_Y), value 286
Event: time 1726270496.953317, -------------- SYN_REPORT ------------
Event: time 1726270496.966372, type 3 (EV_ABS), code 0 (ABS_X), value 712
Event: time 1726270496.966372, type 3 (EV_ABS), code 1 (ABS_Y), value 292
Event: time 1726270496.966372, -------------- SYN_REPORT ------------
Event: time 1726270496.968411, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 10772
Event: time 1726270496.968411, type 3 (EV_ABS), code 0 (ABS_X), value 711
Event: time 1726270496.968411, type 3 (EV_ABS), code 1 (ABS_Y), value 295
Event: time 1726270496.968411, -------------- SYN_REPORT ------------
Event: time 1726270496.969495, type 3 (EV_ABS), code 0 (ABS_X), value 709
Event: time 1726270496.969495, type 3 (EV_ABS), code 1 (ABS_Y), value 297
Event: time 1726270496.969495, -------------- SYN_REPORT ------------
Event: time 1726270496.971339, type 3 (EV_ABS), code 0 (ABS_X), value 706
Event: time 1726270496.971339, type 3 (EV_ABS), code 1 (ABS_Y), value 301
Event: time 1726270496.971339, -------------- SYN_REPORT ------------
Event: time 1726270496.984612, type 3 (EV_ABS), code 0 (ABS_X), value 704
Event: time 1726270496.984612, type 3 (EV_ABS), code 1 (ABS_Y), value 303
Event: time 1726270496.984612, -------------- SYN_REPORT ------------
Event: time 1726270496.986887, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 10765
Event: time 1726270496.986887, type 3 (EV_ABS), code 0 (ABS_X), value 703
Event: time 1726270496.986887, type 3 (EV_ABS), code 1 (ABS_Y), value 304
Event: time 1726270496.986887, -------------- SYN_REPORT ------------
Event: time 1726270497.006156, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 10762
Event: time 1726270497.006156, -------------- SYN_REPORT ------------
Event: time 1726270497.045708, type 3 (EV_ABS), code 1 (ABS_Y), value 303
Event: time 1726270497.045708, -------------- SYN_REPORT ------------
Event: time 1726270497.059210, type 3 (EV_ABS), code 0 (ABS_X), value 705
Event: time 1726270497.059210, type 3 (EV_ABS), code 1 (ABS_Y), value 300
Event: time 1726270497.059210, -------------- SYN_REPORT ------------
Event: time 1726270497.061350, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 10759
Event: time 1726270497.061350, type 3 (EV_ABS), code 0 (ABS_X), value 706
Event: time 1726270497.061350, type 3 (EV_ABS), code 1 (ABS_Y), value 298
Event: time 1726270497.061350, -------------- SYN_REPORT ------------
Event: time 1726270497.062637, type 3 (EV_ABS), code 0 (ABS_X), value 707
Event: time 1726270497.062637, type 3 (EV_ABS), code 1 (ABS_Y), value 297
Event: time 1726270497.062637, -------------- SYN_REPORT ------------
Event: time 1726270497.064396, type 3 (EV_ABS), code 0 (ABS_X), value 709
Event: time 1726270497.064396, type 3 (EV_ABS), code 1 (ABS_Y), value 294
Event: time 1726270497.064396, -------------- SYN_REPORT ------------
Event: time 1726270497.077987, type 3 (EV_ABS), code 0 (ABS_X), value 711
Event: time 1726270497.077987, type 3 (EV_ABS), code 1 (ABS_Y), value 291
Event: time 1726270497.077987, -------------- SYN_REPORT ------------
Event: time 1726270497.079629, type 3 (EV_ABS), code 25 (ABS_DISTANCE), value 10758
Event: time 1726270497.079629, type 3 (EV_ABS), code 0 (ABS_X), value 712
Event: time 1726270497.079629, type 3 (EV_ABS), code 1 (ABS_Y), value 289
Event: time 1726270497.079629, -------------- SYN_REPORT ------------
Event: time 1726270497.080893, type 3 (EV_ABS), code 0 (ABS_X), value 713
Event: time 1726270497.080893, type 3 (EV_ABS), code 1 (ABS_Y), value 287
Event: time 1726270497.080893, -------------- SYN_REPORT ------------
Event: time 1726270497.083820, type 3 (EV_ABS), code 0 (ABS_X), value 715
Event: time 1726270497.083820, type 3 (EV_ABS), code 1 (ABS_Y), value 283
Event: time 1726270497.083820, -------------- SYN_REPORT ------------
Event: time 1726270497.095611, type 3 (EV_ABS), code 0 (ABS_X), value 716
Event: time 1726270497.095611, type 3 (EV_ABS), code 1 (ABS_Y), value 281
Event: time 1726270497.095611, -------------- SYN_REPORT ------------
Event: time 1726270497.153863, type 1 (EV_KEY), code 320 (BTN_TOOL_PEN), value 0
Event: time 1726270497.153863, -------------- SYN_REPORT ------------```

r2pilot avatar Sep 13 '24 23:09 r2pilot

Hall Effect Sensor Data:

No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0:      30370000.snvs:snvs-powerkey
/dev/input/event1:      Hall effect sensors
/dev/input/event2:      Elan marker input
/dev/input/event3:      Elan touch input
Select the device event number [0-3]: 1
Input driver version is 1.0.1
Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100
Input device name: "Hall effect sensors"
Supported events:
  Event type 0 (EV_SYN)
  Event type 5 (EV_SW)
    Event code 0 (SW_LID) state 1
    Event code 15 (SW_PEN_INSERTED) state 1
Properties:
Testing ... (interrupt to exit)
Event: time 1726270752.284554, type 5 (EV_SW), code 0 (SW_LID), value 0
Event: time 1726270752.284554, -------------- SYN_REPORT ------------
Event: time 1726270766.133279, type 5 (EV_SW), code 0 (SW_LID), value 1
Event: time 1726270766.133279, -------------- SYN_REPORT ------------
Event: time 1726270768.064061, type 5 (EV_SW), code 0 (SW_LID), value 0
Event: time 1726270768.064061, -------------- SYN_REPORT ------------
Event: time 1726270771.514932, type 5 (EV_SW), code 0 (SW_LID), value 1
Event: time 1726270771.514932, -------------- SYN_REPORT ------------
Event: time 1726270772.296643, type 5 (EV_SW), code 0 (SW_LID), value 0
Event: time 1726270772.296643, -------------- SYN_REPORT ------------
Event: time 1726270776.576881, type 5 (EV_SW), code 0 (SW_LID), value 1
Event: time 1726270776.576881, -------------- SYN_REPORT ------------
Event: time 1726270781.959855, type 5 (EV_SW), code 0 (SW_LID), value 0
Event: time 1726270781.959855, -------------- SYN_REPORT ------------
Event: time 1726270824.112169, type 5 (EV_SW), code 15 (SW_PEN_INSERTED), value 0
Event: time 1726270824.112169, -------------- SYN_REPORT ------------
Event: time 1726270826.292115, type 5 (EV_SW), code 15 (SW_PEN_INSERTED), value 1
Event: time 1726270826.292115, -------------- SYN_REPORT ------------
Event: time 1726270828.004941, type 5 (EV_SW), code 15 (SW_PEN_INSERTED), value 0
Event: time 1726270828.004941, -------------- SYN_REPORT ------------
Event: time 1726270829.510620, type 5 (EV_SW), code 15 (SW_PEN_INSERTED), value 1
Event: time 1726270829.510620, -------------- SYN_REPORT ------------
Event: time 1726270832.010862, type 5 (EV_SW), code 0 (SW_LID), value 1
Event: time 1726270832.010862, -------------- SYN_REPORT ------------```

r2pilot avatar Sep 13 '24 23:09 r2pilot

Accelerometer info:

root@imx8mm-ferrari:~/dev# ls /sys/bus/iio/devices/iio:device0/
buffer                        in_accel_z_scale
buffer0                       name
current_timestamp_clock       of_node
dev                           power
hwfifo_watermark              sampling_frequency
hwfifo_watermark_max          sampling_frequency_available
in_accel_scale_available      scan_elements
in_accel_x_raw                selftest
in_accel_x_scale              selftest_available
in_accel_y_raw                subsystem
in_accel_y_scale              uevent
in_accel_z_raw                waiting_for_supplier

r2pilot avatar Sep 15 '24 18:09 r2pilot

Seems to be using https://www.kernel.org/doc/html/next/iio/iio_devbuf.html

Eeems avatar Sep 15 '24 18:09 Eeems

USB info:

/proc/device-tree/soc@0/bus@32c00000/usb@32e40000:
adp-disable                           name
assigned-clock-parents                phys
assigned-clocks                       port
clock-names                           power-domains
clocks                                reg
compatible                            samsung,picophy-dc-vol-level-adjust
disable-over-current                  samsung,picophy-pre-emp-curr-control
dr_mode                               srp-disable
fsl,usbmisc                           status
hnp-disable                           usb-role-switch
interrupts

r2pilot avatar Sep 15 '24 20:09 r2pilot

File system

  • /data includes unboxed date. xochitl.conf, passcode
  • Need to run mount -o remount,rw / as its currently read-only to edit files

Systemd services

  • remarkable-cpufreq.service
  • remarkable-enable-slumber.service
  • remarkable-fs-check.service
  • remarkable-wakesrc-init.service
  • rm-emergency
  • rm-reset-boot-count
  • rm-sanity
  • rm-sync
  • update-engine

Scripts are in /usr/sbin

Xochitl

  • Uses QT6
  • Files still in /usr/share/remarkable
  • Extra eink files also located here
GAL3_AAB01M_TD0B03_AC118TC1F2_AD1004-LHA_TC.eink
GAL3_AAB01Q_TD0C01_AC118TC1F2_AD1004-LHA_TC.eink
GAL3_AAB01R_TD0D01_AC118TC1F2_AD1004-LHA_TC.eink
GAL3_AAB01S_TD1A02_AC118TC1F2_AD1004-LHA_TC.eink
GAL3_AAB01T_TD1B02_AC118TC1F2_AD1004-LHA_TC.eink
GAL3_AAB02F_TD3401_AC118TC1F2_AD1004-LHA_TC.eink
GAL3_AAB02J_TD2C01_AC118TC1F2_AD1004-LHA_TC.eink
GAL3_AAB02K_TD2D01_AC118TC1F2_AD1004-LHA_TC.eink
GAL3_AAB02L_TD3001_AC118TC1F2_AD1004-LHA_TC.eink
GAL3_AAB02M_TD3101_AC118TC1F2_AD1004-LHA_TC.eink

colortable_best.bin
colortable_fast.bin
colortable_pen.bin
colortable_std.bin

Jayy001 avatar Sep 18 '24 21:09 Jayy001

Direct Rendering Manager

  • Output of drm_info
Node: /dev/dri/card0
├───Driver: imx-drm (i.MX DRM graphics) version 1.0.0 (20120507)
│   ├───DRM_CLIENT_CAP_STEREO_3D supported
│   ├───DRM_CLIENT_CAP_UNIVERSAL_PLANES supported
│   ├───DRM_CLIENT_CAP_ATOMIC supported
│   ├───DRM_CLIENT_CAP_ASPECT_RATIO supported
│   ├───DRM_CLIENT_CAP_WRITEBACK_CONNECTORS supported
│   ├───DRM_CLIENT_CAP_CURSOR_PLANE_HOTSPOT not supported
│   ├───DRM_CAP_DUMB_BUFFER = 1
│   ├───DRM_CAP_VBLANK_HIGH_CRTC = 1
│   ├───DRM_CAP_DUMB_PREFERRED_DEPTH = 0
│   ├───DRM_CAP_DUMB_PREFER_SHADOW = 0
│   ├───DRM_CAP_PRIME = 3
│   ├───DRM_CAP_TIMESTAMP_MONOTONIC = 1
│   ├───DRM_CAP_ASYNC_PAGE_FLIP = 0
│   ├───DRM_CAP_CURSOR_WIDTH = 64
│   ├───DRM_CAP_CURSOR_HEIGHT = 64
│   ├───DRM_CAP_ADDFB2_MODIFIERS = 0
│   ├───DRM_CAP_PAGE_FLIP_TARGET = 0
│   ├───DRM_CAP_CRTC_IN_VBLANK_EVENT = 1
│   ├───DRM_CAP_SYNCOBJ = 0
│   ├───DRM_CAP_SYNCOBJ_TIMELINE = 0
│   └───DRM_CAP_ATOMIC_ASYNC_PAGE_FLIP not supported
├───Device: platform fsl,imx-display-subsystem
│   └───Available nodes: primary
├───Framebuffer size
│   ├───Width: [1, 1920]
│   └───Height: [1, 1920]
├───Connectors
│   └───Connector 0
│       ├───Object ID: 35
│       ├───Type: LVDS
│       ├───Status: connected
│       ├───Physical size: 0×0 mm
│       ├───Subpixel: unknown
│       ├───Encoders: {0}
│       ├───Modes
│       │   └───405×[email protected] preferred driver nhsync nvsync
│       └───Properties
│           ├───"EDID" (immutable): blob = 0
│           ├───"DPMS": enum {On, Standby, Suspend, Off} = Off
│           ├───"link-status": enum {Good, Bad} = Good
│           ├───"non-desktop" (immutable): range [0, 1] = 0
│           ├───"TILE" (immutable): blob = 0
│           └───"CRTC_ID" (atomic): object CRTC = 0
├───Encoders
│   └───Encoder 0
│       ├───Object ID: 34
│       ├───Type: DSI
│       ├───CRTCS: {0}
│       └───Clones: {0}
├───CRTCs
│   └───CRTC 0
│       ├───Object ID: 33
│       ├───Legacy info
│       │   └───Gamma size: 0
│       └───Properties
│           ├───"ACTIVE" (atomic): range [0, 1] = 0
│           ├───"MODE_ID" (atomic): blob = 0
│           ├───"OUT_FENCE_PTR" (atomic): range [0, UINT64_MAX] = 0
│           └───"VRR_ENABLED": range [0, 1] = 0
└───Planes
    └───Plane 0
        ├───Object ID: 31
        ├───CRTCs: {0}
        ├───Legacy info
        │   ├───FB ID: 0
        │   └───Formats:
        │       ├───XRGB8888 (0x34325258)
        │       ├───ARGB8888 (0x34325241)
        │       ├───RGB565 (0x36314752)
        │       ├───XBGR8888 (0x34324258)
        │       ├───ABGR8888 (0x34324241)
        │       ├───RGBX8888 (0x34325852)
        │       ├───RGBA8888 (0x34324152)
        │       ├───ARGB1555 (0x35315241)
        │       ├───XRGB1555 (0x35315258)
        │       ├───ABGR1555 (0x35314241)
        │       ├───XBGR1555 (0x35314258)
        │       └───BGR565 (0x36314742)
        └───Properties
            ├───"type" (immutable): enum {Overlay, Primary, Cursor} = Primary
            ├───"FB_ID" (atomic): object framebuffer = 0
            ├───"IN_FENCE_FD" (atomic): srange [-1, INT32_MAX] = -1
            ├───"CRTC_ID" (atomic): object CRTC = 0
            ├───"CRTC_X" (atomic): srange [INT32_MIN, INT32_MAX] = 0
            ├───"CRTC_Y" (atomic): srange [INT32_MIN, INT32_MAX] = 0
            ├───"CRTC_W" (atomic): range [0, INT32_MAX] = 405
            ├───"CRTC_H" (atomic): range [0, INT32_MAX] = 1084
            ├───"SRC_X" (atomic): range [0, UINT32_MAX] = 0
            ├───"SRC_Y" (atomic): range [0, UINT32_MAX] = 0
            ├───"SRC_W" (atomic): range [0, UINT32_MAX] = 405
            ├───"SRC_H" (atomic): range [0, UINT32_MAX] = 1084
            └───"zpos" (immutable): range [0, 0] = 0

Jayy001 avatar Sep 18 '24 21:09 Jayy001

Security

  • Uses https://optee.readthedocs.io/en/latest/general/about.html
root@imx8mm-ferrari:/data# ls tee
0        1        2        3        4        5        dirf.db

Jayy001 avatar Sep 18 '24 21:09 Jayy001

Cross-compiling for the device

  • Install requirements like gcc-aarch64-linux-gnu build-essential git
  • Device is aarch64

For mason & ninja

git clone <repo>
nano arm.txt

[binaries]
c = 'aarch64-linux-gnu-gcc'
cpp = 'aarch64-linux-gnu-g++'
ar = 'aarch64-linux-gnu-ar'
strip = 'aarch64-linux-gnu-strip'
pkgconfig = 'pkg-config'

[host_machine]
system = 'linux'
cpu_family = 'aarch64'
cpu = 'armv8-a'
endian = 'little'

meson build --cross-file arm.txt
ninja -C build

# Copy lib files over

scp .so* [email protected]:/usr/lib
scp include/drm/*.h [email protected]:/usr/include/<lib_name>

For cmake

CC=aarch64-linux-gnu-gcc cmake ..
make

Jayy001 avatar Sep 18 '24 21:09 Jayy001

You can also run a aarch64 debian docker image and static compile things for the device natively to avoid the complexity of cross compilation.

Eeems avatar Sep 19 '24 01:09 Eeems

KMSCube graphic POC

  • https://github.com/Jayy001/rmpp-kms-cube
  • Perl & Binaries provided to install the chroot
  • Once inside, you can build the libs needed

Debugging information

kmscube --gears --mode=rgba --nonblocking --surfaceless --format=RG16

Using display 0xaaaabff6db40 with EGL version 1.4
===================================
EGL information:
  version: "1.4"
  vendor: "Mesa Project"
  client extensions: "EGL_EXT_device_base EGL_EXT_device_enumeration EGL_EXT_device_query EGL_EXT_platform_base EGL_KHR_client_get_all_proc_addresses EGL_EXT_client_extensions EGL_KHR_debug EGL_EXT_platform_device EGL_EXT_platform_wayland EGL_KHR_platform_wayland EGL_EXT_platform_x11 EGL_KHR_platform_x11 EGL_MESA_platform_gbm EGL_KHR_platform_gbm EGL_MESA_platform_surfaceless"
  display extensions: "EGL_ANDROID_blob_cache EGL_EXT_buffer_age EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers EGL_KHR_cl_event2 EGL_KHR_config_attribs EGL_KHR_create_context EGL_KHR_create_context_no_error EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image EGL_KHR_image_base EGL_KHR_image_pixmap EGL_KHR_no_config_context EGL_KHR_reusable_sync EGL_KHR_surfaceless_context EGL_EXT_pixel_format_float EGL_KHR_wait_sync EGL_MESA_configless_context EGL_MESA_image_dma_buf_export EGL_MESA_query_driver "
===================================
OpenGL ES 2.x information:
  version: "OpenGL ES 3.2 Mesa 20.3.5"
  shading language version: "OpenGL ES GLSL ES 3.20"
  vendor: "Mesa/X.org"
  renderer: "llvmpipe (LLVM 11.0.1, 128 bits)"
  • LLVM pipe for rendering
Encoders:
id      crtc    type    possible crtcs  possible clones
34      0       DSI     0x00000001      0x00000001

Connectors:
id      encoder status          name            size (mm)       modes   encoders
35      0       connected       LVDS-1          0x0             1       34
modes:
      index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot
#0 405x1084 84.98 405 493 503 555 1084 1143 1144 1145 54000 flags: nhsync, nvsync; type: preferred, driver
props:
      1 EDID:
              flags: immutable blob
              blobs:

              value:
      2 DPMS:
              flags: enum
              enums: On=0 Standby=1 Suspend=2 Off=3
              value: 3
      5 link-status:
              flags: enum
              enums: Good=0 Bad=1
              value: 0
      6 non-desktop:
              flags: immutable range
              values: 0 1
              value: 0
      4 TILE:
              flags: immutable blob
              blobs:

              value:

CRTCs:
id      fb      pos     size
33      0       (0,0)   (0x0)
#0  nan 0 0 0 0 0 0 0 0 0 flags: ; type:
props:
      24 VRR_ENABLED:
              flags: range
              values: 0 1
              value: 0

Planes:
id      crtc    fb      CRTC x,y        x,y     gamma size      possible crtcs
31      0       0       0,0             0,0     0               0x00000001
formats: XR24 AR24 RG16 XB24 AB24 RX24 RA24 AR15 XR15 AB15 XB15 BG16
props:
      8 type:
              flags: immutable enum
              enums: Overlay=0 Primary=1 Cursor=2
              value: 1
      32 zpos:
              flags: immutable range
              values: 0 0
              value: 0

Frame buffers:
id      size    pitch

Jayy001 avatar Sep 21 '24 14:09 Jayy001

https://storage.googleapis.com/remarkable-codex-toolchain/3.14.3.0/meta-toolchain-remarkable-4.0.813-ferrari-public-x86_64-toolchain.sh

Toolchain shared by the reMarkable team for the latest version of the OS(as of this comment)

FouzR avatar Sep 24 '24 17:09 FouzR

Added the toolchain in #75

A quick reminder everybody, as much as it's good to just add information here, I do want to add what we can to the live site. Please open PRs to update the live site as well.

Eeems avatar Sep 24 '24 18:09 Eeems

/sys/class/udc/ci_hdrc.0 seems to be the USB-C port /sys/class/udc/ci_hdrc.1, best assumption is the pogo

USB_UDC_NAME=32e40000.usb USB_UDC_DRIVER=g_ether This is for the USB-C port. Seems to be the ethernet part

USB_UDC_NAME=32e50000.usb This might be the pogo pin. There doesn't seem to be a UDC driver

FouzR avatar Oct 01 '24 20:10 FouzR

Using a Y splitter adapter(to power it) with a USB keyboard and the below command lets you use it in xochitl

echo “host” > /sys/class/usb_role/ci_hdrc.0-role-switch/role

Note: seems like it auto changes to “device” mode if you plug the rM to power afterwards, so you only need to do the initial command to swap the roles

Video of it working

https://github.com/user-attachments/assets/8876334b-11e1-4fc4-a40d-6bede5308a68

FouzR avatar Oct 05 '24 13:10 FouzR

Using a Y splitter adapter(to power it) with a USB keyboard and the below command lets you use it in xochitl

echo “host” > /sys/class/usb_role/ci_hdrc.0-role-switch/role

I also made my keyboard work but not with that path. Interesting that the role value on that path is none instead of gadget.

I used echo host > /sys/devices/platform/soc@0/32c00000.bus/32e40000.usb/ci_hdrc.0/role I think yours is better though, since its just a switch and I'm not sure if the part of the path I used between platform and ci_hdrc.0 will be exactly on every device.

bedw8 avatar Oct 07 '24 05:10 bedw8

@bedw8 Funny thing I noticed while going through the directories. They seem to link to each other, so if I recall correctly, you can see the same ci_hdrc.0 eventually through the directories

Wonder if it switches to Device or Gadget in your path after you reconnect to power

FouzR avatar Oct 07 '24 05:10 FouzR

Avoid overlay fs

any modification on /var/cache, /etc, /srv /var/lib, /var/spool is lost after reboot.

this can be avoided by running

# umount -l /etc
# mount / -o remount, rw

then replacing ro with rw in /etc/fstab and rebooting.

On the next boot / will be mounted as rw, disabling the services var-volatile-*, and with no overlay mounted

Note: this doesn't disable the var-volatile-* units, but the services have the condition to run only if / is mounted as 'ro', so the mount-copybind commands don't get executed.

bedw8 avatar Oct 07 '24 05:10 bedw8

@FouzR

Wonder if it switches to Device or Gadget in your path after you reconnect to power

unexpectedly (for me) connecting the device to power reverts the role in the path I used to gadget. I thought it would have stayed as host (as the rM2), and that for your path it was ok to revert when plugging it just because the path has "switch" on it.

apparently doesn't matter which path to use. both work and both get reverted to their original states after plugging the rMPP

bedw8 avatar Oct 08 '24 00:10 bedw8

Enum values for pen colors on the new tablet. I.e., this part of rmscene defines the values 0 - 8 as black, gray, white, etc. https://github.com/ricklupton/rmscene/blob/ca34c8a2b3337f5968ba6b60d39fc57c2a994fc1/src/rmscene/scene_items.py#L59

These are the indexed colours used by drawj2d. https://sourceforge.net/p/drawj2d/code/HEAD/tree/trunk/src/net/sf/jtikz/ReMarkablePage.java#l197

    static final int BLACK = 0;
    static final int GREY = 1;
    static final int WHITE = 2;

    //* pen blue */
    static final int BLUE = 6;
    //* pen red */
    static final int RED = 7;
    //* pen green (darkgreen) */
    static final int GREEN = 10;
    //* pen cyan */
    static final int CYAN = 11;
    //* pen magenta */
    static final int MAGENTA = 12;
    //* pen yellow */
    static final int YELLOW = 13;

    //* highlighter yellow (darkyellow) */
    static final int HIGHLIGHTER_YELLOW = 3;
    //* highlighter green */
    static final int HIGHLIGHTER_GREEN = 4;
    //* highlighter pink */
    static final int HIGHLIGHTER_PINK = 5;
    //* highlighter gray (grey overlap) */
    static final int HIGHLIGHTER_GREY = 8;
    
    // TODO HIGHLIGHTER_ORANGE (is available on rMpro)

    //* black (unknown difference to BLACK) */
    static final int BLACK2 = 9; // TODO guess

qwert2003 avatar Oct 14 '24 23:10 qwert2003

The FCC Equipment Authorization Database lets you look up and download some of the paperwork that reMarkable had to file with the FCC in order to be able to legally sell devices in the US. This includes things like which radio frequencies the devices use, and the lab test reports which certify that their wifi and bluetooth radios are using more power than they're legally allowed to.

⇒ Grantee Code: 2AMK2 is reMarkable AS.

There are currently 30 different device authorizations on the list, with ten of them referring to 2AMK2-RM02AA, which is the rMPP.

Note that the FCC allows manufacturers to request "non-public" status for some documents. reMarkable has done this for documents containing information they feel would be useful to their competitors.

kg4zow avatar Oct 15 '24 11:10 kg4zow

Can somebody run evtest on /dev/input/event3? I only see the output from event1 and event2 above.

Evidlo avatar Oct 23 '24 22:10 Evidlo

Can somebody run evtest on /dev/input/event3? I only see the output from event1 and event2 above.

@Evidlo I don't have evtest in the rMPP. you have to install it? But, printing the the events output with cat I can tell that for me event3 is the touch screen (touched with fingers) and event2 the pen. also event1 prints me nothing

bedw8 avatar Oct 24 '24 10:10 bedw8

Can somebody run evtest on /dev/input/event3? I only see the output from event1 and event2 above.

@Evidlo I don't have evtest in the rMPP. you have to install it? But, printing the the events output with cat I can tell that for me event3 is the touch screen (touched with fingers) and event2 the pen. also event1 prints me nothing

I believe he's interested to know what capabilities are reported, as well as the min/max values, which evtest would print out.

Eeems avatar Oct 24 '24 14:10 Eeems

Can somebody run evtest on /dev/input/event3? I only see the output from event1 and event2 above.

@Evidlo

First a quick touch with one finger, then a touch with two fingers, then a short swipe downwards.

(debian) root@imx8mm-ferrari:~# evtest /dev/input/event3
Input driver version is 1.0.1
Input device ID: bus 0x1c vendor 0x0 product 0x0 version 0x0
Input device name: "Elan touch input"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 330 (BTN_TOUCH)
  Event type 3 (EV_ABS)
    Event code 47 (ABS_MT_SLOT)
      Value      0
      Min        0
      Max        9
    Event code 48 (ABS_MT_TOUCH_MAJOR)
      Value      0
      Min        0
      Max      255
    Event code 53 (ABS_MT_POSITION_X)
      Value      0
      Min        0
      Max     2064
      Resolution    2064
    Event code 54 (ABS_MT_POSITION_Y)
      Value      0
      Min        0
      Max     2832
      Resolution    2832
    Event code 55 (ABS_MT_TOOL_TYPE)
      Value      0
      Min        0
      Max        2
    Event code 57 (ABS_MT_TRACKING_ID)
      Value      0
      Min        0
      Max    65535
    Event code 58 (ABS_MT_PRESSURE)
      Value      0
      Min        0
      Max      255
    Event code 59 (ABS_MT_DISTANCE)
      Value      0
      Min        0
      Max      255
Properties:
  Property type 1 (INPUT_PROP_DIRECT)
Testing ... (interrupt to exit)
Event: time 1729889594.427200, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1176
Event: time 1729889594.427200, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1532
Event: time 1729889594.427200, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 1698
Event: time 1729889594.427200, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 8
Event: time 1729889594.427200, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1729889594.427200, -------------- SYN_REPORT ------------
Event: time 1729889594.449180, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1729889594.449180, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1729889594.449180, -------------- SYN_REPORT ------------
Event: time 1729889595.260212, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1177
Event: time 1729889595.260212, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1001
Event: time 1729889595.260212, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 1582
Event: time 1729889595.260212, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 12
Event: time 1729889595.260212, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1729889595.260212, -------------- SYN_REPORT ------------
Event: time 1729889595.270037, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 1
Event: time 1729889595.270037, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1178
Event: time 1729889595.270037, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1367
Event: time 1729889595.270037, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 1617
Event: time 1729889595.270037, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 8
Event: time 1729889595.270037, -------------- SYN_REPORT ------------
Event: time 1729889595.282434, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 12
Event: time 1729889595.282434, -------------- SYN_REPORT ------------
Event: time 1729889595.304265, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1399
Event: time 1729889595.304265, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 1643
Event: time 1729889595.304265, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 0
Event: time 1729889595.304265, -------------- SYN_REPORT ------------
Event: time 1729889595.314035, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 0
Event: time 1729889595.314035, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1729889595.314035, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 1
Event: time 1729889595.314035, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1729889595.314035, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1729889595.314035, -------------- SYN_REPORT ------------
Event: time 1729889600.928412, type 3 (EV_ABS), code 47 (ABS_MT_SLOT), value 0
Event: time 1729889600.928412, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 1179
Event: time 1729889600.928412, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1225
Event: time 1729889600.928412, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 1258
Event: time 1729889600.928412, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 8
Event: time 1729889600.928412, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 1
Event: time 1729889600.928412, -------------- SYN_REPORT ------------
Event: time 1729889600.960780, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1226
Event: time 1729889600.960780, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 1284
Event: time 1729889600.960780, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 12
Event: time 1729889600.960780, -------------- SYN_REPORT ------------
Event: time 1729889600.972766, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1232
Event: time 1729889600.972766, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 1329
Event: time 1729889600.972766, -------------- SYN_REPORT ------------
Event: time 1729889600.982612, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1242
Event: time 1729889600.982612, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 1407
Event: time 1729889600.982612, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 8
Event: time 1729889600.982612, -------------- SYN_REPORT ------------
Event: time 1729889600.994952, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 1248
Event: time 1729889600.994952, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 1458
Event: time 1729889600.994952, type 3 (EV_ABS), code 48 (ABS_MT_TOUCH_MAJOR), value 0
Event: time 1729889600.994952, -------------- SYN_REPORT ------------
Event: time 1729889601.004578, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 1729889601.004578, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 1729889601.004578, -------------- SYN_REPORT ------------

Tiebe avatar Oct 25 '24 20:10 Tiebe

@Tiebe Thanks. Can you repeat that experiment for touch X direction and pen X/Y directions? I'm just trying to figure out the new coordinate system when the tablet is held in portrait orientation.

For example, here is the coordinate mapping for the rM1 and rM2:

   rM1/rM2 TABLET COORDINATES

        PEN          TOUCH
    +---------+   +---------+
    | X       |   |       Y |
    | |       |   |       | |
    | |       |   |       | |
    | +--- Y  |   |  X ---+ |
    |         |   |         |
    |---------|   |---------|
    | USB PORT|   | USB PORT|
    +---------+   +---------+

Evidlo avatar Oct 25 '24 23:10 Evidlo