Mimo 720-S on the Raspberry Pi

1) Drop the USB speed to v1.1 speeds (necessary for this touchscreen to work unfortunately, although online people have reported theirs working without this step recently)

sudo nano /boot/cmdline.txt

Modify from:

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

To: (changes in bold)

dwc_otg.lpm_enable=0 dwc_otg.speed=1 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

ctrl-x, y, enter to save.

2) Disable the screen saver

sudo nano /etc/lightdm/lightdm.conf

scroll down until you see


Remove the starting ‘#’ from ‘#xserver-command=X” and add ” -s 0 -dpms” to the end so you have “xserver-command=X -s 0 -dpms” on that line.

ctrl-x, y, enter to save.

3) Create kernel with Displaylink/touchscreen support

Update first:
sudo apt-get update
sudo apt-get upgrade

Install requisites:
sudo apt-get install bc libncurses5-dev

cd ~
mkdir raspbian
cd raspbian
sudo git clone https://github.com/raspberrypi/linux –depth=1
sudo git clone https://github.com/raspberrypi/tools –depth=1
cd linux/
sudo make bcm2709_defcong (bcmrpi_defconfig for rpi v1)
sudo make menuconfig

Navigate to:
Device Drivers>Input Device Support>Touchscreens>USB Touchscreen Driver (hit Y to include. You may need to hit space while on Touchscreens to include the feature and it’s subcomponents – Thanks Richard!)
Hit esc until you’re back at Device Drivers.
Device Drivers>Graphics Support>Frame Buffer Devices>Displaylink USB Framebuffer support (hit Y to include)
Hit esc until prompted to save and select Yes.

Start kernel build:

sudo make -j 6 (takes a looong time)
sudo make -j 6 modules
sudo make modules_install
sudo cp /boot/kernel7.img /boot/kernel7-orig.img
sudo cp arch/arm/boot/Image /boot/kernel7.img
sudo reboot

Now you can run dmesg to make sure the touchscreen shows up properly.

4) Configure X11 to use the new display

sudo nano /etc/X11/xorg.conf

Right click and paste the following in and save:

Section "Device"
Identifier "uga"
driver "fbdev"
Option "fbdev" "/dev/fb1"
Option "ShadowFB" "off"

Section “Monitor”
Identifier “monitor”

Section “Screen”
Identifier “screen”
Device “uga”
Monitor “monitor”

Section “ServerLayout”
Identifier “default”
Screen 0 “screen” 0 0
InputDevice “touchscreen” “CorePointer”
Option “Xinerama” “Off”

Section “InputDevice”
Identifier “touchscreen”
Driver “evdev”
Option “Device” “/dev/input/by-id/usb-e2i_Technology__Inc._USB_Touchpanel_L000000000-event-if00”
Option “DeviceName” “touchscreen”
Option “ReportingMode” “Raw”
Option “SendCoreEvents” “On”
Option “Calibrate” “1”
Option “Calibration” “630 32000 1100 31800”
Option “InvertY” “true”
Option “InvertX” “true”
Option “SwapAxes” “false”

5) Configure the xorg.conf file with your particular settings

If you’re lucky your display will be named the same as mine and you wont need to make any change. Type:

ls /dev/input/by-id/

and look through the output for the one that is your touchscreen. Now copy that long name and type

sudo nano /etc/X11/xorg.conf

and replace ‘usb-e2i_Technology__Inc._USB_Touchpanel_L000000000-event-if00’ with your display name.

6) Calibrate the screen (if my calibration settings didn’t work for you)

sudo apt-get install evtest
sudo evtest /dev/input/usb-e2i_Technology__Inc._USB_Touchpanel_L000000000-event-if00

again replacing ‘usb-e2i_Technology__Inc._USB_Touchpanel_L000000000-event-if00’ with your display name. Now follow Dane’s post to get the calibration values, and use

sudo nano /etc/X11/xorg.conf

to change the values.

Now if you reboot you should boot up on your mimo display with a working touchscreen!



34 responses to “Mimo 720-S on the Raspberry Pi

  1. Ive tried to follow these instructions a few times now and the keyboard/usb won’t detect with the new kernel.img.

    doing s straight 2013-02-09-wheezy install and the keyboard etc works fine.

    What am i missing!

  2. Hi Phil,

    Thanks for the suggestions, I’ve been making some progress.
    Its been so long since I’ve used computers that requires thinking about and my brain wasn’t in gear. I had the new raspbian download and was installing the old mimo drivers. I have since downloaded all the updated files and rebuilt everything and am at the point where it seems to be a clean boot, finding all the drivers etc, the keyboard is working and I can get into the desktop (need to by a mouse!)

    The USB screen however, steadfastly refuses to do much. Basically, it turns green part way through the boot.
    I am just in the process of checking that I have done some of the calibration bits detailed in your how to above…

    Watch this space! (i’ll be watching the green screen!)



  3. Hi,

    I just added the dwc_otg.speed=1 line to the cmdline.txt file and on the next boot, I got lots of USB errors and the keyboard didn’t work.
    Reverting back and removing the line and I am now getting error -71 which I never used to get!

    Any thoughts?

    i’ll try the apt-gets shortly.


  4. hello again,

    here is where I am at:
    running apt-gets made things worse, so I started again from scratch.

    build my OS
    copied over the modules and firmware directories onto /boot and then copied them into the correct place on the linux partition.

    ls /lib/modules
    3.6.11+ 3.6.11-mimo+

    I have copied across the kernel file and renamed it. For space, i removed the old kernel file and emergency kernel file from the boot partition.

    At this point, I can boot up and the keyboard/mouse are detected and i can get to the desktop and things work.
    There are some error -71’s on boot up which I assume are the touchpad as the only devices listed in /dev/input/by-id are the mouse and keyboard and the screen appears to be seen at boot and changes to a green screen part way through booting. Trying to add the speed=1 line to fix the errors makes things worse – see below!

    Where things go wrong are:

    Adding dwc_otg.speed=1 to the cmdline.txt causes errors on the next boot and the system is then unresponsive to keyboard. I can SSH in and remove the speed line and reboot and the keyboard etc starts to work again.

    When i copy xorg.conf into the X11 directory, I am no longer able to boot into the desktop.

    Any thoughts on these 2 issues?

    Also, could you explain ‘when’ and ‘how’ I would expect to see a proper image on the mimo screen.

    i.e. does it only show in the desktop? does it only show if you boot without the HDMI connected?

    Many thanks,

    I have attached the startup message as I am sure you may see something I don’t!

    pi@raspberrypi ~ $ dmesg
    [ 0.000000] Booting Linux on physical CPU 0
    [ 0.000000] Initializing cgroup subsys cpuset
    [ 0.000000] Initializing cgroup subsys cpu
    [ 0.000000] Linux version 3.6.11-mimo+ (dane@raspi-ubuntu) (gcc version 4.6.3 20120624 (prerelease) (Ubuntu/Linaro 4.6.3-8ubuntu1) ) #2 PREEMPT Fri Feb 15 16:50:54 PST 2013
    [ 0.000000] CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387d
    [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
    [ 0.000000] Machine: BCM2708
    [ 0.000000] cma: CMA: reserved 16 MiB at 1b000000
    [ 0.000000] Memory policy: ECC disabled, Data cache writeback
    [ 0.000000] On node 0 totalpages: 114688
    [ 0.000000] free_area_init_node: node 0, pgdat c054a1ac, node_mem_map c05f4000
    [ 0.000000] Normal zone: 896 pages used for memmap
    [ 0.000000] Normal zone: 0 pages reserved
    [ 0.000000] Normal zone: 113792 pages, LIFO batch:31
    [ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
    [ 0.000000] pcpu-alloc: [0] 0
    [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 113792
    [ 0.000000] Kernel command line: dma.dmachans=0x7f35 bcm2708_fb.fbwidth=1360 bcm2708_fb.fbheight=768 bcm2708.boardrev=0xe bcm2708.serial=0xbfb3bfbe smsc95xx.macaddr=B8:27:EB:B3:BF:BE sdhci-bcm2708.emmc_clock_freq=100000000 vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
    [ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
    [ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
    [ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
    [ 0.000000] Memory: 448MB = 448MB total
    [ 0.000000] Memory: 432204k/432204k available, 26548k reserved, 0K highmem
    [ 0.000000] Virtual kernel memory layout:
    [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
    [ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
    [ 0.000000] vmalloc : 0xdc800000 - 0xff000000 ( 552 MB)
    [ 0.000000] lowmem : 0xc0000000 - 0xdc000000 ( 448 MB)
    [ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB)
    [ 0.000000] .text : 0xc0008000 - 0xc04f43fc (5041 kB)
    [ 0.000000] .init : 0xc04f5000 - 0xc0515e28 ( 132 kB)
    [ 0.000000] .data : 0xc0516000 - 0xc054a9c0 ( 211 kB)
    [ 0.000000] .bss : 0xc054a9e4 - 0xc05f3258 ( 675 kB)
    [ 0.000000] NR_IRQS:330
    [ 0.000000] sched_clock: 32 bits at 1000kHz, resolution 1000ns, wraps every 4294967ms
    [ 0.000000] Console: colour dummy device 80x30
    [ 0.000000] console [tty1] enabled
    [ 0.001039] Calibrating delay loop... 697.95 BogoMIPS (lpj=3489792)
    [ 0.060124] pid_max: default: 32768 minimum: 301
    [ 0.060463] Mount-cache hash table entries: 512
    [ 0.061202] Initializing cgroup subsys cpuacct
    [ 0.061260] Initializing cgroup subsys devices
    [ 0.061293] Initializing cgroup subsys freezer
    [ 0.061323] Initializing cgroup subsys blkio
    [ 0.061417] CPU: Testing write buffer coherency: ok
    [ 0.061754] hw perfevents: enabled with v6 PMU driver, 3 counters available
    [ 0.061901] Setting up static identity map for 0x3a8de0 - 0x3a8e3c
    [ 0.063561] devtmpfs: initialized
    [ 0.074034] NET: Registered protocol family 16
    [ 0.080416] DMA: preallocated 4096 KiB pool for atomic coherent allocations
    [ 0.081478] bcm2708.uart_clock = 0
    [ 0.082880] hw-breakpoint: found 6 breakpoint and 1 watchpoint registers.
    [ 0.082933] hw-breakpoint: maximum watchpoint size is 4 bytes.
    [ 0.082970] mailbox: Broadcom VideoCore Mailbox driver
    [ 0.083065] bcm2708_vcio: mailbox at f200b880
    [ 0.083163] bcm_power: Broadcom power driver
    [ 0.083202] bcm_power_open() -> 0
    [ 0.083227] bcm_power_request(0, 8)
    [ 0.583918] bcm_mailbox_read -> 00000080, 0
    [ 0.583960] bcm_power_request -> 0
    [ 0.583986] Serial: AMBA PL011 UART driver
    [ 0.584134] dev:f1: ttyAMA0 at MMIO 0x20201000 (irq = 83) is a PL011 rev3
    [ 0.910519] console [ttyAMA0] enabled
    [ 0.933864] bio: create slab at 0
    [ 0.938762] SCSI subsystem initialized
    [ 0.942845] usbcore: registered new interface driver usbfs
    [ 0.948426] usbcore: registered new interface driver hub
    [ 0.954035] usbcore: registered new device driver usb
    [ 0.960320] Switching to clocksource stc
    [ 0.964566] FS-Cache: Loaded
    [ 0.967703] CacheFiles: Loaded
    [ 0.982570] NET: Registered protocol family 2
    [ 0.987841] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
    [ 0.995588] TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
    [ 1.002380] TCP: Hash tables configured (established 16384 bind 16384)
    [ 1.008988] TCP: reno registered
    [ 1.012244] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [ 1.018145] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [ 1.024739] NET: Registered protocol family 1
    [ 1.029621] RPC: Registered named UNIX socket transport module.
    [ 1.035671] RPC: Registered udp transport module.
    [ 1.040394] RPC: Registered tcp transport module.
    [ 1.045139] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [ 1.052207] bcm2708_dma: DMA manager at f2007000
    [ 1.057011] bcm2708_gpio: bcm2708_gpio_probe c0523db8
    [ 1.062459] vc-mem: phys_addr:0x00000000 mem_base=0x1ec00000 mem_size:0x20000000(512 MiB)
    [ 1.071649] audit: initializing netlink socket (disabled)
    [ 1.077253] type=2000 audit(0.930:1): initialized
    [ 1.203597] VFS: Disk quotas dquot_6.5.2
    [ 1.207741] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
    [ 1.214755] FS-Cache: Netfs 'nfs' registered for caching
    [ 1.220464] NFS: Registering the id_resolver key type
    [ 1.225720] Key type id_resolver registered
    [ 1.229928] Key type id_legacy registered
    [ 1.234272] msgmni has been set to 876
    [ 1.239835] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
    [ 1.247635] io scheduler noop registered
    [ 1.251590] io scheduler deadline registered (default)
    [ 1.256874] io scheduler cfq registered
    [ 1.284705] Console: switching to colour frame buffer device 170x48
    [ 1.303282] usbcore: registered new interface driver udlfb
    [ 1.309312] kgdb: Registered I/O driver kgdboc.
    [ 1.314643] vc-cma: Videocore CMA driver
    [ 1.318686] vc-cma: vc_cma_base = 0x00000000
    [ 1.323500] vc-cma: vc_cma_size = 0x00000000 (0 MiB)
    [ 1.329071] vc-cma: vc_cma_initial = 0x00000000 (0 MiB)
    [ 1.343625] brd: module loaded
    [ 1.351804] loop: module loaded
    [ 1.355508] vchiq: vchiq_init_state: slot_zero = 0xdb000000, is_master = 0
    [ 1.363289] Loading iSCSI transport class v2.0-870.
    [ 1.369255] usbcore: registered new interface driver smsc95xx
    [ 1.375451] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
    [ 1.586536] Core Release: 2.80a
    [ 1.593839] Setting default values for core params
    [ 1.602766] Finished setting default values for core params
    [ 1.817510] Using Buffer DMA mode
    [ 1.824892] Periodic Transfer Interrupt Enhancement - disabled
    [ 1.834791] Multiprocessor Interrupt Enhancement - disabled
    [ 1.844370] OTG VER PARAM: 0, OTG VER FLAG: 0
    [ 1.852731] Dedicated Tx FIFOs mode
    [ 1.861252] dwc_otg: Microframe scheduler enabled
    [ 1.861669] dwc_otg bcm2708_usb: DWC OTG Controller
    [ 1.870765] dwc_otg bcm2708_usb: new USB bus registered, assigned bus number 1
    [ 1.882255] dwc_otg bcm2708_usb: irq 32, io mem 0x00000000
    [ 1.891956] Init: Port Power? op_state=1
    [ 1.899960] Init: Power Port (0)
    [ 1.907327] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
    [ 1.918258] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [ 1.929556] usb usb1: Product: DWC OTG Controller
    [ 1.938289] usb usb1: Manufacturer: Linux 3.6.11-mimo+ dwc_otg_hcd
    [ 1.948518] usb usb1: SerialNumber: bcm2708_usb
    [ 1.957874] hub 1-0:1.0: USB hub found
    [ 1.965734] hub 1-0:1.0: 1 port detected
    [ 1.973879] dwc_otg: FIQ enabled
    [ 1.973897] dwc_otg: NAK holdoff enabled
    [ 1.973917] Module dwc_common_port init
    [ 1.974156] Initializing USB Mass Storage driver...
    [ 1.983291] usbcore: registered new interface driver usb-storage
    [ 1.993308] USB Mass Storage support registered.
    [ 2.002080] usbcore: registered new interface driver libusual
    [ 2.012259] mousedev: PS/2 mouse device common for all mice
    [ 2.022664] bcm2835-cpufreq: min=700000 max=700000 cur=700000
    [ 2.032580] bcm2835-cpufreq: switching to governor powersave
    [ 2.042226] bcm2835-cpufreq: switching to governor powersave
    [ 2.051829] cpuidle: using governor ladder
    [ 2.059927] cpuidle: using governor menu
    [ 2.067890] sdhci: Secure Digital Host Controller Interface driver
    [ 2.077993] sdhci: Copyright(c) Pierre Ossman
    [ 2.086316] sdhci: Enable low-latency mode
    [ 2.134631] mmc0: SDHCI controller on BCM2708_Arasan [platform] using platform's DMA
    [ 2.146697] mmc0: BCM2708 SDHC host at 0x20300000 DMA 2 IRQ 77
    [ 2.158833] sdhci-pltfm: SDHCI platform and OF driver helper
    [ 2.170870] Indeed it is in host mode hprt0 = 00021501
    [ 2.183886] usbcore: registered new interface driver usbhid
    [ 2.198699] usbhid: USB HID core driver
    [ 2.225054] TCP: cubic registered
    [ 2.244445] Initializing XFRM netlink socket
    [ 2.254515] NET: Registered protocol family 17
    [ 2.274632] Key type dns_resolver registered
    [ 2.283140] mmc0: new high speed SDHC card at address e624
    [ 2.304750] VFP support v0.3: implementor 41 architecture 1 part 20 variant b rev 5
    [ 2.317245] mmcblk0: mmc0:e624 SU04G 3.69 GiB
    [ 2.335718] registered taskstats version 1
    [ 2.344542] mmcblk0: p1 p2
    [ 2.444490] usb 1-1: new high-speed USB device number 2 using dwc_otg
    [ 2.455638] Indeed it is in host mode hprt0 = 00001101
    [ 2.578589] EXT4-fs (mmcblk0p2): recovery complete
    [ 2.589715] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
    [ 2.602102] VFS: Mounted root (ext4 filesystem) on device 179:2.
    [ 2.614758] devtmpfs: mounted
    [ 2.622342] Freeing init memory: 128K
    [ 2.664794] usb 1-1: New USB device found, idVendor=0424, idProduct=9512
    [ 2.676358] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
    [ 2.688683] hub 1-1:1.0: USB hub found
    [ 2.697522] hub 1-1:1.0: 3 ports detected
    [ 2.984720] usb 1-1.1: new high-speed USB device number 3 using dwc_otg
    [ 3.095097] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00
    [ 3.109323] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
    [ 3.124441] smsc95xx v1.0.4
    [ 3.189293] smsc95xx 1-1.1:1.0: eth0: register 'smsc95xx' at usb-bcm2708_usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:b3:bf:be
    [ 3.284757] usb 1-1.2: new high-speed USB device number 4 using dwc_otg
    [ 3.409040] usb 1-1.2: New USB device found, idVendor=050d, idProduct=0415
    [ 3.432419] usb 1-1.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
    [ 3.461880] hub 1-1.2:1.0: USB hub found
    [ 3.484748] hub 1-1.2:1.0: 4 ports detected
    [ 3.785048] usb 1-1.2.1: new low-speed USB device number 5 using dwc_otg
    [ 3.920898] usb 1-1.2.1: New USB device found, idVendor=046d, idProduct=c31c
    [ 3.944519] usb 1-1.2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    [ 3.972143] usb 1-1.2.1: Product: USB Keyboard
    [ 3.986328] usb 1-1.2.1: Manufacturer: Logitech
    [ 4.018993] input: Logitech USB Keyboard as /devices/platform/bcm2708_usb/usb1/1-1/1-1.2/1-1.2.1/1-1.2.1:1.0/input/input0
    [ 4.043779] hid-generic 0003:046D:C31C.0001: input,hidraw0: USB HID v1.10 Keyboard [Logitech USB Keyboard] on usb-bcm2708_usb-1.2.1/input0
    [ 4.090934] input: Logitech USB Keyboard as /devices/platform/bcm2708_usb/usb1/1-1/1-1.2/1-1.2.1/1-1.2.1:1.1/input/input1
    [ 4.114866] hid-generic 0003:046D:C31C.0002: input,hidraw1: USB HID v1.10 Device [Logitech USB Keyboard] on usb-bcm2708_usb-1.2.1/input1
    [ 4.224969] usb 1-1.2.2: new low-speed USB device number 6 using dwc_otg
    [ 4.252981] udevd[143]: starting version 175
    [ 4.350382] usb 1-1.2.2: New USB device found, idVendor=413c, idProduct=3012
    [ 4.382234] usb 1-1.2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    [ 4.427728] usb 1-1.2.2: Product: Dell USB Optical Mouse
    [ 4.464499] usb 1-1.2.2: Manufacturer: Dell
    [ 4.499047] input: Dell Dell USB Optical Mouse as /devices/platform/bcm2708_usb/usb1/1-1/1-1.2/1-1.2.2/1-1.2.2:1.0/input/input2
    [ 4.554635] hid-generic 0003:413C:3012.0003: input,hidraw2: USB HID v1.11 Mouse [Dell Dell USB Optical Mouse] on usb-bcm2708_usb-1.2.2/input0
    [ 4.684934] usb 1-1.2.3: new high-speed USB device number 7 using dwc_otg
    [ 4.815076] usb 1-1.2.3: New USB device found, idVendor=058f, idProduct=6254
    [ 4.850282] usb 1-1.2.3: New USB device strings: Mfr=0, Product=0, SerialNumber=0
    [ 4.889716] hub 1-1.2.3:1.0: USB hub found
    [ 4.921501] hub 1-1.2.3:1.0: 4 ports detected
    [ 5.254788] usb 1- new high-speed USB device number 8 using dwc_otg
    [ 5.419361] usb 1- New USB device found, idVendor=17e9, idProduct=401a
    [ 5.445758] usb 1- New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [ 5.474539] usb 1- Product: mimo
    [ 5.494504] usb 1- Manufacturer: DisplayLink
    [ 5.517388] usb 1- SerialNumber: 7090258
    [ 5.543193] udlfb: DisplayLink mimo - serial #7090258
    [ 5.564520] udlfb: vid_17e9&pid_401a&rev_0119 driver's dlfb_data struct at daa1c000
    [ 5.594541] udlfb: console enable=1
    [ 5.604161] udlfb: fb_defio enable=1
    [ 5.634487] udlfb: shadow enable=1
    [ 5.654603] udlfb: vendor descriptor length:23 data:23 5f 01 0021 00 04 04 07 00 01
    [ 5.678416] udlfb: DL chip limited to 1500000 pixel modes
    [ 5.706379] udlfb: allocated 4 65024 byte urbs
    [ 5.737285] hid-generic 0003:17E9:401A.0004: hiddev0,hidraw3: USB HID v1.10 Device [DisplayLink mimo] on usb-bcm2708_usb-
    [ 5.847526] udlfb: 800x480 @ 61 Hz valid mode
    [ 5.867361] udlfb: Reallocating framebuffer. Addresses will change!
    [ 5.880120] usb 1- new full-speed USB device number 9 using dwc_otg
    [ 5.910187] udlfb: 800x480 @ 61 Hz valid mode
    [ 5.933271] udlfb: set_par mode 800x480
    [ 5.977878] udlfb: DisplayLink USB device /dev/fb1 attached. 800x480 resolution. Using 1504K framebuffer memory
    [ 6.140625] Registered led device: led0
    [ 6.424553] usb 1- device not accepting address 9, error -71
    [ 6.534829] usb 1- new full-speed USB device number 10 using dwc_otg
    [ 6.654832] usb 1- device descriptor read/64, error -71
    [ 6.885182] usb 1- device descriptor read/64, error -71
    [ 7.094785] usb 1- new full-speed USB device number 11 using dwc_otg
    [ 7.544559] usb 1- device not accepting address 11, error -71
    [ 7.664745] usb 1- new full-speed USB device number 12 using dwc_otg
    [ 8.104554] usb 1- device not accepting address 12, error -71
    [ 8.132939] hub 1-1.2.3:1.0: unable to enumerate USB device on port 3
    [ 10.309031] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
    [ 10.763450] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
    [ 11.501421] bcm2835 ALSA card created!
    [ 11.519513] bcm2835 ALSA chip created!
    [ 11.538614] bcm2835 ALSA chip created!
    [ 11.549277] bcm2835 ALSA chip created!
    [ 11.560710] bcm2835 ALSA chip created!
    [ 11.573366] bcm2835 ALSA chip created!
    [ 11.584140] bcm2835 ALSA chip created!
    [ 11.597491] bcm2835 ALSA chip created!
    [ 19.457605] smsc95xx 1-1.1:1.0: eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
    [ 23.369007] Adding 102396k swap on /var/swap. Priority:-1 extents:1 across:102396k SS
    pi@raspberrypi ~ $

  5. Hi,

    hope you don’t mind me dumping my thoughts here – they may help someone else at some point.
    I have just read the entire conversation and picked up on a few things that I had missed.

    When adding the speed= to cmdline.txt – it stops my keyboard working and the pi doesn’t boot – however, if i remove the keyboard and mouse, the pi does boot and the touchscreen appears to detect and work, i need to calibrate it – but it is working.

    HOWEVER – I still can’t get anything but a green screen from the display!



    • Hi Ben, I wasn’t able to look at this this weekend, but I’m at work right now so I’ve only skimmed your replies.
      The fact that your screen turns to green during boot is a good sign! Now all you should need is a properly configured /etc/X11/xorg.conf file and the screen should work as a display. You won’t see the startup/boot text on the mimo, but about 5 seconds after booting you should see the screen turn green, and then about 10 seconds later it should turn black, followed by the desktop. For me, I had to keep HDMI connected for the pi to turn on.
      I’m still pretty new to linux, so the only thing I’ve found yet (through other ppl on the forums) that gets the touchscreen to work is to add the ‘dwc_otg.speed=1’ line, which drops the usb speed from 2.0 to 1,0 (from my understanding) This fixes the error -71s that show up when the touchscreen fails to initialize. For me, all my devices seem to operate correctly, but I could understand why this might cause issues for certain devices.
      Currently I don’t know how else to get the touch screen working without that hack, so I’d recommend asking in the forums. There are a lot of smarter people in there 🙂

      • Thanks for getting back to me.
        I only every get a green screen 😦

        copying the above xorg.conf file over and the pi never makes it into x-windows. Ive tried cutting out the touchpad parts from the config and it still just hangs with a flashing cursor.

        If you have no thoughts on it, i’ll go and check out the forums and ask there.



      • I just cur the xorg.conf back to the first monitor section and voila, the screen is working.
        I’ll try getting the touch screen to work at the same time tomorrow – it will probably mean that I can’t get the keyboard working but ultimately, it won’t have a keyboard connected anyway.

        Thanks for the help,


  6. Thanks, I have my Mimo 710 S working with Keyboard, wireless mouse, WiFi. If no one noticed, Option “InvertX” “true” should be False. I loaded the modules and it did not get the Mimo’s touch screen to work until I used the kernel that came with 3.6.11-mimo.tgz

    I made a number of changes before this, so I don’t know if those changes in combination with the advice on this blog worked together, so I am starting a new SD from scratch. I will link this blog in my next blog. Thanks again.

  7. hello, hello, i have downloaded the 3.6.11-mimo to workaround the usb-issue.. but how do I get these file or files on the SD-card… working well???

  8. Hello Phil,

    I recently noticed all the difficulty people are reporting configuring the 720-S it seems like it would be useful to setup a test environment and see what might be tripping them up. I’m in the U.S. on central time so it will be a bit until I have some results but I’m very curious as to why this is happening.

    Any way I’ll post any useful results I get in the next day or two.


  9. It seems that the speed setting and the /lib firmware & modules mess things up. I’m looking primarily just to use the MIMO w/out the touch screen (for now). With just the modified kernel , the MIMO xorg.conf and a USB cable with a singular male jack I get the boot screen & input on my HDMI. Then I do a startx and the MIMO desktop GUI comes up perfectly on the MIMO as a display but this display does not respond to input. I suspect that if I bought a dual male usb cable that the MIMO monitor may be able to be powered early on in the boot process and obtain input configuration. Can the MIMO be the singular display or is another primary display (hdmi) required to get this all working? Thanks in advance.

    • Hi Bob,

      We’ve pretty much ruled out the power issue, unless your hub/ac adapter is less than 600ma, especially since your display works. In the original forum, someone found that setting the USB speed to 1.1 speeds would cause the proper screen initialization, but found it would negatively affect some other usb 2.0 devices. So far it’s the only solution to get touch input working that I know of. But I’d love to find a way that didn’t affect the USB speed!
      I also found that the pi wouldn’t boot if nothing was plugged into the HDMI port, so I lobbed off the end of a spare HDMI cable and used that to plug in and make the pi think it had a screen plugged in. I think I read later on that you can turn off the HDMI requirement for boot in some setting, but I never actually tried.

      • Hi ,
        Thanks for your kind attention. The next thing I may try since the kernel.img and Xorg.conf work great for the display is to add mouse and keyboard definitions to the Xorg.conf. (I love this stuff but am more on the order of a weekend warrior). Why were mouse and keyboard definitions not included in the posted Xorg.conf?

        Here is what I may start playing with:

        Section "Device"
        Identifier "uga"
        driver "fbdev"
        Option "fbdev" "/dev/fb1"
        Option "ShadowFB" "off"
        Section "Monitor"
        Identifier "monitor"

        Section "Screen"
        Identifier "screen"
        Device "uga"
        Monitor "monitor"

        Section "ServerLayout"
        Identifier "default"
        Screen 0 "screen" 0 0
        InputDevice "touchscreen" "CorePointer"
        InputDevice "Keyboard0" "CoreKeyboard"
        InputDevice "Mouse0" "CorePointer"
        Option "Xinerama" "Off"

        Section "InputDevice"
        Identifier "Keyboard0"
        Driver "kbd"

        Section "InputDevice"
        Identifier "Mouse0"
        Driver "mouse"
        Option "Protocol" "auto"
        Option "Device" "/dev/input/mice"
        Option "ZAxisMapping" "4 5 6 7"

        Section "InputDevice"
        Identifier "touchscreen"
        Driver "evdev"
        Option "Device" "/dev/input/by-id/usb-e2i_Technology__Inc._USB_Touchpanel_L000000000-event-if00"
        Option "DeviceName" "touchscreen"
        Option "ReportingMode" "Raw"
        Option "SendCoreEvents" "On"
        Option "Calibrate" "1"
        Option "Calibration" "630 32000 1100 31800"
        Option "InvertY" "true"
        Option "InvertX" "true"
        Option "SwapAxes" "false"

      • Hi Bob,

        For me, I never had to include anything in the xorg.conf that listed my keyboard and mouse, they just worked. Someone in the forums was using a bluetooth keyboard and had to add some lines to xorg.conf, but I was using a standard usb keyboard and mouse, and had no issues without adding any lines for them. Hopefully yours just works as well!

  10. Pingback: SmartKegerator v2 Installation Guide | Phil's Project Blog

  11. I’m having an issue with this portion of your procedure:

    sudo git clone –depth=1 https://github.com/raspberrypi/linux
    fatal: repository ‘depth=1’ does not exist

    when i attempt to drop the -depth=1 portion i get: ‘fatal: Out of memory , calloc, failed95362), 1.41 GiB

    I’m using a PI 3 and a MIMO UM-720F and currently get only a green screen when attempting to use it.

    • Sorry i think i just got it by moving the –depth=1 to the end

      sudo git clone https://github.com/raspberrypi/linux –depth=1
      Cloning into ‘linux’…
      remote: Counting objects: 55922, done.
      remote: Compressing objects: 100% (53015/53015), done.
      remote: Total 55922 (delta 4481), reused 17721 (delta 2099), pack-reused 0
      Receiving objects: 100% (55922/55922), 150.62 MiB | 2.78 MiB/s, done.
      Resolving deltas: 100% (4481/4481), done.
      Checking connectivity… done.
      Checking out files: 100% (52727/52727), done.

      • Ok now my issue is during the ‘sudo make menuconfig’ portion …. i traverse down to touchscreen but it appears to be an empty directory same with the Frame Buffer Devices

  12. dang scratch that i discovered that using space bar first and enabling the feature offers more options with the options im after being available … sry for all the posts :O)

  13. everything goes as written up until: sudo make -j 6 modules results in:

    The present kernel configuration has modules disabled.
    Type ‘make config’ and enable loadable module support.
    Then build a kernel with module support enabled.

    Makefile:1155: recipe for target ‘modules’ failed
    make: *** [modules] Error 1

    • i do as instructed and run ‘sudo make config’ leaving all its configured as default except the two configured with a ‘y’ below:

      * Enable loadable module support
      Enable loadable module support (MODULES) [N/y/?] y
      Forced module loading (MODULE_FORCE_LOAD) [N/y/?] (NEW)
      Module unloading (MODULE_UNLOAD) [N/y/?] (NEW) y
      Forced module unloading (MODULE_FORCE_UNLOAD) [N/y/?] (NEW)
      Module versioning support (MODVERSIONS) [N/y/?] (NEW)
      Source checksum for all modules (MODULE_SRCVERSION_ALL) [N/y/?] (NEW)
      Module signature verification (MODULE_SIG) [N/y/?] (NEW)
      Compress modules on installation (MODULE_COMPRESS) [N/y/?] (NEW)

      • re-running ‘sudo make -j 6 modules’ command now results in:

        pi@raspberrypi:~/raspbian/linux $ sudo make -j 6 modules
        scripts/kconfig/conf –silentoldconfig Kconfig
        CHK include/config/kernel.release
        CHK include/generated/uapi/linux/version.h
        HOSTCC scripts/mod/modpost.o
        CHK include/generated/utsrelease.h
        make[1]: ‘include/generated/mach-types.h’ is up to date.
        CHK include/generated/timeconst.h
        CC kernel/bounds.s
        CHK include/generated/bounds.h
        CC arch/arm/kernel/asm-offsets.s
        CHK include/generated/asm-offsets.h
        CALL scripts/checksyscalls.sh
        HOSTLD scripts/mod/modpost
        Building modules, stage 2.
        MODPOST 0 modules
        pi@raspberrypi:~/raspbian/linux $

        i continue on with remain steps

  14. Hello Folks
    I have just got my Raspberry Pi 3 running Raspian from NOOBS and trying to get Samsung U-70 (no touchscreen) working but stuck at Green Screen. Tried creating xorg.conf and adding in text as suggested in this thread (without the touchscreen part of the text) but still stays green. Any suggestions welcomed please.

    • Hi Neil,
      Sorry I missed this post! I do not have any ideas for you besides reading your dmesg output and making sure the screen is showing up correctly. Beyond that, there are a bazillion reasons it might not be working, most of which are over my head! Perhaps the device id needs to be updated in the xorg.conf? I’m not sure, but if you get it working let us know! Thanks!

  15. Hi!
    Thanks for this post. It is a bit dated, but still I tried to compile the github kernel to have usb touch screen support. I have rapsberry pi 3 with latest raspbian distro.

    I copy the compiled kernel “Image” in place of kernel7.img, I in fact followed all the steps in the post….. but RPI does not even boot! I have no screen for it except the usb touch screen, so i cannot access any error message…

    Any idea? Am I missing something? I’ll look into raspberry system logs stored on the SD card, if any info is there…..
    Kernel install is just copying Image in the boot directory? and make modules_install. That’s all? What about the System/map file for example?

    Thanks for reading!

    • Hi Gandji,
      Unfortunately I have not tried this with a raspi3, so I’m not sure if there are any other steps required, or if there have been big changes since the last time I tried this. I have been using the raspi foundation touchscreen without issue, so it’s been a while since I tried getting the mimo display to work.
      If you have set up your xorg.conf file, try renaming it to something else so the kernel doesnt try to use it and see if you can get any output to the monitors, otherwise, I’m not sure what could be wrong.
      I might be able to try and test it myself, but it wouldn’t be a for a while, sorry

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s