PDA

Bekijk de volledige versie : GUI "desktop" for wl700ge - help please!



hal2k1
14-02-2007, 09:41
I posted some time ago about looking in to making it easier for non-Linux and non-command-line people to use the WL700ge. I think I have here the beginnings of an approach that can work.

There have been a number of comments on this forum from time to time about GUI operation for the WL700ge advanced features. So far, using kfurge’s firmware and oleg’s optware, it has become possible to add advanced features and applications to the WL700ge, but only for applications with a console-based (text) interface. For many people, that is just too hard to operate.

I have been giving some thought to arranging for GUI control of applications running on the WL700ge. It is possible to control some specially designed applications via a web interface (so that you run a web browser on your normal PC attached to the WL700ge) but these are few and far between. I have been thinking about a GUI approach that is far more flexible than that.

The first requirement for GUI applications on a Linux system is an X server http://en.wikipedia.org/wiki/X_Window_System . The way to get that for a headless http://en.wikipedia.org/wiki/Headless device such as the WL700ge is to use the screen, keyboard and mouse of another PC via the Ethernet interface. In order to provide that, I would suggest tight VNC server.

http://www.tightvnc.com/intro.html

Specifically, we need the vncserver http://www.tightvnc.com/vncserver.1.html wrapper and the Xvnc http://www.tightvnc.com/Xvnc.1.html remote X-server.

These screenshots show roughly how this would work at your PC, where you run a “vncviewer” program.

http://www.tightvnc.com/screenshots.html

OK, that will provide the WL700ge with an X-server and a remote screen, keyboard and mouse (at your connected PC). That is the basics.

Next, we need (at least) a window manager, if not a full GUI desktop. Given the very limited resources of the WL700ge, I think that the only viable candidates here are blackbox http://xwinman.org/blackbox.php http://blackboxwm.sourceforge.net/ or fluxbox http://xwinman.org/fluxbox.php or alternatively, IceWM http://xwinman.org/icewm.php http://www.icewm.org/

If we choose fluxbox or blackbox, we would also need a light desktop. Perhaps Rox desktop (comes with an integrated file manager) would suit http://rox.sourceforge.net/desktop/static.html http://rox.sourceforge.net/desktop/screenshots?

Maybe OroboROX http://rox.sourceforge.net/desktop/OroboROX?PHPSESSID=663c3ea2ce9de3f5ffad3b20138f830 b is suitable, but it seems that one is still in development.

I’d suggest that XFCE would too heavy for the WL700ge and have too many dependencies, but it too may be a solution. http://xwinman.org/xfce.php

If we need to go really small & lightweight, then this may be the go: http://ede.sourceforge.net/page/about

If we have problems with too many dependencies, then we could try this one: http://udeproject.sourceforge.net/

Taking "lightweight window manager" to the extreme, http://www.whoow.org/people/Jean-Marc.Lienher/xd640.html

OK, assuming we have got our X-Server and desktop going, on top of that we also need a selection of X11 applications.

http://en.wikipedia.org/wiki/Xterm

http://linspire.com/lindows_products_details.php?package_name=d4x

http://roland65.free.fr/xfe/

http://deluge-torrent.org/wiki/Screenshots

In this way, we can perhaps have a modest GUI interface (on the PC), have multiple programs running at once (on the WL700ge NAS/router), and be able disconnect our PC (by closing down the vncviewer) and leave the programs running on the WL700ge.

To make this happen, I need some real help here. I don’t have a setup where I can obtain source code and cross-compile these programs for the optware repository. If anyone is prepared to do that I would be most grateful. Alternatively, if someone could point me to a resource which explains in moderate detail how to setup a build environment for optware, and how to make packages, I would be willing to have a go at it all anyway.

clausbruun
14-02-2007, 13:43
Being a web developer i dont have any of the required skills, but i think this sounds like a very good idea!

Guru
15-02-2007, 02:59
^Agree

Kfurge is awesome with the custom firmware but I don't have a clue on how to use linux/text commands, a big help to all WL-700GE users is a custom firmware that can be upgraded like 1.0.4.6 made by asus and all the new features to show in the Web interface.
I know that won't happen and maybe it's a bit to much to ask since your not getting paid, so I'm waiting on Asus:D

haraldrt
15-02-2007, 05:46
I don't think this is a good idea! First of all using vnc is not necessary. The X-Window System is network aware and can be used over a your lan. All You need is an X-Server like cygwin for example. using this solutiuon would also take away the need for a window-manager on the wl700g. It could run on your PC. Linux or Mac OS X User have a X11 System already installed or at least on their installation medium. The trick is done by exporting your Display using
"export DISPLAY=YOURPCSIP:0.0" on the Asus and then running your app.

Leaving unneeded programs running on the router will shortly max it out. Any GUI-app will need the used framework in memory at least it requires libX11. GUI applications are larger then console apps. If you need something to ease your pain on routine task like moving files, renaming, changing permissions, or even using ftp take "mc" it is available as an ipk. For administration we should look into getting perl and webmin running.

There are a lot of programms on the linux side ;) that run a a daemon and are controled by an external app even with gui or a web-frontend. Either can be run on your desktop.

The most complex problem is you need GUI applications developed/compiled for mipsel linux. Who is willing to do that? The toolchain only comes with libs for console apps.

E.g. I use hellanzb for getting news using the nzb-format. this nice little bastard uses an remote interface and an incoming directory. you put your .nzb files in the incoming ( on the networkshare ) and it automaticaly starts downloading. All you have to do is wait and get the comleted download from another directory on your share. Ther are also different frontends cli and web (zussaweb for example):

The most limited resource on your box is the memory. If you start swapping the already slow system will act like you pulled the handbrake. if there is any interesst in hellanzb i will put together an ipk.

I am using linux since kernel-version 0.99(apply your favorite letter here). So using the command line and shell is not a problem for me, but i want my router to function with as little manual interference as possible.

perhaps kfurge can "open" the web interface already on our router, so that we can put in our own web aplications.

You can already out in cgi-scripts, the same way you opened telnet the first time. Any cgi with the right ownership and permission can be used to start/stop things. If you use forms you can take parameters and develop your own little webservice.

If you find X11 (gnome KDE, etc) apps that run on this small box this is nice but never forget: your resources are limited ! you cannot plugin another GB of ram.

cu Harald

hal2k1
15-02-2007, 08:54
I don't think this is a good idea! First of all using vnc is not necessary. The X-Window System is network aware and can be used over a your lan. All You need is an X-Server like cygwin for example. using this solutiuon would also take away the need for a window-manager on the wl700g. It could run on your PC. Linux or Mac OS X User have a X11 System already installed or at least on their installation medium. The trick is done by exporting your Display using
"export DISPLAY=YOURPCSIP:0.0" on the Asus and then running your app.

I am aware of this, but it has a couple of snags.

I started here:
http://www.nslu2-linux.org/wiki/Optware/X11
... what we need is to do "ipkg install vte xdpyinfo xauth". Of those packages, only xdpyinfo is available in the oleg optware packages.

The problems are: (1) "vte xdpyinfo xauth" probably represent just as much overhead as the balckbox window manager and Xvnc server do anyway, and (2) Where you have "The trick is done by exporting your Display using "export DISPLAY=YOURPCSIP:0.0" on the Asus and then running your app" you miss the main point ... as soon as you shutdown the PC you will kill the application running on the WL700ge. This goes against what we want to do as described here: http://www.tweaktown.com/articles/939/ and finally (3) most PCs run Windows, and Windows doesn't have an X server.

The killer point is that to use X11's netwroking directly would mean that you have to keep the PC running for as long s you wanted to run the program on the WL700ge. Using Xvnc and vncviewer avoids that, so that you can indeed "Download torrents with PC turned off" using the tightvnc/vncviewer method I describe above.


Leaving unneeded programs running on the router will shortly max it out. Any GUI-app will need the used framework in memory at least it requires libX11. GUI applications are larger then console apps.

A tiny Sharp Zaurus PDA device from 2002 could do what I suggest http://zsi2.stonekeep.com/index.php?v=d&a=21 . It shouldn't be beyond the WL700ge.


The most limited resource on your box is the memory.

...

If you find X11 (gnome KDE, etc) apps that run on this small box this is nice but never forget: your resources are limited ! you cannot plugin another GB of ram.

Some apps are written directly for X11 (such as the Xfe file manager http://roland65.free.fr/xfe/ ). They should require no overhead or additional libraries. I'd agree that Gnome & KDE apps are huge overkill, but I'm not suggesting anything nearly that heavy.

Other apps such as this one: http://en.wikipedia.org/wiki/BitTornado are programmed in languages like Python, and so would presumably require pygtk and gtk libraries as dependencies.


The most complex problem is you need GUI applications developed/compiled for mipsel linux. Who is willing to do that? The toolchain only comes with libs for console apps.

It would appear that we need the following (at least):
(1) vncserver
(2) Xvnc
(3) blackbox
(4) Rox desktop (possibly, maybe not required)
(5) Either xterm or Rox terminal, possibly rxvt instead
(6) Downloader for X
(7) Xfe (maybe not required)
(8) gtk library ?
(9) things like gtk bindings for Python (pygtk)
(10) Bittornado (doesn't need to be compiled)

... other GUI apps (hopefully Python-based so they also don't need compilation).

That is what 10? or so compilations for someone that knows what they are doing.

That is a bit of an ask, I agree, but imagine the hero status and kudos they would be given!

hal2k1
15-02-2007, 09:57
Being a web developer i dont have any of the required skills, but i think this sounds like a very good idea!

As a web developer, your skills might instead be useful with the following tools:

http://webpy.org/

http://www.appwebserver.org/

http://pythonpaste.org/webkit/

http://genshi.edgewall.org/

http://formencode.org/

http://divmod.org/trac/ <--- most of these, heaven knows what they are for

http://www.fred.net/brv/chart/

http://pylonshq.com/

http://pylonshq.com/WebHelpers/

http://www.dabeaz.com/ply/

http://www.pythonware.com/products/pil/

http://peak.telecommunity.com/PyProtocols.html

These are all already supported by oleg's optware packages.

Then there is this snippet from kfurge's original rc.local #3


# Restart the web server
killall thttpd
thttpd -dd /shares/${pool}/${share}/htdocs -p 8081 -i /var/run/thttpd.pid


All that we really need is some dynamic web pages (stored in "htdocs") and to get rtorrent and wget applications running in the background controlled via and dynamically reporting via a web interface (so that rtorrent and/or wget do not stop downloading even if the connected browser logs off). If you have the skills to do that, then all of my suggestions above are simply not required.

kfurge
16-02-2007, 02:41
perhaps kfurge can "open" the web interface already on our router, so that we can put in our own web aplications.
Unfortunately most of the web functionality is built into Asus's server running on port 80. The server converts tags embedded within the html into the actual content that gets served. There's nothing much to open up since we only have a binary for the server, no source code.

I'll keep watching while you guys hash it out... ;-)

- K.C.

clausbruun
16-02-2007, 09:11
I would be happy to look into the possibilities of making a sort of a "offline webbased shell" base, where others might build their needed settings into.

My first task is to get TYPO3 (http://typo3.com/) running on my router tho. Why? because i think it might be fun/cool/1337 :cool: For now the MySQL server is waaaay too slow, so i havent even started the experiementing with TYPO3 yet, need to optimize that MySQL first.

hal2k1
18-02-2007, 10:07
As used in Damn Small Linux and Puppy Linux:

http://www.joewing.net/programs/jwm/

Only dependency is Xlib.

wirespot
21-02-2007, 17:19
If you do decide to go with X and a wm, according to this (http://xlife.zuavra.net/index.php/8/) and this (http://blackboxwm.sourceforge.net/BlackboxPerformance#LowPowerHardware) Blackbox is the most sensible choice. I'm not personally familiar with any lower-spec wm's, but you can also look at the ones created specifically for handhelds, such as Matchbox.

Gizmo1007
08-10-2007, 23:59
Hi Guys,

maybe I have missed something really big :confused: before I ordered my WL-700G last week, still awaiting arrival.

Assuming that you can connect to any application via Web interface from a port, can you not create a custom page etc on webserver using PHP and make the links into each GUI that way?

Example, Http://<your IP>:1234 for Itunes for example

Why would you need to create all the linux platform gui, just use the web??

Any thoughts, I think simplicity is the best and for those of us who would like to know Linux, many may not have the patients to learn and just give up.

Let me know if my idea is flawed before I go Web developing a solution which cannot work.

Giz.

hal2k1
09-10-2007, 12:07
Hi Guys,

maybe I have missed something really big :confused: before I ordered my WL-700G last week, still awaiting arrival.

Assuming that you can connect to any application via Web interface from a port, can you not create a custom page etc on webserver using PHP and make the links into each GUI that way?

Example, Http://<your IP>:1234 for Itunes for example

Why would you need to create all the linux platform gui, just use the web??

Any thoughts, I think simplicity is the best and for those of us who would like to know Linux, many may not have the patients to learn and just give up.

Let me know if my idea is flawed before I go Web developing a solution which cannot work.

Giz.

Look at post #6 on this thread.

If you can interface software running on the wl700ge via a web GUI, then that is by far a better solution than having a "GUI desktop" and VNC running.

So far there have been few practical suggestions as to what web interface software to run.

Gizmo1007
11-10-2007, 12:12
Look at post #6 on this thread.

If you can interface software running on the wl700ge via a web GUI, then that is by far a better solution than having a "GUI desktop" and VNC running.

So far there have been few practical suggestions as to what web interface software to run.

Got my white brick yesterday, tried the installed software from Asus, to say it's poor is really an understatement.

Thanks once again to kfurge for excellent work...;)

What I noticed is that the Asus web page is using asp pages how could this be? Anyone have any ideas, I have alot of experience programming in ASP but totally new on the Linux front.
Is it because it is hard coded as Binary? any thoughts. Let me know, if you can get access, I can help with the coding in ASP to bring up the GUi interface.

hal2k1
12-10-2007, 12:01
Let me know, if you can get access, I can help with the coding in ASP to bring up the GUi interface.

Anything but ASP. That is "Windows think".

The wl700ge is a Linux box, it is not a Windows server box. Think "LAMP" stack.

PHP, Python or Perl, but not ASP.

http://en.wikipedia.org/wiki/Cgi_script
http://en.wikipedia.org/wiki/PHP
http://en.wikipedia.org/wiki/Mod_python
http://en.wikipedia.org/wiki/Mod_perl

ASP is tied to Microsoft's IIS.
http://en.wikipedia.org/wiki/Active_Server_Pages

The wl700ge is not IIS.

Gizmo1007
12-10-2007, 23:43
Anything but ASP. That is "Windows think".

The wl700ge is a Linux box, it is not a Windows server box. Think "LAMP" stack.

PHP, Python or Perl, but not ASP.

http://en.wikipedia.org/wiki/Cgi_script
http://en.wikipedia.org/wiki/PHP
http://en.wikipedia.org/wiki/Mod_python
http://en.wikipedia.org/wiki/Mod_perl

ASP is tied to Microsoft's IIS.
http://en.wikipedia.org/wiki/Active_Server_Pages

The wl700ge is not IIS.

I know ASP is tied to microsoft's IIS I program in it, What I was talking about was the fact that when you run the Asus from the web the following page for applications comes up with the extension applications.asp

See Below, If that's not AsP then what is it?????

"http://192.168.1.1/applications.asp"

hal2k1
13-10-2007, 08:12
I know ASP is tied to microsoft's IIS I program in it, What I was talking about was the fact that when you run the Asus from the web the following page for applications comes up with the extension applications.asp

See Below, If that's not AsP then what is it?????

"http://192.168.1.1/applications.asp"

I have no idea ... my wl700ge box is running Openwrt right now, so I don't have any ASUS software running.

I can install & run anything from optware ... which does not include ASP, but it does include Python, Perl and PHP.

I am running a mldonkey server on the wl700ge, which can do bittorrent, ftp and http transfers and can be controlled from a web interface (but I am using sancho right now), so that gives me in effect a very functional "download master". I configure the Openwrt via ssh and the busybox command line, using plain text files.

I have xmail running as a mail server, and I interface to that using normal mail clients on the desktop PCs, such as thunderbird or claws mail.

I have Perl, PHP and Python installed, but at this time I find that I have no real use for them.

tiwag
13-10-2007, 09:50
I have no idea ... my wl700ge box is running Openwrt right now, so I don't have any ASUS software running.

...

this is interesting, since i've in mind that OpenWrt is "experimental" on the WL700g, hence a few questions ...

which version of OpenWrt are you running on your WL700g ? (some info/help/install urls please)

does the WLAN and USB ports work correctly with OpenWrt ?

can you define user-based access also on WLAN ?

thanks, brgds

Gizmo1007
13-10-2007, 14:00
[QUOTE=hal2k1;65716]I have no idea ... my wl700ge box is running Openwrt right now, so I don't have any ASUS software running.

/QUOTE]

How did you find installation of the openwrt?
I have Installed Kfurge firmware but it's not working properly, most likely because I am a novice at linux.:(
Are you running Ushare? if so how is it working?

Tks

hal2k1
14-10-2007, 06:41
this is interesting, since i've in mind that OpenWrt is "experimental" on the WL700g, hence a few questions ...

which version of OpenWrt are you running on your WL700g ? (some info/help/install urls please)

does the WLAN and USB ports work correctly with OpenWrt ?

can you define user-based access also on WLAN ?

thanks, brgds

I am running an older version of Openwrt, specifically build 6672.


BusyBox v1.4.1 (2007-03-28 11:54:11 CEST) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
KAMIKAZE (bleeding edge, r6772) -------------------
* 10 oz Vodka Shake well with ice and strain
* 10 oz Triple sec mixture into 10 shot glasses.
* 10 oz lime juice Salute!
---------------------------------------------------
root@OpenWrt:~# uname -a
Linux OpenWrt 2.4.34 #23 Thu Mar 29 20:27:18 CEST 2007 mips unknown


That version lets me run the Opemwrt itself from a USB memory stick. I have two identical 512MB sticks, so if I add something to one and I make a mistake, I just turn off, plug in the other USB memory stick and carry on.

I can't use Samba version 3 since it isn't stable with that build, I had to use Samba version 2. NFS doesn't work, either.

It is highly configurable though. USB ports work, I have a working swapfile on the main hard disk, and WAN and wifi works (albeit I have tried WEP encryption only). I have got pppoe working, but it is more stable if I let my ADSL modem do the pppoe and the login.

I do all configuration via text files using nano as a console editor. It is a bitch to install and to get stable, but one I had done so, it is stable. I can define which machines can log on to the lan via their mac addresses, and I can get dnsmasq to assign them a consistent lan IP address via dhcp.

I have setup a very basic inkjet printer as a network printer via the RAW protocol ... all my Windows and Linux client machines can print to it OK. I have Samba working (network shares), I have xmail working (mail server) and I have an mldonkey deamon running to provide a capable "download master".

I got the basic install instructions from here:
http://back2basic.shacknet.nu/WL700Ge/drupal/?q=node/19

I have modified them a bit for my own purposes. I have put it in a text file, which I can post if you like (but I have to remove my personal details from it first). I took me quite a number of different trials, swapping in and out different USB sticks to build a more and more capable installed version and having to go backwards a few times before going forwards. I have got it running stable now though.

I wouldn't recommend anyone to try this unless they are quite comfortable with the Linux command line.

tiwag
14-10-2007, 10:46
I am running an older version of Openwrt, specifically build 6672.
...

Thanks hal2k1 !
first i'll read about and maybe i'll try it with another WL700g.

i've read somewhere that openwrt on the Asus WL700g had big problems with samba serving over WLAN,
just an open mode was possible, where any user has all root permissions when access to the wlan was
successful. this is not what i want, i need user based passwords, rights and permissions.

my primary WL700g is working just fine and very stable using kfurges modified 1.0.4.6 firmware.

brgds

Karsten
14-10-2007, 21:47
if there is any interesst in hellanzb i will put together an ipk.
cu Harald

i´m interested for x86 :)

Gizmo1007
23-10-2007, 15:05
Just to update the group on the Web interface used by Asus
It's stored in
/www/English

This looks like it's a hidden directory so, you'll have to kill the watchdog and then stop thttpd before you copy out the files.

The files end with .asp but on review of the code it's actually Javascript that's running. For those of you with ASP experience it's a bit of a bummer, should have known it could not be proper ASP.

Anyway, there may be a way of creating a Web UI by adding new pages to this folder and linking them to a modified set of pages on local.ip:80