💾 Archived View for ser1.net › post › linux-and-the-mimo-710s.gmi captured on 2023-05-24 at 17:55:51. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2022-07-16)

➡️ Next capture (2024-03-21)

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

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; 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).

provided by mulchman

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, 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 -- the very finest window manager, ever -- doesn't work on two screens 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.

Xinerama

xmonad

doesn't work on two screens

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.  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.

Synergy

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/IMG_20101122_194306.jpg

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

irssi

/img/IMG_20101122_194540.jpg

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.