You are not logged in.

#1 2023-11-22 17:39:22

Stonegrip
Member
Registered: 2022-12-10
Posts: 60

[RESOLVED] Unable to connect my USB-C / USB-C eInk monitor

I am trying to connect my external eInk monitor in a 3-monitor setup, whereas my primary monitor is the laptop screen, the second one is an external monitor connected via HDMI, and the third one is an eInk monitor (BOOX MIRA 13.3) that I'm trying to connect via USB-C (since the only HDMI port of my laptop is used by the second monitor).

The first 2 monitors are connected nicely, but when I try to enable the third one, it just is not showing anything after I run the xrandr command.

At the same time, I can see the third monitor through "xrandr -q": it is detected as DP-1
I can also see it through lsusb: it is shown as follows (I only show the extra lines that appear when I plug in the third monitor):

...
Bus 003 Device 023: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 003 Device 024: ID 0416:5020 Winbond Electronics Corp. BOOX MIRA133
Bus 003 Device 025: ID 27c0:0858 Cadwell Laboratories, Inc. WingCoolTouch
Bus 003 Device 026: ID 1a86:7523 QinHeng Electronics CH340 serial converter
...

but when I run the following xrandr script, the third monitor stays asleep:

#!/bin/bash

xrandr --output eDP-1 --pos 0x210 --rate 240 
xrandr --output HDMI-1-0 --same-as eDP-1 --rate 120 
xrandr --output DP-1 --pos 2560x0            

here is the "xrandr -q" in case it is required:

Screen 0: minimum 320 x 200, current 2560 x 1440, maximum 16384 x 16384
eDP-1 connected primary 2560x1440+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
   2560x1440    240.00*+  60.00 +  59.99    59.99    59.96    59.95  
   1920x1440     85.00    75.00    60.00  
   1856x1392     75.00    60.01  
   1792x1344     75.00    60.01  
   2048x1152     59.99    59.98    59.90    59.91  
   1920x1200     59.88    59.95  
   1920x1080     60.01    59.97    59.96    59.93  
   1600x1200     85.00    75.00    70.00    65.00    60.00  
   1680x1050     59.95    59.88  
   1400x1050     74.76    59.98  
   1600x900      59.99    59.94    59.95    59.82  
   1280x1024     85.02    75.02    60.02  
   1400x900      59.96    59.88  
   1280x960      85.00    60.00  
   1440x810      60.00    59.97  
   1368x768      59.88    59.85  
   1280x800      59.99    59.97    59.81    59.91  
   1152x864      75.00  
   1280x720      60.00    59.99    59.86    59.74  
   1024x768      85.00    75.05    60.04    85.00    75.03    70.07    60.00  
   1024x768i     86.96  
   960x720       85.00    75.00    60.00  
   928x696       75.00    60.05  
   896x672       75.05    60.01  
   1024x576      59.95    59.96    59.90    59.82  
   960x600       59.93    60.00  
   832x624       74.55  
   960x540       59.96    59.99    59.63    59.82  
   800x600       85.00    75.00    70.00    65.00    60.00    85.14    72.19    75.00    60.32    56.25  
   840x525       60.01    59.88  
   864x486       59.92    59.57  
   700x525       74.76    59.98  
   800x450       59.95    59.82  
   640x512       85.02    75.02    60.02  
   700x450       59.96    59.88  
   640x480       85.09    60.00    85.01    72.81    75.00    59.94  
   720x405       59.51    58.99  
   720x400       85.04  
   684x384       59.88    59.85  
   640x400       59.88    59.98    85.08  
   576x432       75.00  
   640x360       59.86    59.83    59.84    59.32  
   640x350       85.08  
   512x384       85.00    75.03    70.07    60.00  
   512x384i      87.06  
   512x288       60.00    59.92  
   416x312       74.66  
   480x270       59.63    59.82  
   400x300       85.27    72.19    75.12    60.32    56.34  
   432x243       59.92    59.57  
   320x240       85.18    72.81    75.00    60.05  
   360x202       59.51    59.13  
   360x200       85.04  
   320x200       85.27  
   320x180       59.84    59.32  
   320x175       85.27  
DP-1 connected (normal left inverted right x axis y axis)
   2200x1650     38.00 +
   1920x1080     37.98  
   1280x960      38.03  
   1024x768      38.02  
DP-2 disconnected (normal left inverted right x axis y axis)
HDMI-1-0 connected 2560x1440+0+0 (normal left inverted right x axis y axis) 1193mm x 336mm
   2560x1440     59.95 + 120.00* 
   1920x1080     60.00    59.94    50.00  
   1680x1050     59.95  
   1600x900      60.00  
   1440x900      59.89  
   1280x1024     75.02    60.02  
   1280x800      59.81  
   1280x720      60.00    59.94    50.00  
   1152x864      75.00  
   1024x768      75.03    70.07    60.00  
   800x600       75.00    72.19    60.32    56.25  
   640x480       75.00    72.81    59.94  
DP-1-0 disconnected (normal left inverted right x axis y axis)
  2560x1440 (0x4b) 241.500MHz +HSync -VSync
        h: width  2560 start 2608 end 2640 total 2720 skew    0 clock  88.79KHz
        v: height 1440 start 1443 end 1448 total 1481           clock  59.95Hz
  1680x1050 (0x62) 146.250MHz -HSync +VSync
        h: width  1680 start 1784 end 1960 total 2240 skew    0 clock  65.29KHz
        v: height 1050 start 1053 end 1059 total 1089           clock  59.95Hz
  1280x1024 (0x6b) 135.000MHz +HSync +VSync
        h: width  1280 start 1296 end 1440 total 1688 skew    0 clock  79.98KHz
        v: height 1024 start 1025 end 1028 total 1066           clock  75.02Hz
  1280x1024 (0x6c) 108.000MHz +HSync +VSync
        h: width  1280 start 1328 end 1440 total 1688 skew    0 clock  63.98KHz
        v: height 1024 start 1025 end 1028 total 1066           clock  60.02Hz
  1280x800 (0x77) 83.500MHz -HSync +VSync
        h: width  1280 start 1352 end 1480 total 1680 skew    0 clock  49.70KHz
        v: height  800 start  803 end  809 total  831           clock  59.81Hz
  1152x864 (0x79) 108.000MHz +HSync +VSync
        h: width  1152 start 1216 end 1344 total 1600 skew    0 clock  67.50KHz
        v: height  864 start  865 end  868 total  900           clock  75.00Hz
  1024x768 (0x82) 78.750MHz +HSync +VSync
        h: width  1024 start 1040 end 1136 total 1312 skew    0 clock  60.02KHz
        v: height  768 start  769 end  772 total  800           clock  75.03Hz
  1024x768 (0x83) 75.000MHz -HSync -VSync
        h: width  1024 start 1048 end 1184 total 1328 skew    0 clock  56.48KHz
        v: height  768 start  771 end  777 total  806           clock  70.07Hz
  1024x768 (0x84) 65.000MHz -HSync -VSync
        h: width  1024 start 1048 end 1184 total 1344 skew    0 clock  48.36KHz
        v: height  768 start  771 end  777 total  806           clock  60.00Hz
  800x600 (0x9f) 49.500MHz +HSync +VSync
        h: width   800 start  816 end  896 total 1056 skew    0 clock  46.88KHz
        v: height  600 start  601 end  604 total  625           clock  75.00Hz
  800x600 (0x9e) 50.000MHz +HSync +VSync
        h: width   800 start  856 end  976 total 1040 skew    0 clock  48.08KHz
        v: height  600 start  637 end  643 total  666           clock  72.19Hz
  800x600 (0xa0) 40.000MHz +HSync +VSync
        h: width   800 start  840 end  968 total 1056 skew    0 clock  37.88KHz
        v: height  600 start  601 end  605 total  628           clock  60.32Hz
  800x600 (0xa1) 36.000MHz +HSync +VSync
        h: width   800 start  824 end  896 total 1024 skew    0 clock  35.16KHz
        v: height  600 start  601 end  603 total  625           clock  56.25Hz
  640x480 (0xb3) 31.500MHz -HSync -VSync
        h: width   640 start  656 end  720 total  840 skew    0 clock  37.50KHz
        v: height  480 start  481 end  484 total  500           clock  75.00Hz
  640x480 (0xb4) 25.175MHz -HSync -VSync
        h: width   640 start  656 end  752 total  800 skew    0 clock  31.47KHz
        v: height  480 start  490 end  492 total  525           clock  59.94Hz

At first, I thought it is related to the displaylink driver that is not enabled on my Arch machine, as the same xrandr script works perfectly fine on my Ubuntu machine on the same laptop (both are set up in a dual-boot mode, and each one has its own hard drive), and the third monitor is hooked up and works fine there. So, the issue can't be related to the BIOS settings. It is clearly the Arch machine setup.

So, I read ArchWiki on the DisplayLink, and, as the Wiki suggested, I installed DisplayLink from AUR. I also tried installing evdi, but the installation failed. I also tried installing evdi-git and evdi-compat-git, but to no avail.

Here is the part where evdi installation fails:

:: Proceed with installation? [Y/n] y
(1/1) checking keys in keyring                             [###############################] 100%
(1/1) checking package integrity                           [###############################] 100%
(1/1) loading package files                                [###############################] 100%
(1/1) checking for file conflicts                          [###############################] 100%
(1/1) checking available disk space                        [###############################] 100%
:: Running pre-transaction hooks...
(1/1) Remove upgraded DKMS modules
:: Processing package changes...
(1/1) reinstalling evdi                                    [###############################] 100%
:: Running post-transaction hooks...
(1/2) Arming ConditionNeedsUpdate...
(2/2) Install DKMS modules
==> ERROR: Missing boot kernel headers for module evdi/1.14.1.
==> ERROR: Missing lib64 kernel headers for module evdi/1.14.1.
==> ERROR: Missing root kernel headers for module evdi/1.14.1.
==> ERROR: Missing home kernel headers for module evdi/1.14.1.
==> ERROR: Missing opt kernel headers for module evdi/1.14.1.
==> ERROR: Missing bin kernel headers for module evdi/1.14.1.
==> ERROR: Missing run kernel headers for module evdi/1.14.1.
==> ERROR: Missing proc kernel headers for module evdi/1.14.1.
==> ERROR: Missing sys kernel headers for module evdi/1.14.1.
==> ERROR: Missing dev kernel headers for module evdi/1.14.1.
==> ERROR: Missing tmp kernel headers for module evdi/1.14.1.
==> ERROR: Missing lost+found kernel headers for module evdi/1.14.1.
==> ERROR: Missing var kernel headers for module evdi/1.14.1.
==> ERROR: Missing usr kernel headers for module evdi/1.14.1.
==> ERROR: Missing lib kernel headers for module evdi/1.14.1.
==> ERROR: Missing srv kernel headers for module evdi/1.14.1.
==> ERROR: Missing sbin kernel headers for module evdi/1.14.1.
==> ERROR: Missing etc kernel headers for module evdi/1.14.1.
==> ERROR: Missing mnt kernel headers for module evdi/1.14.1.

despite the edvi failed to install, I tried to enable displaylink.service, and it got enabled fine.
I then tried to start it with "sudo systemctl start display.service", but it failed. Here is the respective snippet from journalctl:

Nov 22 11:08:23 archlinux sudo[74896]: stonegrip : TTY=pts/1 ; PWD=/home/stonegrip ; USER=root ; COMMAND=/usr/bin/systemctl start displaylink.service
Nov 22 11:08:23 archlinux systemd[1]: displaylink.service: Control process exited, code=exited, status=1/FAILURE
Nov 22 11:08:23 archlinux systemd[1]: displaylink.service: Failed with result 'exit-code'.
Nov 22 11:08:28 archlinux systemd[1]: displaylink.service: Scheduled restart job, restart counter is at 1.
Nov 22 11:08:28 archlinux systemd[1]: displaylink.service: Control process exited, code=exited, status=1/FAILURE
Nov 22 11:08:28 archlinux systemd[1]: displaylink.service: Failed with result 'exit-code'.

I believe, I've provided all the details required, but please let me know if you need anything else. I may not have been tackling this issue at the right angle, and maybe the root cause that prevents my third monitor from hooking up by the xrand script has nothing to do with the displaylink, but I've done my best.

And my question is how do I enable the third monitor via USB-C DisplayPort? What should I install, enable etc. I'm using X11 (not Wayland), in case it matters.

Last edited by Stonegrip (2023-12-18 03:13:34)

Offline

#2 2023-11-23 14:12:46

Stonegrip
Member
Registered: 2022-12-10
Posts: 60

Re: [RESOLVED] Unable to connect my USB-C / USB-C eInk monitor

Assuming the issue is related to the missing Linux headers, I tried installing the headers by running "sudo pacman -S linux-headers", but at the very last step of installation I got the following error:

...
:: Running post-transaction hooks...
(1/3) Arming ConditionNeedsUpdate...
(2/3) Updating module dependencies...
(3/3) Install DKMS modules
==> ERROR: Missing 6.6.2-arch1-1 kernel modules tree for module evdi/1.14.1.

After that I tried to install evdi again, but got the same error:

...
:: Running post-transaction hooks...
(1/2) Arming ConditionNeedsUpdate...
(2/2) Install DKMS modules
==> ERROR: Missing 6.6.2-arch1-1 kernel modules tree for module evdi/1.14.1.

I tried updating my AUR and Pacman packages and then installing evdi, but the same result: Missing kernel modules tree for module evdi.

I tried uninstalling evdi to reinstall it again, but the system didn't let me.

I don't know if evdi is the only issue to enable and start displaylink, but if it is I can't resolve it. Help is highly appreciated.

Offline

#3 2023-11-23 19:38:11

Stonegrip
Member
Registered: 2022-12-10
Posts: 60

Re: [RESOLVED] Unable to connect my USB-C / USB-C eInk monitor

If it's a video card driver / kernel compatibility issue, could you please recommend the kernel version and NVIDIA driver version you use that allow you to enable and start DisplayLink and connect monitors via a DisplayPort (USB-C)?

My current NVIDIA driver is

[    23.168] (II) NVIDIA dlloader X Driver  545.29.02  Thu Oct 26 20:56:09 UTC 2023

and the kernel is

6.6.1-arch1-1

Offline

#4 2023-11-24 11:23:19

Lone_Wolf
Forum Moderator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 12,181

Re: [RESOLVED] Unable to connect my USB-C / USB-C eInk monitor

DisplayLink/Evdi require special hardware , DisplayPort over USB-c uses alternate mode and only requires the usb-c connection to support that, no special hardware.

Since the monitor is seen as DP-1 by xrandr the chance of it being a displaylink monitor is about equal to that of snow in summer in death valley.

Remove everything related to evdi & displaylink .

The boox site has a download for linux on https://shop.boox.com/products/mira . The download is in the form of an appimage, which should be runnable as user on your system.

https://help.boox.com/hc/en-us/articles … inux-Setup may also be relevant.

Last edited by Lone_Wolf (2023-11-24 11:24:33)


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#5 2023-12-11 04:40:16

Stonegrip
Member
Registered: 2022-12-10
Posts: 60

Re: [RESOLVED] Unable to connect my USB-C / USB-C eInk monitor

sorry for the delayed response and I appreciate your help.

So, I've removed evdi and displaylink off of my system, created a new .rules file in /etc/udev/rules.d according to the instructions of the monitor manufacturer (as per the link you shared).
Interestingly, I haven't seen any other .rules files in the rules.d folder. Meaning, I created the one and only .rules file in there. Interestingly, when I tried to reload and restart udev by launching the following commands:

sudo service udev reload
sudo service udev restart

I got back the following error message:

sudo: service: command not found

I looked into the udev section of Arch Wiki, and I didn't find such commands there. However, I found very similar commands that supposedly suit exactly the same purpose (please correct me if I'm wrong), namely:

sudo udevadm control --reload
sudo udevadm trigger

No error messages this time, but by the eInk monitor is still sleeping.

I also ran the AppImage for the settings app that I downloaded from the Boox website (and the link to which Lone_Wolf had kindly shared in the previous post), and interestingly the monitor is shown as connected, and I can even change its settings, like brightness, refresh speed etc. And the xrandr -q command shows it being connected (as I mentioned previously in the opening post), but the screen still shows me the sleeping mouse (it's a standard screen saver for Boox products). And when I run "xrandr --output DP-1" there is no error, but also no effect: I checked the logs of that command with set -x, and no issues at all. It runs smoothly, but the monitor stays asleep.

Can this be related with the udev not been setup properly? I've read on our Wiki that udev may misbehave when used on a dual-boot machines, like mine, since it's run at the systemd level. Can it be the reason why the display works fine on my Ubuntu hard drive, where I can also see several other .rules files in /etc/udev/rules.d folder, and it doesn't run on this hard drive, hence the udev/rules.d folder was empty before I created the first .rules file?

Offline

#6 2023-12-11 09:54:04

Lone_Wolf
Forum Moderator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 12,181

Re: [RESOLVED] Unable to connect my USB-C / USB-C eInk monitor

The instructions on the Mira Software Linux Setup page appear to target ubuntu or debian and need some adjustment .

The plugdev group doesn't exist on archlinux and https://wiki.archlinux.org/title/Udev#A … se_devices describes an alternative for it.


Yes, udevadm is the correct command . A simple alternative to them is rebooting.

The general rules for udev are located under /usr/lib/udev/hwdb.d & /usr/lib/udev/rules.d folders. Their /etc/udev counterparts are only needed for special stuff.
On archlinux it's normal for the /etc/udev folders to be empty.

I've read on our Wiki that udev may misbehave when used on a dual-boot machines, like mine, since it's run at the systemd level.

Such issues are usually related to dual-booting linux & windows, the lack of plugdev is more likely to be the cause of the issues.


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#7 2023-12-12 05:16:06

Stonegrip
Member
Registered: 2022-12-10
Posts: 60

Re: [RESOLVED] Unable to connect my USB-C / USB-C eInk monitor

Again huge thanks for helping me out with this.

So, I have reviewed the udev section of our Wiki, and I've got to know that instead of using the plugdev group, I need to use a MODE of 660 to let the group use the device, and then attach a TAG named uaccess.

Which I did. Here is the updated .rules file:

SUBSYSTEM=="input", GROUP="input", MODE="0660", TAG+="uaccess"

SUBSYSTEM=="usb", ATTRS{idVendor}=="0416", ATTRS{idProduct}=="5020", MODE:="660", TAG+="uaccess"

KERNEL=="hidraw*", ATTRS{idVendor}=="0416", ATTRS{idProduct}=="5020", MODE="0660", TAG+="uaccess"

I have reloaded and restarted the udev rules by

sudo udevadm control --reload
sudo udevadm trigger

But to no avail. The monitor is still asleep.

Here is the result of some additional investigation, in case it would help. I have compared the contents of the /dev folder before and after I plug the monitor in, and the only 4 classes added were hidraw6, hidraw7, hidraw8 and ttyUSB0. I have also unplugged the monitor, ran the "udevadm monitor" and plugged it back in. Here is the outcome of the screen cast:

[stonegrip@archlinux dev]$ udevadm monitor
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[45693.625040] change   /devices/platform/USBC000:00/typec/port0 (typec)
KERNEL[45693.625131] add      /devices/platform/USBC000:00/typec/port0/port0-partner (typec)
KERNEL[45693.625905] change   /devices/platform/USBC000:00/power_supply/ucsi-source-psy-USBC000:001 (power_supply)
UDEV  [45693.628939] change   /devices/platform/USBC000:00/typec/port0 (typec)
UDEV  [45693.629671] change   /devices/platform/USBC000:00/power_supply/ucsi-source-psy-USBC000:001 (power_supply)
UDEV  [45693.629720] add      /devices/platform/USBC000:00/typec/port0/port0-partner (typec)
KERNEL[45694.525970] change   /devices/platform/USBC000:00/power_supply/ucsi-source-psy-USBC000:001 (power_supply)
UDEV  [45694.527647] change   /devices/platform/USBC000:00/power_supply/ucsi-source-psy-USBC000:001 (power_supply)
KERNEL[45694.587809] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9 (usb)
KERNEL[45694.588859] change   /devices/pci0000:00/0000:00:14.0/usb3/3-9 (usb)
KERNEL[45694.589590] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9:1.0 (usb)
KERNEL[45694.590367] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9:1.0 (usb)
KERNEL[45694.590457] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9 (usb)
UDEV  [45694.592058] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9 (usb)
UDEV  [45694.594041] change   /devices/pci0000:00/0000:00:14.0/usb3/3-9 (usb)
UDEV  [45694.595201] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9:1.0 (usb)
UDEV  [45694.596331] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9:1.0 (usb)
UDEV  [45694.597753] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9 (usb)
KERNEL[45695.196835] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.1 (usb)
KERNEL[45695.202976] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.1/3-9.1:1.0 (usb)
KERNEL[45695.204013] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.1/3-9.1:1.0/0003:0416:5020.001B (hid)
KERNEL[45695.204385] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.1/3-9.1:1.0/usbmisc/hiddev3 (usbmisc)
KERNEL[45695.204605] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.1/3-9.1:1.0/0003:0416:5020.001B/hidraw/hidraw8 (hidraw)
KERNEL[45695.204667] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.1/3-9.1:1.0/0003:0416:5020.001B (hid)
KERNEL[45695.204712] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.1/3-9.1:1.0 (usb)
KERNEL[45695.204758] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.1 (usb)
UDEV  [45695.206251] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.1 (usb)
UDEV  [45695.207701] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.1/3-9.1:1.0 (usb)
UDEV  [45695.209187] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.1/3-9.1:1.0/usbmisc/hiddev3 (usbmisc)
UDEV  [45695.209237] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.1/3-9.1:1.0/0003:0416:5020.001B (hid)
UDEV  [45695.218382] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.1/3-9.1:1.0/0003:0416:5020.001B/hidraw/hidraw8 (hidraw)
UDEV  [45695.218611] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.1/3-9.1:1.0/0003:0416:5020.001B (hid)
UDEV  [45695.218849] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.1/3-9.1:1.0 (usb)
UDEV  [45695.219280] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.1 (usb)
KERNEL[45695.538073] change   /devices/pci0000:00/0000:00:02.0/drm/card1 (drm)
UDEV  [45695.538601] change   /devices/pci0000:00/0000:00:02.0/drm/card1 (drm)
KERNEL[45695.602257] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2 (usb)
KERNEL[45695.612850] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.0 (usb)
KERNEL[45695.615393] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.0/0003:27C0:0858.001C (hid)
KERNEL[45695.615710] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.0/0003:27C0:0858.001C/input/input39 (input)
KERNEL[45695.615727] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.0/0003:27C0:0858.001C/input/input39/event27 (input)
KERNEL[45695.615738] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.0/0003:27C0:0858.001C/input/input39/mouse2 (input)
KERNEL[45695.615755] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.0/usbmisc/hiddev4 (usbmisc)
KERNEL[45695.615771] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.0/0003:27C0:0858.001C/hidraw/hidraw9 (hidraw)
KERNEL[45695.615792] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.0/0003:27C0:0858.001C (hid)
KERNEL[45695.615805] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.0 (usb)
KERNEL[45695.615817] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.1 (usb)
KERNEL[45695.617585] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.1/0003:27C0:0858.001D (hid)
KERNEL[45695.617639] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.1/usbmisc/hiddev5 (usbmisc)
KERNEL[45695.617652] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.1/0003:27C0:0858.001D/hidraw/hidraw10 (hidraw)
KERNEL[45695.617665] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.1/0003:27C0:0858.001D (hid)
KERNEL[45695.617678] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.1 (usb)
KERNEL[45695.617691] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.2 (usb)
KERNEL[45695.619118] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.2/0003:27C0:0858.001E (hid)
KERNEL[45695.619179] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.2/0003:27C0:0858.001E/input/input40 (input)
KERNEL[45695.619197] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.2/0003:27C0:0858.001E/input/input40/event28 (input)
KERNEL[45695.619209] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.2/0003:27C0:0858.001E/input/input40/mouse3 (input)
KERNEL[45695.619224] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.2/0003:27C0:0858.001E/hidraw/hidraw11 (hidraw)
KERNEL[45695.619236] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.2/0003:27C0:0858.001E (hid)
KERNEL[45695.619249] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.2 (usb)
KERNEL[45695.619263] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2 (usb)
UDEV  [45695.619696] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2 (usb)
UDEV  [45695.619978] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.0 (usb)
UDEV  [45695.620128] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.1 (usb)
UDEV  [45695.620292] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.0/0003:27C0:0858.001C (hid)
UDEV  [45695.620564] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.1/0003:27C0:0858.001D (hid)
UDEV  [45695.620607] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.2 (usb)
UDEV  [45695.620749] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.0/usbmisc/hiddev4 (usbmisc)
UDEV  [45695.620906] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.1/usbmisc/hiddev5 (usbmisc)
UDEV  [45695.621140] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.0/0003:27C0:0858.001C/input/input39 (input)
UDEV  [45695.621251] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.2/0003:27C0:0858.001E (hid)
UDEV  [45695.622134] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.0/0003:27C0:0858.001C/input/input39/mouse2 (input)
UDEV  [45695.622181] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.2/0003:27C0:0858.001E/input/input40 (input)
UDEV  [45695.623181] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.2/0003:27C0:0858.001E/input/input40/mouse3 (input)
UDEV  [45695.623975] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.2/0003:27C0:0858.001E/hidraw/hidraw11 (hidraw)
UDEV  [45695.624241] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.1/0003:27C0:0858.001D/hidraw/hidraw10 (hidraw)
UDEV  [45695.624255] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.0/0003:27C0:0858.001C/hidraw/hidraw9 (hidraw)
UDEV  [45695.624649] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.1/0003:27C0:0858.001D (hid)
UDEV  [45695.625028] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.1 (usb)
UDEV  [45695.766206] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.2/0003:27C0:0858.001E/input/input40/event28 (input)
UDEV  [45695.766624] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.2/0003:27C0:0858.001E (hid)
UDEV  [45695.767870] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.2 (usb)
KERNEL[45695.874831] add      /devices/virtual/usb_power_delivery/pd2 (usb_power_delivery)
UDEV  [45695.875890] add      /devices/virtual/usb_power_delivery/pd2 (usb_power_delivery)
UDEV  [45695.957355] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.0/0003:27C0:0858.001C/input/input39/event27 (input)
UDEV  [45695.959700] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.0/0003:27C0:0858.001C (hid)
UDEV  [45695.961590] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2/3-9.2:1.0 (usb)
UDEV  [45695.963302] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.2 (usb)
KERNEL[45696.018984] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.3 (usb)
KERNEL[45696.028617] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.3/3-9.3:1.0 (usb)
KERNEL[45696.028721] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.3/3-9.3:1.0/ttyUSB0 (usb-serial)
KERNEL[45696.030092] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.3/3-9.3:1.0/ttyUSB0/tty/ttyUSB0 (tty)
KERNEL[45696.030171] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.3/3-9.3:1.0/ttyUSB0 (usb-serial)
KERNEL[45696.030237] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.3/3-9.3:1.0 (usb)
KERNEL[45696.030307] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.3 (usb)
UDEV  [45696.032180] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.3 (usb)
UDEV  [45696.033803] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.3/3-9.3:1.0 (usb)
UDEV  [45696.034564] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.3/3-9.3:1.0/ttyUSB0 (usb-serial)
UDEV  [45696.036663] add      /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.3/3-9.3:1.0/ttyUSB0/tty/ttyUSB0 (tty)
UDEV  [45696.037273] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.3/3-9.3:1.0/ttyUSB0 (usb-serial)
UDEV  [45696.038484] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.3/3-9.3:1.0 (usb)
UDEV  [45696.039856] bind     /devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.3 (usb)
KERNEL[45696.772355] change   /devices/platform/USBC000:00/power_supply/ucsi-source-psy-USBC000:001 (power_supply)
UDEV  [45696.776073] change   /devices/platform/USBC000:00/power_supply/ucsi-source-psy-USBC000:001 (power_supply)
KERNEL[45697.072033] add      /devices/platform/USBC000:00/typec/port0/port0-partner/port0-partner.0 (typec)
KERNEL[45697.072196] bind     /devices/platform/USBC000:00/typec/port0/port0-partner/port0-partner.0 (typec)
UDEV  [45697.073986] add      /devices/platform/USBC000:00/typec/port0/port0-partner/port0-partner.0 (typec)
UDEV  [45697.075039] bind     /devices/platform/USBC000:00/typec/port0/port0-partner/port0-partner.0 (typec)
KERNEL[45697.371836] add      /devices/platform/USBC000:00/typec/port0/port0-partner/port0-partner.1 (typec)
UDEV  [45697.373527] add      /devices/platform/USBC000:00/typec/port0/port0-partner/port0-partner.1 (typec)
KERNEL[45697.668479] change   /devices/platform/USBC000:00/typec/port0/port0-partner (typec)
UDEV  [45697.669775] change   /devices/platform/USBC000:00/typec/port0/port0-partner (typec)

After reviewing this list I found a hidraw device, and after copying its path to the "udevadm info --attribute-walk", I got the following (I'm not copying the whole contents, just the section that describes my eInk monitor):

udevadm info --attribute-walk –path=/devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.1/3-9.1:1.0
...
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.1':
    KERNELS=="3-9.1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bMaxPower}=="100mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0200"
    ATTRS{bmAttributes}=="c0"
    ATTRS{busnum}=="3"
    ATTRS{configuration}==""
    ATTRS{devnum}=="38"
    ATTRS{devpath}=="9.1"
    ATTRS{idProduct}=="5020"
    ATTRS{idVendor}=="0416"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="ONYX"
    ATTRS{maxchild}=="0"
    ATTRS{power/active_duration}=="610570"
    ATTRS{power/autosuspend}=="2"
    ATTRS{power/autosuspend_delay_ms}=="2000"
    ATTRS{power/connected_duration}=="610570"
    ATTRS{power/control}=="on"
    ATTRS{power/level}=="on"
    ATTRS{power/persist}=="1"
    ATTRS{power/runtime_active_time}=="610172"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{product}=="BOOX MIRA133"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="unknown"
    ATTRS{remove}=="(not readable)"
    ATTRS{rx_lanes}=="1"
    ATTRS{serial}=="658A109B0000"
    ATTRS{speed}=="12"
    ATTRS{tx_lanes}=="1"
    ATTRS{urbnum}=="141"
    ATTRS{version}==" 2.00"

So, now I know for a fact that the product and vendor IDs are "5020" and "0416" respectively, which is in line with what I used in the aforementioned .rules file.

I don't know what else I can do in this regard, so any advice is highly appreciated. It feels like I do not understand the .rules file logic though. For instance, why was the MODE equal to 666 in the SUBSYSTEM=="usb" line, whereas the MODE in the KERNEL=="hidraw*" line is set at 0666 in the original .rules file provided by the manufacturer (three digits in one line and four digits in the next line)? So, I've replaced the 666 value with  660 and the 0666 value with 0660, to use the 660 mode value suggest by ArchWiki, but I am absolutely not sure if I did the right thing. Also, I'm not sure if the .rules file name needs to be renamed from the original 58-hid.rules as it was designed for Debian.

Just in case, here is the original .rule file suggested by the manufacturer:

SUBSYSTEM=="input", GROUP="input", MODE="0666"

SUBSYSTEM=="usb", ATTRS{idVendor}=="0416", ATTRS{idProduct}=="5020", MODE:="666", GROUP="plugdev"

KERNEL=="hidraw*", ATTRS{idVendor}=="0416", ATTRS{idProduct}=="5020", MODE="0666", GROUP="plugdev"

Offline

#8 2023-12-14 04:32:58

Stonegrip
Member
Registered: 2022-12-10
Posts: 60

Re: [RESOLVED] Unable to connect my USB-C / USB-C eInk monitor

Since there are no ideas on the potential issues with my version of the .rules file from anyone, may I ask you to share a .rules file for your monitor that is connected via USB-C/ DisplayPort? I'll use it as an example for my .rules file.
Also I haven't found any manual on the naming convention of the .rules file: how do I define the starting number (I've noticed their names always start with a number) and the following word ("hid" in my case), and does it even matter? And where do I store the .rules files on Arch Linux? Would /etc/udev/ folder even work or I need to keep them in /usr/lib/udev/rules.d?
Thanks a lot in advance.
PS: if you have any ideas on the .rules file contents, mentioned in my previous post, they would be highly appreciated.

Offline

#9 2023-12-14 08:59:30

Lone_Wolf
Forum Moderator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 12,181

Re: [RESOLVED] Unable to connect my USB-C / USB-C eInk monitor

Location and naming of udev rules : https://unix.stackexchange.com/question … nt-of-them

(old but still valid)


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#10 2023-12-15 05:51:26

Stonegrip
Member
Registered: 2022-12-10
Posts: 60

Re: [RESOLVED] Unable to connect my USB-C / USB-C eInk monitor

After reading the udev man and many other resources and having played with multiple .rules file configurations, I was able to get the monitor auto-refreshed with a python script that I also use on my second Ubuntu hard drive. I see it been connected via the Boox Mira app that I open with AppImage, but all that only shows me that I show be able to use it. However, the monitor stay asleep at all times, and wakes up only when I turn off my laptop or turn it back on for split second.

I even gave the controls to it to my own user/ group, and at the same time I add the uaccess tag to each subsystem and kernel that is or may be used by it and update the corresponding mode to 660. Here is my current .rules file:

SUBSYSTEM=="input", GROUP="stonegrip", MODE="0660", TAG+="uaccess"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0416", ATTRS{idProduct}=="5020", GROUP="stonegrip", MODE="0660", TAG+="uaccess"
KERNEL=="hidraw*", ATTRS{idVendor}=="0416", ATTRS{idProduct}=="5020", GROUP="stonegrip", MODE="0660", TAG+="uaccess"

The only thing that I'm not totally clear is how do I differentiate between subsystem and kernel when I see an element in the /dev folder?

Also, I've noticed that ttyUSB0 appears in the /dev list once I plug in my eInk monitor. I tried including the KERNEL=="ttyUSB*" ... to the .rules file, and it doesn't make any harm to the overall connectivity of the monitor (while staying asleep), but when I delve into that kerner by the

udevadm info -a /dev/ttyUSB0

command, I see the following, which makes me feel that it is not functioning properly (since the runtime status of ttyUSB0 is unsupported and the runtime active time is equal to 0):

udevadm info -a /dev/ttyUSB0

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.3/3-9.3:1.0/ttyUSB0/tty/ttyUSB0':
    KERNEL=="ttyUSB0"
    SUBSYSTEM=="tty"
    DRIVER==""
    ATTR{power/control}=="auto"
    ATTR{power/runtime_active_time}=="0"
    ATTR{power/runtime_status}=="unsupported"
    ATTR{power/runtime_suspended_time}=="0"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.3/3-9.3:1.0/ttyUSB0':
    KERNELS=="ttyUSB0"
    SUBSYSTEMS=="usb-serial"
    DRIVERS=="ch341-uart"
    ATTRS{port_number}=="0"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.3/3-9.3:1.0':
    KERNELS=="3-9.3:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="ch341"
    ATTRS{authorized}=="1"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bInterfaceClass}=="ff"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bInterfaceProtocol}=="02"
    ATTRS{bInterfaceSubClass}=="01"
    ATTRS{bNumEndpoints}=="03"
    ATTRS{supports_autosuspend}=="1"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb3/3-9/3-9.3':
    KERNELS=="3-9.3"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="ff"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="8"
    ATTRS{bMaxPower}=="98mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0264"
    ATTRS{bmAttributes}=="80"
    ATTRS{busnum}=="3"
    ATTRS{configuration}==""
    ATTRS{devnum}=="43"
    ATTRS{devpath}=="9.3"
    ATTRS{idProduct}=="7523"
    ATTRS{idVendor}=="1a86"
    ATTRS{ltm_capable}=="no"
    ATTRS{maxchild}=="0"
    ATTRS{power/active_duration}=="1448407"
    ATTRS{power/autosuspend}=="2"
    ATTRS{power/autosuspend_delay_ms}=="2000"
    ATTRS{power/connected_duration}=="1448407"
    ATTRS{power/control}=="on"
    ATTRS{power/level}=="on"
    ATTRS{power/persist}=="1"
    ATTRS{power/runtime_active_time}=="1448004"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{product}=="USB Serial"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="unknown"
    ATTRS{remove}=="(not readable)"
    ATTRS{rx_lanes}=="1"
    ATTRS{speed}=="12"
    ATTRS{tx_lanes}=="1"
    ATTRS{urbnum}=="13"
    ATTRS{version}==" 1.10"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb3/3-9':
    KERNELS=="3-9"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bMaxPower}=="100mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0111"
    ATTRS{bmAttributes}=="e0"
    ATTRS{busnum}=="3"
    ATTRS{configuration}==""
    ATTRS{devnum}=="40"
    ATTRS{devpath}=="9"
    ATTRS{idProduct}=="0101"
    ATTRS{idVendor}=="1a40"
    ATTRS{ltm_capable}=="no"
    ATTRS{maxchild}=="4"
    ATTRS{physical_location/dock}=="no"
    ATTRS{physical_location/horizontal_position}=="left"
    ATTRS{physical_location/lid}=="no"
    ATTRS{physical_location/panel}=="top"
    ATTRS{physical_location/vertical_position}=="upper"
    ATTRS{power/active_duration}=="1449977"
    ATTRS{power/autosuspend}=="0"
    ATTRS{power/autosuspend_delay_ms}=="0"
    ATTRS{power/connected_duration}=="1449977"
    ATTRS{power/control}=="auto"
    ATTRS{power/level}=="auto"
    ATTRS{power/runtime_active_time}=="1449439"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/wakeup}=="disabled"
    ATTRS{power/wakeup_abort_count}==""
    ATTRS{power/wakeup_active}==""
    ATTRS{power/wakeup_active_count}==""
    ATTRS{power/wakeup_count}==""
    ATTRS{power/wakeup_expire_count}==""
    ATTRS{power/wakeup_last_time_ms}==""
    ATTRS{power/wakeup_max_time_ms}==""
    ATTRS{power/wakeup_total_time_ms}==""
    ATTRS{product}=="USB 2.0 Hub"
    ATTRS{quirks}=="0x4000"
    ATTRS{removable}=="removable"
    ATTRS{remove}=="(not readable)"
    ATTRS{rx_lanes}=="1"
    ATTRS{speed}=="480"
    ATTRS{tx_lanes}=="1"
    ATTRS{urbnum}=="49"
    ATTRS{version}==" 2.00"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb3':
    KERNELS=="usb3"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{authorized_default}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0606"
    ATTRS{bmAttributes}=="e0"
    ATTRS{busnum}=="3"
    ATTRS{configuration}==""
    ATTRS{devnum}=="1"
    ATTRS{devpath}=="0"
    ATTRS{idProduct}=="0002"
    ATTRS{idVendor}=="1d6b"
    ATTRS{interface_authorized_default}=="1"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Linux 6.6.6-arch1-1 xhci-hcd"
    ATTRS{maxchild}=="12"
    ATTRS{power/active_duration}=="9434627"
    ATTRS{power/autosuspend}=="0"
    ATTRS{power/autosuspend_delay_ms}=="0"
    ATTRS{power/connected_duration}=="9439880"
    ATTRS{power/control}=="auto"
    ATTRS{power/level}=="auto"
    ATTRS{power/runtime_active_time}=="9436811"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/wakeup}=="disabled"
    ATTRS{power/wakeup_abort_count}==""
    ATTRS{power/wakeup_active}==""
    ATTRS{power/wakeup_active_count}==""
    ATTRS{power/wakeup_count}==""
    ATTRS{power/wakeup_expire_count}==""
    ATTRS{power/wakeup_last_time_ms}==""
    ATTRS{power/wakeup_max_time_ms}==""
    ATTRS{power/wakeup_total_time_ms}==""
    ATTRS{product}=="xHCI Host Controller"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="unknown"
    ATTRS{remove}=="(not readable)"
    ATTRS{rx_lanes}=="1"
    ATTRS{serial}=="0000:00:14.0"
    ATTRS{speed}=="480"
    ATTRS{tx_lanes}=="1"
    ATTRS{urbnum}=="503"
    ATTRS{version}==" 2.00"

  looking at parent device '/devices/pci0000:00/0000:00:14.0':
    KERNELS=="0000:00:14.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="xhci_hcd"
    ATTRS{ari_enabled}=="0"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x0c0330"
    ATTRS{consistent_dma_mask_bits}=="64"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{device}=="0x51ed"
    ATTRS{dma_mask_bits}=="64"
    ATTRS{driver_override}=="(null)"
    ATTRS{enable}=="1"
    ATTRS{index}=="7"
    ATTRS{irq}=="128"
    ATTRS{label}=="Onboard - Other"
    ATTRS{local_cpulist}=="0-19"
    ATTRS{local_cpus}=="fffff"
    ATTRS{msi_bus}=="1"
    ATTRS{msi_irqs/128}=="msi"
    ATTRS{numa_node}=="-1"
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_time}=="9437543"
    ATTRS{power/runtime_status}=="active"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{power/wakeup}=="enabled"
    ATTRS{power/wakeup_abort_count}=="0"
    ATTRS{power/wakeup_active}=="0"
    ATTRS{power/wakeup_active_count}=="6"
    ATTRS{power/wakeup_count}=="0"
    ATTRS{power/wakeup_expire_count}=="6"
    ATTRS{power/wakeup_last_time_ms}=="6106496"
    ATTRS{power/wakeup_max_time_ms}=="102"
    ATTRS{power/wakeup_total_time_ms}=="609"
    ATTRS{power_state}=="D0"
    ATTRS{remove}=="(not readable)"
    ATTRS{rescan}=="(not readable)"
    ATTRS{resource0}=="(not readable)"
    ATTRS{revision}=="0x01"
    ATTRS{subsystem_device}=="0x119a"
    ATTRS{subsystem_vendor}=="0x1d05"
    ATTRS{vendor}=="0x8086"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""
    ATTRS{power/control}=="auto"
    ATTRS{power/runtime_active_time}=="0"
    ATTRS{power/runtime_status}=="unsupported"
    ATTRS{power/runtime_suspended_time}=="0"
    ATTRS{waiting_for_supplier}=="0"

But maybe that has nothing to do with my issue.
At this point I start thinking it is the video driver. I had this issue with Nouveau driver on Ubuntu until I switched to the proprietary Nvidia535. And here on Arch my video driver is Nvidia545. Should I try and switch to the 535 version you think?

Offline

#11 2023-12-15 11:21:34

Lone_Wolf
Forum Moderator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 12,181

Re: [RESOLVED] Unable to connect my USB-C / USB-C eInk monitor

At this point I start thinking it is the video driver. I had this issue with Nouveau driver on Ubuntu until I switched to the proprietary Nvidia535. And here on Arch my video driver is Nvidia545. Should I try and switch to the 535 version you think?

Seems like a good idea, also try with nouveau on archlinux.
(novueau driver is in the kernel, and ubuntu tends to have older kernels then archlinux)


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#12 2023-12-16 05:52:04

Stonegrip
Member
Registered: 2022-12-10
Posts: 60

Re: [RESOLVED] Unable to connect my USB-C / USB-C eInk monitor

Nope, switching to Nouveau didn't do the trick. I'm really desperate at this point. I have no idea what it is and how to get it fixed: I see the monitor been connected both through xrandr -q and via the AppImage-based app provided by the monitor manufacturer. I can change its settings, I can run a python code that auto-refreshes it (which implies my udev .rules file is working properly, otherwise it would bring up an error) etc. But the screen of the monitor stays asleep with the sleeping mouse in the center. And neither open-source driver nor the proprietary NVIDIA driver with its latest version 545 change it.
The monitor has also been detected and recognized in dmesg.

I'm craving any ideas. Is there anyone who is using eInk or any other monitor connected via USB-C DisplayPort? Could you please share your .rules file?

Offline

#13 2023-12-16 06:04:01

Stonegrip
Member
Registered: 2022-12-10
Posts: 60

Re: [RESOLVED] Unable to connect my USB-C / USB-C eInk monitor

One funny fact: while rebooting I've noticed that if I move my cursor to the right of my main screen while the LightDM login screen is on (before I capture the password), I can move the login window to the eInk monitor that is set up as if it was a --right-off set up in xrandr. But as soon as I log in, the eInk monitor goes asleep and I'm left with the laptop screen working only. Does it convey any thoughts?

Offline

#14 2023-12-16 11:47:46

Lone_Wolf
Forum Moderator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 12,181

Re: [RESOLVED] Unable to connect my USB-C / USB-C eInk monitor

It indicates we may need to look at userspace not kernelspace .

lightdm starts its own graphical session to display the login screen and starts separate independent sessions for each user login .

WM/DE environments like gnome and kde are known to have their own power settings and screen detect logic that can be ... less than perfect.

Which WM/DE are you logging into on archlinux and ubuntu ?


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#15 2023-12-16 15:20:08

Stonegrip
Member
Registered: 2022-12-10
Posts: 60

Re: [RESOLVED] Unable to connect my USB-C / USB-C eInk monitor

I'm using i3 on Arch and GNOME on Ubuntu.

What settings can I check on the power management front? I already turned off DPMS and the only ACPI event I changed in the systemd logind.conf was to ignore HandleLidSwitch. But the issue with my monitor was observed even before I made all these changes.

Offline

#16 2023-12-17 11:18:36

Lone_Wolf
Forum Moderator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 12,181

Re: [RESOLVED] Unable to connect my USB-C / USB-C eInk monitor

I kinda expected the reverse (DE screen logic being the issue) , but it is useful info .

sanity check :

Assuming the eInk monitor is still seen at DP-1, post the output & effect (if any) of

$ xrandr --output DP-1 --auto

Last edited by Lone_Wolf (2023-12-17 11:20:04)


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#17 2023-12-18 03:11:22

Stonegrip
Member
Registered: 2022-12-10
Posts: 60

Re: [RESOLVED] Unable to connect my USB-C / USB-C eInk monitor

Firstly, I got this resolved, but frankly I don't even know what exact step helped me, so will mention them all (God bless the history command, otherwise I would never remember their sequence) and maybe you will be able to comprehend.

Quick note on my display names: the names changed after I switched to nouveau. So, now my main laptop monitor is eDP-2 (it used to be dDP-1 before), my HDMI monitor is HDMI-1-1 (it used to be HDMI-1-0) and the eInk monitor is the same old DP-1.

Ok, so I turned on the laptop, got to the login screen, again checked that the eInk monitor works if you move the mouse to the right of my laptop monitor (the HDMI monitor was black, since I hadn't run the xrandr script to enable it yet, as I was still at the login step).

Once I logged in, the eInk monitor immediately switched to the standby mode. So, I traditionally ran the following xrandr script to enable my HDMI monitor, namely:

#!/bin/bash

xrandr --output eDP-2 --mode 2560x1440 --output HDMI-1-1 --mode 2560x1440 --same-as eDP-2 --rate 120

the script is in /usr/local/bin, so that I could run it by name. The script had always worked, except for today. It was resulting in a black HDMI monitor screen that was trying to get on, but then was going back to standby without showing anything. I ran it twice without any change. So, I decided to turn off DPMS in case it was on by the following command:

set dpms 0 0 0

And then I decided to run almost the same xrandr command without the bash script. I remember that Seth wrote to me in one of his previous posts that xrandr commands don't work well when you run them in one line.

So, I ran this:

xrandr --output HDMI-1-1 --auto

And it worked: my HDMI monitor turned on and started mirroring my laptop screen.
After that I immediately ran the same command but for the eInk monitor as per the Lone_Wolf's suggestion, namely:

xrandr --output DP-1 --auto

AND IT TURNED ON! However it was only black at that time since its resolution is very different from that of my laptop and HDMI monitors (the eInk is 2200x1650, whereas the other two are 2560x1440).

But then I quickly amended my bash script, which appeared to be as follows:

#!/bin/bash

xrandr --output eDP-2 --pos 0x210 --rate 240 --output HDMI-1-1 --same-as eDP-2 --rate 120 
xrandr --output DP-1 --pos 2560x0 --rate 30

Ran it and it worked. So, now everything is as per my design: I moved my IDE to the right side to cast it on the eInk monitor, and I can now use my HDMI monitor as the main screen and open tabs there, and every time I need to work on the code I can just move the cursor to the right and it will activate the IDE, so that I could code in there. I also can run my Python script to refresh the eInk screen to get rid of ghosting and bound it to the hotkey.

I still can't boast that I comprehended it all: there are a lot of unknowns in this process, and I can't define what exactly was the step that was the game changer. I would think it's the switch to Nouveau plus the DPMS off, plus the first run of xrandr commands for each monitor separately, before running the bash script to collate them all with the right positioning. Will reboot now and see if I can run the bash script without running the xrandr commands from console. But regardless of my future experiments outcome, my issue is resolved and I'm closing this thread.

Lone_Wolf, huge thanks for helping me out with this. Appreciate all the facilitation and time.

Offline

#18 2023-12-18 04:13:09

Stonegrip
Member
Registered: 2022-12-10
Posts: 60

Re: [RESOLVED] Unable to connect my USB-C / USB-C eInk monitor

As the final update: I've rebooted and tried to make a shortcut in the sequence of steps described in my previous post. And, interestingly, it didn't work out, except for the DPMS may be left on. So, the only way to make it work is by running the following commands from console:

xrandr --output HDMI-1-1 --auto
xrandr --output DP-1 --auto

after that my eInk monitor is on, but it is mirroring the other 2 monitors, and the xrandr -q is as follows:

Screen 0: minimum 320 x 200, current 2560 x 1650, maximum 16384 x 16384
eDP-2 connected primary 2560x1440+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
   2560x1440    240.00*+  60.00 +  59.99    59.99    59.96    59.95  
   1920x1440     85.00    75.00    60.00  
   1856x1392     75.00    60.01  
   1792x1344     75.00    60.01  
   2048x1152     59.99    59.98    59.90    59.91  
   1920x1200     59.88    59.95  
   1920x1080     60.01    59.97    59.96    59.93  
   1600x1200     85.00    75.00    70.00    65.00    60.00  
   1680x1050     59.95    59.88  
   1400x1050     74.76    59.98  
   1600x900      59.99    59.94    59.95    59.82  
   1280x1024     85.02    75.02    60.02  
   1400x900      59.96    59.88  
   1280x960      85.00    60.00  
   1440x810      60.00    59.97  
   1368x768      59.88    59.85  
   1280x800      59.99    59.97    59.81    59.91  
   1152x864      75.00  
   1280x720      60.00    59.99    59.86    59.74  
   1024x768      85.00    75.05    60.04    85.00    75.03    70.07    60.00  
   1024x768i     86.96  
   960x720       85.00    75.00    60.00  
   928x696       75.00    60.05  
   896x672       75.05    60.01  
   1024x576      59.95    59.96    59.90    59.82  
   960x600       59.93    60.00  
   832x624       74.55  
   960x540       59.96    59.99    59.63    59.82  
   800x600       85.00    75.00    70.00    65.00    60.00    85.14    72.19    75.00    60.32    56.25  
   840x525       60.01    59.88  
   864x486       59.92    59.57  
   700x525       74.76    59.98  
   800x450       59.95    59.82  
   640x512       85.02    75.02    60.02  
   700x450       59.96    59.88  
   640x480       85.09    60.00    85.01    72.81    75.00    59.94  
   720x405       59.51    58.99  
   720x400       85.04  
   684x384       59.88    59.85  
   640x400       59.88    59.98    85.08  
   576x432       75.00  
   640x360       59.86    59.83    59.84    59.32  
   640x350       85.08  
   512x384       85.00    75.03    70.07    60.00  
   512x384i      87.06  
   512x288       60.00    59.92  
   416x312       74.66  
   480x270       59.63    59.82  
   400x300       85.27    72.19    75.12    60.32    56.34  
   432x243       59.92    59.57  
   320x240       85.18    72.81    75.00    60.05  
   360x202       59.51    59.13  
   360x200       85.04  
   320x200       85.27  
   320x180       59.84    59.32  
   320x175       85.27  
DP-1 connected 2200x1650+0+0 (normal left inverted right x axis y axis) 271mm x 203mm
   2200x1650     38.00*+
   1920x1080     37.98  
   1280x960      38.03  
   1024x768      38.02  
DP-2 disconnected (normal left inverted right x axis y axis)
eDP-1-1 disconnected (normal left inverted right x axis y axis)
HDMI-1-1 connected 2560x1440+0+0 (normal left inverted right x axis y axis) 1190mm x 340mm
   2560x1440     59.95*+ 120.00  
   1920x1440     85.00    75.00    60.00  
   1856x1392     75.00    60.01  
   1792x1344     75.00    60.01  
   2048x1152     59.99    59.98    59.90    59.91  
   1920x1200     59.88    59.95  
   1920x1080     60.01    59.97    59.96    60.00    50.00    59.94    59.93  
   1600x1200     85.00    75.00    70.00    65.00    60.00  
   1680x1050     59.95    59.88  
   1400x1050     74.76    59.98  
   1600x900      59.99    59.94    59.95    60.00    59.82  
   1280x1024     85.02    75.02    60.02  
   1440x900      59.90  
   1400x900      59.96    59.88  
   1280x960      85.00    60.00  
   1440x810      60.00    59.97  
   1368x768      59.88    59.85  
   1280x800      59.99    59.97    59.81    59.91  
   1152x864      75.00  
   1280x720      60.00    59.99    59.86    60.00    50.00    59.94    59.74  
   1024x768      85.00    75.05    60.04    85.00    75.03    70.07    60.00  
   1024x768i     86.96  
   960x720       85.00    75.00    60.00  
   928x696       75.00    60.05  
   896x672       75.05    60.01  
   1024x576      59.95    59.96    59.90    59.82  
   960x600       59.93    60.00  
   832x624       74.55  
   960x540       59.96    59.99    59.63    59.82  
   800x600       85.00    75.00    70.00    65.00    60.00    85.14    72.19    75.00    60.32    56.25  
   840x525       60.01    59.88  
   864x486       59.92    59.57  
   700x525       74.76    59.98  
   800x450       59.95    59.82  
   640x512       85.02    75.02    60.02  
   700x450       59.96    59.88  
   640x480       85.09    60.00    85.01    75.00    72.81    75.00    66.67    60.00    59.94  
   720x405       59.51    58.99  
   720x400       85.04    70.08  
   684x384       59.88    59.85  
   640x400       59.88    59.98    85.08  
   576x432       75.00  
   640x360       59.86    59.83    59.84    59.32  
   640x350       85.08  
   512x384       85.00    75.03    70.07    60.00  
   512x384i      87.06  
   512x288       60.00    59.92  
   416x312       74.66  
   480x270       59.63    59.82  
   400x300       85.27    72.19    75.12    60.32    56.34  
   432x243       59.92    59.57  
   320x240       85.18    72.81    75.00    60.05  
   360x202       59.51    59.13  
   360x200       85.04  
   320x200       85.27  
   320x180       59.84    59.32  
   320x175       85.27

Interestingly, the --auto positioning of xrandr defined 344mm x 194mm position for my laptop screen, 1190mm x 340mm for my HDMI screen (even though they both have the same resolution) and 271mm x 203mm for my eInk monitor.

In order to make my desired setup when the laptop and HDMI screens are the same and the eInk screen is on the right, I need to run the corresponding bash script, which did not work before the two aforementioned xrandr commands were run. The script is:

#!/bin/bash

xrandr --output eDP-2 --pos 0x210 --rate 240 --output HDMI-1-1 --same-as eDP-2 --rate 120 
xrandr --output DP-1 --pos 2560x0 --rate 30

And after that the multi-monitor set up is perfect, and the xrandr -q shows this:

Screen 0: minimum 320 x 200, current 4760 x 1650, maximum 16384 x 16384
eDP-2 connected primary 2560x1440+0+210 (normal left inverted right x axis y axis) 344mm x 194mm
   2560x1440    240.00*+  60.00 +  59.99    59.99    59.96    59.95  
   1920x1440     85.00    75.00    60.00  
   1856x1392     75.00    60.01  
   1792x1344     75.00    60.01  
   2048x1152     59.99    59.98    59.90    59.91  
   1920x1200     59.88    59.95  
   1920x1080     60.01    59.97    59.96    59.93  
   1600x1200     85.00    75.00    70.00    65.00    60.00  
   1680x1050     59.95    59.88  
   1400x1050     74.76    59.98  
   1600x900      59.99    59.94    59.95    59.82  
   1280x1024     85.02    75.02    60.02  
   1400x900      59.96    59.88  
   1280x960      85.00    60.00  
   1440x810      60.00    59.97  
   1368x768      59.88    59.85  
   1280x800      59.99    59.97    59.81    59.91  
   1152x864      75.00  
   1280x720      60.00    59.99    59.86    59.74  
   1024x768      85.00    75.05    60.04    85.00    75.03    70.07    60.00  
   1024x768i     86.96  
   960x720       85.00    75.00    60.00  
   928x696       75.00    60.05  
   896x672       75.05    60.01  
   1024x576      59.95    59.96    59.90    59.82  
   960x600       59.93    60.00  
   832x624       74.55  
   960x540       59.96    59.99    59.63    59.82  
   800x600       85.00    75.00    70.00    65.00    60.00    85.14    72.19    75.00    60.32    56.25  
   840x525       60.01    59.88  
   864x486       59.92    59.57  
   700x525       74.76    59.98  
   800x450       59.95    59.82  
   640x512       85.02    75.02    60.02  
   700x450       59.96    59.88  
   640x480       85.09    60.00    85.01    72.81    75.00    59.94  
   720x405       59.51    58.99  
   720x400       85.04  
   684x384       59.88    59.85  
   640x400       59.88    59.98    85.08  
   576x432       75.00  
   640x360       59.86    59.83    59.84    59.32  
   640x350       85.08  
   512x384       85.00    75.03    70.07    60.00  
   512x384i      87.06  
   512x288       60.00    59.92  
   416x312       74.66  
   480x270       59.63    59.82  
   400x300       85.27    72.19    75.12    60.32    56.34  
   432x243       59.92    59.57  
   320x240       85.18    72.81    75.00    60.05  
   360x202       59.51    59.13  
   360x200       85.04  
   320x200       85.27  
   320x180       59.84    59.32  
   320x175       85.27  
DP-1 connected 2200x1650+2560+0 (normal left inverted right x axis y axis) 271mm x 203mm
   2200x1650     38.00*+
   1920x1080     37.98  
   1280x960      38.03  
   1024x768      38.02  
DP-2 disconnected (normal left inverted right x axis y axis)
eDP-1-1 disconnected (normal left inverted right x axis y axis)
HDMI-1-1 connected 2560x1440+0+210 (normal left inverted right x axis y axis) 1190mm x 340mm
   2560x1440     59.95*+ 120.00  
   1920x1440     85.00    75.00    60.00  
   1856x1392     75.00    60.01  
   1792x1344     75.00    60.01  
   2048x1152     59.99    59.98    59.90    59.91  
   1920x1200     59.88    59.95  
   1920x1080     60.01    59.97    59.96    60.00    50.00    59.94    59.93  
   1600x1200     85.00    75.00    70.00    65.00    60.00  
   1680x1050     59.95    59.88  
   1400x1050     74.76    59.98  
   1600x900      59.99    59.94    59.95    60.00    59.82  
   1280x1024     85.02    75.02    60.02  
   1440x900      59.90  
   1400x900      59.96    59.88  
   1280x960      85.00    60.00  
   1440x810      60.00    59.97  
   1368x768      59.88    59.85  
   1280x800      59.99    59.97    59.81    59.91  
   1152x864      75.00  
   1280x720      60.00    59.99    59.86    60.00    50.00    59.94    59.74  
   1024x768      85.00    75.05    60.04    85.00    75.03    70.07    60.00  
   1024x768i     86.96  
   960x720       85.00    75.00    60.00  
   928x696       75.00    60.05  
   896x672       75.05    60.01  
   1024x576      59.95    59.96    59.90    59.82  
   960x600       59.93    60.00  
   832x624       74.55  
   960x540       59.96    59.99    59.63    59.82  
   800x600       85.00    75.00    70.00    65.00    60.00    85.14    72.19    75.00    60.32    56.25  
   840x525       60.01    59.88  
   864x486       59.92    59.57  
   700x525       74.76    59.98  
   800x450       59.95    59.82  
   640x512       85.02    75.02    60.02  
   700x450       59.96    59.88  
   640x480       85.09    60.00    85.01    75.00    72.81    75.00    66.67    60.00    59.94  
   720x405       59.51    58.99  
   720x400       85.04    70.08  
   684x384       59.88    59.85  
   640x400       59.88    59.98    85.08  
   576x432       75.00  
   640x360       59.86    59.83    59.84    59.32  
   640x350       85.08  
   512x384       85.00    75.03    70.07    60.00  
   512x384i      87.06  
   512x288       60.00    59.92  
   416x312       74.66  
   480x270       59.63    59.82  
   400x300       85.27    72.19    75.12    60.32    56.34  
   432x243       59.92    59.57  
   320x240       85.18    72.81    75.00    60.05  
   360x202       59.51    59.13  
   360x200       85.04  
   320x200       85.27  
   320x180       59.84    59.32  
   320x175       85.27

As you can see the console xrandr commands with --auto flag resulted in some weird positioning and scaling that allows the bash script-based commands execute. Also, despite the --rate flags mentioned in the bash script, the resultant refresh rate of the HDMI monitor is 60 instead of the requested 120 (when I'm using the HDMI monitor in a dual-screen setup without the eInk monitor, the refresh rate is 120), and the eInk refresh rate is 38 instead of requested 30. In other words, xrandr applies its own inner logic or limitations to run my bash script and it gives me the overall layout correctly with some minor inconsistencies. So, it basically only shifted the positioning of the eInk monitor by 2560 pixels to the right. Also, the top of the wallpaper and Conky don't fit into the screen layout, but that is due to the positioning mismatch between my i3 config where I set them up and the xrandr manipulations that I run after the config file gets executed.

I guess, I will have to write a more comprehensive bash script to update the Conky and wallpaper positioning after the 3-monitor setup is done by separating these steps with Sleep 3 or something, but before doing that I need to understand why my current bash script (see above) is not getting executed until I run the 2 aforementioned xrandr commands from console. I can obviously include them is the script as well or create multiple bash scripts and then run them via another bash script that will only trigger them one by one with a certain pause, but I do want to understand the underlying logic first. If you or somebody else could help me with that, that would be highly appreciated.

Offline

#19 2023-12-19 11:54:10

Lone_Wolf
Forum Moderator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 12,181

Re: [RESOLVED] Unable to connect my USB-C / USB-C eInk monitor

I don't know why, but xrandr commands tend to work best if they're run early before a window manager is started.

for people using startx this is easy : they put the xrandr commands in .xinitrc .

DMs are trickier, but the xrandr arch wiki page has a useful tip :

Tip: Both GDM and SDDM have startup scripts that are executed when X is initiated. For GDM, these are in /etc/gdm/, while for SDDM this is done at /usr/share/sddm/scripts/Xsetup. This method requires root access and mucking around in system configuration files, but will take effect earlier in the startup process than using xprofile.

Try putting the xrandr commands in a script in the location for sddm .

Last edited by Lone_Wolf (2023-12-19 11:54:42)


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

Board footer

Powered by FluxBB