💾 Archived View for ser1.net › post › linux-and-the-mimo-710s.gmi captured on 2024-03-21 at 15:14:03. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2022-07-16)

🚧 View Differences

-=-=-=-=-=-=-

--------------------------------------------------------------------------------

title: "Linux and the Mimo 710S" date: 2010-11-22T21:42:00Z

--------------------------------------------------------------------------------

The Mimo 710S is a small-ish LCD panel (7" diameter) that connects to your computer via a USB cable and acts as a monitor.  It uses DisplayLink as a protocol.  After some trial and tribulation, I got it set up and working with Ubuntu 10.10, and here is how I did it.

First, you need the udlfb kernel module, and the displaylink xorg driver.  One of the best tutorials is provided by mulchman[1]; I won't repeat what he says, although I will point out that he has you reboot your computer in the middle of the install, and that this was entirely unnecessary (I didn't).  It's all pretty easy; install some build tools if you don't already have them, get the udlfb sources, and build and install the two parts.  There are no pre-built packages for Ubuntu (as of the time of this writing).

1: http://mulchman.org/blog/?tag=displaylink

That was the easy part.  I had no problem getting the device registered, and the test cases packaged with udlfb worked immediately.  My problem was getting something **useful** onto the device.

I had a number of issues.  First, I didn't want to use Xinerama[2], because Xinerama imposes a bit-depth limitation (all displays under Xinerama must share the same bit depth; the Mimo has a max depth of 16 bits, and my graphics card doesn't want to do anything less than 24).  Second, I have to use the fglrx drivers, because xmonad[3] -- the very finest window manager, ever -- doesn't work on two screens[4] properly without Xinerama.  Third, fglrx crashes when it's paired with a displaylink device.  I didn't dig into this very far; it's a pretty hard core-dump, though -- it's proprietary software, so that's to be expected.  This combination of limitations (and it took me a while to discover all of them, let me tell you) drove my final solution, which I'm happy to say works just fine.

2: http://en.wikipedia.org/wiki/Xinerama

3: http://xmonad.org/

4: http://code.google.com/p/xmonad/issues/detail?id=253

What I ended up with is two xserver instances -- one basically my pre-Mimo instance, and one a new instance for just the Mimo -- tied together with Synergy[5].  If you don't know Synergy, go download it, now.  It ranks among the most useful pieces of software, ever.  It runs on Windows, Linux, and OSX, and lets you share a keyboard and mouse between multiple computers (or, as it happens, xservers) like a software KVM.

5: http://synergy-foss.org/

Anyway, here are the bits.  First, you need to add a mimo section to your xorg.  I just tacked this on to the end of mine:

########################################
# DisplayLink Screen
########################################
Section "ServerLayout"
  Identifier "Mimo Layout"
  Screen 0 "DisplayLinkScreen" 0 0
  Option "AutoAddDevices" "false"
  Option "AllowEmptyInput" "true"
  Option "AutoEnableDevices" "false"
EndSection

Section "Device"
  Identifier "DisplayLinkDevice"
  Driver "displaylink"
  Option "fbdev" "/dev/fb1"
EndSection

Section "Monitor"
  Identifier "DisplayLinkMonitor"
  DisplaySize 152 92
EndSection

Section "Screen"
  Identifier "DisplayLinkScreen"
  Device "DisplayLinkDevice"
  Monitor "DisplayLinkMonitor"
  DefaultDepth 16

  SubSection "Display"
    Viewport 0 0
    Depth 16
    Modes "800x480"
  EndSubSection
EndSection

The next bit is a script that looks like this:

#!/bin/sh

X -nolisten tcp -novtswitch -sharevts -layout "Mimo Layout" :1 &
synergys --config .synergyl --display :0 --name big --daemon
synergyc --display :1 --name little -f localhost &
DISPLAY=:1 xmonad &

The first piece of magic starts X in multihead mode; the `-novtswitch` argument is fricken' critical; without it, you're locked out of your computer.  At least, I was.  Once that's up, X is running on the Mimo, and you can now start synergys (server) on your main display (:0), and synergyc (client) on your Mimo display (:1), which allows you access to that second xserver with your input devices.  I won't describe how to configure synergy; you can figure that out better from the synergy documentation.  Suffice it to say that the [--name]{.Apple-style-span style="font-family: 'Courier New', Courier, monospace;"} arguments have to match what's in the file.  The final line starts up another xmonad (or whatever window manager you like) on the second xserver.  And voila:

[IMG]

That's the Mimo to the left, in case you couldn't tell.  I run an IRC/IM client (irssi[6]) on it, and it's perfect -- the chat's always visible.  Here's another shot with xlock(s) running:

6: http://www.irssi.org/

[IMG]

For $100-some bucks, it's not a bad investment.

Oh, that's a fairly decent Dell under the Mimo, but it has Windows 7 on it, and so is practically useless.