Feature #216

Add DisplayLink USB driver to kernel and create optional xorg.conf for it

Added by Hammel almost 5 years ago. Updated almost 2 years ago.

Status:ClosedStart date:15 Aug 2013
Priority:LowDue date:
Assignee:Hammel% Done:

100%

Category:04 - Root File System
Target version:3.0 - Corrino
Severity:05 - Very Low

Description

I have a Lilliput USB monitor that would work great in the trailer. To get this to work I need to follow these steps.

The xorg.conf should open this up as a second display, for display purposes only such as with temperature and sensor displays. The S90UI init script should handle that, if it finds a /dev/fb1 for the USB display.

The DisplayLink driver is not currently enabled in the PiBox kernel. It's unclear if there is a special X.org driver or if the fbdev driver is sufficient. The fbdev driver is in Buildroot but 2013.02 has 0.4.2 and the latest is 1.0.5.

See also:
  1. http://libdlo.freedesktop.org/wiki/xf86-driver-displaylink/
  2. http://plugable.com/2011/12/23/usb-graphics-and-linux
  3. http://wiki.gentoo.org/wiki/DisplayLink
  4. http://gavinmhackeling.com/blog/2012/12/how-to-use-an-external-displaylink-monitor-with-linux/
  5. http://how-to.cc/get-a-displaylink-video-adapter-working-with-ubuntu-12-04

synergy.conf (145 Bytes) Hammel, 18 Aug 2013 15:21

Associated revisions

Revision 9d2d0502
Added by Hammel almost 5 years ago

RM #216: Enable DisplayLink monitor in kernel. Add monitor to usbhandler.conf. Add and initial xorg.conf.dl X.org
configuration for it. Add initial displaylink.sh shell script to bring up X on the monitor manually.

Revision 4b2be197
Added by Hammel almost 5 years ago

RM #216: Add initial synergy server configuration to rootfs skeleton.

History

#1 Updated by Hammel almost 5 years ago

  • Description updated (diff)

#2 Updated by Hammel almost 5 years ago

Gentoo uses this to control the DisplayLink display from the main X session: http://www.the-labs.com/X11/#x2x

I can try this or see if Synergy works on a single host.

#3 Updated by Hammel almost 5 years ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 50

Enabled DisplayLink monitor in kernel. Added monitor to usbhandler.conf. Added and initial xorg.conf.dl X.org configuration for it. Added initial displaylink.sh shell script to bring up X on the monitor manually. This is all pushed upstream. Much of the configuration is based on the Gentoo examples. Note that this is running on fbdev, not the special xserver-xorg-video-displaylink X server that ubuntu users appear to be using.

I'll add a photo to show this working, just cuz its kinda cool, a little later. (See below)

Wow. That was easy. So now the DisplayLink monitor becomes available at boot time. However, you have to run the displaylink.sh script manually to bring up X on it. I need to integrate this (along with a better default xinitrc) into the S90UI init script.

Another thing that Gentoo uses is x2x, which allows sharing keyboard and mouse between two monitors. I need to look into getting and trying this. It isn't available in Buildroot yet.

Finally, xset is missing. This is needed to disable screen blanking. I may want to review the rest of the X11 applications in Buildroot that are not enabled to see if there are others I may need.

#4 Updated by Hammel almost 5 years ago

Synergy works to share the keyboard and mouse between the HDMI monitor and the Display Link.

First, start the server with the following command (configuration file is attached):

synergys -c /etc/synergy/synergy.conf

The configuration file is assumed to be stored under /etc/synergy. Next, start the client. Remember that the DisplayLink is being run as a second X server so we tell synergy client to use that server.

synergyc --display :1 --name displaylink 127.0.0.1

Both commands can be debugged by adding the following options:

-f --debug INFO

So we don't need x2x after all. We can use synergy instead.

Next up: get the synergy server config into the Buildroot skeleton and integrate synergy startup with S90UI. Important: Synergy should only start if both the HDMI and DisplayLink are are attached. So if there are not two X servers running, synergy should not start.

#5 Updated by Hammel almost 5 years ago

  • % Done changed from 50 to 60

Pushed synergy.conf upstream.

To integrate with S90UI:
  1. S90UI tests for fb devices: /dev/fb0 /devfb1
  2. S90UI tests for DisplayLink USB device
  3. If only one fb but no DisplayLink, start only the original X server.
  4. If only one fb but has DisplayLink, start the DisplayLink server
  5. If two fb
    1. start both servers
    2. start synergy server
    3. start synergy client

Each server is started by telling xinit which xorg.conf to use.

Note: I may want to remove the matchbox config stuff from S90UI for now. I may still use BUI (re: my version of matchbox) but not yet.

#6 Updated by Hammel over 4 years ago

  • Priority changed from Normal to Low
  • Target version changed from 1.0 - Atreides to 3.0 - Corrino
  • Severity changed from 03 - Medium to 05 - Very Low

My Lilliput Displaylink was stolen out of my house (along with a bunch of other stuff). Based on what else they took from my office, I think the morons thought it was a tablet.

Anyway, I can't do any more testing on this without another DisplayLink. Since this isn't a necessary component, I'll move it way out and come back to it later.

#7 Updated by Hammel almost 2 years ago

  • Status changed from In Progress to Closed
  • % Done changed from 60 to 100

Closing issue as something that will never get done and isn't really needed anyway.

Also available in: Atom PDF