Full screen web browser

davef
Ivan,

I would like to follow up on your comments at:
http://www.friendlyarm.net/forum/topic/1819
on your full screen web browser.

I have a kernel, rootfs and Arora, that can be found around this page:
http://billforums.station51.net/viewtopic.php?f=8&t=15&start=80

The problem with this on a 64M mini2440 is that when Arora fires up it
appears to ask for more memory than is left on the machine.  Putting
everything on a SD card sorted that issue, but response time was degraded.

Does your web browser support CSS and does it have any control over the
image size?  I looked at the code and what I would like to try is:

- using the kernel and rootfs at the quoted URL
- remove Arora and
- substitute your web browser.

Do you think this would be reasonably straight-forward?

Regards,
Dave

stereo_m
Have you tried to use a swap-partition? That should help to the memory
issue.. But a fullscreen browser without any additional toolbar would be
awesome.

davef
I followed this:
http://billforums.station51.net/viewtopic.php?f=1&t=5

I think everything is on the SD card, with a swap partition.  Are you
suggesting that I could just have the application use the SD card, in swap?
And make it faster?  

Could you briefly describe howto?

Thanks,
Dave

Ivan Jäger
Dave,

Please do not use my Bitbake-Recipe. It's not a good idea to include tslib
and Qt. You should compile it like Bill described.

My Browser is using WebKit so it seems css should work:
http://trac.webkit.org/wiki/QtWebKitSupportedStandards

But i don't tested it yet.

There were no problems running my browser except the touchscreen. I was
able to load the Google-News-Site a little slow. There was no need to use a
Swap-Partition. But i'm always using an ext3 rootfs on my Sdcard. If you
load a smaller Webinterface from localhost it loads very fast.

I still have problems getting the touchscreen to work if i use my
application. There must be a problem because i installed tslib and Qt
twice. 

I've created a new image in bitbake without tslib and Qt. I will try
installing the newer precompiled tslib and Qt on this clean rootfs.

If i would give you a precompiled browser it wouldn't work. I don't used
the same toolchain and Qt to compile as Nandy did.

After i get the fullscreen_browser working i can share my rootfs.tar.gz,
uImage, precompiled Tslib, Qt and finally a precompiled fullscreen_browser
if you want.

davef
Ivan,

I won't try bitbake.

Are you using a 64M machine?

I just recently upgraded to Ubuntu 10.04 as apparently there were problems
working with QT4.6 and tslib on 9.04  I have not gone through the process
since upgrading.

Your offer is too good to refuse! I await further comments.

What toolchain do you use?  

Regards,
Dave

Ivan Jäger
Dave,

I'm using a 256MB mini2440.

If i share my uImage, rootfs, tslib, Qt and the Project you don't have to
use bitbake. But i first have to find a way getting the browser to work.

I'm using the toolchain builded trough bitbake from repo.or.cz

Here's the output:

bitbake-vm:~# arm-angstrom-linux-gnueabi-gcc -v
Using built-in specs.
Target: arm-angstrom-linux-gnueabi
Configured with:
/home/ivan/OE/oetmp/work/armv4t-angstrom-linux-gnueabi/gcc-cross-4.2.4-r5/gcc-4.
2.4/configure
--build=i686-linux --host=i686-linux --target=arm-angstrom-linux-gnueabi
--prefix=/home/ivan/OE/oetmp/cross/armv4t
--exec_prefix=/home/ivan/OE/oetmp/cross/armv4t
--bindir=/home/ivan/OE/oetmp/cross/armv4t/bin
--sbindir=/home/ivan/OE/oetmp/cross/armv4t/bin
--libexecdir=/home/ivan/OE/oetmp/cross/armv4t/libexec
--datadir=/home/ivan/OE/oetmp/cross/armv4t/share
--sysconfdir=/home/ivan/OE/oetmp/cross/armv4t/etc
--sharedstatedir=/home/ivan/OE/oetmp/cross/armv4t/com
--localstatedir=/home/ivan/OE/oetmp/cross/armv4t/var
--libdir=/home/ivan/OE/oetmp/cross/armv4t/lib
--includedir=/home/ivan/OE/oetmp/cross/armv4t/include
--oldincludedir=/home/ivan/OE/oetmp/cross/armv4t/include
--infodir=/home/ivan/OE/oetmp/cross/armv4t/share/info
--mandir=/home/ivan/OE/oetmp/cross/armv4t/share/man --with-gnu-ld
--enable-shared --enable-target-optspace
--enable-languages=c,c++,objc,fortran --enable-threads=posix
--enable-multilib --enable-c99 --enable-long-long --enable-symvers=gnu
--enable-libstdcxx-pch --program-prefix=arm-angstrom-linux-gnueabi-
--enable-libssp --disable-bootstrap --enable-libgomp --disable-libmudflap
--with-float=soft
--with-local-prefix=/home/ivan/OE/oetmp/staging/armv4t-angstrom-linux-gnueabi/us
r
--with-gxx-include-dir=/home/ivan/OE/oetmp/staging/armv4t-angstrom-linux-gnueabi
//usr/include/c++
--with-sysroot=/home/ivan/OE/oetmp/staging/armv4t-angstrom-linux-gnueabi
--with-build-sysroot=/home/ivan/OE/oetmp/staging/armv4t-angstrom-linux-gnueabi
--disable-libunwind-exceptions
--with-mpfr=/home/ivan/OE/oetmp/staging/i686-linux/usr
--enable-__cxa_atexit
Thread model: posix
gcc version 4.2.4

davef
Ivan,

I am not going to bitbake anything.

In the previous thread you said the touchscreen was working.  Are you now
having the same problem?  Inverted mouse? Or is something else not working
with the browser?

Dave

davef
Which version of Qt are you using?

Ivan Jäger
The touchscreen only doesn't work if i start my application while the fluid
launcher works perfectly. I have to recompile my project. I will try it
tomorrow.

I'm using Qt 4.7.1

paolo
Hi,
let me understand a little bit mode.
If I understood the problem, your touchscreen does not work when you start
your application, ...but the fluidlauncher works perfectly.

It seems to me that you have to set some environment variable like
QWS_MOUSE_PROTO and so on. You can see the env variable I'm using for my
applications here:
http://www.sereno-labs.com/qt-4-6-2-installation-procedure-for-friendlya...

Perhaps you have to work on it a little bit, but if the fluidlauncher
works, in my opinion it's only a matter of settings.

Good luck!
Paolo

davef
paolo,

Thank you for the tip.

Regards,
Dave

Ivan Jäger
Thank you for the tip Paolo.

Finally it works just fine. 

I always used the right env variables to start the application. But i've
compiled my application using an older version of Qt than installed on the
target mini2440.

Now i have used the newer qmake (Qt 4.7.1) to create the Makefile and
compiled it again. 

This is my invoke script:

#!/bin/sh
export TSLIB_TSEVENTTYPE=INPUT
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/input/touchscreen0
export TSLIB_CALIBFILE=/usr/local/tslib/etc/pointercal
export TSLIB_CONFFILE=/usr/local/tslib/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/local/tslib/lib
export QWS_MOUSE_PROTO=tslib:/dev/input/touchscreen0
cd / ; ./fullscreen_browser -qws

Now for the first time i see my application has a titlebar :) I will have
to remove it.

Also i must a find a way to specify the URL with parameters. At the moment
the URL "http://localhost"; is hardcoded.

Ivan Jäger
I was able to remove the titlebar. 

Now i have to find a way parsing commandline arguments to my application. 

My Destination is to specify URL and ZoomFactor via commandline arguments
like this:

./fullscreen_browser -qws http://www.google.com 0.8

davef
export TSLIB_TSDEVICE=/dev/input/touchscreen0
export QWS_MOUSE_PROTO=tslib:/dev/input/touchscreen0

Were these the changes that sorted the problem?  


Good work!

Ivan Jäger
Thanks Dave.

Yes and no. I already used this exports but i also had to recompile my
project since i'm using the newer Qt.

Ivan Jäger
Finally i'm able to specify the URL via commandline. There's a great
browser example in Qt named fancybrowser.

I modified the fancybrowser for my needs and now i also have a smaller code
than before.

ZoomFactor is still hardcoded but i just need some more time and the
important thing was to specify an Url.

So if someone is really interested i would share the source and i also
could create an image(rootfs.tar.gz) including tslib, QT and the browser.

davef
I am still interested.  Do you think it will run on a 64M machine?

The preferred path for me would be to get the browser to work on my own
toolchain so that I can maintain and modify for my own use.
 
Perhaps when you have sorted the zoom factor issue out I would be mostly
interested in the browser application.

Regards,
Dave

Sarahana T Kasiyapa
Hi im looking for such browser, can you give me the link of the
rootfs.tar.gz

Ivan Jäger
Attachment: mini2440-browser.tar.gz (1.52 KB)
Dave,

I think it will also run good on a 64M. So then i share my current source
and also the new in future.

Sarahana,

I will create an rootfs.tar.gz and upload it but i need some time to
prepare the rootfs.

The current mini2440-browser can be started like this:

./mini2440-browser -qws http://www.google.com

Ivan Jäger
Here are the links:

http://www.sendspace.com/file/6gdbp2
uImage

http://www.sendspace.com/file/zxfgyq
rootfs.tar.gz

Just untar it on a mounted ext3 Partition on your Sd-Card:
tar xfvz rootfs.tar.gz

boot your mini, logon as root and just run ./browser.sh to start the
browser.

davef
Ivan,

Thank you for posting links to the results of your work.

I will download the rootfs tomorrow night and give it a try.

Regards,
Dave

Ivan Jäger
Dave,

I just found a page that could help me with the ZoomFactor:
http://farside.ph.utexas.edu/teaching/329/lectures/node23.html

It's exactly what im looking for and i will try this soon.

greets
ivan

Ivan Jäger
Attachment: mini2440-browser.tar.gz (13.82 KB)
It worked :)

Finally you can launch the binary like this:
./mini2440-browser -qws http://www.google.com 0.7

I attached the source + binary. If someone already uses the rootfs just
replace the binary under /usr/bin/mini2440-browser

davef
Ivan,

Got as far as a white screen with a cursor.  These are the errors before it
locked up:

***
mini2440 login: root
root@mini2440:~# ./browser.sh 
/usr/bin/./mini2440-browser: /usr/lib/libstdc++.so.6: no version
information available (required by /usr/bin/./mini2440-brows
er)
/usr/bin/./mini2440-browser: /usr/lib/libstdc++.so.6: no version
information available (required by /usr/bin/./mini2440-brows
er)
/usr/bin/./mini2440-browser: /usr/lib/libstdc++.so.6: no version
information available (required by /usr/local/Qt/lib/libQtWe
bKit.so.4)
/usr/bin/./mini2440-browser: /usr/lib/libstdc++.so.6: no version
information available (required by /usr/local/Qt/lib/libQtWe
bKit.so.4)
/usr/bin/./mini2440-browser: /usr/lib/libstdc++.so.6: no version
information available (required by /usr/local/Qt/lib/libQtGu
i.so.4)
/usr/bin/./mini2440-browser: /usr/lib/libstdc++.so.6: no version
information available (required by /usr/local/Qt/lib/libQtGu
i.so.4)
/usr/bin/./mini2440-browser: /usr/lib/libstdc++.so.6: no version
information available (required by /usr/local/Qt/lib/libQtNe
twork.so.4)
/usr/bin/./mini2440-browser: /usr/lib/libstdc++.so.6: no version
information available (required by /usr/local/Qt/lib/libQtNe
twork.so.4)
/usr/bin/./mini2440-browser: /usr/lib/libstdc++.so.6: no version
information available (required by /usr/local/Qt/lib/libQtCo
re.so.4)
/usr/bin/./mini2440-browser: /usr/lib/libstdc++.so.6: no version
information available (required by /usr/local/Qt/lib/libQtCo
re.so.4)
Could not read calibration: "/etc/pointercal" 
Loading module input
Loading module pthres
Loading module variance
Loading module dejitter
Loading module linear
Linear calibration constants: 214 20165 -2467676 -25589 -365 23542600 65536
***

Entering:
ls -la libstdc++.so.6 gives me

libstdc++.so.6.0.9 Dec 15 2008

I am loading the kernel from an ext2 partition on a SD card and the rootfs
from an ext3 partition.

I tried turning swapon, but that doesn't seem to work now . . . I do not
get the expected telling me that it is enabled.  Do I need to use swap with
a 64M machine?

Appreciate your suggestions.

Dave

Ivan Jäger
Dave,

Did you change something in browser.sh?

I also have this errors at starting the browser but in my case it works
fine.

Can you move the cursor or does it really lock up?

It also should not be necessary to use swap but can you see the swap-space
in htop?

My mini2440 have 64MB RAM too.

If you were able to move the cursor correctly and having a white screen you
have to setup networking correctly. I configured the ip manually to
192.168.0.100 in /etc/network/interfaces

Hope that helps.

Ivan Jäger
I also had to set a nameserver entry's in /etc/resolv.conf

davef
Ivan,

I am using an unmodified browser.sh, but have not put in your latest 
mini2440-browser.tar.gz, so should get google.com when I enter
<./browser.sh>

I changed the ip info in interfaces but it appears that /etc is volatile,
ie changes are NOT saved across reboots.  I had this problem before when 
/etc is bound to tmpfs, not too sure of the details. I can sort this and
the network stuff out.

The cursor is frozen.  I am using the N35 screen, is that what you
configured the kernel for?

It's after midnight, get back to you tomorrow.

Dave

Ivan Jäger
Dave,

I'm actually not at home. So i can't check your problems on my mini2440.
I also know that my resolv.conf always was resetted after rebooting.

But it's strange that in my case /etc/network/interfaces was saved
permanent.

Did you see my configured static ip in interfaces?

Are you able todo a ts_calibrate?

I'm using a newer screen and had to set mini2440=3tb in u-boot. The Kernel
Image was created from OE and so i didn't configured it manually.

Can you close the browser after the cursor is frozen?

davef
Yes, I see 192.168.0.100

Yes, I can do a ts_calibrate.

I set mini2440=0th in u-boot.

I can move the cursor using the stylus.  Maybe, it is just the mouse that
is not working!

Ah, close the browser by hitting <Esc>, correct? Yes, that works.

Starting to look like I just need to get the network setup correctly.
I can change that using ifconfig.

In the GPE package, which I thought was Angstrom based one finds in rcS:

echo "* Mounting tmpfs ..."
mkdir /tmp/etc
cp -ad /etc/* /tmp/etc
mount -o bind /tmp/etc /etc

but can't find where /etc appears to be mounted on tmpfs and rcS looks
quite different in this rootfs. I'll ask at work.

Thanks for your help thus far.

Dave

davef
Ivan,

Does /etc/rcS.d/S37populate-volatile.sh hold the answer?

Dave

davef
Ivan,

My local Linux helper has suggested checking how /etc and specifically
/etc/network is mounted.

Dave

Ivan Jäger
Dave,

I have created a base image with OE from repo.or.cz

Are you sure /etc is volatile? I saved many things in /etc but only
resolv.conf is resetted during a reboot.:

root@mini2440:/etc# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                 2.1G    323.3M      1.7G  16% /
tmpfs                    40.0K         0     40.0K   0% /mnt/.psplash
none                     29.7M     52.0K     29.6M   0% /dev
/dev/mmcblk0p2            2.1G    323.3M      1.7G  16% /media/mmcblk0p2
/dev/mmcblk0p3           11.8G      1.6G      9.6G  14% /media/mmcblk0p3
/dev/mmcblk0p1          190.8M      2.0M    188.8M   1% /media/mmcblk0p1
tmpfs                    29.7M     68.0K     29.6M   0% /var/volatile
tmpfs                    29.7M         0     29.7M   0% /dev/shm
tmpfs                    29.7M         0     29.7M   0% /media/ram

Im not sure if i understanding this right. The Touchscreen works but a
connected USB-Mouse not?

I always use CTRL+C to close the browser but it's good to know the browser
do not freeze.

You also could edit /etc/network/interfaces and run:
/etc/init.d/networking restart

davef
I am not sure /etc is volatile (my unit is at home).  The other suggestion
is, "something might be writing to /etc/network/interfaces" that I am not
aware of.

I can move the cursor using the stylus but not with a USB connected mouse. 
USB keyboard works fine.  I'll check with another USB mouse before getting
too worried about it.

I did edit /etc/network/interfaces, but did a re-boot instead of
<networking restart>

I'll pay with it a bit more and then get back with any questions.

Regards,
Dave

davef
Ivan,

root@mini2440:/# df –h

Filesystem                Size      Used Available Use% Mounted on
/dev/root                 1.3G    223.5M      1.0G  18% /
tmpfs                    40.0K         0     40.0K   0% /mnt/.psplash
none                     29.7M     60.0K     29.6M   0% /dev
/dev/mmcblk0p3            1.3G    223.5M      1.0G  18% /media/mmcblk0p3
/dev/mmcblk0p2           22.8M      2.2M     19.4M  10% /media/mmcblk0p2
tmpfs                    29.7M     44.0K     29.6M   0% /var/volatile
tmpfs                    29.7M         0     29.7M   0% /dev/shm
tmpfs                    29.7M         0     29.7M   0% /media/ram
root@mini2440:/# 

Looks almost identical to yours.

root@mini2440:/# mount

rootfs on / type rootfs (rw)
/dev/root on / type ext3 (rw,relatime,errors=continue,data=writeback)
/proc on /proc type proc (rw,relatime)
tmpfs on /mnt/.psplash type tmpfs (rw,relatime,size=40k)
sysfs on /sys type sysfs (rw,relatime)
none on /dev type tmpfs (rw,relatime,mode=755)
/dev/mmcblk0p3 on /media/mmcblk0p3 type ext3
(rw,relatime,errors=continue,data=writeback)
/dev/mmcblk0p2 on /media/mmcblk0p2 type ext2
(rw,sync,relatime,errors=continue)
devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620)
tmpfs on /var/volatile type tmpfs (rw,relatime)
tmpfs on /dev/shm type tmpfs (rw,relatime,mode=777)
tmpfs on /media/ram type tmpfs (rw,relatime)
root@mini2440:/# 

Procedure:

- re-boot mini2440
- ./ts_calibrate
- vi /etc/network/interfaces for my network parameters
- verify it has really changed
- cd /etc/init.d
- ./networking restart
- cd /home/root
- ./browser.sh

Same results as earlier and CTRL+C doesn't work, only <Esc>

Heh, there's a clue if I look at etc/pointercal, after a calibration I see:

18152 174 -1511848 -375 -25319 23590782 65536 240 320

Then when I run ./browser.sh it stops after

Linear calibration constants:
18152 174 -1511848 -375 -25319 23590782 65536  there are no 240 320 at the
end of this line!?!

Looks like a tslib problem.

Any hints?

Dave

davef
Ivan,

Sorry about wasting your time and for all the messing about trying to sort
this out.

There is no problem with the Linear calibration constants OR tslib OR
anything else.

I must read more carefully . . . resolv.conf, as you mentioned above, is
necessary!

Also, now for some unexplained reason /etc/network/interfaces retains the
changes made in vi across reboots.

I'll now upgrade to your latest version.

Thanks again for your help AND patience.

Regards,
Dave

Ivan Jäger
Dave,

No Problem. So you now are able to load different Websites with modifying
the start Arguments in browser.sh?

I always manage my mini2440 over ssh so i have to use CTRL+C to terminate.

The working pointercal should be located under
/usr/local/tslib/etc/pointercal like defined in browser.sh

It's good you had a deeper look at the volatile-Problem but could it be
something other is resetting only resolv.conf during reboot?

I think you have to change the exports in browser.sh if you want to use an
USB-Mouse.

davef
Ivan,

I have not tried your latest version, mainly because I think there will be
a problem running that one.  

< Finally you can launch the binary like this:
< ./mini2440-browser -qws http://www.google.com 0.7

How would the EXPORT variables in earlier browser.sh get activated?  Or
have I missed a newer version of browser.sh that handles the arguments?

OK on your use of CRTL+C and I have sorted out my confusion re pointercal.

However, there is a bigger problem than that . . . POST does not work.  The
screen display is very nice and tidy, but I need to be able to control
stuff via my webserver.

Could you point me to the project you based this on or tell me if it is
possible to incorporate the POST function?

I am not having a problem with resolv.conf being changed.  Are you still
having that problem?  If you are is it being changed or deleted?

Regards,
Dave

davef
To get a USB mouse working with the touchscreen go here:

http://www.armadeus.com/wiki/index.php?title=Qt/Embedded


cd to /dev/input and do <ls>
then plug your USB mouse in and do another <ls>
now you know your mouse device number
mine was mouse1

in browser.sh I changed:

export QWS_MOUSE_PROTO=tslib:/dev/input/touchscreen0

to

export QWS_MOUSE_PROTO="MouseMan:/dev/input/mouse1
tslib:/dev/input/touchscreen0"

Seems <tslib> is OK, where the tutorial says <Tslib>.

Ivan Jäger
Dave,

You don't have to change the exports for using the ZoomFactor Argument.
Just modify the last line.

Replace the binary and modify the last line in browser.sh to:
/usr/bin/./mini2440-browser -qws http://www.google.com 0.7

In my case it's like something do a touch /etc/resolv.conf during a reboot.
But i could be dhclient is doing that.

Thanks for describing using a USB-Mouse. 

I made a copy of the Qt Example fancybrowser and modifyid it for my needs.
It should also be located on the rootfs. So maybe i removed to much code. 

Normally this POST function works from other browsers?

davef
Got it!  I thought you had worked out a way to only enter:

./mini2440-browser -qws http://www.google.com 0.7

without running the script.  I'll change the script and try the latest
version.

Does resolv.conf get changed or deleted?  I work with an ARM network guru
so if you are still having a problem, say by Monday, I'll ask him for more
suggestions.

The POST function works with Arora, Mozilla and IE.  Wireshark says that
nothing is going out when I do a:

"<input type='submit' value='Modify'>" in the HTML page.

If POST was working there will be another issue:

After a POST one gets a refreshed page on a response from the webserver.
This will not take place unless you close and re-run the full screen web
browser.

Looks like our intended applications are significantly different.

Dave

davef
< This will not take place unless you close and re-run the full screen web
< browser.

I should have not made this statement.

Using the full screen browser if you go to www.google.com you can type in a
search word and the results come back. Is that not done with a POST
command?

Also, ignore the comment about Wireshark.  I have to borrow an old
non-switching hub to look at all the traffic on my network.

I only way I can tell that the POST command is not working on the
webserver, when operated from the full screen web browser, is that the
network activity light does nothing.

I need to do some more work.

Dave

davef
Changed the script to run the <fancybrowser> and it behaves the same way.

davef
My resolv.conf is also being deleted on reboot.

Maybe it was being deleted all along and I didn't notice as I was mainly
looking at my local webserver.

davef
Maybe, a clue . . .

http://www.linux-noob.com/forums/index.php?/topic/1775-resolv-conf-is-ov...

davef
Looks more useful . . .
http://forums.debian.net/viewtopic.php?t=7239

Ivan Jäger
Dave,

Thank you for the link. I'm very sure it's dhclient that overwrites
resolv.conf with an empty file.

I will try it next week. 

I'm not really sure that simple submit-buttons do not work because i have a
little webinterface running on my mini2440 that uses:

input type='submit' and this worked good so far.

You are right google also using input type='submit'
But it's strange that your submit-buttons work in other browsers.

I have not tested fancybrowser on mini2440. Does it resize correctly?

davef
If 'submit' works for you then there is hopefully a simple solution.  The
non-switching hub will let me look at all the traffic on my network.

I checked what happens when you type in a search word in google and a <GET>
is sent rather than a <POST>.

Resize in fancybrowser.  The font in the drop-down menus is so small I
can't read the options, so didn't try changing the zoom factor.

Tomorrow will see some answers.

BFN,
Dave

Ivan Jäger
I configured my browser.sh to display http://localhost because i'm running
apache2 on mini2440 but that should not make the difference.

Is your webinterface builded with HTML & CSS or are you also using PHP?

Dave Festing
Attachment: S40networking (2.66 KB)
Ivan,

It has been built with hand generated and verified HTML, with a few lines
of CSS in it.

Had a very short discussion with the Linux networking guy, which involved
him have a 1 minute surf through the relevant files, modifying a few lines
in /etc/rcS.d/s40networking and saying "try this".

Well, I tried it and it seems to work.

Attached find a new /etc/rcS.d/s40networking file.

Looks like /etc/rcS.d/s40networking is a symlink to the real file.

Enjoy!

Now to sort out the POST problem.

Dave

Dave Festing
Should have said, you will need to change to your nameserver in two places.

Dave Festing
The real file is in /etc/init.d/ called networking

Ivan Jäger
Dave,

Thank you for attaching the modified Init-Script. Looks like a good and
fast solution. I will try it soon.

davef
Ivan,

Got a suggestion on the webkit-qt forum to try <demo browser> as
<fancybrowser> is quite old.  I don't see it in the examples folder, so
will go searching for it.

The function to focus on is QNetworkReplyHandler in WebKit.

Off to have a look.
Dave

Ivan Jäger
I modified my /etc/init.d/networking like described and it works.

The demo browser is also working and you can start it from browser.sh like
this: 

/usr/local/Qt/demos/browser/./browser -qws http://....

davef
Ivan,

Yes, I tried the demo browser last night.  It looks like 
Arora, which ran real slow.  I haven't checked that POST works on demo
browser, but assume it does.  

Wireshark confirms my suspicion that there is only 10-15% of the
information getting through and key elements are missing when POSTing from
the full screen browser.

Could you attach a Wireshark capture when doing a <submit> from the full
screen browser?

Thanks,
Dave

davef
Ivan,

Just to confirm the POST command works in the /demo/browser and if you
close all the toolbars down it is getting close to fullscreen.  It seems to
handle the transactions quicker than Arora, if fact it is just barely
useful for my application.

Cheers,
Dave

Ivan Jäger
Dave,

I can't attach a Wireshark capture. I've got no hub and my mini2440 is
connected over wlan so i don't know how to capture this.

Nice to hear it works in this browser. I had a look at the code it's very
big and i also saw that loading a site takes a little longer.

So this Browser does use QNetworkReplyHandler and this is needed for the
POST command?

I also need a real fullscreen-browser, anything else i can not use.

davef
Ivan,

OK, on not being able to do a Wireshark capture.

QNetworkReplyHandler was only a suggestion here:

https://lists.webkit.org/pipermail/webkit-qt/2010-December/001037.html

I had a look through all the .h files in /demo/browser and the closest I
find is QNetworkReply.

Just to verify . . . your full screen browser is now doing everything you
want OR is there still something you would like to improve?

Regards,
Dave

Ivan Jäger
Dave,

It was easy to convert fancybrowser into a fullscreen-browser but will be
more difficult with demobrowser.

At the moment i have a very small webinterface that works good so far with
mini2440-browser.

So i'm sorry at this time i will not improve the mini2440-browser.
I must go on developing the webinterface.

But it could be that i have problems in future especially when i try to
implement ajax in the webinterface and then i must change the browser.

Of course i will share the new mini2440-browser when the time comes.

davef
Ivan,

No reason to be sorry. I have appreciated talking with you on this little
project.

Hope your real task proceeds smoothly.

Have a good break at Christmas and best wishes for 2011.

Dave

Ivan Jäger
Dave,

I have appreciated talking about this project too.

Hope you find a good solution for your webinterface.

Thank you, i also wish you a good Christmas time and a happy new year.

davef
Ivan,

I would like to have a chat about enabling <netfilter> in your 2.6.32.11
kernel . . . off-line.

If you are OK with a private email would you reply to:

dave_festing at hotmail dot com

Thanks,
Dave

open-nandra
Don't read full story but easily web browser could be done by QT webkit
module. I have full screen browser which display some webpage (defined in
xml file):

project.pro:
QT += webkit \
network
TARGET = web_browser
SOURCES += main.cpp


main.cpp:
#include <QtGui/QApplication>
#include <QWebView>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWebView view;
view.url("http://open-nandra.com";);
view.showFullScreen();
return a.exec();
}

marek

davef
Marek,

Looks pretty simple.  Does it handle the POST command?  I found that the
Qt/demos/browser was the only one that did.

I want to try and get the netfilter options running in Ivan's uImage so
that I can modify the iptables, so that I can "bridge" a mobile broadband
wireless USB modem through to the ethernet connector on the mini2440.

Or determine how Ivan got a working 2.6.32.11 kernel working.

If you think the post command should work could you attached the executable
binary?

Thanks,
Dave

open-nandra
Yes it handles also post command: 
http://doc.qt.nokia.com/4.7-snapshot/qwebview.html#load-2

marek

davef
Looks like my response to this did not get through the first time.

Just wanted to clarify:

<it handles the POST command>

Do you mean WebKit, using the right APIs, will enable the use of the POST
command OR your simple example will handle the POST command.

If the POST command works in your example would you mind attaching the
executable and I'll give it try.  If more work is required don't do
anything.

Thanks,
Dave

open-nandra
No I said there is an API where could be POST command handled. In simple
example of course not. Sorry but have no time currently to code something
maybe later.

marek

davef
Thought so, just checking.

Don't do anything.

Cheers,
Dave

Ivan Jäger
Dave,

Im not sure if i am understanding this right but wouldn't it be easier to
connect this mobile broadband wireless USB modem directly via usb? 

Now i'm also using POST for submitting a form in my php-scripts. I shortly
tested it on the touchscreen with the mini2440-browser and it work's. Its
the same browser as last year you also have.

Today i integrated a small Ajax Example in my php-scripts for reloading a
DropDown-Menu based on a selection in a other DropDown-Menu and this also
worked nicely using the mini2440-browser.

So now i can say a simple Ajax-Refresh using XMLHttpRequest also works on
this browser.

davef
Ivan,

It is going to be connected through the USB port.  Actually, trying to
cross-compile the Sierra-Compass driver at the moment.

The mini2440 has full NAT and iptables running on it and it's main function
is to port forward to another uP running a webserver on the ethernet port.

If there is another way to do this, could you please explain?

Now, about the post issue:

<input type='submit' value='Modify'> in my HTML file would not invoke the
correct response in the mini-2440-browser.

Could I see your script to do this?  There could be something basic here I
do not understand.

Thanks,
Dave

Ivan Jäger
Dave,

I'm sorry i can't help you out with iptables. I have no idea how to get
this working.

Could you try a POST using Ajax and PHP?

There is a good and easy example under:
http://www.hiteshagrawal.com/ajax/form-post-in-php-using-ajax

In my Case it worked in the mini2440-browser but i have to say that i
always connect to localhost via browser.sh because i'm running apache2 also
directly on the mini2440.

But it should also work when opening a remote Website.

davef
Ivan,

I have iptables working, so no problem there.

How many months will it take me to try the Ajax and PHP example :)

From the code in your link:

<td colspan="2"><input type="button" value="Submit"
onclick="ajaxFunction();" /></td>


I notice that the terms used in <input type> and <value> are different than
mine.  I'll investigate why.

Thanks,
Dave

davef
Do wish I could edit my posts!

<value> is just what is displayed on the button on the webpage.

Ivan Jäger
So the example also worked in your case? 

I'm very suprised that Qt Webkit has such a nice support for Ajax :)
Just finished a RefreshFunction that includes a Countdown.

davef
Ivan,

Sorry, I missed this one.  Also, I should have been clearer.  I am
submitting a form so <input type='submit'> is correct for me and
<value='Modify'> is just what is displayed on the screen.

I have not tried your suggestion as I don't even know what Ajax is.

I am happy with the demo browser for now and will just an eye open for any
new developments that happen.

Dave

Ivan Jäger
Dave,

No Problem. 

I'm new to PHP and also very new to Ajax. But i can say Ajax is based on
Javascripts and you are able to reload the whole or a part of your Website
without reloading the Page in the Browser.

The Example in the link is ready for testing, just save the two files in
the same folder on your webserver if you want.

greets 

ivan

davef
Heh, I am prepared to give it a try.  Where are the two files?

Dave

davef
Copy and paste the text?

Ivan Jäger
Well if you have apache & php installed on your webserver you can copy and
paste the text.

Save the first source as test.html and the second small as testing.php in
the same folder.

Emil
Hello guys! I installed on MINI2440 (gt2.2.0) lighttpd php (with sqlite)
and it works. But, I have issue with html buttons. Here is a code:

<button type="button" ;style="height: 25px; width: 100px;" style="color:
green;" ;="" onclick="window.location.href='acq_content.php'"> Acquisition
Data </button>

They does not work. So I decided to install new browser. Can anyone tell me
which browser to choose and have to install it. Thanks...

Ivan Jäger
Emil,

Your HTML-Code seems to be ok.

So you are running lighttpd with php but which browser are you using on the
touchscreen?

Does the button work from Firefox or IE on your Workstation?

What do you mean it does not work? Is there no button displayed?

If you want to run my browser based on QT-Webkit you have to compile my
source or replace your whole rootfs.

Emil
Attachment: lighttpd-diagnose.tar.gz (733 Byte)
Ivan,

I am using Konqueror web browser which came with a fabric distro. Buttons
work on my workstation (firefox). On mini2440 I can see buttons, but when I
press them nothing happens.

Now, I have another issue. I started lighttpd on mini2440 and want to
access it from my workstation. I am using linksys wireless router to which
is connected my laptop, arduinoUNO and mini2440.
On arduinoUNO (on which is implemented webserver i can access, it's address
is 192.168.1.177) but I cannot access to page on mini2440 lighttpd
webserver (address 127.0.0.1:3000)

When I start web-server on my workstation it works, same .conf file.
In attachment I sent lighttpd.conf  file and output of ligttpd -V.

Ivan Jäger
Your lighttpd.conf looks correct.
But i doesn't know much about lighttpd, gave it also i try but had better
success with apache2.

Maybe Konqueror is to old for displaying your site correctly.

Dumb question but does it work if you enter http://127.0.0.1:3000 or
http://localhost:3000? 

Sometimes it doesn't recognize the Protocol when you are using a different
port.

Sathishkumar
Hi all,

This discussion is all about an application with Qt, so my query definitely
fits. If not please ignore my post. 


view.showFullScreen(); show the application in full screen. This is
expected.

But to hide the title-bar completely, do we need to write a QDecoration
plug-in or is there any flag that can be passed to QWS server, or the
application. 

-
Sathishkumar

Ivan Jäger
Sathishkumar,

Could this be the code your are looking for?

setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint);

For complete source scroll up to my mini2440-browser.tar.gz

Sathishkumar
Thanks Ivan,

Yes exactly something like that I looking for. 

-
Sathishkumar.

davef
Hi Ivan,

Back on this project, but trying to use this:
http://www.oselas.org/oselas/bsp/pengutronix/mini2440_bsp_en.html
instead of your kernel and rootfs.

I can't get the USB mouse to work with the stylus and a USB keyboard on
this BSP as it did on yours.

One area that seems quite different are the udev rules. There is one rule
file in your rootfs called local.rules and as all the other rule files seem
to be auto-generated ... did you write this one?

I do not have any entries named "mice, mouse or touchscreen" show up in
/dev/input with the above BSP, as did in yours.

Have you got any suggestions?

Thanks,
Dave

Ivan Jäger
Hi Dave

Did you try a modprobe for the modules of these usb-devices?

I not have written the local.rules by myself but i added some lines to get
my relay-board working.

This file was generated trough the compilation via bitbake.

I found a line in my local.rules which try's a modprobe for every device at
startup. 

Maybe you can copy local.rules from my rootfs and give it a try? 

It should also work if you just create that file containing the important
line that try's modprobe for usb-devices.

greetz

ivan

davef
Ivan,

Thanks for replying.  Everything is built-in for the kernel, so modprobe
shouldn't do anything in my case.  Correct me, if I am wrong.

I was more interested in the last section:  Create a symlink to any
touchscreen input device.  These looked like they might have been
hand-made.

I will try your suggestions.

Kind regards,
Dave