Document rM Paper Pro
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.
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 1ps -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
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
cat /proc/bus/input/devicesw/ 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_Keyboardentry 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
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
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 ------------```
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 ------------```
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
Seems to be using https://www.kernel.org/doc/html/next/iio/iio_devbuf.html
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
File system
/dataincludesunboxeddate.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
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
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
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
You can also run a aarch64 debian docker image and static compile things for the device natively to avoid the complexity of cross compilation.
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
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)
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.
/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
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
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
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
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.
@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
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
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.
Can somebody run evtest on /dev/input/event3? I only see the output from event1 and event2 above.
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
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
catI 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.
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 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|
+---------+ +---------+