FORUMS

Google No Longer Sending Calendar SMS Notifications

In a not entirely surprising move, Google announced that it’s putting an … more

Enable Multi-Window Mode on M Developer Preview

What was not mentioned in yeterday’s keynote was Android M’s multi-window … more

I/O Summary: Google Cardboard Virtual Reality

One year ago, Google introduced cardboard. Amazingly enough, that was all it took to fire … more

Android M Preview Images – XDA TV

Android M preview images are available. That and much more news is covered by Jordan when he … more

[Kernel] X11 support in Ubuntu Touch for Galaxy Nexus (maguro)

Thanks Meter: 8
 
By dim319, Junior Member on 13th March 2013, 05:14 PM
Post Reply Subscribe to Thread Email Thread
As you know there is no support for X11 in Ubuntu Touch with default CM10 kernel. To be more correct: there is no VT (virtual terminal) devices in Ubuntu Touch at Android layer. So you can install X11 but you can't run it! I decided to fix it and made kernel with VT support. Now it's possible to run X11 server and your favorite desktop environment. However there are some bugs with it: qml-phone-shell (which is Touch Shell) renders at top level and X11 - at bottom. Still you can interact with both of them: Touch Shell on phone and X11 over VNC. Another bugs are green tint on phone display and slow x11 render.

X11 over VNC:
Attachment 1802110

Installation:
1. Get Kernel:
Attachment 1802111

2. Flash it with fastboot:
Code:
fastboot flash boot boot.img
3. And now you can install X11, x11vnc and desktop environment (e.g.: xfce4):
Code:
sudo apt-get install xorg x11vnc xubuntu-desktop
4. Also you need valid config for X11:
Attachment 1802127

5. Unrar it and put to device:
Code:
adb push 99-omap.conf /data/ubuntu/usr/share/X11/xorg.conf.d/99-omap.conf
6.Reboot phone

7. Set password for x11vnc server:
Code:
x11vnc -storepasswd <your_passwd>
8. Start x11vnc server:
Code:
sudo x11vnc -dontdisconnect -notruecolor -noxfixes -shared -forever -rfbport 5900 -bg -o /var/log/x11vnc.log -rfbauth /home/phablet/.vnc/passwd
Now you can connect to device with VNC Client.
The Following 4 Users Say Thank You to dim319 For This Useful Post: [ View ]
 
 
13th March 2013, 06:25 PM |#2  
Member
Thanks Meter: 17
 
More
How does this compare in performance to using a remote X server, as in this thread
http://forum.xda-developers.com/show....php?t=2161884

With that method I found most applications to perform decent except QtCreator.

Having to render the x server on the phone itself I would think wouldn't perform that fast.
13th March 2013, 07:38 PM |#3  
OP Junior Member
Thanks Meter: 8
 
More
Quote:
Originally Posted by BukaKing

Having to render the x server on the phone itself I would think wouldn't perform that fast.

That's true. X Server on phone slow enough and your way is better. Perhaps this one is alternative and require only VNC client or not require client at all. If you stop qml-phone-shell, X11 will be rendered to device. So this kernel is for testing purpose only.
Last edited by dim319; 15th March 2013 at 07:31 PM.
15th March 2013, 09:03 AM |#4  
Junior Member
Thanks Meter: 1
 
More
Thumbs up VNC?
Great achievement. Can you run Xserver on its own dedicated VT when VT switching is enabled? What is VNC needed for in this scenario?

I will report a bug at launchpad so that the upstream (ubuntu-touch) kernel enables VT switch.
15th March 2013, 02:24 PM |#5  
OP Junior Member
Thanks Meter: 8
 
More
Quote:
Originally Posted by eudoxos.eu

Can you run Xserver on its own dedicated VT when VT switching is enabled? What is VNC needed for in this scenario?

You mean to use another tty? That's possible, since there lot of them. VNC server and client will be same (e.g. x11vnc and UltraVNC).
16th March 2013, 08:59 AM |#6  
Junior Member
Thanks Meter: 1
 
More
Quote:
Originally Posted by dim319

VNC server and client will be same (e.g. x11vnc and UltraVNC).

The X11 server can't talk to the GPU directly, even without acceleration? In that case you could drop VNC completely.
16th March 2013, 12:18 PM |#7  
-schumi-'s Avatar
Member
Flag Munich
Thanks Meter: 39
 
More
Quote:
Originally Posted by dim319

qml-phone-shell (which is Touch Shell) renders at top level and X11 - at bottom.

You can stop phone-shell with
Code:
service ubuntu-session stop
I installed gnome on my SGS2 GT-I9100 (worked without modifying kernel from http://forum.xda-developers.com/show....php?t=2188621 ), now I can start gdm with:
Code:
service gdm start
I have some trouble with onscreen keyboard in gdm (onboard), but you can enable autologin in /etc/gdm/custom.conf
Code:
[daemon]
# Enabling automatic login
  AutomaticLoginEnable = true
  AutomaticLogin = phablet
With this /etc/X11/xorg.conf even the touchscreen works (in a laptop-touchpad way):
Code:
Section "ServerLayout"
    Identifier    "Layout0"
    Screen        "Screen0"
    InputDevice   "cyttsp-i2c" "CorePointer"
EndSection

Section "InputDevice"
        Identifier "cyttsp-i2c"
        Driver "multitouch"
#       MatchIsTouchpad "true"
#	Driver "evdev"
        Option "CorePointer" "true"
        Option "SendCoreEvents" "true"
        Option "Device" "/dev/input/event2"
        Option "Protocol" "Auto"
        Option "Rotate" "CW"
EndSection


Section "Device"
    Identifier    "Card0"
    Driver        "fbdev"
    Option        "fbdev" "/dev/graphics/fb0"
    # rotate screen to be in sync with touchpad orientation
    Option        "Rotate" "OFF" # OFF=0 CW=90 UD=180 CCW=270
EndSection


Section "Screen"
    Identifier    "Screen0"
    Device        "Card0"
EndSection
(don't forget to install xserver-xorg-input-multitouch for touchsceen!)


Unfortunately I messed up my packaging system (didn't work because no space left on device, now even apt-get install -f can't repair it ), so i will have to try again i guess...
Last edited by -schumi-; 16th March 2013 at 01:25 PM.
The Following 2 Users Say Thank You to -schumi- For This Useful Post: [ View ]
16th March 2013, 10:04 PM |#8  
Junior Member
Thanks Meter: 1
 
More
no VT needed?
Quote:
Originally Posted by -schumi-

You can stop phone-shell with

Code:
service ubuntu-session stop
I installed gnome on my SGS2 GT-I9100 (worked without modifying kernel from http://forum.xda-developers.com/show....php?t=2188621 ), now I can start gdm with:
Code:
service gdm start

Does that mean that I can run xorg on Nexus 10 with the official preview images - if I stop ubuntu-session, which occupies the only virtual terminal? (Sorry for perhaps a dumb question, I don't want to re-flash ubuntu-touch over CM again just to try that).
18th March 2013, 05:49 PM |#9  
OP Junior Member
Thanks Meter: 8
 
More
Quote:
Originally Posted by eudoxos.eu

The X11 server can't talk to the GPU directly, even without acceleration? In that case you could drop VNC completely.

The X11 works with framebuffer (which is fb0), not with GPU. You can use VNC to view X11 from phone to host. X11 can be viewed on phone without VNC.

Quote:
Originally Posted by -schumi-

You can stop phone-shell with

Code:
service ubuntu-session stop
I installed gnome on my SGS2 GT-I9100 (worked without modifying kernel from http://forum.xda-developers.com/show....php?t=2188621 ), now I can start gdm with:
Code:
service gdm start

I see. This is better than making new kernel, and require only correct config for xorg. I saw few solutions: one from BukaKing,one with Xvfb, mine kernel, and yours is best one!
24th April 2013, 06:38 PM |#10  
I've worked around the virtual terminal issue by linking PTMX in the past.


just make a new Virtual Terminal device
Code:
rm /dev/ptmx
mknod --mode 666 /dev/ptmx c 5 2
/bin/dbus-uuidgen --ensure
The Following User Says Thank You to AdamOutler For This Useful Post: [ View ]
Post Reply Subscribe to Thread
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes