Retrieved from Google Cache for http://externe.net/zaurus/forum/viewtopic.php?p=1102 (25 Narch 2005, 06:42:32 GMT).
----------------- NOTE -------------------- I've tested all the below stuff on my z, and all it's working ok, never reflashed, never a problem or instability. But be aware, if something goes wrong, it's possible that your z. wont boot anymore, and that you need to re-flash them. See also my previous posts if you want more detailed info on z. boot/init process. ----------------- NOTE -------------------- Ok, here is the whole. 1] Download, from www.w-m-p.com/software/pocketworkstation/ fbvnc-arm-1.3.3beta.gz zaurus-debian-big-v0.15.tgz 1a] If you have a linux box, it's higly recommended that you install the usbdnet standalone module. i.ex. prdownloads.sourceforge.net/zaurus or www.opie.us/opie/devZone.php/usbdnet-standalone.tgz The kernel module, on the other hand, is very unstable & kernelpanic prone. [Of course it's possible also to do all the job via the Z keyboard] Anyway, if you want to use the usb cradle connectivity, do something similar: create & chmod this on your pc: ------------------------------- #! /bin/bash typeset -i num num=`ifconfig || grep usb0 || wc -l` if [ $num -eq 0 ] ; then ifconfig usb0 192.168.129.1 netmask 255.255.255.255 up route add -host 192.168.129.201 usb0 fi add this to your pc '/etc/hosts': --------------------------------- 192.168.129.201 zaurus this way, you can quickly execute 'zaurus' then 'telnet zaurus'. [I assume that you've already modprobed usb-uhci & usbdnet] 2] Format with mke2fs your SD card. mke2fs /dev/mmcda1 3] Cd in the SD card, and upload here the 2 tarball of 1] [a little note: when I've dloaded the zaurus-debian-big-v0.15.tgz it was not gzipped, it was just a tar. dunno if it's the broken brain of IE ;)] - if you've the usb cradle inserted you can via telnet, you can do something like: nc -l -p 1234 > tarball.tar [zaurus side] cat tarball.tar || nc zaurus 1234 [pc side] - extract the tarball. - edit /etc/sdcontrol: --------BEGIN SNIP-------- FSTYPE="-t ext2" FATOPTS="-o noatimei,quiet,umask=000,iocharset=utf8" ["EXT2OPTS"]="-o noatime" --------ENDOF SNIP-------- --------BEGIN SNIP-------- case "$ACTION" in 'insert') # mount $FSTYPE $FATOPTS $DEVICE $MOUNT_POINT mount $FSTYPE $["EXT2OPTS"] $DEVICE $MOUNT_POINT MOUNT_RES = `mount || grep $DEVICE` if [ "$MOUNT_RES" = "" ]; then mount $FSTYPE $DEVICE $MOUNT_POINT fi --------ENDOF SNIP-------- - edit /etc/fstab, and in '/dev/mmcda1' line, add 'noatime' --------BEGIN LINE-------- /dev/mmcda1 /usr/mnt.rom/card ext2 rw,noatime 0 0 --------ENDOF LINE-------- - execute ./debroot/INSTALL.d/postinst.sh [during the execution of postinst.sh, answer YES at all, but NO at these 2: Permit unsafe VNC connections without passwords? Run 'Fbvnc' now? - gunzip the fbvnc-arm-1.3.3beta.gz and copy to /mnt/card/debroot/usr/bin/fbvnc - add "-w c700" in the last lines of /usr/local/bin/Fbvnc this way: --------BEGIN SNIP-------- if [ -z "$1" ]; then fbvnc -hw c700 127.0.0.1:1 else fbvnc -hw c700 "$@" fi --------ENDOF SNIP-------- - edit /etc/debroot.conf --------BEGIN FILE-------- ### /etc/debroot.conf # # Configuration for the Debian chroot environment startup process # # IMPORTANT: boolean settings (DEB_FOO=1) are true if not empty, so # comment out the entry (put a '#' at the start of the line) if you # want to deactivate it. DEBROOT=/usr/mnt.rom/card DEB_PATH=$HOME/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/games # Disable this if you have a fixed QPE that permits VT switching #DEB_QPE_WARNING=1 DEB_DO_MOUNTS=1 DEB_COPY_INTO_CHROOT="etc/resolv.conf" DEB_COPY_INTO_NATIVE="etc/hosts" #DEB_RUN_SERVICES="" #DEB_RUN_SERVICES="inetd ssh lpd" #DEB_RUN_SERVICES="ssh" DEB_RUN_VNCSERVER=1 DEB_RUN_FBVNC=1 DEB_ZAPM_PROXY=1 DEB_RUN_ZAPMD=1 DEB_ROOTCMD=1 --------ENDOF FILE-------- [comments stripped out ;)] - find in the /etc/rc.d tree the symlink to zdebian and delete it. - edit /etc/rc.d/init.d/zdebian --------BEGIN SNIP-------- #!/bin/bash ## sh [linked to ash] doesnt exec cleanlyi, so we set bash instead SHELLCMD=/bin/bash DEBCONF=/etc/debroot.conf [ ! -f $DEBCONF ] && { echo "Can't find $DEBCONF, aborting..." exit 1 } . $DEBCONF [ "$DEBROOT" ] |||| exit 1 if [ ! -d "$DEBROOT" ]; then echo "Waiting for $DEBROOT to be fscked..." while ps ax || grep -v grep || grep e2fsck >/dev/null do sleep 1 done sleep 1 if [ ! -d "$DEBROOT" ]; then echo "Waiting for $DEBROOT to be mounted..." sleep 10 fi fi cd $DEBROOT |||| exit 1 ROOTCMD_FIFO=$DEBROOT/dev/rootcmd ZAPMD=/dev/zapmd rootcmd_server_start () { rm -f $ROOTCMD_FIFO mkfifo -m 600 $ROOTCMD_FIFO ( while true do exec <$ROOTCMD_FIFO read TTY CMD $SHELLCMD -c "$CMD" <''dev>$DEBROOT''$TTY 2>&1 sleep 1 done ) & echo $! >/var/run/rootcmd.pid } --------ENDOF SNIP-------- [the real 2 changes are the 2 /bin/bash invocations at the beginning & at line 41. the original '/bin/sh' fails to execute cleanly the exec fifo commands. it's an 'ash' issue (/bin/sh is linked to 'ash', NOT to 'bash'). Many thanks to my brother, Davide, for helping in pointing out this.] - cd in /home/zaurus, create & chmod 755 these 2 files: d.sh --------BEGIN FILE-------- #! /bin/bash clear echo "zdebian stop.." /etc/rc.d/init.d/zdebian stop echo "kill Xvnc.." killall Xvnc echo "change launch.default to 'q'" echo q > /home/sharp/etc/launch.default echo "DONE." exit 0 --------ENDOF FILE-------- q.sh --------BEGIN FILE-------- #! /bin/bash echo a > /home/sharp/etc/launch.default killall qpe killall qeserver killall qtsamba clear /home/root/usr/bin/chvt 2 /home/root/usr/bin/chvt 1 exit 0 --------ENDOF FILE-------- still in /home/zaurus, do a: echo a > what.txt note: this file (what.txt) will be your 'boot flag'. -> if it's "a" then the next boot will be debian -> if it's "q" then the next boot will be qtopia IMPORTANT !! be sure to not edit or remove this file, because it's needed in the init process [see below] [I mean, it must be absolutely "a" or "q", or you can byebye the z. and reflash them ;)] still in /home/zaurus, do a: ln -s /etc/rc.d/init.d/zdebian - edit /usr/mnt.rom/card/usr/local/bin/zvncserver [security improvement] I've changed also the '/bin/sh' first line in '/bin/bash' And also in Fbvnc. --------BEGIN SNIP-------- AUTH_FILE=/etc/vncpasswd [ -f $AUTH_FILE ] && AUTH="-rfbauth $AUTH_FILE" [ ."$DISPLAY" = .":0" ] && rm -f ''tmp''.X0-lock [ ."$DISPLAY" = .":1" ] && rm -f ''tmp''.X1-lock [ ."$DISPLAY" = .":2" ] && rm -f ''tmp''.X2-lock ## with '-localhost' we allow only connection from the same machine on which Xvnc runs ## with '-nolisten tcp' [undocumented feature, at least with this goal] we stop Xvnc from listen also on 6000+DISPLAY port Xvnc -localhost -nolisten tcp -geometry $GEOM -depth 16 -pixelformat ["RGB565"] $AUTH $DISPLAY & #-fp /usr/lib/vnc/fonts/misc \ #-co /usr/lib/vnc/rgb \ sleep 5 cd $HOME --------ENDOF SNIP-------- - edit /etc/inetd.conf [security improvement] leave only this line uncommented: --------BEGIN LINE-------- telnet stream tcp nowait root /usr/sbin.rom/tcpd /usr/sbin/in.telnetd --------ENDOF LINE-------- after that, you must also create /etc/hosts.allow & /etc/hosts.deny, add 1 entry in /etc/hosts, and update /usr/mnt.rom/card/etc/hosts i.ex: /etc/hosts: --------BEGIN FILE-------- ### Do not edit this file - it was copied ### from /usr/mnt.rom/card/etc/hosts by ./zdebian ### Edit /etc/debroot.conf to deactivate this. 127.0.0.1 localhost loopback 192.168.129.1 yourpcname ### Do not edit this file - it was copied ### from /usr/mnt.rom/card/etc/hosts by ./zdebian ### Edit /etc/debroot.conf to deactivate this. --------ENDOF FILE-------- cp /etc/hosts /usr/mnt.rom/card/etc/hosts /etc/hosts.deny: --------BEGIN FILE-------- ALL: ALL --------ENDOF FILE-------- /etc/hosts.allow: --------BEGIN FILE-------- ALL: yourpcname --------ENDOF FILE-------- Now, do a '/etc/rc.d/init.d/inet restart' and try to connect with a new 'telnet zaurus' from your PC, and try also a 'telnet localhost' from inside the z. you must connect from pc, and denied from the z. - stop useless services from auto starting: [as I said in the intro, I assume you're not so interested in syncing with outlook and other windoze stuff :)] in /etc/rc.d/init.d do a chmod 000 portmap chmod 000 samba edit /etc/hotplug/usbdnet.conf --------BEGIN FILE-------- DHCPS=no DHCPC=no --------ENDOF FILE-------- - if you want to change the 2nd splashscreen with your own: * create an image 480x640, bitmap format. [this is the output of 'file': PC bitmap data, Windows 3.x format, 480 x 640 x 24 ] * copy in /home/QtPalmtop/pics144/Startup_screen.bmp 4] #################################### ### editing files in /dev/root #################################### before you can edit the files mounted in /dev/root, you must do an mount -o rw,remount /dev/root / [be aware to not make big mistakes from now.. :)] this is my /root/etc/sysconfig/init, don't remember if it's like the original --------BEGIN FILE-------- SILENT=yes BOOTUP=color RES_COL=23 MOVE_TO_COL="echo -en \\033[${RES_COL}G" SETCOLOR_SUCCESS="echo -en \\033[1;32m" SETCOLOR_FAILURE="echo -en \\033[1;31m" SETCOLOR_WARNING="echo -en \\033[1;33m" SETCOLOR_NORMAL="echo -en \\033[0;39m" LOGLEVEL=1 PROMPT=yes --------ENDOF FILE-------- - edit /root/etc/rc.d/rc.sysinit [with this change, we see at least some log msgs on the screen instead of the red/white sharp splashscreen :)] --------BEGIN SNIP-------- # Print a banner. ;) clear #if [ -z "$SILENT" ] ; then echo -en $" Welcome to " [ "$BOOTUP" != "serial" ] && echo -en $"\\033[1;31m" echo -en $"WHATYOUWANT" [ "$BOOTUP" != "serial" ] && echo -en $"\\033[0;39m" echo $" Zaurus" #fi --------ENDOF SNIP-------- - edit /root/etc/rc.d/rc.rofilesys [this is the trick for 'booting' in debian] --------BEGIN SNIP-------- #echo $LAUNCH > /home/sharp/etc/launch.default cat /home/zaurus/what.txt > /home/sharp/etc/launch.default --------ENDOF SNIP-------- - edit /root/etc/inittab [not so necessary] --------BEGIN SNIP-------- # collie sp. #sy::respawn:/sbin/shsync --------ENDOF SNIP-------- ***************************** *** USAGE ***************************** Ok now finally for the fun stuff ;) 1] /home/zaurus/what.txt ------------------------ is your 'bootselect' flag. a -> debian q -> qtopia 2] Exiting/switching from Qtopia ---------------------------------- - open Konsole - su as root - in /home/zaurus execute "./q.sh" this will give you a console log. login, become root. Then if you want to start Debian, do a ./zdebian start If you want to reboot: /sbin/reboot If you want to halt: /sbin/halt [when all off, remember to switch for at least 5 secs the battery switch] 3] Exiting/switching from Debian Menu -> Logout press Fn+Shift+q execute ./d.sh If you want to start Qtopia, you must simply: exit exit If you want to reboot: /sbin/reboot If you want to halt: /sbin/halt [when all off, remember to switch for at least 5 secs the battery switch] 4] Note on screen in console mode: ---------------------------------- just type 'clear' + Enter if you want to clean the screen in console mode. [to be improved ;)] 5] Executing command in debian: ------------------------------- using "cru" you can execute like in the 'original' environment. Example: --------BEGIN SNIP-------- ~# cru ls /root bin etc samba ~# ls /root HELP.txt debian-faq.pdf ~# --------BEGIN SNIP--------