DisplayLink Forum

DisplayLink Forum (https://displaylink.org/forum/index.php)
-   Linux and Open Source (https://displaylink.org/forum/forumdisplay.php?f=29)
-   -   Modified script Debian Friendly (https://displaylink.org/forum/showthread.php?t=64043)

guerrierk 08-26-2015 01:19 PM

Modified script Debian Friendly
 
1 Attachment(s)
Hi all,

I'm using Debian Jessie 8.1 with External HP EliteDisplay S140u.

I had to modify the installer to correctly use it due to bad detection of kernel headers and system init daemon.

If it can help someone, you should find the updated installer in attachment.

You must unzip the file
Code:

saian@n5110:displaylink$ unzip dl_installer_debian.zip
Archive:  dl_installer_debian.zip
  creating: displaylink-driver-1.0.68/
  inflating: displaylink-driver-1.0.68/firefly-monitor-release.spkg 
  creating: displaylink-driver-1.0.68/x86/
  inflating: displaylink-driver-1.0.68/x86/DisplayLinkManager 
  inflating: displaylink-driver-1.0.68/x86/libusb-1.0.so.0.1.0 
  inflating: displaylink-driver-1.0.68/x86/libevdi.so 
  inflating: displaylink-driver-1.0.68/LICENSE 
  creating: displaylink-driver-1.0.68/x64/
  inflating: displaylink-driver-1.0.68/x64/DisplayLinkManager 
  inflating: displaylink-driver-1.0.68/x64/libusb-1.0.so.0.1.0 
  inflating: displaylink-driver-1.0.68/x64/libevdi.so 
  inflating: displaylink-driver-1.0.68/displaylink-installer.sh 
  inflating: displaylink-driver-1.0.68/ella-dock-release.spkg 
 extracting: displaylink-driver-1.0.68/evdi-1.0.68-src.tar.gz
saian@n5110:displaylink$ cd displaylink-driver-1.0.68/

and then as root, you can install it by the same way that original
Code:

root@n5110:displaylink-driver-1.0.68# ./displaylink-installer.sh install
DisplayLink Linux Software 1.0.68 install script called: install
Distribution discovered: Debian GNU/Linux 8.1 (jessie)
Init daemon detected : systemd
Linux Headers found : linux-headers-3.16.0-4-amd64
Installing
Configuring EVDI DKMS module
Registering EVDI kernel module with DKMS
Building EVDI kernel module with DKMS
Installing EVDI kernel module to kernel tree
EVDI kernel module built successfully
Installing x64/DisplayLinkManager
Installing libraries
Installing firmware packages
Installing license file
Adding udev rule for DisplayLink DL-3xxx/5xxx devices
Starting DLM systemd service

after reboot, you should see the new provider with
Code:

root@n5110:displaylink-driver-1.0.68# xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x43 cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 2 outputs: 2 associated providers: 0 name:Intel
Provider 1: id: 0xe9 cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated providers: 0 name:modesetting

and activate it with
Code:

root@n5110:displaylink-driver-1.0.68# xrandr --setprovideroutputsource 1 0
The new screen is now available in the screen configuration.

Thanks to DisplayLink Members to this driver ;-)

EDIT :
The script should be more efficient to detect the system init daemon. Thanks to @runejuhl for his patch.
It seems that many users have problem to download the file. It could be useful that some admin talk about it. Waiting for that, I share the file with Drive.
The link for the current version is : https://drive.google.com/file/d/0B5q...ew?usp=sharing

stuguy909 08-26-2015 07:32 PM

can't download - insufficient permissions.

Edit1: I found a work around for the kernel headers problem without modifying the installer. However, it won't install and start the dlm service. Is that issue related to the system init daemon you mentioned?

Edit2: It is. You created some work around to plug in the displaylink.service in the /lib/system.d/system/ Care to share what it is? I have a debian 8.1 install thread and I would like to have a full procedure created without having to modify any downloads. CLI progressions only.

guerrierk 08-26-2015 09:14 PM

Quote:

Originally Posted by stuguy909 (Post 78231)
can't download - insufficient permissions.

Edit: I found a work around for the kernel headers problem without modifying the installer. However, it won't install and start the dlm service. Is that issue related to the system init daemon you mentioned?

Hi stuguy909,
I don't know why you can't download this file. I wil upload it to another server and post the link tomorrow.

The problem with the system init deamon is thay the installer create the service only on ubuntu system. I modified the test that where it is checked and initialized, but you can simply specify "systemd" to the value of SYSTEMINITDAEMON.

Currently I have a problem with the udev rules because it doesnt match with my EliteDisplay and the displaylink services doesnt start automatically. I had to run (as root) systemctl start displaylink.service before to set the new provider with xrandr.

Tell me if that help you ;-)

stuguy909 08-26-2015 09:25 PM

dlm installed...but
 
That certainly installed DLM, and crashed the PC. I rebooted and did as you said, the service failed to start because it is masked.

Code:

# systemctl start displaylink.service
Failed to start displaylink.service: Unit displaylink.service is masked.

Edit: kicked off:

Code:

# systemctl -a
UNIT                                                                        LOAD      ACTIVE  SUB      DESCRIPTION
● display-manager.service                                                    not-found inactive dead      display-manager.service


guerrierk 08-26-2015 09:43 PM

Quote:

Originally Posted by stuguy909 (Post 78239)
That certainly installed DLM, and crashed the PC. I rebooted and did as you said, the service failed to start because it is masked.

Code:

# systemctl start displaylink.service
Failed to start displaylink.service: Unit displaylink.service is masked.


Have you uninstall the previous installation before modify the script and re-run install ?

Does the installer has terminated correctly before thé PC crashed ?

I don't know what the message "service is masked" mean... I will search about it and reply to you asap.

Does anyone has this problem too ?

Thx all

stuguy909 08-27-2015 02:46 PM

Quote:

Originally Posted by guerrierk (Post 78241)
Have you uninstall the previous installation before modify the script and re-run install ?

Does the installer has terminated correctly before thé PC crashed ?

I don't know what the message "service is masked" mean... I will search about it and reply to you asap.

Does anyone has this problem too ?

Thx all

I didn't uninstall the old installation. The old installer wasn't technically working correctly. It couldn't load the DLM service and start it. Nothing was actually getting put into systemd. As for the crash, the script finished and the system sat fine for a few seconds at the # prompt, then everything froze. I will try to uninstall and reinstall.

stuguy909 08-27-2015 02:58 PM

re-install
 
I uninstalled, rebooted, and reinstalled. I seem to be getting errors now with the modified script.

Code:

displaylink-driver-1.0.68# ./displaylink-installer.sh install
DisplayLink Linux Software 1.0.68 install script called: install
Distribution discovered: Debian GNU/Linux 8.1 (jessie)
Installing
Configuring EVDI DKMS module
Registering EVDI kernel module with DKMS
Building EVDI kernel module with DKMS
Installing EVDI kernel module to kernel tree
EVDI kernel module built successfully
Installing x64/DisplayLinkManager
Installing libraries
chmod: cannot access ‘/usr/lib/displaylink/DisplayLinkManager’: No such file or directory
chmod: cannot access ‘/usr/lib/displaylink/libevdi.so’: No such file or directory
chmod: cannot operate on dangling symlink ‘/usr/lib/displaylink/libusb-1.0.so’
chmod: cannot operate on dangling symlink ‘/usr/lib/displaylink/libusb-1.0.so.0’
Installing firmware packages
mv: cannot stat ‘*.spkg’: No such file or directory
chmod: cannot access ‘/usr/lib/displaylink/*.spkg’: No such file or directory
Installing license file
mv: cannot stat ‘LICENSE’: No such file or directory
chmod: cannot access ‘/usr/lib/displaylink/LICENSE’: No such file or directory
Adding udev rule for DisplayLink DL-3xxx/5xxx devices
Starting DLM systemd service


guerrierk 08-27-2015 03:06 PM

Quote:

Originally Posted by stuguy909 (Post 78259)
I didn't uninstall the old installation. The old installer wasn't technically working correctly. It couldn't load the DLM service and start it. Nothing was actually getting put into systemd. As for the crash, the script finished and the system sat fine for a few seconds at the # prompt, then everything froze. I will try to uninstall and reinstall.

OK. That could explain some crash of your system... To uninstall correctly, you can re-execute
Code:

# ./displaylink-driver-1.0.68.run --keep --noexec
to have a good script and run
Code:

# cd DisplayLink-Ubuntu-1.0.68/
# ./displaylink-installer.sh uninstall

after you done that, you can restart and search some file about displaylink with
Code:

# updatedb
# locate displaylink

It should have only the installer's files into the results...

To reinstall, you can use my installer (I updated the archive few minutes ago).

Tell us what the result is ;-)

stuguy909 08-27-2015 03:29 PM

some left overs
 
I uninstalled as you said, I still have some left overs:

Code:

/lib/systemd/system/displaylink.service
/var/tmp/kdecache-sanderson/favicons/displaylink.org.png
/var/tmp/kdecache-sanderson/favicons/support.displaylink.com.png
/var/tmp/kdecache-sanderson/favicons/www.displaylink.com.png
/var/tmp/kdecache-sanderson/favicons/www.displaylink.org.png

Should I manually delete them?

guerrierk 08-27-2015 03:33 PM

Quote:

Originally Posted by stuguy909 (Post 78262)
I uninstalled as you said, I still have some left overs:

Code:

/lib/systemd/system/displaylink.service
/var/tmp/kdecache-sanderson/favicons/displaylink.org.png
/var/tmp/kdecache-sanderson/favicons/support.displaylink.com.png
/var/tmp/kdecache-sanderson/favicons/www.displaylink.com.png
/var/tmp/kdecache-sanderson/favicons/www.displaylink.org.png

Should I manually delete them?

Yes you must delete the /lib/systemd/system/displaylink.service (as root)
The tmp files are not important. You can leave them...

After that, can you use my installer and give us the results ?

Thx

stuguy909 08-27-2015 03:42 PM

I still can't download your installer. It states I do not have sufficient permissions. However, I was able to remodify the SYSTEMINITDAEMON=unknown entry on the refreshed --keep --noexec of the .run package, to SYSTEMINITDAEMON=systemd. This time when I installed, it successfully completes the install. However, after reboot, I still do not see my providers. I did start the displaylink service, however. This is a first.

stuguy909 08-27-2015 03:48 PM

systemctl -a
 
This may have something to do with it.

Code:

# systemctl -a
display-manager.service    not-found inactive  dead      display-manager.service
displaylink.service              loaded    activating auto-restart DisplayLink Manager Service


guerrierk 08-27-2015 03:50 PM

Quote:

Originally Posted by stuguy909 (Post 78266)
I still can't download your installer. It states I do not have sufficient permissions. However, I was able to remodify the SYSTEMINITDAEMON=unknown entry on the refreshed --keep --noexec of the .run package, to SYSTEMINITDAEMON=systemd. This time when I installed, it successfully completes the install. However, after reboot, I still do not see my providers. I did start the displaylink service, however. This is a first.

OK. Could you post the results of :
Code:

# systemctl status displaylink.service
# lsmod | grep evdi
# dmesg

Thx

PS : I place my installer into drive folder : https://drive.google.com/file/d/0B5q...ew?usp=sharing


EDIT :
Quote:

Originally Posted by stuguy909 (Post 78267)
This may have something to do with it.

Code:

# systemctl -a
display-manager.service    not-found inactive  dead      display-manager.service
displaylink.service              loaded    activating auto-restart DisplayLink Manager Service


It's not really normal that you don't have an active display-manager service. What DM do you use ? LigthDM ? Gnome Display Manager ?

Thx

stuguy909 08-27-2015 04:00 PM

KDE, I deleted it thinking it was displaylink stuff. damn. I will reinstall my KDE.

stuguy909 08-27-2015 06:05 PM

failed
 
I resolved my desktop issue, there wasn't one. It was still in default build. So uninstalled the displaylink stuff, verified, rebooted. I downloaded your installer from the google drive, followed instructions. Everything seemed to install fine. Rebooted. The system came up fine, but the displaylink.service wasn't started. I had to start it manually. It failed. This is the output.

Code:

# systemctl status displaylink.service
● displaylink.service - DisplayLink Manager Service
  Loaded: loaded (/lib/systemd/system/displaylink.service; static)
  Active: activating (auto-restart) (Result: signal) since Thu 2015-08-27 13:01:27 CDT; 1s ago
  Process: 3126 ExecStart=/usr/lib/displaylink/DisplayLinkManager (code=killed, signal=ABRT)
  Process: 3124 ExecStartPre=/sbin/modprobe evdi (code=exited, status=0/SUCCESS)
 Main PID: 3126 (code=killed, signal=ABRT)

Aug 27 13:01:27 lt-sanderson systemd[1]: displaylink.service: main process exited, code=killed, status=6/ABRT
Aug 27 13:01:27 lt-sanderson systemd[1]: Unit displaylink.service entered failed state.

I do not have additional providers when I run xrandr --listproviders

guerrierk 08-27-2015 06:15 PM

Quote:

Originally Posted by stuguy909 (Post 78274)
I resolved my desktop issue, there wasn't one. It was still in default build. So uninstalled the displaylink stuff, verified, rebooted. I downloaded your installer from the google drive, followed instructions. Everything seemed to install fine. Rebooted. The system came up fine, but the displaylink.service wasn't started. I had to start it manually. It failed. This is the output.

Code:

# systemctl status displaylink.service
● displaylink.service - DisplayLink Manager Service
  Loaded: loaded (/lib/systemd/system/displaylink.service; static)
  Active: activating (auto-restart) (Result: signal) since Thu 2015-08-27 13:01:27 CDT; 1s ago
  Process: 3126 ExecStart=/usr/lib/displaylink/DisplayLinkManager (code=killed, signal=ABRT)
  Process: 3124 ExecStartPre=/sbin/modprobe evdi (code=exited, status=0/SUCCESS)
 Main PID: 3126 (code=killed, signal=ABRT)

Aug 27 13:01:27 lt-sanderson systemd[1]: displaylink.service: main process exited, code=killed, status=6/ABRT
Aug 27 13:01:27 lt-sanderson systemd[1]: Unit displaylink.service entered failed state.

I do not have additional providers when I run xrandr --listproviders

While this service is not running, you will not have the new provider into xrandr...

The Displaylink Manager has been killed... The question is : why ?
Do you have log file in /var/log concerning Displaylink ?
Code:

# updatedb
# locate displaylink | grep log

What return the
Code:

# dmesg
# lsmod | grep udl

Thx

stuguy909 08-27-2015 06:18 PM

some stats
 
http://stuartanderson.info/dmesg.txt
http://stuartanderson.info/lsmod.txt
http://stuartanderson.info/lsusb.txt
http://stuartanderson.info/dmesggrepusb.txt

Code:

#lsmod | grep udl
#

Code:

/var/log/displaylink# ls
/var/log/displaylink#


guerrierk 08-27-2015 06:47 PM

Quote:

Originally Posted by stuguy909 (Post 78277)

Into your dmesg, there is always a problem with the display manager service :
Code:

[    9.553262] systemd[1]: Cannot add dependency job for unit display-manager.service, ignoring: Unit display-manager.service failed to load: No such file or directory.
Since it's not running, your displaylink service will not run correctly...
You can try to use lighDM or another DM to test before resolve your KDE problem...
What have you fond to reinstall KDE ?

stuguy909 08-27-2015 06:57 PM

I did delete the service file as root. I completely uninstalled and rebooted and reinstalled many times. The result is always:

Code:

# systemctl status displaylink.service
● displaylink.service - DisplayLink Manager Service
  Loaded: loaded (/lib/systemd/system/displaylink.service; static)
  Active: inactive (dead)

Aug 27 13:55:14 lt-sanderson systemd[1]: displaylink.service: main process exited, code=killed, status=6/ABRT
Aug 27 13:55:14 lt-sanderson systemd[1]: Unit displaylink.service entered failed state.
Aug 27 13:55:19 lt-sanderson DisplayLinkManager[1862]: terminate called after throwing an instance of 'dl::sys::Failure'
Aug 27 13:55:19 lt-sanderson DisplayLinkManager[1862]: what():  Hive format not recognised
Aug 27 13:55:19 lt-sanderson systemd[1]: displaylink.service: main process exited, code=killed, status=6/ABRT
Aug 27 13:55:19 lt-sanderson systemd[1]: Unit displaylink.service entered failed state.
Aug 27 13:55:24 lt-sanderson DisplayLinkManager[1867]: terminate called after throwing an instance of 'dl::sys::Failure'
Aug 27 13:55:24 lt-sanderson DisplayLinkManager[1867]: what():  Hive format not recognised
Aug 27 13:55:24 lt-sanderson systemd[1]: displaylink.service: main process exited, code=killed, status=6/ABRT
Aug 27 13:55:24 lt-sanderson systemd[1]: Unit displaylink.service entered failed state.


guerrierk 08-27-2015 07:06 PM

Quote:

Originally Posted by stuguy909 (Post 78281)
I did delete the service file as root. I completely uninstalled and rebooted and reinstalled many times. The result is always:

Code:

# systemctl status displaylink.service
● displaylink.service - DisplayLink Manager Service
  Loaded: loaded (/lib/systemd/system/displaylink.service; static)
  Active: inactive (dead)

Aug 27 13:55:14 lt-sanderson systemd[1]: displaylink.service: main process exited, code=killed, status=6/ABRT
Aug 27 13:55:14 lt-sanderson systemd[1]: Unit displaylink.service entered failed state.
Aug 27 13:55:19 lt-sanderson DisplayLinkManager[1862]: terminate called after throwing an instance of 'dl::sys::Failure'
Aug 27 13:55:19 lt-sanderson DisplayLinkManager[1862]: what():  Hive format not recognised
Aug 27 13:55:19 lt-sanderson systemd[1]: displaylink.service: main process exited, code=killed, status=6/ABRT
Aug 27 13:55:19 lt-sanderson systemd[1]: Unit displaylink.service entered failed state.
Aug 27 13:55:24 lt-sanderson DisplayLinkManager[1867]: terminate called after throwing an instance of 'dl::sys::Failure'
Aug 27 13:55:24 lt-sanderson DisplayLinkManager[1867]: what():  Hive format not recognised
Aug 27 13:55:24 lt-sanderson systemd[1]: displaylink.service: main process exited, code=killed, status=6/ABRT
Aug 27 13:55:24 lt-sanderson systemd[1]: Unit displaylink.service entered failed state.


The problem is not the displaylink.service but the display-manager.service

In KDE it should be KDM... You can maybe run
Code:

# dpkg-reconfigure kdm
I'm not sure about the name of the package so you can fond it with
Code:

# dpkg -l | grep -i KDM
Thx

stuguy909 08-27-2015 07:56 PM

fresh PC
 
completely reloaded Debian with lxdm instead of kdm this time. Fresh system, absolutely nothing installed other than base packages, GUI, and SSH. downloaded you scripts. unzipped. installed:

Code:

displaylink-driver-1.0.68# ./displaylink-installer.sh install
DisplayLink Linux Software 1.0.68 install script called: install
Distribution discovered: Debian GNU/Linux 8.1 (jessie)
Init daemon detected : systemd
Linux Headers found : linux-headers-3.16.0-4-amd64
Installing
Configuring EVDI DKMS module
Registering EVDI kernel module with DKMS
Building EVDI kernel module with DKMS
Installing EVDI kernel module to kernel tree
EVDI kernel module built successfully
Installing x64/DisplayLinkManager
Installing libraries
Installing firmware packages
Installing license file
Adding udev rule for DisplayLink DL-3xxx/5xxx devices
Adding blacklist udlfb module
Starting DLM systemd service

I am rebooting now and we will see. My Dock is still unplugged, btw. I will plug in after reboot and booted into GUI.

Edit: I installed DKMS, of course.

stuguy909 08-27-2015 08:04 PM

Drum Roll.......
 
Drum Roll.............

Had to start the displaymanager.service manually.

Code:

# systemctl start displaylink.service
# systemctl status displaylink.service
● displaylink.service - DisplayLink Manager Service
  Loaded: loaded (/lib/systemd/system/displaylink.service; static)
  Active: active (running) since Thu 2015-08-27 15:01:58 CDT; 6s ago
  Process: 1832 ExecStartPre=/sbin/modprobe evdi (code=exited, status=0/SUCCESS)
 Main PID: 1837 (DisplayLinkMana)
  CGroup: /system.slice/displaylink.service
          └─1837 /usr/lib/displaylink/DisplayLinkManager

$ xrandr --listproviders
Providers: number : 3
Provider 0: id: 0x46 cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 3 outputs: 4 associated providers: 0 name:Intel
Provider 1: id: 0x12d cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated providers: 0 name:modesetting
Provider 2: id: 0xfa cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated providers: 0 name:modesetting


guerrierk 08-27-2015 08:13 PM

Quote:

Originally Posted by stuguy909 (Post 78285)
Drum Roll.............

Had to start the displaymanager.service manually.

Code:

# systemctl start displaylink.service
# systemctl status displaylink.service
● displaylink.service - DisplayLink Manager Service
  Loaded: loaded (/lib/systemd/system/displaylink.service; static)
  Active: active (running) since Thu 2015-08-27 15:01:58 CDT; 6s ago
  Process: 1832 ExecStartPre=/sbin/modprobe evdi (code=exited, status=0/SUCCESS)
 Main PID: 1837 (DisplayLinkMana)
  CGroup: /system.slice/displaylink.service
          └─1837 /usr/lib/displaylink/DisplayLinkManager

$ xrandr --listproviders
Providers: number : 3
Provider 0: id: 0x46 cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 3 outputs: 4 associated providers: 0 name:Intel
Provider 1: id: 0x12d cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated providers: 0 name:modesetting
Provider 2: id: 0xfa cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated providers: 0 name:modesetting


Yeah! You can now use xrandr to set the new provider to your Intel (provider 0). After that, you should have your screen into screen manager.

Just a question : have you 2 displaylink connected ?

I work around a best detection method to start automatically the displaylink service. I will post when I found it.

If someone have any informations about it, it could be useful for me ;-)

Thx

stuguy909 08-27-2015 08:21 PM

Thanks
 
Thank you for the help. I do, however, want to identify the changes in your script in the Debian driver install that makes this process work in the Debian 8.1 driver install thread. I worked through a lot of steps, but I always hit a challenge at the next level. First it was the kernel header problem, Debian uses Makefile instead of Zbuild, that was easy enough, a simple symbolic link fixed that. Then there was the problem with the systeminitdaemon, which you found that there needed to be a systemd entry in the script because DisplayLink only supports Ubuntu setup at the moment. Then there was a problem with the blacklist, my system looked like it was doing everything correctly, but your configuration does it differently. I guess the overall process I did myself just wouldn't work for me. I just want to be sure, for the record, that everyone who reads this or my thread, they understand the overall process and what needs to be accomplished to get the driver working just in case they can't download a simple script.

guerrierk 08-27-2015 08:42 PM

Quote:

Originally Posted by stuguy909 (Post 78287)
Thank you for the help. I do, however, want to identify the changes in your script in the Debian driver install that makes this process work in the Debian 8.1 driver install thread. I worked through a lot of steps, but I always hit a challenge at the next level. First it was the kernel header problem, Debian uses Makefile instead of Zbuild, that was easy enough, a simple symbolic link fixed that. Then there was the problem with the systeminitdaemon, which you found that there needed to be a systemd entry in the script because DisplayLink only supports Ubuntu setup at the moment. Then there was a problem with the blacklist, my system looked like it was doing everything correctly, but your configuration does it differently. I guess the overall process I did myself just wouldn't work for me. I just want to be sure, for the record, that everyone who reads this or my thread, they understand the overall process and what needs to be accomplished to get the driver working just in case they can't download a simple script.

About the linux headers problem, I have modified the test in the script : it was a Kbuild file that was tested, but the path is different on debian and ubuntu. So I test if the package linux-headers for the current kernel is installed.

I have modified the check_distro method to set correctly the init daemon on debian.

I have added the blacklist udlfb module too.

At this time, the driver is correctly installed and is usable.

The configuration must be done manually by xrandr and the screen configuration in settings panel...

So the next steps are to load dynamically the displaylink service and set the new provider automatically (and maybe activate the screen at the left of current screen...)

stuguy909 08-27-2015 09:16 PM

Quote:

Originally Posted by guerrierk (Post 78290)
So the next steps are to load dynamically the displaylink service and set the new provider automatically (and maybe activate the screen at the left of current screen...)

Yes. Currently, this is not hot pluggable. I had hell testing this. I had to use xrandr to set my laptop screen to provider 0 0 before I reconnected the DisplayLink docking station. Then I had to re-run the xrandr setprovider stuff and use the system monitor settings program to reactivate and reposition my screens. What a pain! I haven't tested a reboot yet....

drndrn 09-01-2015 06:49 AM

thanks for your work, really appreciate

runejuhl 09-01-2015 09:43 PM

Minor fix for init system detection + thanks
 
Hi guerrierk,

Thanks for the script. Worked beautifully on Debian stretch. I noticed it didn't detect my init system, so I made a small patch for you. Any reason why you haven't used BitBucket/GitHub/own git/etc. for it? :)

Anyway, thanks again. Now to figure out how to get my brand new ASUS MB168+ to fully work under Linux -- missing autorotate and brightness settings...

Hm. For some reason the forum software chokes on the patch, so I'm unable to submit it in cleartext. I've base64-encoded the patch instead...

Code:

ZGlmZiAtLWdpdCBhL2Rpc3BsYXlsaW5rLWluc3RhbGxlci5zaCBiL2Rpc3BsYXlsaW5rLWluc3Rh
bGxlci5zaAppbmRleCAwNmM0YmI4Li42YWU3MjZhIDEwMDc1NQotLS0gYS9kaXNwbGF5bGluay1p
bnN0YWxsZXIuc2gKKysrIGIvZGlzcGxheWxpbmstaW5zdGFsbGVyLnNoCkBAIC0yODIsNyArMjgy
LDE0IEBAIHVzYWdlKCkKIAogZGV0ZWN0X2Rpc3RybygpCiB7Ci0gICAgaWYgd2hpY2ggbHNiX3Jl
bGVhc2UgPi9kZXYvbnVsbDsgdGhlbgorICAgIHBpZDA9c3RhdCAkKGNhdCAvcHJvYy8xL2NtZGxp
bmUpIHxoZWFkIC1uMQorICAgIGlmIFsgLXogJChncmVwICdzeXN0ZW1kJyA8KGVjaG8gJHBpZDAp
KSBdOyB0aGVuCisgICAgICAgIFNZU1RFTUlOSVREQUVNT049c3lzdGVtZAorICAgIGVsaWYgWyAt
eiAkKGdyZXAgJ3Vwc3RhcnQnIDwoZWNobyAkcGlkMCkpIF07IHRoZW4KKyAgICAgICAgU1lTVEVN
SU5JVERBRU1PTj11cHN0YXJ0CisgICAgZmkKKworICAgIGlmIFsgISAtdiBTWVNURU1JTklUREFF
TU9OIF0gJiYgd2hpY2ggbHNiX3JlbGVhc2UgPi9kZXYvbnVsbDsgdGhlbgogICAgICAgICBsb2Nh
bCBSPSQobHNiX3JlbGVhc2UgLWQgLXMpCiAgICAgICAgIGVjaG8gIkRpc3RyaWJ1dGlvbiBkaXNj
b3ZlcmVkOiAkUiIKICAgICAgICAgaWYgWyAteiAiJHtSIyNVYnVudHUgMTQuKn0iIF07IHRoZW4K
QEAgLTI5Miw3ICsyOTksMTAgQEAgZGV0ZWN0X2Rpc3RybygpCiAgICAgICAgIGVsaWYgWyAteiAi
JHtSIyNEZWJpYW4qOC4xKn0iIF07IHRoZW4KICAgICAgICAgICAgIFNZU1RFTUlOSVREQUVNT049
c3lzdGVtZAogICAgICAgICBmaQotICAgIGVsc2UKKworICAgIGZpCisKKyAgICBpZiBbIC16IFNZ
U1RFTUlOSVREQUVNT04gXTsgdGhlbgogICAgICAgICBlY2hvICJXQVJOSU5HOiBVbmtub3duIGRp
c3RyaWJ1dGlvbiwgYXNzdW1pbmcgZGVmYXVsdHMgLSB0aGlzIG1heSBmYWlsLiIgPiYyCiAgICAg
ZmkKICAgICBlY2hvICJJbml0IGRhZW1vbiBkZXRlY3RlZCA6ICRTWVNURU1JTklUREFFTU9OIgo=


guerrierk 09-02-2015 07:29 AM

Quote:

Originally Posted by runejuhl (Post 78356)
Hi guerrierk,

Thanks for the script. Worked beautifully on Debian stretch. I noticed it didn't detect my init system, so I made a small patch for you. Any reason why you haven't used BitBucket/GitHub/own git/etc. for it? :)

Anyway, thanks again. Now to figure out how to get my brand new ASUS MB168+ to fully work under Linux -- missing autorotate and brightness settings...

Hm. For some reason the forum software chokes on the patch, so I'm unable to submit it in cleartext. I've base64-encoded the patch instead...

Code:

ZGlmZiAtLWdpdCBhL2Rpc3BsYXlsaW5rLWluc3RhbGxlci5zaCBiL2Rpc3BsYXlsaW5rLWluc3Rh
bGxlci5zaAppbmRleCAwNmM0YmI4Li42YWU3MjZhIDEwMDc1NQotLS0gYS9kaXNwbGF5bGluay1p
bnN0YWxsZXIuc2gKKysrIGIvZGlzcGxheWxpbmstaW5zdGFsbGVyLnNoCkBAIC0yODIsNyArMjgy
LDE0IEBAIHVzYWdlKCkKIAogZGV0ZWN0X2Rpc3RybygpCiB7Ci0gICAgaWYgd2hpY2ggbHNiX3Jl
bGVhc2UgPi9kZXYvbnVsbDsgdGhlbgorICAgIHBpZDA9c3RhdCAkKGNhdCAvcHJvYy8xL2NtZGxp
bmUpIHxoZWFkIC1uMQorICAgIGlmIFsgLXogJChncmVwICdzeXN0ZW1kJyA8KGVjaG8gJHBpZDAp
KSBdOyB0aGVuCisgICAgICAgIFNZU1RFTUlOSVREQUVNT049c3lzdGVtZAorICAgIGVsaWYgWyAt
eiAkKGdyZXAgJ3Vwc3RhcnQnIDwoZWNobyAkcGlkMCkpIF07IHRoZW4KKyAgICAgICAgU1lTVEVN
SU5JVERBRU1PTj11cHN0YXJ0CisgICAgZmkKKworICAgIGlmIFsgISAtdiBTWVNURU1JTklUREFF
TU9OIF0gJiYgd2hpY2ggbHNiX3JlbGVhc2UgPi9kZXYvbnVsbDsgdGhlbgogICAgICAgICBsb2Nh
bCBSPSQobHNiX3JlbGVhc2UgLWQgLXMpCiAgICAgICAgIGVjaG8gIkRpc3RyaWJ1dGlvbiBkaXNj
b3ZlcmVkOiAkUiIKICAgICAgICAgaWYgWyAteiAiJHtSIyNVYnVudHUgMTQuKn0iIF07IHRoZW4K
QEAgLTI5Miw3ICsyOTksMTAgQEAgZGV0ZWN0X2Rpc3RybygpCiAgICAgICAgIGVsaWYgWyAteiAi
JHtSIyNEZWJpYW4qOC4xKn0iIF07IHRoZW4KICAgICAgICAgICAgIFNZU1RFTUlOSVREQUVNT049
c3lzdGVtZAogICAgICAgICBmaQotICAgIGVsc2UKKworICAgIGZpCisKKyAgICBpZiBbIC16IFNZ
U1RFTUlOSVREQUVNT04gXTsgdGhlbgogICAgICAgICBlY2hvICJXQVJOSU5HOiBVbmtub3duIGRp
c3RyaWJ1dGlvbiwgYXNzdW1pbmcgZGVmYXVsdHMgLSB0aGlzIG1heSBmYWlsLiIgPiYyCiAgICAg
ZmkKICAgICBlY2hvICJJbml0IGRhZW1vbiBkZXRlY3RlZCA6ICRTWVNURU1JTklUREFFTU9OIgo=


Hi runejuhl,

Thanks for your patch. I have updated my script and re-uploaded it. I'm still working on other features.

AtoutSerenite 09-02-2015 08:21 AM

Has anyone worked out the permission problem on the download? Do you have to post before downloading?

guerrierk 09-02-2015 08:37 AM

Quote:

Originally Posted by AtoutSerenite (Post 78364)
Has anyone worked out the permission problem on the download? Do you have to post before downloading?

I don't know how the download system work on this forum but you're not the first that talk about this problem... I updated my post to share a link to download the file from my Drive.

Maybe an admin will answer you to some rules / rights you must have to download...

Bye

stuguy909 09-02-2015 01:56 PM

automation
 
guerrierk, you may want to check out my Debian 8.1 install thread again. I'm making great headway on auto-detection and plug and play support.

guerrierk 09-02-2015 02:17 PM

Quote:

Originally Posted by stuguy909 (Post 78373)
guerrierk, you may want to check out my Debian 8.1 install thread again. I'm making great headway on auto-detection and plug and play support.

Hi stuguy909,

I follow your thread but I'm not really agree with your process... I don't consider that automatically starting the script on rc is a solution. If the USB screen is not connected, the module is started but it will not be used...
I still work on a better detection of the plug and start the script at this time.
More over, i don't think that setting systematically provider 1 and 2 to provider 0 is a good idea... It can cause some problem on a computer which have an integrated and a dedicated video card, so the USB screen will be on provider 3 (by exemple)...

I think we can be more efficient and work in this way.

;-)

stuguy909 09-04-2015 02:32 PM

Process
 
What you see is just the beginnings of the project. I need a small library of functions that will allow me to collect data on the status of the driver, status of the USB connection, and status of the display providers. I also need to be able to automatically turn on the driver, set the output sources, and preferably, turn on and position my monitors based on some sort of preset file. This rc.d instruction set isn't final. My aim is to have USB detection handled in the RC.d first that will be the primary condition to control whether the display link driver is even allowed to run, then drive my displaylink libraries after the fact. I am just trying to get the monitor setup automated first, because that is what is important at the moment. I can easily create a thread that runs on a while loop that runs on a lsusb | grep displaylink condition. It seems that debian and CentOS both report my dock as a Displaylink device, so this may actually be a plausible condition to design. Just keep watching ;) If you know how to adjust monitor size and position with CLI commands, this will be a HUGE help.

Edit: emphasis on additional monitor setup using cli or config files.

guerrierk 09-04-2015 05:46 PM

a little useful script
 
Hi stuguy909,

Currently, I made a little script that I launch manually as root after connecting my device.
filename : connect_screen.sh
Code:

#!/bin/sh

if [ $(id -u) != 0 ]; then
  echo "You need to be root to use this script." >&2
  exit 1
fi

REFER_SCREEN="LVDS1"
NEW_SCREEN="DVI-1-0"
POSITION="left"

echo "Loading displaylink service..."
systemctl start displaylink.service
echo "Screen connection..."
sleep 2
xrandr --setprovideroutputsource 1 0
sleep 2
echo "Available screen : "
xrandr | grep connected | grep -v disconnected | cut -d' ' -f1
echo "They can be used with option -r to specify the referer screen"
echo "They can be used with option -n to specify the new screen"
echo "The position (left, right) can be specified with option -p"
echo "..."

while getopts :sr:n:p: OPTION
do
 case "$OPTION" in
    s)
        exit 1
        ;;
    r)
        REFER_SCREEN="$OPTARG"
        ;;
    n)
        NEW_SCREEN="$OPTARG"
        ;;
    p)
        POSITION="$OPTARG"
        ;;
    :) 
        echo "$OPTARG need an argument"
        exit 5
        ;;
    \?)
        echo "Incorrect option... "
        exit 3
        ;;
  esac
done

echo "Place the displaylink screen $NEW_SCREEN at $POSITION of the screen $REFER_SCREEN."

sleep 2
xrandr --output $NEW_SCREEN --auto --$POSITION-of $REFER_SCREEN

echo "Install complete. You can adjust your configuration in the settings panel."

To display available screen, you can use it with -s option
Code:

# ./connect_screen.sh -s
Loading displaylink service...
Screen connection...
Available screen :
LVDS1
DVI-1-0
They can be used with option -r to specify the referer screen
They can be used with option -n to specify the new screen
The position (left, right) can be specified with option -p
...

The screen LVDS1 is generally the main screen... In my case, the DVI-1-0 is my HP Elite Display.

So, to place the screen DVI-1-0 on the right of LVSD1, you have to use the script like :
Code:

# ./connect_screen.sh -n DVI-1-0 -p right -r LVDS1
Loading displaylink service...
Screen connection...
Available screen :
LVDS1
DVI-1-0
They can be used with option -r to specify the referer screen
They can be used with option -n to specify the new screen
The position (left, right) can be specified with option -p
...
Place the displaylink screen DVI-1-0 at right of the screen LVDS1.
Install complete. You can adjust your configuration in the settings panel.

Option's order is not important...

I will add it into my installer and copy it to /sbin to be used by root.

You should found some helpful command into this script. I hope that this can help you ;-)

To the automation, I think that UDEV could do what we need but I have not found the correct rule yet...

stuguy909 09-08-2015 04:19 AM

That code example does help, thank you. I have been on holiday this weekend, I will resume coding tomorrow. You saved me a bit of time from having to read up on the xrandr man pages. I would like to borrow some of your switch statement code for beefing up the usability of the displaylink script I'm working on, if you don't mind? A status of what I have achieved and hope to accomplish:

Code:

1) script package launches default behaviors when Displaylink USB device is plugged in -TODO

2) Displaylink service automatically starts and stops -DONE

3) Print connection status of providers and provider count - DONE

4) Print provider unique names - TODO | additionaly, what did you use to pull the monitor names individually?  I can print the monitors, but they are in lines of text.

5) Automatically activate all connected providers if script is running - DONE

6) Manually position monitors with a modified version of your code examples - TODO

7) Automatically position monitors based on a preset config file - TODO

8) Script package to be universally compatible on Debian 8.1 for everyone's machine, not just ours. -TODO | I'd say, minus the USB detection, this is pretty much near complete


stuguy909 09-08-2015 04:35 AM

One more thought. I would like to borrow your installer scripting services when I have my displaylink init.d package working. I am using init.d so the software loads on RC5. Like I stated earlier, I want to make the USB detection the parent condition for all other services or threads. I would like to add a code segment to your install script when I have the auto detection working. The idea is adding a bit of code that lists your connected monitors after the driver is started. I would like for a text prompt to load up all of your monitors and ask you to enter which provider is the reference, and which are the positioned monitors. This would then create a permanent config file that would be loaded every time the script package is started. I think this is a good idea because random internet people will have something that just works and they won't have to do a lot of tweaking. If we make the scripts detailed enough, then other distros can borrow the ideas / code base for their project.

marek 10-22-2015 06:48 AM

Hi all,

I have installed the drivers but after enabling extra screen in Gnome Screens management, it crashes X server and I need to log in again. Using Debian 8.2.

Output of dmesg can be found on pastebin: http://pastebin.com/ugVgQ5Vk
The DisplayLink logs can be found under that url: https://drive.google.com/file/d/0B3_...ew?usp=sharing

Any thoughs why this is happening?

Thanks,
Marek

guerrierk 10-22-2015 01:54 PM

Hi Marek,

I don't found anything that could explain why your X crashes un your dmesg... The DL logs may help but I can't read them. Some people of DL team will certainly talk about it.

Could you post your Xserver's error log please ?

Thx

marek 10-22-2015 06:32 PM

Hi Guerrierk,

Thanks for the reply. I pasted my Xorg logs here http://pastebin.com/y56ekUR9

Thanks,
Marek


All times are GMT. The time now is 09:02 PM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.