Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add udlfb for displaylink screens #141

Closed
pssc opened this issue Jan 29, 2013 · 40 comments
Closed

Add udlfb for displaylink screens #141

pssc opened this issue Jan 29, 2013 · 40 comments

Comments

@pssc
Copy link

pssc commented Jan 29, 2013

A number of people seem to have had luck with display-link touch screens the currently involves replacing the whole kernel.

--- - 2013-01-29 10:30:20.596892704 +0000
+++ .config 2013-01-28 12:44:18.088627426 +0000
@@ -2227,16 +2227,17 @@
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y

CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set

-# CONFIG_FB_SYS_FILLRECT is not set
-# CONFIG_FB_SYS_COPYAREA is not set
-# CONFIG_FB_SYS_IMAGEBLIT is not set
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_IMAGEBLIT=m

CONFIG_FB_FOREIGN_ENDIAN is not set

-# CONFIG_FB_SYS_FOPS is not set
+CONFIG_FB_SYS_FOPS=m

CONFIG_FB_WMT_GE_ROPS is not set

+CONFIG_FB_DEFERRED_IO=y

CONFIG_FB_SVGALIB is not set

CONFIG_FB_MACMODES is not set

CONFIG_FB_BACKLIGHT is not set

-# CONFIG_FB_MODE_HELPERS is not set
+CONFIG_FB_MODE_HELPERS=y

CONFIG_FB_TILEBLITTING is not set

@@ -2247,7 +2248,7 @@

CONFIG_FB_UVESA is not set

CONFIG_FB_S1D13XXX is not set

CONFIG_FB_SMSCUFX is not set

-# CONFIG_FB_UDL is not set
+CONFIG_FB_UDL=m

CONFIG_FB_VIRTUAL is not set

CONFIG_FB_METRONOME is not set

CONFIG_FB_BROADSHEET is not set

@popcornmix
Copy link
Contributor

I'm a little concerned that this could have a performance impact on non-displaylink framebuffer users.
Particularly CONFIG_FB_DEFERRED_IO.

@pssc
Copy link
Author

pssc commented Jan 29, 2013

looking at Documentation/fb/deferred_io.txt and the uldfb code it will only be used if supported by the particular framebuffer as support has to be explicitly enabled with the driver

iinfo->fbdefio = &hecubafb_defio; (handler function for fb defio in driver)
fb_deferred_io_init(info);

In the case of udlfb it can also be turned off via an option as well as some auto detection for clients that support damage detection(X?).

A further look in drivers/video/fb_defio.c and fb_deferred_io_init + associated functions looks like it should have little or no overhead on fb in general that don’t support it.

Phill

@pssc
Copy link
Author

pssc commented Jan 31, 2013

I have run up the app(squeezeplay) using its graphic tests (sdl based) I have been using on the standard fb console fps and cpu load tests remain the same.

Phill.

@pssc
Copy link
Author

pssc commented Feb 1, 2013

Anything else I can to do move this along?

@popcornmix
Copy link
Contributor

I was a bit concerned by this:

int fb_deferred_io_fsync(struct file *file, loff_t start, loff_t end, int datasync)
{
    struct fb_info *info = file->private_data;
    struct inode *inode = file->f_path.dentry->d_inode;
    int err = filemap_write_and_wait_range(inode->i_mapping, start, end);
    if (err)
        return err;

    /* Skip if deferred io is compiled-in but disabled on this fbdev */
    if (!info->fbdefio)
        return 0;

Looks like filemap_write_and_wait_range will get called if CONFIG_DEFERRED_IO is enabled in kernel, even if current fb driver is disbled.

I think I need more convincing this change is harmless, and more evidence that there is demand for this before forcing it on everyone.

@pssc
Copy link
Author

pssc commented Feb 1, 2013

Ok I understand the caution here,

Its that just implementing normal fsync behavior for a char dev flushing all data to the file/device looks like its a copy of fs/libfs.c generic_file_fsync with the if statement in the wrong place for detecting if its needed for the fb to me...

Most small compact screens seem to come as usb ones these days and they tend to come with a touch screen to boot so its ideal for interfacing with a device like the pi either for one off configuration or as some sort of embed application and they have a very low bar compared with other LCD touch screen interfacing options that don’t use the hdmi. ie I can buy it off amazon and plug it in...

http://www.amazon.co.uk/Mimo-UM-720S-USB-Powered-Monitor-Screen/dp/B002U0K7H/ref=sr_1_1?s=electronics&ie=UTF8&qid=1359735631&sr=1-1

@ggalt
Copy link

ggalt commented Feb 11, 2013

I too am interested in getting support for DisplayLink USB monitors with RaspberryPi. Is there anything I can do to help test that there will be no performance hit if udlfb is enabled by default?

Thanks.

@pssc
Copy link
Author

pssc commented Feb 13, 2013

Ok,

I have applied the following to fix and enable the usb touch screen I have. It now works in the SDL and x ok for the past week or so and fixes the performance issues. In addition to the initial kernel config option.

diff --git a/drivers/video/fb_defio.c b/drivers/video/fb_defio.c
index 64cda56..957c71d 100644
--- a/drivers/video/fb_defio.c
+++ b/drivers/video/fb_defio.c
@@ -70,14 +70,15 @@ int fb_deferred_io_fsync(struct file *file, loff_t start, loff_t end, int datasy
 {
        struct fb_info *info = file->private_data;
        struct inode *inode = file->f_path.dentry->d_inode;
-      int err = filemap_write_and_wait_range(inode->i_mapping, start, end);
-       if (err)
-               return err;

        /* Skip if deferred io is compiled-in but disabled on this fbdev */
        if (!info->fbdefio)
                return 0;

+       int err = filemap_write_and_wait_range(inode->i_mapping, start, end);
+       if (err)
+              return err;-
+
        mutex_lock(&inode->i_mutex);
        /* Kill off the delayed work */
        cancel_delayed_work_sync(&info->deferred_work);

 # CONFIG_INPUT_MOUSE is not set
 # CONFIG_INPUT_JOYSTICK is not set
 # CONFIG_INPUT_TABLET is not set
-# CONFIG_INPUT_TOUCHSCREEN is not set
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_TOUCHSCREEN_ADS7846 is not set
+# CONFIG_TOUCHSCREEN_AD7877 is not set
+# CONFIG_TOUCHSCREEN_AD7879 is not set
+# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set
+# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
+# CONFIG_TOUCHSCREEN_BU21013 is not set
+# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
+# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set
+# CONFIG_TOUCHSCREEN_DYNAPRO is not set
+# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
+# CONFIG_TOUCHSCREEN_EETI is not set
+# CONFIG_TOUCHSCREEN_EGALAX is not set
+# CONFIG_TOUCHSCREEN_FUJITSU is not set
+# CONFIG_TOUCHSCREEN_ILI210X is not set
+# CONFIG_TOUCHSCREEN_GUNZE is not set
+# CONFIG_TOUCHSCREEN_ELO is not set
+# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
+# CONFIG_TOUCHSCREEN_WACOM_I2C is not set
+# CONFIG_TOUCHSCREEN_MAX11801 is not set
+# CONFIG_TOUCHSCREEN_MCS5000 is not set
+# CONFIG_TOUCHSCREEN_MMS114 is not set
+# CONFIG_TOUCHSCREEN_MTOUCH is not set
+# CONFIG_TOUCHSCREEN_INEXIO is not set
+# CONFIG_TOUCHSCREEN_MK712 is not set
+# CONFIG_TOUCHSCREEN_PENMOUNT is not set
+# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set
+# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
+# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
+# CONFIG_TOUCHSCREEN_PIXCIR is not set
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+CONFIG_TOUCHSCREEN_USB_EGALAX=y
+CONFIG_TOUCHSCREEN_USB_PANJIT=y
+CONFIG_TOUCHSCREEN_USB_3M=y
+CONFIG_TOUCHSCREEN_USB_ITM=y
+CONFIG_TOUCHSCREEN_USB_ETURBO=y
+CONFIG_TOUCHSCREEN_USB_GUNZE=y
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
+CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
+CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
+CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_USB_JASTEC=y
+CONFIG_TOUCHSCREEN_USB_ELO=y
+CONFIG_TOUCHSCREEN_USB_E2I=y
+CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
+CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
+CONFIG_TOUCHSCREEN_USB_NEXIO=y
+CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
+# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set

--- a/linux/drivers/usb/input/usbtouchscreen.c        2007-03-23 15:49:35.000000000 +0100
+++ b/linux/drivers/usb/input/usbtouchscreen.c    2007-03-23 15:52:02.000000000 +0100
@@ -54,6 +54,12 @@
 static int swap_xy;
 module_param(swap_xy, bool, 0644);
 MODULE_PARM_DESC(swap_xy, "If set X and Y axes are swapped.");
+static int invert_x;
+module_param(invert_x, bool, 0644);
+MODULE_PARM_DESC(invert_x, "Invert X axis.");
+static int invert_y;
+module_param(invert_y, bool, 0644);
+MODULE_PARM_DESC(invert_y, "Invert Y axis.");

 /* device specifc data/functions */
 struct usbtouch_usb;
@@ -514,6 +520,7 @@
                                  unsigned char *pkt, int len)
 {
        struct usbtouch_device_info *type = usbtouch->type;
+       int x, y;

        if (!type->read_data(usbtouch, pkt))
                        return;
@@ -521,12 +528,20 @@
        input_report_key(usbtouch->input, BTN_TOUCH, usbtouch->touch);

        if (swap_xy) {
-               input_report_abs(usbtouch->input, ABS_X, usbtouch->y);
-               input_report_abs(usbtouch->input, ABS_Y, usbtouch->x);
+               x = usbtouch->y;
+               y = usbtouch->x;
        } else {
-               input_report_abs(usbtouch->input, ABS_X, usbtouch->x);
-               input_report_abs(usbtouch->input, ABS_Y, usbtouch->y);
+               x = usbtouch->x;
+               y = usbtouch->y;
        }
+       if (invert_x)
+               x = type->max_xc - x + type->min_xc;
+       if (invert_y)
+               y = type->max_yc - y + type->min_yc;
+
+       input_report_abs(usbtouch->input, ABS_X, x);
+       input_report_abs(usbtouch->input, ABS_Y, y);
+
        if (type->max_press)
                input_report_abs(usbtouch->input, ABS_PRESSURE, usbtouch->press);
        input_sync(usbtouch->input);

@jwilker2
Copy link

jwilker2 commented Mar 6, 2013

I too am interested in getting expanded support for DisplayLink USB monitors with RaspberryPi. A number of others including myself have projects underway. I can report that from my point of view the performance of the DisplayLink USB monitor running on a Model B rev. 1 board directly off the sdcard is quite acceptable. I have it configured with an iPazzPort bluetooth wireless keyboard and a gpio interfaced relay, thermistor and i2c LED. It's gotten more than few looks from others when I show them what I'm up to. I'm frankly surprised it's as capable as it is and I built it. At least one person whose posts I noticed was installing one in his car and I'm sure since the monitors without touchscreen are frequently priced as low as $79 here he's not alone.

On another note, implementing e2i touchscreen on Mimo 720S is representing quite a challenge for a few of us (we have a forum http://raspberrypi.org/phpBB3/viewtopic.php?f=64&t=27781&p=303264#p303264) perhaps one of you kind folks could help point us toward someone more knowledgeable than ourselves who could diagnose it.

I'm sure a few others will be stopping by to express their support.

@philharlow
Copy link

I would also like to voice support for the mimo displays. I am one of the ones having issues with the touchscreen part my 720S, but with a modified kernel the display operates perfectly with only a tiny bit of lag. They are decent quality, cheap, and use one single cable which is nice for mobile projects, I'm surprised there isn't more support already! Thanks for anything you can do!

@ggalt
Copy link

ggalt commented Mar 7, 2013

@philharlow & @jwilker2, what distro and kernel are you using? I'm currently on Arch using the 3.6.11-7+ kernel. I had both the touchscreen and udlfb working when I recompiled my own kernel (following directions here: http://anup.info/blog/2012/10/13/raspberry-pi-mimo-monitor), but I left it alone for a while and after a few updates, it no longer works (udlfb doesn't load). My assumption is that the update to the firmware hasn't propagated through to ArchArm kernel yet and so there is some mismatch I'm fighting. Any insight would be helpful. FYI, I plan on recompiling my own kernel this weekend to see if I can get udlfb back.

@jwilker2
Copy link

jwilker2 commented Mar 7, 2013

@ggalt & @philharlow
Hello, George
Boy, if you had touchscreen running under Arch that is good news! We've had a rather intractable problem with it under Rasbian. I'm very interested in being of any assistance I can with your efforts I've run Arch on the Pi, however, I'm no kernel level genius but I'm sure going to give it a hard look again starting right now.

Just a thought, if you have your old 'source tree' intact, don't overwrite it! The 'old' working kernel.img may still be there, good news of course, and the means to regenerate it all the better.

We've been having a hell of a time getting this running under Raspbian - Linux raspberrypi 3.6.11+ 389, if the firmware is the culprit that's interesting and may be fixable. We've heard reports that an older version of Occidentalis that's distributed by Adafruit successfully ran touchscreen at one point. Currently there are no problems I'm are of as far as the DisplayLink framebuffer device it runs impressively well for me.

Can you tell me which USB Monitor you have? The one that is troublesome for us is: ID 17e9:401a DisplayLink that is to say: Mimo USB MINI MONITOR 720-s the monitor portion is great, touchscreen not so much. ID 1ac7:0001 the touchscreen endpoint fails to configure reporting what I think is a bogus error.

This from another forum that should help you prevent finding your 'baby' DOA:
'If your goal is to achieve something experimental, are happy to compile your own kernel, and are frustrated by updates breaking it, the solution is to do updates this way:
sudo SKIP_KERNEL=1 rpi-update (updates your firmware)
git pull (from your kernel source directory)
Compile and install as normal.'

We can move this off this forum if all the wrong people are being spammed.

Thanks for contacting me.

Regards,

Jim

@ggalt
Copy link

ggalt commented Mar 7, 2013

Jim and others:

I've created a public repository where we can continue this discussion without bothering the people here. Here is a link: ggalt/RaspberryArch#1

George

@pssc
Copy link
Author

pssc commented Mar 22, 2015

Ok I am know longer sure what’s stopping this being enabled given deferred io has been enabled for the pitft drivers.

We now just need:-
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_UDL=m

I have a custom kernel going with these enabled.

@popcornmix
Copy link
Contributor

Okay, will enable and keep an eye out for any reports.

@pssc
Copy link
Author

pssc commented Mar 22, 2015

@popcornmix ok thanks will test with a MIMo720S and Pluggable USB2.0 adaptor.

popcornmix added a commit that referenced this issue Mar 22, 2015
firmware: dispmanx: Fix for locking with dispmanx_element_add with stereo object

firmware: video_decode: increase the number of userdatas

firmware: platform: Enable VCOS_RELEASE_ASSERTS
See: #377 (comment)

firmware: dispmanx: Fix for dispmanx_snapshot with more than one rotated layer
See: #377

kernel: config: Enable ZSMALLOC, ZRAM and PGTABLE_MAPPING
See: raspberrypi/linux#894

kernel: config: Enable CONFIG_FB_MODE_HELPERS and CONFIG_FB_UDL
See: #141

kernel: bcm2708: Make ioctl logging quieter
See: raspberrypi/linux#895

kernel: HiFiBerry Digi: set SPDIF status bits for sample rate
See: raspberrypi/linux#899

kernel: dts: overlay: add generic support for ads7846
See: raspberrypi/linux#896
popcornmix added a commit to Hexxeh/rpi-firmware that referenced this issue Mar 22, 2015
firmware: dispmanx: Fix for locking with dispmanx_element_add with stereo object

firmware: video_decode: increase the number of userdatas

firmware: platform: Enable VCOS_RELEASE_ASSERTS
See: raspberrypi/firmware#377 (comment)

firmware: dispmanx: Fix for dispmanx_snapshot with more than one rotated layer
See: raspberrypi/firmware#377

kernel: config: Enable ZSMALLOC, ZRAM and PGTABLE_MAPPING
See: raspberrypi/linux#894

kernel: config: Enable CONFIG_FB_MODE_HELPERS and CONFIG_FB_UDL
See: raspberrypi/firmware#141

kernel: bcm2708: Make ioctl logging quieter
See: raspberrypi/linux#895

kernel: HiFiBerry Digi: set SPDIF status bits for sample rate
See: raspberrypi/linux#899

kernel: dts: overlay: add generic support for ads7846
See: raspberrypi/linux#896
@popcornmix
Copy link
Contributor

Should be enabled now. Can you rpi-update and test?

@pssc
Copy link
Author

pssc commented Mar 24, 2015

[14937.223886] usb 1-1.3.3: new high-speed USB device number 10 using dwc_otg
[14937.323980] usb 1-1.3.3: New USB device found, idVendor=058f, idProduct=6254
[14937.324022] usb 1-1.3.3: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[14937.328983] hub 1-1.3.3:1.0: USB hub found
[14937.329325] hub 1-1.3.3:1.0: 4 ports detected
[14937.604041] usb 1-1.3.3.2: new high-speed USB device number 11 using dwc_otg
[14937.727582] usb 1-1.3.3.2: New USB device found, idVendor=17e9, idProduct=0335
[14937.727670] usb 1-1.3.3.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[14937.727692] usb 1-1.3.3.2: Product: MIMO
[14937.727709] usb 1-1.3.3.2: Manufacturer: DisplayLink
[14937.727778] usb 1-1.3.3.2: SerialNumber: 1071101867
[14937.833905] usb 1-1.3.3.3: new full-speed USB device number 12 using dwc_otg
[14937.947628] udlfb: DisplayLink MIMO - serial #1071101867
[14937.950357] udlfb: vid_17e9&pid_0335&rev_0120 driver's dlfb_data struct at cb48f800
[14937.950462] udlfb: console enable=1
[14937.950586] udlfb: fb_defio enable=1
[14937.964512] udlfb: shadow enable=1
[14937.965130] udlfb: vendor descriptor length:23 data:23 5f 01 00 21 00 04 04 07 00 01
[14937.965220] udlfb: DL chip limited to 1500000 pixel modes
[14937.972029] usb 1-1.3.3.3: New USB device found, idVendor=1ac7, idProduct=0001
[14937.972168] usb 1-1.3.3.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[14937.972728] usb 1-1.3.3.3: Product: USB Touchpanel
[14937.972913] usb 1-1.3.3.3: Manufacturer: e2i Technology, Inc.
[14937.973001] usb 1-1.3.3.3: SerialNumber: L000000000
[14938.011480] udlfb: allocated 4 65024 byte urbs
[14938.040129] usbcore: registered new interface driver udlfb
[14938.190155] udlfb: 800x480 @ 59 Hz valid mode
[14938.190347] udlfb: Reallocating framebuffer. Addresses will change!
[14938.234769] udlfb: 800x480 @ 59 Hz valid mode
[14938.236208] udlfb: set_par mode 800x480
[14938.286006] udlfb: DisplayLink USB device /dev/fb2 attached. 800x480 resolution. Using 1504K framebuffer memory
[14938.439105] input: e2i Technology, Inc. USB Touchpanel as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3.3/1-1.3.3.3/1-1.3.3.3:1.0/input/input9
[14938.449138] usbcore: registered new interface driver usbtouchscreen
root@raspberrypi:/home/pi# FBDEV=/dev/fb2 FPS=12 /opt/squeezeplay/bin/fbcp

Screen replicated onto MIMO 720S device nicely

@popcornmix
Copy link
Contributor

Okay to close?

@pssc
Copy link
Author

pssc commented Mar 24, 2015

@popcornmix yup slay the 2 year old issue!

@jwilker2
Copy link

Hooray!

On Tue, Mar 24, 2015 at 10:45 AM, popcornmix notifications@github.com
wrote:

Closed #141 #141.


Reply to this email directly or view it on GitHub
#141 (comment).

"The most exciting phrase to hear in science, the one that heralds new
discoveries, is not 'Eureka!' but 'That's funny...'" - Isaac Asimov

@philharlow
Copy link

@pssc did you do anything extra to get the touchscreen to register? If I take a fresh copy of rasbian (2/16), run sudo rpi-update, sudo reboot and then connect my 720S via hub, the screen now turns green, so the udlfb part is working, but I am still get the 'device descriptor read/64, error -71' errors and the touchscreen doesn't register. Are you using the dwc_otg.speed=1 modification to change the usb speeds? Also, sorry if this is the wrong place for this!

@pssc
Copy link
Author

pssc commented Apr 8, 2015

@philharlow is the usb t/s module loaded "insmod usbtouchscreen", mine's at home so I can have a poke tomorrow if needed (mine is also connected through a hub), evtest can be useful for debugging once you have an input device. Also lsusb -tv see if you can see a hub with the screen and a hid/ts device.

@pssc
Copy link
Author

pssc commented Apr 8, 2015

@philharlow not a via chipset usb3 hub it is it? I am using dwc_otg.fiq_fsm_mask=0xf as I was seeing issues with 'FIQ reported NYET. Data may have been lost.' but I don’t believe they where due to the screen, more likely my DAC on the hub.

@philharlow
Copy link

@pssc Thanks for the response! I apologize, I'm very green when discussing linux modules, kernels and usb protocol. I'm taking a fresh image of raspbian, setting it up to boot to x11, running sudo rpi-update, rebooting, then connecting the screen. I have the screen, my wireless mouse/kb adapter and the pi iteself (for power) plugged into the hub. I see this same result with two different usb 2.0 hubs I have.
When I run 'insmod usbtouchscreen' I get 'Error: could not load module usbtouchscreen: No such file or directory'.
When I run 'lsusb -tv' I get http://pastie.org/10081708.
This is the tail of my dmesg: http://pastie.org/10081710
In the dmesg you can see the -71 errors I get where yours is working. I can get my screen to work using @jwilker2's workaround of changing usb speeds by adding 'dwc_otg.speed=1' to the /boot/cmdline.txt file, but it nukes some other usb devices I was hoping to use as well. I also tried adding your 'dwc_otg.fiq_fsm_mask=0xf' to my /boot/cmdline.txt just in case that inadvertently did it, but still an error. I don't know what next steps I could try to debug this so if you had any ideas or could point me in the right direction it'd be greatly appreciated! Thanks!

@pssc
Copy link
Author

pssc commented Apr 9, 2015

@philharlow ok You shouldnt need dwc_otg.speed=1 all devices in the screen are 2.0 bar the t/s controller, type modprobe usbtouchscreen , if you get the green screen the framebuffer is working, can you give full dmesg ouput without dwc_otg.speed=1

@philharlow
Copy link

@pssc Ok thanks. I ran sudo modprobe usbtouchscreen but didn't get any output, then connected screen and then here's the full dmesg: http://pastie.org/10082148 Thanks again!

@pssc
Copy link
Author

pssc commented Apr 9, 2015

@philharlow that's normal will go home tonight and compare output from my
working setup.

On 9 April 2015 at 11:24, philharlow notifications@github.com wrote:

@pssc https://github.com/pssc Ok thanks. I ran sudo modprobe
usbtouchscreen but didn't get any output, then connected screen and then
here's the full dmesg: http://pastie.org/10082148 Thanks again!


Reply to this email directly or view it on GitHub
#141 (comment)
.

I Can Resist Everything Except Temptation -- Oscar Wilde

@philharlow
Copy link

Ok thank you!

@pssc
Copy link
Author

pssc commented Apr 13, 2015

@philharlow Output from my working system

root@raspberrypi:/home/pi# lsusb -tv
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=dwc_otg/1p, 480M
    |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/3p, 480M
        |__ Port 1: Dev 3, If 0, Class=vend., Driver=smsc95xx, 480M
        |__ Port 3: Dev 4, If 0, Class=hub, Driver=hub/7p, 480M
            |__ Port 1: Dev 5, If 0, Class=audio, Driver=snd-usb-audio, 12M
            |__ Port 1: Dev 5, If 1, Class=audio, Driver=snd-usb-audio, 12M
            |__ Port 1: Dev 5, If 2, Class=audio, Driver=snd-usb-audio, 12M
            |__ Port 1: Dev 5, If 3, Class=HID, Driver=usbhid, 12M
            |__ Port 4: Dev 8, If 0, Class=hub, Driver=hub/4p, 480M
                |__ Port 2: Dev 9, If 0, Class=vend., Driver=udlfb, 480M
                |__ Port 3: Dev 10, If 0, Class=vend., Driver=usbtouchscreen, 12M
            |__ Port 6: Dev 6, If 0, Class=HID, Driver=usbhid, 1.5M
            |__ Port 6: Dev 6, If 1, Class=HID, Driver=usbhid, 1.5M

[ 1495.181234] usb 1-1.3.4: new high-speed USB device number 8 using dwc_otg
[ 1495.281240] usb 1-1.3.4: New USB device found, idVendor=058f, idProduct=6254
[ 1495.281282] usb 1-1.3.4: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 1495.287657] hub 1-1.3.4:1.0: USB hub found
[ 1495.288058] hub 1-1.3.4:1.0: 4 ports detected
[ 1495.561279] usb 1-1.3.4.2: new high-speed USB device number 9 using dwc_otg
[ 1495.685047] usb 1-1.3.4.2: New USB device found, idVendor=17e9, idProduct=0335
[ 1495.685090] usb 1-1.3.4.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1495.685114] usb 1-1.3.4.2: Product: MIMO
[ 1495.685132] usb 1-1.3.4.2: Manufacturer: DisplayLink
[ 1495.685150] usb 1-1.3.4.2: SerialNumber: 1071101867
[ 1495.791169] usb 1-1.3.4.3: new full-speed USB device number 10 using dwc_otg
[ 1495.928727] usb 1-1.3.4.3: New USB device found, idVendor=1ac7, idProduct=0001
[ 1495.928966] usb 1-1.3.4.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1495.929180] usb 1-1.3.4.3: Product: USB Touchpanel
[ 1495.929305] usb 1-1.3.4.3: Manufacturer: e2i Technology, Inc.
[ 1495.929409] usb 1-1.3.4.3: SerialNumber: L000000000
[ 1496.019035] udlfb: DisplayLink MIMO - serial #1071101867
[ 1496.019118] udlfb: vid_17e9&pid_0335&rev_0120 driver's dlfb_data struct at d1225800
[ 1496.019135] udlfb: console enable=1
[ 1496.019146] udlfb: fb_defio enable=1
[ 1496.019160] udlfb: shadow enable=1
[ 1496.023385] udlfb: vendor descriptor length:23 data:23 5f 01 00 21 00 04 04 07 00 01
[ 1496.023425] udlfb: DL chip limited to 1500000 pixel modes
[ 1496.024549] udlfb: allocated 4 65024 byte urbs
[ 1496.029915] usbcore: registered new interface driver udlfb
[ 1496.208281] udlfb: 800x480 @ 59 Hz valid mode
[ 1496.208325] udlfb: Reallocating framebuffer. Addresses will change!
[ 1496.212309] udlfb: 800x480 @ 59 Hz valid mode
[ 1496.212346] udlfb: set_par mode 800x480
[ 1496.256812] udlfb: DisplayLink USB device /dev/fb2 attached. 800x480 resolution. Using 1504K framebuffer memory
[ 1496.435436] input: e2i Technology, Inc. USB Touchpanel as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3.4/1-1.3.4.3/1-1.3.4.3:1.0/input/input7
[ 1496.443769] usbcore: registered new interface driver usbtouchscreen

@pssc
Copy link
Author

pssc commented Apr 13, 2015

@philharlow are your hubs usb3 capable?

@philharlow
Copy link

@pssc They should only USB2.0. One of them was purchased before USB3.0 was even spec'd. I'll go home tonight and enable the dwc_otg.speed=1 to get the touchscreen to register and then Ill post the dmesg and lsusb output in case there's a hint in there? Thanks for the help!

@philharlow
Copy link

@pssc ok I added the dwc_otg.speed=1 mod and rebooted, then connected the display. Here's my lsusb -tv and dmesg: http://pastie.org/10091179

@pssc
Copy link
Author

pssc commented Apr 16, 2015

@philharlow what happens if you don't go through the hub? this is looking more like a doggy USB 1.1 pass through issue with the hub. is it powered externally?

Running Linux raspberrypi 3.18.11+ #776 PREEMPT Mon Apr 6 13:13:58 BST 2015 armv6l GNU/Linux

@philharlow
Copy link

@pssc Sorry for taking so long to respond! I use a powered hub to power the screen, but I finally was able to test powering it directly with a cable like this http://www.videk.co.uk/section.php/898/1/usb-y-power-cable, with the power side being plugged into an iphone charger, this is my lsusb and dmesg: http://pastie.org/10108598
I then tried this hub as well: http://www.tigerdirect.com/applications/SearchTools/item-details.asp?EdpNo=1155678 and got the same result: http://pastie.org/10108612
Are you able to connect the screen on a fresh image of raspbian? Thanks!

@philharlow
Copy link

@pssc As I feel you can never have too many USB hubs, if you link the amazon page for the exact hub you're using, I'm willing to buy one just to eliminate as many variables between our setups. Thanks so much for your continued help with this!

@philharlow
Copy link

@pssc Could you tell me what hub you're using? I want to order one just to try.

@pssc
Copy link
Author

pssc commented May 10, 2015

@philharlow http://www.amazon.co.uk/dp/B009R921SE but before you do that you varied the screen works on another box say a x86 linux/windows box?

@philharlow
Copy link

@pssc I just confirmed the touchscreen works on Ubuntu with and without the usb hub, and Windows shows the display, but I cannot get the touchscreen drivers to work, with or without the hub. I'll spend some time trying to get the drivers to work.
Thanks for the link. Haha, I had one of those exact hubs, but can't find it for the life of me, so I've just ordered another. I will report if the hub changes anything. Thanks!

@philharlow
Copy link

@pssc thanks again for all the help with this. Unfortunately I get the exact same behavior with the pluggable hub. Have you tried your screen working on a fresh copy of raspbian? I wonder if you've installed or configured something that lets the touchscreen work for you? I'm just trying to figure out whats different between our setups.

Thanks again for the help!

neuschaefer pushed a commit to neuschaefer/raspi-binary-firmware that referenced this issue Feb 27, 2017
firmware: dispmanx: Fix for locking with dispmanx_element_add with stereo object

firmware: video_decode: increase the number of userdatas

firmware: platform: Enable VCOS_RELEASE_ASSERTS
See: raspberrypi#377 (comment)

firmware: dispmanx: Fix for dispmanx_snapshot with more than one rotated layer
See: raspberrypi#377

kernel: config: Enable ZSMALLOC, ZRAM and PGTABLE_MAPPING
See: raspberrypi/linux#894

kernel: config: Enable CONFIG_FB_MODE_HELPERS and CONFIG_FB_UDL
See: raspberrypi#141

kernel: bcm2708: Make ioctl logging quieter
See: raspberrypi/linux#895

kernel: HiFiBerry Digi: set SPDIF status bits for sample rate
See: raspberrypi/linux#899

kernel: dts: overlay: add generic support for ads7846
See: raspberrypi/linux#896
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants