-
Notifications
You must be signed in to change notification settings - Fork 314
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
VNC Support #20
Comments
I have thought about it, remote functionality is even mentioned in the On Thu, Jan 15, 2015 at 3:27 PM, lars18th notifications@github.com wrote:
|
Hi, I feel that VNC is the best option for several reasons:
Why not try it? |
Okay, okay, but I'll likely use tightvncserver sources, because I need On Fri, Jan 16, 2015 at 10:11 AM, lars18th notifications@github.com wrote:
|
Hi, I hope you can prepare a simple test demo of VNCServer. The reason is this other project: This is my idea: . COMPUTER ---HDMI------ (Video+Audio) --------> HDMI-2-IP ----> Android device ---> VNC The HDMI-2-IP is really cheap (less than $/€100) and can send the HDMI compressed to the network in mulcast. Then any network device can capture the video (plus audio!) at ~15fps. So, my suggestion is that your VNC server will be MODULAR to inject any video input using pipes (FIFO files). Perhaps you can read directly JPEG, or use VLC (or any other processor) to input raw data in you memory framebuffer. If you feel that one Android device don't have sufficient power to achieve all these tasks, then my suggestion is to support BLACK video in the VNC Server. Then you can use a VNC PROXY to inject the video, as this example: Keyboard+Mouse USB ---> Android VNC Server ---> VNC Proxy ---> Client And the VNC Proxy integrates the JPEG-IP video stream inside the VNC connection. You like this (crazy) idea? |
Nah, $70 is not "really cheap", it is "not expensive". Raspberry PI type A Also setting up two devices instead of just one is way too complicated for Don't expect test demo anytime soon. Maybe in a month or two, also I'm no On Tue, Jan 20, 2015 at 1:51 PM, lars18th notifications@github.com wrote:
|
Yes, you're right! However, a very simple vnc server (with black screen, it's say no-video) implemented using a simple library (perhaps based on the code I was commented) can be very useful. Please, think you on a remote software, running on another device, that likes to send Keyboard and/or Mouse commands over the USB. With this simple vnc server it's posible to use any Android device as a TUNNEL for send these commands. You don't need to create any new protocol to send this info. And the API it's the simple RFB protocol. I hope you think on create a "test" version based on the simple "hid-gadget-test.c", and send command using shmfb_command() function present in "uml_vncfb.c". But you can be confident, I will have patience. ;-) |
Stop sending me emails
|
STOP sending me emails
|
Hi Pelya, Related to the project of a VNC server... I try to execute this:
$ Xvfb :1 -screen 0 1024x768x24+32 &
$ xinput --list Then if you capture the ouput of 'xinput test' then you can process it in the Android device. You can send it using Netcat and pipes; or you can execute xinput in Android and connect to the X11 using TCP/IP (I test to execute xinput remotely and it works). You only need the binary of xinput inside the Android device! My idea is execute as a background of the X11 session the video capture of the remote screen. Then you don't need to implement any VCN server, only a new test-tool that can undesrtand the "xinput test" data. What you think? Can you mix "xinput" and "hid-gadget-test" ? PD: Some examples of outputs running xinput on remote machine:
All working in realtime! No problem at all! Only need to pipe this output to your test-tool. |
Yes it's pissible, but kind of complicated.
|
Hi Pelya, I hope you found free time soon. Thank you for your comments! Only one simple point for discuss: If you cross-compile the "xinput" tool, it will be a very good improvement. Perhaps you found quite complicated my proposal, but it's really simple. If we have "xinput" compiled for Android, we can do that in the Android shell: $ DISPLAY:remote_ip:1 xinput test 'Virtual core XTEST keyboard' | hid-gadget-test /dev/hidg0 xkeyboard & Then, all mouse/keyboard events in the remote X11 session will be processed by the "hid-gadget-test" tool. Please, note here the "xkeyboard" and "xmouse" parameters. These indicates to read standard input with xinput sintax. Please, if you point to me about how to cross-compile the xinput tool then I'll try! PD: At time, I'll experiment with "Linux Deploy" and a Debian running in the Android device. With this I can try the semi-native xinput tool. Next step is modify "hid-gadget-test" to understand xinput sintax (at least for keyboard events, less complex to implement that for mouse). |
Hi Pelya, Let me to explain my last test:
$ ssh -L 6002:127.0.0.1:6001 user@remote-pc
$ DISPLAY=:2 xinput test 'Virtual core XTEST keyboard' And I see all keyboard and mouse events. So for now (and until we have an standalone version of xinput for Android) we can execute these commands from the Linux shell. The next step is then do the pipe between the output of "xinput" and the input of "hid-gadget-test". PD: If you try to use the X11 VNC server running inside the Android device (Linux Deploy can execute one of this), you can't use the xinput tool. The reason is because the running VNC server is ThightVNC (Xvnc) and it don't includes the XInputExtension (you can check it with command "xdpyinfo"). So don't try to use this VNC server with xinput! |
Hi Pelya, Related to my idea of implementing a VNC server in a different device, I like to explain my advances:
For example:
Therefore, my idea is execute the SOCAT over a SSH connection to the Android device and "export" both devices: /dev/hidg0 & /dev/hidg1. Then it's possible to modify/compile/execute any tool in the remote machine. I'll try with the way of a virtual X11 session, capturing the keyboard and sending keypress to remote "/dev/hidg0". For the video, I like to execute root-window (background) video from VideoLAN or MPlayer. This video can be from a capture device or from the Android camera (several Apps for Video-2-IP exists). If you need the native SOCAT binary for Android, you can found one here: Please, comment what you think. ;-) |
I've fixed sources of USB Keyboard app, so you can compile it on generic On Sat, Feb 7, 2015 at 12:19 AM, lars18th notifications@github.com wrote:
|
Fixed in 1.10, camera size is hardcoded to 1280x720, maybe I'll do it cpnfigurable in the future. |
Could you advise where to find SDL_android.h ? Could not find this header among libsdl-dev packages.
|
… On Dec 2, 2017 11:19 AM, "kgara" ***@***.***> wrote:
Could you advise where to find SDL_android.h ? Could not find this header
among libsdl-dev packages.
remote-client # make
g++ -g -o usb-keyboard-client gfx.cpp vnc_server.cpp flash_kernel.cpp gui_settings.cpp vnc_keysyms.cpp input.cpp gui.cpp camera.cpp main.cpp touchpad.cpp scancodes.c -lSDL_ttf -lSDL_image `sdl-config --cflags` `sdl-config --libs` -I"/usr/lib/jvm/java-8-openjdk-amd64/include" -I"/usr/lib/jvm/java-8-openjdk-amd64/include/linux"
camera.cpp:2:25: fatal error: SDL_android.h: No such file or directory
compilation terminated.
Makefile:5: recipe for target 'usb-keyboard-client' failed
make: *** [usb-keyboard-client] Error 1
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
<#20 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAJewGTaBMTn_Cp-Gz8-YH4aZXC5GFe-ks5s8RYggaJpZM4DSzxs>
.
|
Hi,
I feel that this project will be more interesting if we can use the Android device as a PROXY for a physical hardware (like KVMIP server).
Here my proposal: Add VNC server tool.
To achieve this fast, in the project of UML (User Mode Linux), you can found a very simple VNC server for a virtual shared memory framebuffer. In this project the server isn't running with real vga, keyboard, mouse.
The source code is on this page: http://intgat.tigress.co.uk/rmy/shmfb/index.html
If you download the source (uml_fb-0.1.1.tar.gz), inside you have the "uml_vncfb.c" tool. This tool uses the well known LibVNCServer, and it's very lightweight. In the source you have isolated the function that sends the events of VGA, KEYBOARD and MOUSE. See this on the source:
So, if you replace these three calls with the code of hid-gadget-test utility you can implement a simple VNC server for this.
At time, the framebuffer can be a black window, but if you implement the camera capture, then you can implement the full remote functionality.
Someone likes to implement this?
The text was updated successfully, but these errors were encountered: