OESF | ELSI | pdaXrom | OpenZaurus | Zaurus Themes | Community Links | Ibiblio

IPB

Welcome Guest ( Log In | Register )

Profile
Personal Photo
Options
Options
Personal Statement
dinorex doesn't have a personal statement currently.
Personal Info
dinorex
Age Unknown
Gender Not Set
Sydney
Birthday Unknown
Interests
scold & bit my son... XD
Statistics
Joined: 20-February 06
Profile Views: 1,826*
Last Seen: 9th November 2010 - 10:12 PM
Local Time: Dec 22 2014, 09:20 AM
88 posts (0 per day)
Contact Information
AIM No Information
Yahoo No Information
ICQ No Information
MSN pllau@hotmail.com
Contact Private
* Profile views updated each hour

dinorex

Members


Topics
Posts
Comments
Friends
My Content
31 Mar 2007
Owing to my one of the recent project requirements, I need to investigate a system called Zope (and its ZODB which is a OO database). It is easily installed in XP environment, but surprisingly, I found that the zaurus support to this is quite less..... Therefore, that triggers me to try to install this Zope inside my lovely pdaxrom....

All in all, the experiment is in vain (how come my recent trials are all in vain?.... ph34r.gif ), but I would like to share my experiences during the trials, and hope (maybe) any interested parties to play around this stuff on their spare time.

1/ Since the python in pdaxrom is 2.4.1, which is quite out-dated in view of Zope current environment, we need to grab the previous versions of zope source code to compile - the one i chose is zope-2.9.1.tar.gz. During the compilation process, I stopped at a step which reports the python header is not fully satisfied, and using some others experiments certifying the header is really not fully satisfied. Therefore I gave up that direct compilation approach.

2/ searching thru google i found that there is a version called something related to zope-2.5.1-python_2.1 to zaurus environment. that means previously zaurus should support this zope server; and surprisingly, debian also support zope server as well! and found a package called zope_2.5.1-1woody1_arm.deb for arm processor debian....

3/ based on these observations, I tried to convert that deb to ipk. This is easy to be done by a simple script called deb2ipk.sh. When I really tried this converted ipk installation (my installation destination path is in /mnt/ide, which is not in the NAND area), I have encountered the following missing python scripts (and create a directory called /usr/lib/python2.1 linked to /usr/lib/python2.4): -

a. glob.py, fnmatch.py, shutil.py, compileall.py - all can be easily obtained the python script code from the internet. However, for compileall.py, add a '-q' option do exactly the same as '-f' option (to fool the compiler seems the debian python compileall.py has another option -q which is for quiet mode, but i don't know how to make it, therefore I used -f as the substitute. (line 103 added for description, line 112 added for force endorsement)

b. fcntl.py. This is obsolete (desperated in python term) in python 2.4.1 but still exists in python 2.1. on searching the web, you should be able to find the declaring as 'desperated' script, and apply it .... however, since there is a DOS version of FCNTL.py, you need to find that one for bullet-proofing. I adopt the one generated by h2py from /usr/include/sys/fcntl.h and put it in /usr/lib/python2.4 directory (together with fcntl.py).

c. when you do that, you need to compile those .py files to .pyc, search google on related topic for python compilation to .pyc [should be something like
import py_compile
py_compile.compile("your.py")
]

d. since the installation trials may involve the missing directory in /usr/lib/zope, you need to symbolic link the /usr/lib/zope to /mnt/ide/usr/lib/zope between installation failures so that you can pass the installation trials.

after you have done the following remedial actions, you should be able to install the converted ipk successfully.

4/ starting the zope server is simple : zope-z2 -w80 (port 80 for web, default is 9673, as seen in the help page when you carries -h parameter), then you should see your pdaxrom CPU time is nearly 100% ! And some warning messages shown up repeatedly in the terminal screen..... Therefore, I tried using telnet 80 port as a trial, can still cannot catch the port authentication.... therefore, I certified although the server is up and running in pdaxrom, the server processes cannot be utilized in the appropriate manner.... ph34r.gif

Hope these sharings can ignites some zope users investigations to Zaurus, and can be able to make the zope server be used in Zaurus. I really don't mind if anyone can share me a full set of python 2.4.1 headers in pdaxrom so that I can compile the zope server directly on board, in order to alleviate such a tedious repeated trials.... ph34r.gif
29 Mar 2007
TROLLTECH has released the roms Qtopia 2.1.2 for C700, C860, C3000

source link: http://www.qtopia.net/modules/mydownloads/viewcat.php?cid=6


QUOTE
Category: ROM flash images 
Zaurus c3000 flash rom  Version:  2006/11/6
:  This is the ROM flash image for the Sharp Zaurus c3000, containing Qtopia 2.1.2 
230    27.05 MB    Zaurus c3000        Home Page 
Rating: 5.50 (2 votes) Rate this File | Report Broken File | Tell a Friend


Category: ROM flash images 
Zaurus c700 flash rom  Version:  2006/10/18
:  This is the ROM flash image for the Sharp Zaurus c700, containing Qtopia 2.1.2 
45    19.91 MB    Zaurus c700    GPL    Home Page 
Rate this File | Report Broken File | Tell a Friend


Category: ROM flash images 
Zaurus c860 flash rom  Version:  2006/11/6
:  This is the ROM flash image for the Sharp Zaurus c860, containing Qtopia 2.2.1 
150    16.53 MB    Zaurus C860        Home Page 


I don't know whether there are C3000 users tried those roms before on direct flashing.... but any challengers please kindly register the trolltech site and play around this rom.... (it needs registration in order to get this page in)....

But I am a SL-C3100 user, therefore I downloaded the ROM for C3000 (actually I have dl-ed all roms, but found this one is working the best), and then modify the updater.sh

the updater.sh is encrypted, we need to use encsh.c (gcc compile) to decrypt it....

after a long while to modify and test, I am still in vain; but I have confined the problem to the following 2 program segments (since when I redirect the output to stdout, 'illegal format' will be coming out.... ): -


CODE
               #echo 'found header'
               /sbin/verchg -v $VTMPNAME $TMPHEAD $MODULEID $MODULESIZE > /dev/null 2>&1
               /sbin/verchg -m $MTMPNAME $TMPHEAD $MODULEID $MODULESIZE > /dev/null 2>&1


according to the scripting environment, these 2 lines are equivalent to the command


CODE
               /sbin/verchg -v /tmp/vtmp /tmp/tmphead 6 0x500000 > /dev/null 2>&1
               /sbin/verchg -m /tmp/mtmp /tmp/tmphead 6 0x500000 > /dev/null 2>&1


I try to list out the modified updater.sh (for C3100 customization) , hope there are followers to help me to sort this out.....

CODE
#!/bin/sh

#
# Noodles' simpler update script. SL-C3000 only for the moment.
#

DATAPATH=$1
TMPPATH=/tmp/update
TMPDATA=$TMPPATH/tmpdata.bin
TMPHEAD=$TMPPATH/tmphead.bin

WFLG_KERNEL=0
WFLG_INITRD=0
WFLG_HDD=0

RO_MTD_LINE=`cat /proc/mtd | grep "root" | tail -n 1`
if [ "$RO_MTD_LINE" = "" ]; then
   RO_MTD_LINE=`cat /proc/mtd | grep "\<NAND\>.*\<2\>" | tail -n 1`
fi
RO_MTD_NO=`echo $RO_MTD_LINE | cut -d: -f1 | cut -dd -f2`
RO_MTD_SIZE_HEX=`echo $RO_MTD_LINE | cut -d" " -f2`
RO_MTD=/dev/mtd$RO_MTD_NO
RO_MTDBLK=/dev/mtdblock$RO_MTD_NO

## wild testing from dinorex
RO_MTD=/dev/mtd2
RO_MTDBLK=/dev/mtdblock2

RO_MTD_SIZE=`dc 0x$RO_MTD_SIZE_HEX 1024 /`

RW_MTD_LINE=`cat /proc/mtd | grep "home" | tail -n 1`
if [ "$RW_MTD_LINE" = "" ]; then
   RW_MTD_LINE=`cat /proc/mtd | grep "\<NAND\>.*\<2\>" | tail -n 1`
fi
RW_MTD_NO=`echo $RW_MTD_LINE | cut -d: -f1 | cut -dd -f2`
RW_MTD_SIZE_HEX=`echo $RW_MTD_LINE | cut -d" " -f2`
RW_MTD=/dev/mtd$RW_MTD_NO
RW_MTDBLK=/dev/mtdblock$RW_MTD_NO

## wild testing from dinorex
RW_MTD=/dev/mtd3
RW_MTDBLK=/dev/mtdblock3

RW_MTD_SIZE=`dc 0x$RW_MTD_SIZE_HEX 1024 /`

LOGOCAL_MTD=/dev/mtd1

VERBLOCK=0x48000
MVRBLOCK=0x70000

RESULT=0

Cleanup(){
       rm -f $VTMPNAME > /dev/null 2>&1
       rm -f $MTMPNAME > /dev/null 2>&1
       rm $CTRLPATH/* > /dev/null 2>&1
       rm $DATAPATH/* > /dev/null 2>&1
       exit $1
}
trap 'Cleanup 1' 1 15
trap '' 2 3

get_dev_pcmcia()
{
while read SOCKET CLASS DRIVER INSTANCE DEVS MAJOR MINOR;
do
   echo $DEVS
done
}
get_dev_pcmcia_slot()
{
   grep "^$1" /var/lib/pcmcia/stab | get_dev_pcmcia
}
sleep 1
IDE1=`get_dev_pcmcia_slot 1`
if [ "$IDE1" = "" ]; then
   echo "Error!! There is no HDD. Now retrying..."
   while [ "$IDE1" = "" ]; do
       IDE1=`get_dev_pcmcia_slot 1`
   done
   echo "Found HDD!!"
fi

#LINUXFMT=ext2
LINUXFMT=ext3
MKE2FSOPT=
if [ "$LINUXFMT" = "ext3" ]; then
       MKE2FSOPT=-j
fi


### Check model ###
/sbin/writerominfo
MODEL=`cat /proc/deviceinfo/product`
if [ "$MODEL" != "SL-C3100" ]
then
       echo 'MODEL:'$MODEL
       echo 'ERROR:Invalid model!'
       echo 'Please reset'
       while true
       do
       done
fi

mkdir -p $TMPPATH > /dev/null 2>&1

cd $DATAPATH/

#
# First do the kernel.
#
for TARGETFILE in zImage.bin zimage.bin ZIMAGE.BIN
do
       if [ -e $TARGETFILE -a $WFLG_KERNEL = 0 ]
       then
               # Get the size of the kernel.
               DATASIZE=`wc -c $TARGETFILE`
               DATASIZE=`echo $DATASIZE | cut -d' ' -f1`

               echo 'Updating kernel.'
               echo $TARGETFILE':'$DATASIZE' bytes'
               /sbin/nandlogical $LOGOCAL_MTD WRITE 0xe0000 $DATASIZE \
                       $TARGETFILE > /dev/null 2>&1

               WFLG_KERNEL=1

       fi
done

#
# Now do the initrd.
#
for TARGETFILE in initrd.bin INITRD.BIN
do
       if [ -e $TARGETFILE -a $WFLG_INITRD = 0 ]
       then
               rm -f $TMPPATH/*.bin > /dev/null 2>&1
               DATASIZE=`wc -c $TARGETFILE`
               DATASIZE=`echo $DATASIZE | cut -d' ' -f1`

               WFLG_INITRD=1
               echo 'RO file system'
               MODULEID=6
               MODULESIZE=0x500000
               ADDR=0
               TARGET_MTD=$RO_MTD
               DATAPOS=16
               ONESIZE=1048576
               /sbin/bcut -s 16 -o $TMPHEAD $TARGETFILE
               
               echo -n 'Flash erasing...'
               /sbin/eraseall $TARGET_MTD 2> /dev/null > /dev/null
               echo 'done'

               echo ''
               echo '0%                      100%'
               PROGSTEP=`expr $DATASIZE / $ONESIZE + 1`
               PROGSTEP=`expr 28 / $PROGSTEP`
               if [ $PROGSTEP = 0 ]
               then
                       PROGSTEP=1
               fi

               #00 means header information
               VTMPNAME=$TMPPATH'/vtmp'`date '+%s'`'.tmp'
               MTMPNAME=$TMPPATH'/mtmp'`date '+%s'`'.tmp'
               /sbin/nandlogical $LOGOCAL_MTD READ $VERBLOCK 0x4000 $VTMPNAME > /dev/null 2>&1
               /sbin/nandlogical $LOGOCAL_MTD READ $MVRBLOCK 0x4000 $MTMPNAME > /dev/null 2>&1

               #echo 'found header'
               /sbin/verchg -v $VTMPNAME $TMPHEAD $MODULEID $MODULESIZE > /dev/null 2>&1
               /sbin/verchg -m $MTMPNAME $TMPHEAD $MODULEID $MODULESIZE > /dev/null 2>&1

               #loop
               while [ $DATAPOS -lt $DATASIZE ]
               do
                       #data create
                       bcut -a $DATAPOS -s $ONESIZE -o $TMPDATA $TARGETFILE
                       TMPSIZE=`wc -c $TMPDATA`
                       TMPSIZE=`echo $TMPSIZE | cut -d' ' -f1`
                       DATAPOS=`expr $DATAPOS + $TMPSIZE`

                       #handle data file
                       #echo 'ADDR='$ADDR
                       #echo 'SIZE='$TMPSIZE
                       next_addr=`/sbin/nandcp -a $ADDR $TMPDATA $TARGET_MTD  2>/dev/null | fgrep "mtd address" | cut -d- -f2 | cut -d\( -f1`
                       if [ "$next_addr" = "" ]; then
                               echo "ERROR:flash write"
                               rm $TMPDATA > /dev/null 2>&1
                               RESULT=3
                               break;
                       fi
                       ADDR=$next_addr

                       rm $TMPDATA > /dev/null 2>&1

                       #progress
                       SPNUM=0
                       while [ $SPNUM -lt $PROGSTEP ]
                       do
                               echo -n '.'
                               SPNUM=`expr $SPNUM + 1`
                       done
               done

               echo ''

               #finish
               rm -f $TMPPATH/*.bin > /dev/null 2>&1

               if [ $RESULT = 0 ]
               then
                       /sbin/nandlogical $LOGOCAL_MTD WRITE $VERBLOCK 0x4000 $VTMPNAME > /dev/null 2>&1
                       /sbin/nandlogical $LOGOCAL_MTD WRITE $MVRBLOCK 0x4000 $MTMPNAME > /dev/null 2>&1

                       rm -f $VTMPNAME > /dev/null 2>&1
                       rm -f $MTMPNAME > /dev/null 2>&1
                       echo 'Success!'
               else
                       echo 'Error!'
                       exit $RESULT
               fi
       fi
done

## HDD image
for TARGETFILE in hdimage1.tgz HDIMAGE1.TGZ
do
       if [ -e $TARGETFILE ]; then
               if [ $WFLG_HDD != 0 ]
               then
                       continue
               fi
               WFLG_HDD=1
               echo ''
               echo 'HDD RO file system'
               if [ ! -f /hdd1/NotAvailable ]; then
                   umount /hdd1
               fi
               echo 'Now formatting...'
#                mke2fs $MKE2FSOPT /dev/$(IDE1)3 2> /dev/null > /dev/null
               mke2fs $MKE2FSOPT /dev/hda3 2> /dev/null > /dev/null
               e2fsck -p /dev/${IDE1}3 > /dev/null
               if [ "$?" != "0" ]; then
                   echo "Error!"
                   exit "$?"
               fi

               mount -t $LINUXFMT -o noatime /dev/${IDE1}3 /hdd1
               if [ "$?" != "0" ]; then
                   echo "Error!"
                   exit "$?"
               fi
   
               cd /hdd1
               echo 'Now extracting...'
               gzip -dc $DATAPATH/$TARGETFILE | tar xf -
               if [ "$?" != "0" ]; then
                   echo "Error!"
                   exit "$?"
               fi

               echo 'Success!'
               # remount as RO
               cd /
               umount /hdd1
               mount -t $LINUXFMT -o ro,noatime /dev/${IDE1}3 /hdd1
       fi
done

exit 0


Moreover, I have also put forward those suspicious code segment (having problems) with command as follows:-


CODE
               /sbin/bcut -s 16 -o /tmp/tmphead /mnt/card/initrd.bin

               /sbin/nandlogical /dev/mtd1 READ 0x48000 0x4000 /tmp/vtmp > /dev/null 2>&1
               /sbin/nandlogical /dev/mtd1 READ 0x70000 0x4000 /tmp/mtmp > /dev/null 2>&1


this 'updater.sh' can flash kernel, initrd.bin and untar hdImage1.tgz to /dev/hda3, but the kernel cannot recognise initrd.bin as the ramdisk.... if we can spot out what to do inside the 'verchg' I think the problem can be solved ....

if we can do that out, many peoples in SL-C3100 / 3200 can be have great advantage as well.... ph34r.gif
5 Mar 2007
I don't know whether this topic should be posted here or not: since it is related to pdaXrom, I just post this topic here....

There are so many programming framework can be used to develop in pdaXrom, for example, gtk; but I am trying to introduce Qt here because it is rapid to develop many components out in minutes using the GUI tools like QtDesigner, which is very similar to the Visual Studio IDE on developing apps. If you have tasted in the VS IDE in your daily life, you should be happy to taste with the Designer in Qt as well.

in pdaXrom feeds, there are already a number of x86 images available, but only beta1 is having the vmware image which can be read-write; whereas from beta3 onwards, all the x86 images are CD iso images that are read-only. Therefore, if you really want to do things without any restrictions, you can work from the vmware image straight away. (The vmware image is broken in mail.pdaxrom.org, you can get the tarball of it from http://distro.ibiblio.org/pub/linux/distri...vmware/?C=D;O=A , which is 231M)

However, I also recommend to use an alternative method: open the later versions of iso images via Virtual PC (from M$ which is also a freeware) and attach the ISO file as a virtual CD-ROM to trigger this OS, and creating a virtual harddisk using inside Virtual PC... Although this method is a little bit complicated, the effect is also acceptable as you can stick to use your virtual harddisk as your working environment.

Since the Qt 3.3.5 inside the vmware image (and so for the ISO images) cannot be used to compile (no moc, designer, linguist and so on), we need to compile them again so that the Qt can be used to compile moc meta objects and design .... Orz


for the Qt 3.3.8 , which is released very recently at 20 Feb 2007, can be obtained from http://www.trolltech.com download.

how to put the qt-x11-opensource-3.3.8 tarball into the vmware image? the most convenient way is to use CD burner. Just burn the tarball inside a CD-RW and adjust the VMWare virtual machine file to hook your CD-ROM, and start the virtual machine (vm).

inside the vm, you can start a terminal (like aterm / rxvt) and check /dev/cdroms/cdrom0 is available (it should be available) , and mount it to /mnt/cdrom: -
CODE
mount /dev/cdroms/cdrom0 /mnt/cdrom

ls -l /mnt/cdrom, you should see the qt-3.3.8 tarball.

cd to your root dir (/home/root), issue the following command for direct extraction of your tarball
CODE
tar zvxf /mnt/cdrom/qt-x11-opensource-3.3.8.tar.gz

resultant dir will be /home/root/qt-x11-opensource-3.3.8

cd to the resultant dir, type
CODE
./configure

CODE
make

wait for half to one hour, your qt 3.3.8 should be built. laugh.gif

CODE
cp /ho=me/root/qt-x11-opensource-3.3.8/bin/* /usr/local/qt/bin

(which is the vmware's qt location), your Qt should be available to use ph34r.gif

if the Qt is still not available, maybe $QTDIR , $QMAKESPEC or $PATH is not included the dir. please read relevant information in Google which can fix them. smile.gif

All i can remind at this moment is the settings inside /usr/local/qt/mkspecs/default/qmake.conf is not correct, the C++ and CXX environmental variables should be gcc / g++ instead of i686-linux-gcc / i686-linux-g++ (since the settings needs to be tailor made a lot, vmware image is recommended to adopt), and -spec flag should be adopt if errors coming out... unsure.gif

Hope this can help Qt in pdaXrom development a lot conveninent in PCX86 machines .... cool.gif

some dirty and quick Qt development of me & linux vmware screencaptures

VMWare output


Money to words converter


Romanian numerals to number converter
2 Nov 2006
really good to see that Ruby on Rails can be done under pdaXrom env't... ph34r.gif

the topic was initiated by another zaurus user, and he is succeeded in doing so... then he told me how to apply this technique and so i deliver the screen captures in my machine..... laugh.gif

The solver is called 'boris' (he should be a member here... well, i don't know his id here... )

original thread outside oesf (but in total chinese... ) blink.gif :-

little excerpts from there...

QUOTE
Boris writes: -

download ruby 's  ipk: -

http://www.oesf.org/forums/index.php?showtopic=19009

download RubyGems and expands so in zaurus: -

http://rubyforge.org/frs/?group_id=126
ruby setup.rb

after installing Gem, install Rails: gem install rails

install Mongrel: Mongrel is a web application server written by ruby
ipkg install make gcc gcc-headers
gem install mongrel

finally MySQL
feed: http://www.pdaxrom.org/contrib/desertrat/
ipkg update
ipkg install mysql-server
ipkg install mysql-client mysql-tools (depends on your interest)

default install location :/usr/local/mysql
first time run of mysql, run that first: mysql_install_db


QUOTE
dinorex writes: -

if you want to use 'mysql' account instead of root to run mysql,

refer http://www.linuxquestions.org/questions/sh...ad.php?t=441366

user ID =  mysql in both  /etc/passwd and /etc/group 

then reset the /usr/local/var permission & ownership as mysql ....

after that, the /etc/rc.d/init.d/apachectl start then can runs..... @@

for testing the sample database

in console prompt:


CODE
rails sample

under sample directory (in this case: /usr/local/sample)

mongrel_rails start -p 3006 -d

screen captures: -

in IE7 browsers: -


pdaxrom side: -


localhost query application's environment results: -





since the processing speed in this env't is quite slow...

Boris (the originator) wants to try the lighttpd (which is a lightweight server to apache), and sqlite but not yet started...

interested members please investigate the feasibilities on making this env't to be less resources demanding to make it run faster..... ph34r.gif

AGAIN, let's honour this topic to the boris and moming: to kick off and deploy the rail sample env't inside the server....
24 Jul 2006
recently i have made a native compilation (using zgcc-3.4.6.img) of Qt-4.1.4.tar.gz from Trolltech's opensource (qt-x11-opensource-src-4.1.4.tar.gz) and packed in a squashfs file. but i have no space on sharing the feed with you guys. (more than 110M ... OMG!)

moreover, on trying the demo, i have also found the following bug in QtOpenGL...

this environment can compile output binaries using -LQtOpenGL, but they cannot show the OpenGL stuff properly...

in x86 demo (e.g. Qt-4.1.2 demo): -


in pdaXrom env't (1.1.4 beta 4 kernel 2.6):-


do any friends have come across with the similar phenomena before? i am really curious to that....

moreover, I also found that i can't compile any Qt3 source code using default qmake .pro template.... are there any methods calling the Qt3support lib by default? or manually add the -LQt3Support extension?...

Thanks in advance... cool.gif
Last Visitors


5 Mar 2010 - 9:52


2 Sep 2008 - 5:30


18 Apr 2008 - 1:29

Comments
Other users have left no comments for dinorex.

Friends
There are no friends to display.
RSS Lo-Fi Version Time is now: 21st December 2014 - 05:20 PM