💾 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
⬅️ Previous capture (2022-07-16)
-=-=-=-=-=-=-
--------------------------------------------------------------------------------
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
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.
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:
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:
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.