Related
Iv'e tried as many solutions to my problem, as I can find, but still have no adb interface. I have a huawei ascend M860(I know it's old), It's rooted, rom'ed with Playfulgod's CM7.2 rom, and the dalvik was moved to the sdcard. Before I installed this rom, I replaced ADW launcher, with GoLauncher(winzip). I like his rom, except for one thing, since I replaced it from cm6, my adb isn't working. I changed the rom back to cm6, and it started working again, put cm7 back, same problem. Today, I looked into my adbd file, and found alot of errors, and my block file, said I had so many bad blocks, I lost count! This is the end of my adbd file:
ro.debuggable service.adb.root Local port disabled
service.adb.tcp.port persist.adb.tcp.port %d /dev/android_adb OK
failed to allocate an apacket Calling send_connect
host %s:: Calling send_ready
Calling send_close
handle_packet() %d
Enqueue the socket
handle_packet: what is %08x?!
all adb sockets packets rwx usb sync sysdeps transport jdwp %s: select missing fde for fd %d
fd out of range (%d)
fd_table out of sync fde %p not created by fdevent_create()
bogus negative fd (%d)
bogus huuuuge fd (%d)
could not expand fd_table to %d entries
check_header(): invalid magic
check_header(): %d > MAX_PAYLOAD
unknown run_transport_disconnects: %p (%s)
%02x writex: %d %p %d: writex: %d %d %s
writex: %d ok
transport_write_action: on fd %d, error %d: %s
write_packet: %d [%08x %s] %08x %08x (%d) write_packet: %d error %d %d
readx: %d %p %d
readx: %d %d %s
readx: %d ok: transport_read_action: on fd %d, error %d: %s
read_packet: %d error %d %d
read_packet: %d ok: [%08x %s] %08x %08x (%d) transport: %p registered
cannot write transport registration socket
transport: %p init'ing for usb_handle %p (sn='%s')
transport: %p removed
transport: %p R- (ref=%d)
transport: %p kicking and closing
Transport is null Transport is null
cannot enqueue packet on transport socket transport: %p init'ing for socket %d, on port %d
device not found insufficient permissions for device more than one device more than one emulator more than one device and emulator device offline invalid device state cannot open transport registration socketpair cannot read transport registration socket transport: %p removing and free'ing %d
cannot open transport socketpair transport: %p (%d,%d) starting
transport: %p install %d
cannot create input thread cannot create output thread from_remote: starting thread for transport %p, on fd %d
from_remote: transport %p SYNC online (%d)
from_remote: failed to write SYNC apacket to transport %p from_remote: data pump for transport %p
from_remote: received remote packet, sending to transport %p
from_remote: failed to write apacket to transport %p from_remote: remote read failed for transport %p
from_remote: SYNC offline for transport %p
from_remote: thread is exiting for transport %p
to_remote: starting input_thread for %p, reading from fd %d
to_remote: failed to read apacket from transport %p on fd %d
to_remote: transport %p SYNC offline
to_remote: transport %p SYNC online
to_remote: trandport %p ignoring SYNC %d != %d
to_remote: transport %p got packet, sending to remote
to_remote: transport %p ignoring packet while offline
to_remote: thread is exiting for transport %p, fd %d
failed to read packet from transport socket on fd %d
remote local: write terminated
remote local: read terminated (message)
bad header: terminated (data)
remote local: terminated (data)
bad data: terminated (data)
server client transport: local %s init
cannot create local socket %s thread transport: server_socket_thread() starting
server: cannot bind socket yet
server: trying to get new connection from %d
server: new connection on fd %d
host client: connected on remote on fd %d
%s%d emulator- transport: usb
remote usb: 1 - write terminated
remote usb: 2 - write terminated
remote usb: read terminated (message)
remote usb: check_header failed
remote usb: terminated (data)
remote usb: check_data failed
Creating smart socket
cannot allocate socket SS(%d): created %p
Connecting to smart socket
SS(%d): ready
SS(%d): closed
LS(%d): discarding %d bytes
LS(%d): closed
LS(%d): closing
OKAY Connect_to_remote call
destination oversized LS(%d): connect('%s')
Calling remote_socket_ready
Calling remote_socket_enqueue
RS(%d): created
remote_socket_disconnect RS(%d)
Calling remote_socket_close
RS(%d): closed
LS(%d): created (fd=%d)
jdwp track-jdwp LS(%d): bound to '%s'
LS(%d): enqueue %d
LS(%d): not ready, errno=%d: %s
FAIL%04x SS(%d): enqueue %d
SS(%d): overflow
SS(%d): bad size (%d)
SS(%d): len is %d
SS(%d): waiting for %d more bytes
SS(%d): '%s'
unknown failure device offline (x) closed cannot create service socket pair cannot allocate stinfo cannot create service thread service thread started, %d:%d
invalid port
%d service.adb.tcp.port restarting in TCP mode port: %d
EXTERNAL_STORAGE /system/bin/vdc volume unmount force reboot failed: %s
0 restarting in USB mode
/tmp/update FAIL /tmp/update.begin OKAY adbd is already running as root
ro.debuggable 1 adbd cannot run as root in production builds
service.adb.root restarting adbd as root
/dev/ptmx [ cannot open /dev/ptmx - %s ]
[ trouble with /dev/ptmx - %s ]
- fork failed: %s -
- exec '%s' failed: %s (%d) -
/proc/%d/oom_adj adb: unable to open %s
tcp: local: localreserved: localabstract: localfilesystem: dev: framebuffer: recover: jdwp: log: shell: /sbin/sh -c /system/bin/sh - sync: remount: reboot: root: tcpip: usb: sync: failure: %s
mkdir("%s") -> %s
invalid data message: expected ID_DATA oversize data message invalid data message: expected ID_DONE invalid data message sync: waiting for command
command read failure invalid namelen filename read failure sync: '%s' '%s'
unknown command sync: done
not enough memory to create new JDWP process
could not create fdevent for new JDWP process
oops, the JDWP process died really quick
weird accept() failed on jdwp control socket: %s
%d
%04x looking for pid %d in JDWP process list
search failed !!
%s: too many pending JDWP connection for pid %d
%s: socket pair creation failed: %s
weird unknown JDWP process failure: %s
weird end-of-stream from unknown JDWP process
could not decode JDWP %p PID number: '%s'
Adding pid %d to jdwp process list
terminating JDWP %d connection: %s
ignoring unexpected JDWP %d control socket activity (%d bytes)
remove pid %d to jdwp process list
trying to write to JDWP pid controli (count=%d first=%d) %d
sending new file descriptor to JDWP %d failed: %s
sent file descriptor %d to JDWP process %d
could not create vm debug control socket. %d: %s
could not bind vm debug control socket: %d: %s
listen failed in jdwp control socket: %d: %s
could not create fdevent for jdwp control socket
jdwp control socket started (%d)
/dev/graphics/fb0 /proc/mounts %255s %255s %*s %*s %d %d
/system none remount succeeded
remount failed: %s
usb_kick
[ usb_thread - opening device ]
/dev/android_adb /dev/android [ opening device succeeded ]
[ usb_thread - registering device ]
[ read %d ]
ERROR: n = %d, errno = %d (%s)
[ write %d ]
[ done ]
/dev/android_adb_enable failed to open /dev/android_adb_enable
[ usb_init - starting thread ]
cannot create usb thread /dev/log/ /dev/socket/ property_service :
/dev/pts/%u 0123456789ABCDEF Inf 0123456789abcdef (null) NaN 0 . Infinity inf inity nan Unknown error: Operation not permitted No such file or directory No such process Interrupted system call I/O error No such device or address Argument list too long Exec format error Bad file number No child processes Try again Out of memory Permission denied Bad address Block device required Device or resource busy File exists Cross-device link No such device Not a directory Is a directory Invalid argument File table overflow Too many open files Not a typewriter Text file busy File too large No space left on device Illegal seek Read-only file system Too many links Broken pipe Math argument out of domain of func Math result not representable Resource deadlock would occur File name too long No record locks available Function not implemented Directory not empty Too many symbolic links encountered No message of desired type Identifier removed Channel number out of range Level 2 not synchronized Level 3 halted Level 3 reset Link number out of range Protocol driver not attached No CSI structure available Level 2 halted Invalid exchange Invalid request descriptor Exchange full No anode Invalid request code Invalid slot Bad font file format Device not a stream No data available Timer expired Out of streams resources Machine is not on the network Package not installed Object is remote Link has been severed Advertise error Srmount error Communication error on send Protocol error Multihop attempted RFS specific error Not a data message Value too large for defined data type Name not unique on network File descriptor in bad state Remote address changed Can not access a needed shared library Accessing a corrupted shared library .lib section in a.out corrupted Attempting to link in too many shared libraries Cannot exec a shared library directly Illegal byte sequence Interrupted system call should be restarted Streams pipe error Too many users Socket operation on non-socket Destination address required Message too long Protocol wrong type for socket Protocol not available Protocol not supported Socket type not supported Operation not supported on transport endpoint Protocol family not supported Address family not supported by protocol Address already in use Cannot assign requested address Network is down Network is unreachable Network dropped connection because of reset Software caused connection abort Connection reset by peer No buffer space available Transport endpoint is already connected Transport endpoint is not connected Cannot send after transport endpoint shutdown Too many references: cannot splice Connection timed out Connection refused Host is down No route to host Operation already in progress Operation now in progress Stale NFS file handle Structure needs cleaning Not a XENIX named type file No XENIX semaphores available Is a named type file Remote I/O error Quota exceeded No medium found Wrong medium type Operation Canceled Required key not available Key has expired Key has been revoked Key was rejected by service Owner died State not recoverable Stupid C library hack !! abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 :+-._ Local time zone must be set--see zic manual page posixrules ,M4.1.0,M10.5.0 localtime /system/usr/share/zoneinfo / /system/usr/share/zoneinfo/zoneinfo.idx /system/usr/share/zoneinfo/zoneinfo.dat TZ persist.sys.timezone -0 %d %2d %H:%M:%S %e-%b-%Y + - %4d %04d %c Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec January February March April June July August September October November December Sun Mon Tue Wed Thu Fri Sat Sunday Monday Tuesday Wednesday Thursday Friday Saturday %a %b %e %T %Y AM PM %a %b %e %H:%M:%S %Z %Y /acct/uid/%d/tasks w+ <unknown> /proc/self/exe /dev/urandom ANDROID_PROPERTY_WORKSPACE HTC_RIL /dev/log/main /dev/log/radio /proc/cpuinfo processor /proc/stat cpu /proc/meminfo MemTotal:
Is there a problem that's rom related, and why does my adb interface only show in device mgr, when my phone's in cwm recovery?
Reverse VNC Server
VNC server which is aimed to reverse connection (however it supports direct connections too).
Reverse connection means that server connects to client. I.e. VNC viewer should be run in listen mode. This is usefull when device, which screen you are going to send someone, has no public IP address.
For correct work device should be ROOTed
Main reuqirements were:
- reverse connection stability (ability to reconnect at connection lost, none of free VNC servers can do this)
- support most devices (it uses frame buffer as screen get method; input events implemented via input tool execution, so it should work everywhere)
Installation:
- install apk file from attachment. E.g.
adb install ReverseVNCServer.apk
Execution:
You can start VNC server via GUI or via command line.
Starting from command line:
Command line parameters (optional):
-c Reverse connection host and port
-t tries : Number of tries for reverse connection
-r : reconnect on reverse connections lost
-p localport : Local port for incoming connections. Default if 5901
-h : print this help
-v : view only
-s scale : scale percent (default is 100)
-d framebuffer device (default is /dev/graphics/fb0)
-z zoom : specify zoom of cursor coordinates in precents
E.g.
adb shell /data/data/org.arcsinx.reversevncserver/lib/libreversevncserver.so -c 192.168.1.34:5500 -r -p 5901
Hotkeys from VNC viewer:
- left => left
- right => right
- down => down
- up => up
- backspace => back
- ESC => back
- Home => Home
- PgUp => Menu
- F3 => Search
- F10 => Power
- F11 => Disconnect
- F12 => Shutdown application
Sources:
- Location
github.com/ArcsinX/ReverseVNCServer
- How to build
1) run ndk-build in top directory of checked out sources.
2) run update_libs.sh script
3) Import top of sources directory as android application project in Eclipse
4) Run from Eclipse to create apk file in bin directory
TODO:
- VNC password protection
- GUI improve (needed to make it not so ugly)
Screenshots
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
DOWNLOAD
View attachment ReverseVNCServer.apk
Added GUI and apk file now available for download.
Great idea! Unfortunately it does not work on my Note 3:
Code:
Initializing framebuffer device /dev/graphics/fb0...
Screen info: xres=1080, yres=1920, xresv=1080, yresv=3840, xoffs=0, yoffs=0, bpp=32
mmap failed
dustbln said:
Great idea! Unfortunately it does not work on my Note 3:
Click to expand...
Click to collapse
Thanks for reply.
I have changed a bit frame buffer device initialization and added more info ouput before mmap() call.
Could you try to run it one more time and one more time provide output before mmap failure?
Application updated:
- Added scaling
- Added view only mode
- Built-in NoVNC (for connections via browser)
- Some GUI improvements: landscape view, connection strings
Govorun said:
Thanks for reply.
I have changed a bit frame buffer device initialization and added more info ouput before mmap() call.
Could you try to run it one more time and one more time provide output before mmap failure?
Click to expand...
Click to collapse
Thanks for you fast response! Unfortunately it still fails
Code:
Initializing framebuffer device /dev/graphics/fb0...
Screen info: xres=1080, yres=1920, xresv=1080, yresv=3840, xoffs=0, yoffs=0, bpp=32
line_length=4352, fb_size=16711680, align_size(fb_size)=16711680
mmap failed
Failed to initialize frame buffer
dustbln said:
Unfortunately it still fails
Click to expand...
Click to collapse
I reproduced this problem: set fb_size to yours and try mmap with it. It seems mmap fails for thus big values (in case of high resolution).
So I replaced mmap call with malloc + read. Now it should work. Updated version attached in the first post.
Govorun said:
I reproduced this problem: set fb_size to yours and try mmap with it. It seems mmap fails for thus big values (in case of high resolution).
So I replaced mmap call with malloc + read. Now it should work. Updated version attached in the first post.
Click to expand...
Click to collapse
We're getting closer :good:
Code:
User options set:
Reverse connection string: 192.168.1.X:XXXX
Reconnect on reverse connection lost
Local port: 5901
Initializing framebuffer device /dev/graphics/fb0 ...
Screen info:
xres=1080, yres=1920, xresv=1080, yresv=3840, xoffs=0, yoffs=0, bpp=32
line_length=4352, fb_size=16711680
Initializing server...
07/03/2014 15:06:46 Listening for VNC connections on TCP port 5901
07/03/2014 15:06:46 Listening for VNC connections on TCP6 port 5900
07/03/2014 15:06:46 Listening for HTTP connections on TCP port 5801
07/03/2014 15:06:46 URL http://localhost:5801
07/03/2014 15:06:46 Listening for HTTP connections on TCP6 port 5800
07/03/2014 15:06:46 URL http://localhost:5800
Initializing VNC server:
width: 1080
height: 1920
bpp: 32
port: 5901
scale: 100
07/03/2014 15:06:46 Making connection to client on host 192.168.1.X port XXXX
07/03/2014 15:06:46 other clients:
07/03/2014 15:06:46 Normal socket connection
Framebuffer read failed: No such device
Failed to update screen
dustbln said:
Code:
Initializing framebuffer device /dev/graphics/fb0 ...
...
Framebuffer read failed: No such device
Click to expand...
Click to collapse
This is very strange, that "No such device" error appears at try to read framebuffer device (not at opening it).
You can try command
adb pull /dev/graphics/fb0
This command should create local file fb0. If this command fails then something wrong with framebuffer device:
- maybe on Note 3 framebuffer devices do not work
- maybe some other device should be used. You can list all you graphics devices with command adb shell ls /dev/graphics/
On my device I have two framebuffer devices: fb0 (for touchscreen) and fb1 (for HDMI connected displays)
If you able to find framebuffer device for which adb pull will not fail then you can try to start VNC server with this device passing extra -d option.
E.g. adb shell /data/data/org.arcsinx.reversevncserver/lib/libreversevncserver.so -c 192.168.1.34:5500 -r -p 5901 -d /dev/graphics/fb1
Anyway I am going to implement one more screen capture mode (Surface Flinger). Maybe then It will work on your device too.
Govorun said:
This is very strange, that "No such device" error appears at try to read framebuffer device (not at opening it).
You can try command
adb pull /dev/graphics/fb0
This command should create local file fb0. If this command fails then something wrong with framebuffer device:
- maybe on Note 3 framebuffer devices do not work
- maybe some other device should be used. You can list all you graphics devices with command adb shell ls /dev/graphics/
On my device I have two framebuffer devices: fb0 (for touchscreen) and fb1 (for HDMI connected displays)
If you able to find framebuffer device for which adb pull will not fail then you can try to start VNC server with this device passing extra -d option.
E.g. adb shell /data/data/org.arcsinx.reversevncserver/lib/libreversevncserver.so -c 192.168.1.34:5500 -r -p 5901 -d /dev/graphics/fb1
Anyway I am going to implement one more screen capture mode (Surface Flinger). Maybe then It will work on your device too.
Click to expand...
Click to collapse
I doubt reading the framebuffer works on stock 4.4 Samsung Galaxy Note 3 ROM. Tried all of the devices and did some google research without any positive result.
Anyway. keep up the great work as a reliable RVNC Service was just missing on Android! :good:
Code:
# cat /proc/fb
0 mdssfb_90000
1 mdssfb_70000
2 mdssfb_a0000
# fbset -fb /dev/graphics/fb0
mode "1080x1920-0"
# D: 1.114 MHz, H: 0.865 kHz, V: 0.446 Hz
geometry 1080 1920 1080 3840 32
timings 898000 36 162 3 13 10 2
accel false
rgba 8/24,8/16,8/8,8/0
endmode
# cat /dev/graphics/fb0
cat: /dev/graphics/fb0: No such device
Hi!
I Cant connect to my LG G2 with rooted Cloudy G3 2.1 - Tight VNC said - Connection lost because server cancel connection
If i try connect via browser - Java block app, and on jre 8 - security wont change lower than "hight".
WebSocket wont work WebSock error: [object Event]
How to connect?
If I use APP Odroid VNC SERVER - connect stable, but i see distortion screen.
Hi !
it have an error.
unsigned int *ReadFb()
{
if (UpdateFbInfo() == -1)
return NULL;
#ifndef USEMMAP
if (lseek(fbfd, SEEK_SET, 0) == -1)
{
perror("lseek failed for framebuffer device\n");
return NULL;
}
if (read(fbfd, fbmmap, fbsize) == -1)
{
perror("Framebuffer read failed");
return NULL;
}
#endif
return (unsigned int *)fbmmap;
}
with samsung galaxy tab 3 it work good. but with samsung galaxy tab 2 and nexus 10 it out perror("Framebuffer read failed"); and send buffe black to client.
can you help me fix it ?
Thank you
vanducnkt said:
perror("Framebuffer read failed");
Click to expand...
Click to collapse
Hi. Can you say what exact message appears? I mean that perror() call prints out error description.
Also can you provide output of the following command on your device?
Code:
ls /dev/graphics/
E.g. on your pc to which your device connected
Code:
adb shell ls /dev/graphics/
P.S.
Btw, I have not update apk for sometime (I am going to update APK today.)
Update:
I have updated APK in the first post, try it first.
godlatro1 said:
Hi!
If i try connect via browser - Java block app, and on jre 8 - security wont change lower than "hight".
Click to expand...
Click to collapse
Hi.
If your browser blocks java applet, you can use java-script only viewer by clicking button "Click here to connect using noVNC" at the bottom of browser page (circled red on attached picture, click to enlarge)
SurfaceFlinger implementation
Hi,
Is the version of this app with the SurfaceFlinger implementation released yet? I'm not able to use the framebuffer on my device.
Thanks,
Todd
Hi there, I know this is an old thread but I am just discovering it now. I tried to look up the github link but it doesn't appear that it's available anymore. Do you know if the source code is published anywhere right now? Thank you!
Hey all together,
after a lot of searching and using Google for days with no really good results i created now my own reg-ex functions to parse some Android shell outputs. So i only want to share my functions coz i dun found something like that.
If u create a Android File-Explorer or something else like this u'll have to get the ls and df output in some situations, if u use C# like me this will be great for u.
here are my functions:
(command) ls -l
(command) busybox ls -aFl
Code:
^(\s{0,}(?<INODE>[0-9]{1,})\s{1,})?(?<TYPE>(-|b|c|d|l|s|p){1})(?<PERM>((-|r|s|t|w|x){9}|[0-9]{4}))\s{0,}(?<INCLUDES>([0-9]){1,}\s{1,})?(?<OWNER>.*?)\s{1,}(?<GROUP>.*?)\s{0,}(?<ID>([0-9]){1,},)?\s{1,}(?<SIZE>([0-9]){1,})?\s{1,}(?<DATE>.*?)\s{1,}(?<TIME>([0-9]{2}.[0-9]{2}(:[0-9]{2})?|[0-9]{4}))\s{1}(\e\[([0-9]{1,};)?[0-9]{1,}m){0,}(?<NAME>.*?)(\e\[([0-9]{1,};)?[0-9]{1,}m){0,}(\s{1,}->\s{1,}(\e\[([0-9]{1,};)?[0-9]{1,}m){0,}(?<SYMLINK>.*?)(\e\[([0-9]{1,};)?[0-9]{1,}m){0,})?(?<SUBTYPE>(\*|\/){1})?$
u can use it like
Code:
// INODE, TYPE, PERM, INCLUDES, OWNER, GROUP, ID, SIZE, DATE, TIME, NAME, SYMLINK, SUBTYPE
GroupCollection groups = Regex.Match("the ls -li or busybox -aFli output line by line", @"^(\s{0,}(?<INODE>[0-9]{1,})\s{1,})?(?<TYPE>(-|b|c|d|l|s|p){1})(?<PERM>((-|r|s|t|w|x){9}|[0-9]{4}))\s{0,}(?<INCLUDES>([0-9]){1,}\s{1,})?(?<OWNER>.*?)\s{1,}(?<GROUP>.*?)\s{0,}(?<ID>([0-9]){1,},)?\s{1,}(?<SIZE>([0-9]){1,})?\s{1,}(?<DATE>.*?)\s{1,}(?<TIME>([0-9]{2}.[0-9]{2}(:[0-9]{2})?|[0-9]{4}))\s{1}(\e\[([0-9]{1,};)?[0-9]{1,}m){0,}(?<NAME>.*?)(\e\[([0-9]{1,};)?[0-9]{1,}m){0,}(\s{1,}->\s{1,}(\e\[([0-9]{1,};)?[0-9]{1,}m){0,}(?<SYMLINK>.*?)(\e\[([0-9]{1,};)?[0-9]{1,}m){0,})?(?<SUBTYPE>(\*|\/){1})?$").Groups;
string INode = groups["INODE"].Value;
string Type = groups["TYPE"].Value;
string SubType = groups["SUBTYPE"].Value;
string Perms = groups["PERM"].Value;
string Includes = groups["INCLUDES"].Value;
string Owner = groups["OWNER"].Value;
string Group = groups["GROUP"].Value;
string Id = groups["ID"].Value;
string Size = groups["SIZE"].Value;
string Date = String.Join(" ", groups["DATE"].Value, groups["TIME"].Value);
string Name = groups["NAME"].Value;
string[] extTmp = Name.Split('.');
string FileExtension = extTmp[extTmp.Length - 1];
string SymPath = groups["SYMLINK"].Value;
(command) df
(command) busybox df -Pakh
Code:
^(df:\s{1,})?(?<NAME>(.*?))(:\s{1,}(.*?))?(\s{1,}(?<SIZE>([0-9]{1,}[a-zA-Z\.]?){1,}))?(\s{1,}(?<USED>([0-9]{1,}[a-zA-Z\.]?){1,}))?(\s{1,}(?<FREE>([0-9]{1,}[a-zA-Z\.]?){1,}))?(\s{1,}(?<BLOCKSIZE>([0-9]){1,}))?(\s{1,}(?<USE>([0-9]{1,})%))?(\s{1,}(?<PATH>(.*?)))?$
u can use it like
Code:
GroupCollection groups = Regex.Match("the df or df -Pakh output line by line", @"^(df:\s{1,})?(?<NAME>(.*?))(:\s{1,}(.*?))?(\s{1,}(?<SIZE>([0-9]{1,}[a-zA-Z\.]?){1,}))?(\s{1,}(?<USED>([0-9]{1,}[a-zA-Z\.]?){1,}))?(\s{1,}(?<FREE>([0-9]{1,}[a-zA-Z\.]?){1,}))?(\s{1,}(?<BLOCKSIZE>([0-9]){1,}))?(\s{1,}(?<USE>([0-9]{1,})%))?(\s{1,}(?<PATH>(.*?)))?$").Groups;
string Name = groups["NAME"].Value;
string Size = groups["SIZE"].Value;
string Used = groups["USED"].Value;
string Free = groups["FREE"].Value;
string BlockSize = groups["BLOCKSIZE"].Value;
string Use = groups["USE"].Value;
string Path = groups["PATH"].Value;
Hope this helps someone
Regards,
k1ll3r8e
Using Python, I want a client program that uses UDP to talk to a server about states of the union. The client can ask the server for the capital and population of states.
The protocol is specified here --> http://mypage.iu.edu/~gdweber/info/i320/lab/01-sotu/sotu_protocol_v2.2.txt
The client should have a friendly user interface. It should not just "forward" user input to the server and vice versa. I have a server to run the client with but I'm having difficulties putting it all together.
http://mypage.iu.edu/~gdweber/info/i320/lab/01-sotu/sotu_server_v2_1.py
Using " $ python3 sotu_server.py 〈hostname〉 〈port〉 " to run the server
string methods strip() and split() to "parse" the messages.
"\r\n" for the carriage-return, line-feed sequence to terminate a message
from socket import *
import sys
def start_client (host, port):
"""Start running the client, and connect to the server on
the given host and port."""
sock = socket(family=AF_INET, type=SOCK_STREAM)
print("Created socket")
sock.connect((host, port))
print("Connected to server on %s, %d" % (host, port))
try:
while True:
mesg = input("Send a message: ") + "\r\n"
mesg_bytes = mesg.encode()
bytecount = sock.send(mesg_bytes)
print("Message sent (%d of %d bytes)" %
(bytecount, len(mesg_bytes)))
answer = sock.recv(512)
if len(answer) == 0:
print("Server closed connection.")
sock.close()
return
else:
print(answer.decode())
except KeyboardInterrupt:
sock.shutdown(SHUT_RDWR)
sock.close()
print("Closed connection due to keyboard interrupt")
except Exception as e:
sock.close()
print("Caught an exception: %s" % e)
def usage ():
print("Usage: python3 socket_stream_client.py host port")
print("where (host, port) is the address of the server.")
if __name__ == "__main__":
args = sys.argv
if len(args) == 3:
host = args[1]
try:
port = int(args[2])
start_client(host, port)
except ValueError:
print("Sorry, %s is not a valid port number." % args[2])
usage()
sys.exit(1)
else:
usage()
sys.exit(2)
Backstory: I have an old (2008?) vizio VA22L FHDTV10T. 1920x1080 60hz panel. I want to connect it to my pc, but if I use anything other than the VGA port (eg HDMI) it overscans and applies all this crap to the image. It's clear and crisp and beautiful if I use VGA (tested with old VGA gpu), but alas, my pc doesn't have a VGA output. (Yes I tried all the settings, no they don't fix it. Yes, I tried adjusting the graphics driver settings, no they haven't fixed it without being a PITA every time I turn the tv off.)
On to the important stuff: I can access the tv with a serial connection via "Service port" and can see a Das U-boot boot sequence and issue commands. I just don't know linux and can't get anywhere past the help menus. If someone could guide me on modifying this thing I'd be rather grateful!
For starters, here's the output when I first turn it on whilst pc is plugged in via VGA, wait for it to finish booting, and press enter.
PS: using PuTTY @ 115200baud
Code:
▒Boot-
Bank 0 : DQS(3 ~ 42), Size 39, Middle = 22
Bank 1 : DQS(-1 ~ 41), Size 42, Middle = 20
DRAM is set as 16 bits
Boot
Starting C main
0x00001b04
LZHS addr:0x00001b80
LZHS size:0x0002fcd8
LZHS checksum:0x00000084
U-Boot 1.1.4 (Oct 9 2009 - 12:58:21)
U-Boot code: 00D00000 -> 00D2FCD8 BSS: -> 00D7430C
RAM Configuration:
Bank #0: 00000000 64 MB
Detect flash #0: MXIC(25L320)
Flash: 4 MB
0.0.0.0
In: serial
Out: serial
Err: serial
DramSizing: 0x02000000
Finding Image...
Decompression image to 0x00010000...
Booting
Nucleus Heap is at 0x00603208(0x00be5f80)
Main task stack is at 0x00603218 (0x00002000)
============================================
Memory for Image at 0x00010000(0x005eda08):
Memory for OSAI at 0x00605228(0x00ae5f80)
Memory Reserved for ARM lib at 0x010ec000(0x00100000)
Memory Reserved for FBM at 0x011ec000(0x00e10000)
Memory Reserved for MMU at 0x01ffc000(0x00004000)
Find panel index 102(PANEL_LG_LM215WF1) from GPIO
TunerInit.....................MUSBStack-S v2.303 Init pBase = 0x20029000.
Image ROBase:0x0001099c ROLimit:0x004483f4
Protect readonly memory from 0x00000000 to 0x004483e8
MMU protect: 0x01ffc000 ~ 0xfffffff8
Successed to initialize Memory Intrusion Detection!
DTV>Detect flash #0: MXIC(25L320)
[SRM] DISP CTRL 0 0 0 0
[SRM] DISP CTRL 0 1 0 0
[DM] VT = 1111 (1111)
DM Panel V(1089 1099 1200) H(1999 2175 2239) P(120000000 143472527 175000000) F(50 75)
DM H MIN(1800 2048) H MAX(2624)
DM OK V(1111) H(2176) F(60)
[DM] VT = 1111 (1111)
DM OK HS(254)
[DM] VT = 1111 (1111)
DM Panel V(1089 1099 1200) H(1999 2175 2239) P(120000000 143472527 175000000) F(50 75)
DM H MIN(1800 2048) H MAX(2624)
DM OK V(1111) H(2176) F(60)
[DM] VT = 1111 (1111)
DM OK HS(254)
Watchdog enable:405000000
W: 1920 H: 1080 Rate: 60 DSH:800 DSV: 800 USH: 800 USV: 800 VSP: 0 TUNE: 0 bStackSize: 1
[Help]
cd: Change current directory
do: Repeat command
alias(a): Add/Show current alias
read(r): Memory read(word)
write(w): Memory write(word)
basic_(b): basic command
mtktool(0): mtktool command
customer(cust): Get customer name
pmx: pmx (scpos) command
musb: MUSB command
sif: Sif command
eeprom: Eeprom command
nim: Nim command
ir: Ir command
rtc(rtc): RTC commands
aud: Aud command
nptv(n): Nptv command
dbs: Dbs command
dmx(d): Demux commands
memtest: Memory test
pdwnc(pdwnc): PDWNC commands
bwt: BWT command
gpio: Gpio interface
DTV>
Again, thanks in advance!
Mmm, so right after posting, I figured out that I had to change directory to one of the commands listed in the first help in order to issue commands from the sub-help of each one instead of using them as arguments. EG: cd pmx [enter] pattern 1 [enter] would turn on the test pattern instead of pmx pattern or pmx pattern 1 or pmx -p and other such variants. There's probably a guide for this out there somewhere but most of my searches just turned up historical info on German submarines... Oh, and this thread which is kinda along the same lines: https://forum.xda-developers.com/android/software/rooting-mediatek-based-linux-smart-tv-t3150281
I guess now I just have to find which setting(s) fix my apparent problem, then I'll need to append the firmware, assuming I can't do it from the serial console. And that'll be the part I definitely need help with.
Maybe I can just use commands to do this, but I don't know what most of this is, and my searches aren't yielding much... That said, I can run the commands and post back the results since I don't expect anyone to have this same model.
Here's the menu and submenus with my comments in quotes:
Code:
cd: Change current directory "Figured out this one"
do: Repeat command "Self explanatory"[HIDE]
Usage: do loop cmd ex: do 10 read 0x200 0x10
CLI Command Return Value (-1)[/HIDE]
alias(a): Add/Show current alias "not quite sure what this does"
read(r): Memory read(word) "I guess these are self explanatory? no output if I just run the commands"
write(w): Memory write(word)
basic_(b): basic command [HIDE]
[Help]
stop: Stop RS232 transparent mode
sv: System mode detection
version(ver): System version/build date
reboot: System reboot/restart
getpllclk(gpc): close loop, gpc [cpu|sys|ps|vo|adc|b2r|apl1|apl2] [[band num]]
backup(bk): backup command
[/HIDE]
mtktool(0): mtktool command "the help kinda explains?[HIDE]
[Help]
et: Enter RS232 transparent mode
ft: Set RS232 factory mode
st: Stop RS232 transparent mode[/HIDE]
customer(cust): Get customer name "returns [TPV] and nothing more"
pmx: pmx (scpos) command "looks promising?"[HIDE]
[Help]
enable(e): enable/disable LVDS
pattern(p): enable/disable test pattern
list(l): show panel list
query(q): dump pmx(scpos) info
set(s): set parameter
[/HIDE]
musb: MUSB command "probably controls the usb port on the back?" [HIDE]
[Help]
debug_on(d_on): MUSB.d_on
debug_off(d_off): MUSB.d_off
debug_level(d_l): MUSB.d_l
init(i): MUSB init
speed(speed): MUSB speed
hmsd(hm): MUSB host msd test
htst(ht): MUSB host compilance test
suspend(s): USB bus suspend
resume(r): USB bus resume
[/HIDE]
sif: Sif command "I know what edid is basically, maybe I could make the computer think this is a non-hdtv type connection?"[HIDE]
[Help]
init(i): Sif init
read(r): Sif read
write(w): Sif write
writebyte(wb): Sif write byte
hdcp: Sif write HDCP SRAM default value
rhdcp: Sif read HDCP
wbhdcp: Sif write byte to HDCP
rbhdcp: Sif read byte from HDCP
wallhdcp(wah): Sif write all 320 bytes to HDCP
rallhdcp(rah): Sif read all 320 bytes from HDCP
edid: Sif write EDID default value
redid: Sif read EDID
walledid(wae): Sif write all 256 bytes to EDID
ralledid(rae): Sif read all 256 bytes from EDID
tunerread(tr): Tuner I2C No-sub-addr read
tunerwrite(tw): Tuner I2C No-sub-addr write
multipleread(mr): Multiple sub-addr I2C read
multiplewrite(mw): Multiple sub-addr I2C write
scan1(s1): Scan BUS0 (System I2C)
scam2(s2): Scan BUS1 (Tuner I2C)
sif_x_read(xr): fully functional sif read
sif_x_write(xw): fully functional sif write
edidreadbyte(edidrb): edid read byte
[/HIDE]
eeprom: Eeprom command "there's an 8 pin eeprom on the mainboard" [HIDE]
[Help]
readbyte(rb): eeprom.rb [eeprom-offset]
writebyte(wb): eeprom.wb [eeprom-offset] [byteval]
uartwrite(uw): Get data from Uart and write to eeprom.[/HIDE]
nim: Nim command "I assume this controls the onboard tv tuner"[HIDE]
[Help]
id: Set Tuner ID
ver: Tuner version
dtd: Nim dtd
atd: Nim atd
d_l: Set Debug Level
go: Start Nim
up: Channel Up
down: Channel Down
channel: Channel Set
freq: Freq Set
init(i): Nim init
open(o): Nim open
close(c): Nim close
setcable(sc): Nim set cable parameters
setBW(sbw): Nim set BW
getcablelevel(gclv): Nim get cable signal level
getcablesignal(gcsc): Nim get cable signal parameter
getcablelock(gclk): Nim get cable lock status
detachmw(dm): Nim Detach MW
detachi2c(dei2c): Detach Tuner I2C
[/HIDE]
ir: Ir command "InfraRed as in the remote I s'pose" [HIDE]
rx(rx): RX commands
[/HIDE]
rtc(rtc): RTC commands "returns [HELP] and nothing more. Real Time Clock I'd wager unless that has another meaning"
aud: Aud command "onboard speakers and other audio functions"[HIDE]
[Help]
ptsdly(ptsd): Delay audio startup by increasing PTS
dd_banner(banner): DD banner turn on for DD Test
spdif: spdif command
adac: adac command
interdac: inter dac command
dsp: dsp command
uop: audio uop
cfg: configuration
t: test
Clip: Aud Clip
factory(fac): Factory mode
[/HIDE]
nptv(n): Nptv command "not the foggiest idea of what these do."[HIDE]
[Help]
Ycproc(ycproc): YCPROC Command
TVD(tvd): TVD Command
NR(nr): NR Command
SCART(scart): SCART Command[/HIDE]
dbs: Dbs command "not this either"[HIDE]
[Help]
init(i): Dbs init
print(p): Dbs print at once
reset(r): Dbs reset[/HIDE]
dmx(d): Demux commands "This looks like the solution, except... the one command does nothing..."[HIDE]
[Help]
query(q):[/HIDE]
memtest: Memory test[HIDE][Help]
run(r): Memory test[/HIDE]
pdwnc(pdwnc): PDWNC commands "another one that just returns [Help]. no idea what it is"
bwt: BWT command "BandWidth Testing. not what I'm looking for I don't think"[HIDE]
[Help]
init: BandWidth Testing Preliminaries
testing: BandWidth Testing (BWT)
report: BandWidth Testing Report
chgchannel: Change Channel Number
dtv: BWT for DTV
atv: BWT for ATV
cvbs: BWT for CVBS
ypbpr: BWT for YPbPr
hdmi: BWT for HDMI
vga: BWT for VGA
src: Get current input source
mtime: Set BWT measure time
pippop: BWT for PIP/POP[/HIDE]
gpio: Gpio interface "General Purpose I/O. Don't think this is what I need either as it's hardware" [HIDE]
[Help]
output(out): gpio.out [gpio num] [[0|1]]
input(in): gpio.in [gpio num]
servo(servo): gpio.servo [0-4][/HIDE]
Wake times are also over 10 seconds, and the bright blue when there's no signal is rather jarring, so I suppose I'll need to extract and modify the firmware. Can anybody help with this?
Bump I s'pose. Still stuck, so for now I'm working on other things till I find someone who can help with this. I'd rather not drop $25 on a chinese basic mainboard for the panel or whatever I can get away with paying for a dubious identical-looking universal mainboard.
So I'm at it again trying to make this work. Glad I posted everything I did since I totally forgot how to work this thing... Still need help. I'm trying to dump the firmware with u boot so I can try to modify and reupload it with my custom values.
I also have this TV and would like to disable overscan. How should I connect my PC to one of its service ports? It has two service ports: a type A USB port and some port that I think is called 'ISP' or something like that. For what it's worth, I already have several USB to RS232 adapters (male USB type A on one end of the cable, male RS232 on the other end of the cable), but this TV doesn't have an RS232 port. I've already downloaded a third-party PuTTy app ("PuTTy (Unofficial)", if I recall correctly, from the Microsoft Store).
Edit: Made a correction.
I also have an adapter that is USB type B on both ends. It is called "SharkPort", IIRC. It was designed for connecting a PC to a PlayStation 2 to transfer PS2 game save files. It *might* be a USB host-to-host adapter. It is probably USB 1.0 or 1.1.
Big love for this thread even though I'm probably useless at the moment.
I'm ambitiously following some of your footsteps to tinker with my all-but-entirely defunct Vizio E3D420VX.
Curious how this story played out though; it looks like it relies more on TV knowledge than Linux-- these settings are pretty dense.