Active Topics

 


Reply
Thread Tools
Posts: 162 | Thanked: 351 times | Joined on Apr 2006 @ Cotswolds, UK
#1
I have created a "proof of concept" (V0.1) software release to support an external screen for the tablet, using a VGA USB adapter. This is, of course, only of interest if you have one of these adapters.

The current release includes three things, all built for Chinook (OS2008):
  1. Kernel driver to communicate with the USB VGA device
  2. Image display program which displays a single image on the screen and exits
  3. Xserver which allows Xwindows applications to display on the screen

These three features work (at least for me!) but there are several tasks on the ToDo list to make this generally useful. That is why I am calling this a "proof of concept" release. It really isn't ready for general use yet, not even as a "beta" release. However, I am keen to encourage people who have the necessary hardware to test it, and I am keen to encourage others who are interested in this capability to join the development project. But be aware that the X-server, in particular, cannot handle more than a few updates per second.

This software is being developed in a garage project called xsisusb: https://garage.maemo.org/projects/xsisusb/. More information is available at that project, including bug reporting in the tracker. Please let me know if you are interested in joining the project.

Here is the current ToDo list from the garage project, to give some idea of the thoughts I have for developing the project:
  • sisusbvga: Load kernel module
  • xsisusb: Optimise updates
  • Add mirroring
  • Create documentation
  • xsisusb: Support more modes
  • sisbit: Display more image types
  • Slideshow viewer

Of these, the slideshow viewer is my real goal as I am doing this because I would like to be able to show powerpoint presentations (for example at conferences) using the tablet.

For the brave, or foolish, instructions on how to get this proof of concept working are available at http://xsisusb.garage.maemo.org/. The instructions that appear later in this thread are now out of date.

Note that this requires a USB-attached VGA adapter built using an SiS USB VGA chipset. The adapter I am using is made by StarTech.com and is called "USB 2.0 to VGA Display Adaptor USB2VGA2". Also note that the code in this project so far was mostly originally written by Thomas Winischhofer who, however, bears no responsibility for this implementation.

Last edited by Graham Cobb; 2008-05-01 at 11:55. Reason: Point to instructions on web site
 

The Following 32 Users Say Thank You to Graham Cobb For This Useful Post:
qwerty12's Avatar
Posts: 4,274 | Thanked: 5,358 times | Joined on Sep 2007 @ Looking at y'all and sighing
#2
Wow, thanks Now, I got to get me a USB adapter. Forget NoBounds (once update speed is better)
 
Posts: 162 | Thanked: 351 times | Joined on Apr 2006 @ Cotswolds, UK
#3
IMPORTANT: The instructions for using the proof-of-concept release of xsisusb are now at: http://xsisusb.garage.maemo.org/. The instructions given below are out of date and should no longer be used. They are left here just so that the flow of the thread make sense.

NOTE: This release has hardly been tested and has a number of restrictions. It is mainly intended for developers and is only really usable if you are comfortable using the Linux command line.
  • Hardware requirements and connectivity
  • Installing the software
  • Linux kernel driver
  • Image display
  • X-server

Hardware requirements and connectivity

The software requires an external VGA adapter attached using USB 2.0 and using a SiS USB VGA chipset. The adapter I am using is made by StarTech.com and is called "USB 2.0 to VGA Display Adaptor USB2VGA2". There are other adapters available and it would be useful if people could reply here if they can report success using any other adapter.

The adapter needs to be connected to the tablet, with the tablet operating in USB host mode (a powered hub will be needed). There is information on how to set that up for the N810 in this thread.

My configuration uses: the Nokia-supplied USB cable, a USB-A to USB-A gender changer, the standard A-to-B cable for my hub, the powered hub, the USB2VGA2 USB cable. I turn on USB host mode using:

Code:
echo host >/sys/devices/platform/musb_hdrc/mode
Installing the software

The software is currently hosted in my experimental repository: http://www.cobb.uk.net/NokiaIT/experimental.html.

To install the software, add a new Application Catalogue to the Application Manager with the following details:
  • Catalogue name: Graham's experimental repository
  • Web address: http://www.cobb.uk.net/apt/
  • Distribution: chinook
  • Components: experimental
  • Disabled: X

I recommend you keep this repository disabled except when you are actually installing stuff from it (nothing in that repository is normally expected to work!).

To install the software, enable the repository and install the following packages: sisusbvga-2.6.21, sisbit, xsisusb. Then disable the repository again.

Linux kernel driver

The kernel driver is installed as /lib/modules/2.6.21-omap1/sisusbvga.ko.

First, plug in the USB device (and enable USB host mode if you have not done that yet). Check using dmesg that the device has been seen by the kernel.

To start the driver, issue the following commands as root:

Code:
insmod /lib/modules/2.6.21-omap1/sisusbvga.ko
chmod 777 /dev/sisusbvga0
Check, using dmesg, that the driver has configured the device.

Image display

Static images can be displayed on the external screen using the sisbit program. At the moment, sisbit only supports images in the PPM format. A sample image is installed in /usr/share/sisbit/test.ppm.

This program can be run by the user, it does not need to run as root.

Code:
sisbit [-m mode] [-b bytesperpixel] [-s sisusbdevice] ppmfile
 where m=0,1,2,3 for 640x480, 800x600, 1024x768, 1280x1024
 and b=2 or 4 bytes per pixel
X-server

The X server is an integrated, non-configurable server, based on kdrive, just like the Nokia-supplied Xomap server. It is installed as /usr/sbin/Xsisusb and it can be run by the user, it does not need to run as root.

This server has null drivers for keyboard and mouse: no input or pointer events happen. It should be possible to send keyboard and mouse events using something like x11vnc (although it doesn't seem to work at the moment).

To see the list of options, use:

Code:
Xsisusb -help
I normally run the server with the following command line:

Code:
Xsisusb :1 -ac -screen 1024x768x24/32 -noreset
  • :1 -- this is the X display to use. Note that the normal screen is using display :0 so it is necessary to specify a different display.
  • -ac -- this turns off all access control (security) so anyone who has TCP/IP connectivity to the tablet can create windows on the external screen.
  • -screen 1024x768x24/32 -- this specifies the display mode to use. The following values are allowed: 640x480x16/16, 640x480x24/32, 800x600x16/16, 800x600x24/32, 1024x768x16/16, 1024x768x24/32, 1280x1024x16/16, 1280x1024x24/32.
  • -noreset -- do not reset the X-server when there are no clients left. This is because I typically do not run a window manager.

There are no ordinary X-windows programs available on the Internet Tablet, as far as I am aware, so to display something on the screen you need to use a remote system. The following command line will display a clock at the bottom right hand corner of the screen:

Code:
xclock -display 192.168.1.247:1 -update 10 -hands red -geometry 164x164-0-0 -norender
192.168.1.247 must be replaced with the IP address (or hostname) of the Internet Tablet.

Note: the Xsisusb server currently displays a . whenever a screen update occurs (it then copies the whole framebuffer to the device). This is to help me judge whether too many updates may be happening.

Last edited by Graham Cobb; 2008-05-01 at 11:57. Reason: Mark as obsolete
 

The Following 3 Users Say Thank You to Graham Cobb For This Useful Post:
Posts: 162 | Thanked: 351 times | Joined on Apr 2006 @ Cotswolds, UK
#4
x11vnc can be used to provide a way to make a mouse and keyboard work on the display. For example, I ran x11vnc on a remote Linux system using the command:

Code:
x11vnc -display 192.168.1.247:1 -shared -forever -scale 4/5 -allow 192.168. -solid -noshm
(the -noshm is important to use x11vnc remotely)

I then ran vncviewer on the same system (displaying on that system's display):

Code:
vncviewer 192.168.0.200:0
I could then use the remote system's mouse and keyboard to interact with applications displayed in the vncviewer window and on the VGA screen. Of course, this was very slow because lots of updates occur. Maybe with the Xsisusb server optimised and the vnc server running locally on the tablet this interaction could be made usable.
 
Benson's Avatar
Posts: 4,930 | Thanked: 2,272 times | Joined on Oct 2007
#5
Originally Posted by Graham Cobb View Post
There are no ordinary X-windows programs available on the Internet Tablet, as far as I am aware, so to display something on the screen you need to use a remote system.
I'm not sure what you mean by "ordinary X-windows programs"; as I'm sure you're aware, all maemo apps are X clients. I'd expect that by
Code:
export DISPLAY=:1
browser
for example, you could make the browser display on it. And certainly most ported programs should work, either by setting the DISPLAY environment variable, or by the -display (or equivalent) option, which may not exist in dedicated maemo apps.

I'd try it myself, but I don't have one of those adapters (yet).
 
pipeline's Avatar
Posts: 693 | Thanked: 502 times | Joined on Jul 2007
#6
Would synergy work with this? Without remoting the video it would probably be faster. It compiles on maemo without any modifications, although im not sure if a/the mouse cursor hack works with it.
 
Posts: 162 | Thanked: 351 times | Joined on Apr 2006 @ Cotswolds, UK
#7
Benson: Unfortunately Hildon apps seem to get very upset that they cannot find a sapwood server. By "ordinary X-windows programs" I mean non-Hildon. If anyone finds any programs which do work locally please reply to this topic so we can maintain a list.

pipeline: synergy probably works. The Xsisusb server supports Xtest and x2vnc (a similar program which uses a vnc server) works. However, every cursor movement causes the whole screen to be reloaded (several MB of data to send over the USB) so it isn't practical until the update optimisation is done.

Graham
 
Posts: 162 | Thanked: 351 times | Joined on Apr 2006 @ Cotswolds, UK
#8
Originally Posted by Graham Cobb View Post
Benson: Unfortunately Hildon apps seem to get very upset that they cannot find a sapwood server.
Some Hildon apps (I only tried gpe-calendar) will work if you run a sapwood server and a matchbox window manager. The following two commands seem to work:

Code:
/usr/lib/sapwood/sapwood-server --display :1 &
/usr/bin/matchbox-window-manager -display :1 -theme default -use_titlebar yes -use_desktop_mode plain -use_lowlight no -use_cursor yes -use_dialog_mode static &
You can then run gpe-calendar with:
Code:
DISPLAY=:1 gpe-calendar
However, it is not at all clear that Hildon apps are really what you want on an external VGA screen: there is no touchscreen, there is no way to get an application back once you have iconised it, there may be more real-estate available, etc.

It may be that we really want to create versions of some apps that use Maemo but do not use Hildon (but are compiled for armel, use the Maemo versions of libc, glib, etc.)!
 

The Following User Says Thank You to Graham Cobb For This Useful Post:
Posts: 3,841 | Thanked: 1,079 times | Joined on Nov 2006
#9
Originally Posted by Graham Cobb View Post
Of these, the slideshow viewer is my real goal as I am doing this because I would like to be able to show powerpoint presentations (for example at conferences) using the tablet.
That's the Holy Grail for me as well.. thanks for working on this! Now I've got to buy myself one of those adapters.
__________________
N800/OS2007|N900/Maemo5
-- Metalayer-crawler delenda est.
-- Current state: Fed up with everything MeeGo.
 
Benson's Avatar
Posts: 4,930 | Thanked: 2,272 times | Joined on Oct 2007
#10
Originally Posted by Graham Cobb View Post
Some Hildon apps (I only tried gpe-calendar) will work if you run a sapwood server and a matchbox window manager. The following two commands seem to work:

Code:
/usr/lib/sapwood/sapwood-server --display :1 &
/usr/bin/matchbox-window-manager -display :1 -theme default -use_titlebar yes -use_desktop_mode plain -use_lowlight no -use_cursor yes -use_dialog_mode static &
You can then run gpe-calendar with:
Code:
DISPLAY=:1 gpe-calendar
However, it is not at all clear that Hildon apps are really what you want on an external VGA screen: there is no touchscreen, there is no way to get an application back once you have iconised it, there may be more real-estate available, etc.

It may be that we really want to create versions of some apps that use Maemo but do not use Hildon (but are compiled for armel, use the Maemo versions of libc, glib, etc.)!
OTOH, Hildonized apps are here now; good to know they work. Search wmctrl and kciconsbox (from kotczarny, not sure on spelling) for help dealing with windows.

One of your goals was a presentation viewer; have you tried evince over X (with the presentation saved as a PDF)?
 
Reply


 
Forum Jump


All times are GMT. The time now is 19:18.