|
Using WinCE without Windows |
As I don't have Window 95/98/NT on any of my directly accessible
machines, and while the LinuxCE
is progressing, it will be sometime before it will be possible
to use Linux exclusively on my Casio E-105, I needed to find
a way to use my new toy from a Unix (FreeBSD and Linux) based world.
I'm still looking for a method to download a program and run it
without using the CF card to first transfer any programs.
This may be possible through the receive options in the installed tasks,
but I haven't worked it out yet.
There seems to be two ways to do this, first using the CompactFlash
card, and second through the serial line on the machine by SLIP or
PPP.
Using the CompactFlash
The easiest way to get data to the machine is using a CompactFlash
card. This can be plugged into a PCMCIA interface card and
then plugged into a laptop. This should work without any real
problems. But for me it doesn't, I am running FreeBSD 3.1 on
my Dell Inspiron 3500 laptop with the
PAO patches. Although my ethernet card (D-Link DE-630) and
modem card (Psion Gold) work without problem, my machine hangs if I
put in my viking CF to PCMCIA adaptor. However I have an
IBM PC110 palmtop
also running FreeBSD and it has a CompactFlash slot which
works, thus I can write the CompactFlash there, downloading files
through its PLIP interface from my main machines.
But before I did that, I first plugged the CompactFlash into the
E-105, as I knew someone needs to format it, Its unclear if it is
preformated to the E-105 does this but after doing that (and doing a
backup on the E-105 to the Storage Card) I mounted on my PC110 with
mount -t msdos /dev/wd2a /mnt
This only allows access through files of names of size 8.3 but this
is sufficient for basic transfer.
I now have FTP working, which is convenient for smaller files,
but I did have to get the CompactFlash route working as although
you can get a TCP/IP connection working with the pre-installed
software, I've not found a method to transfer files without
installing an external package.
Using the serial line for PPP or SLIP
This method is based on the
Linux to WinCE
notes I found on the web. This is the basic route
for FreeBSD and SLIP, though the techniques are applicable for PPP
too.
- On the FreeBSD end:
- See the FreeBSD handbook for the proper story.
- In /etc/ttys enable a getty on the serial port
you are going to use (in my case its the first port). There
will be a line like
ttyd0 "/usr/libexec/getty std.9600" dialup off secure
Change it to
ttyd0 "/usr/libexec/getty std.115200" dialup on secure
Start the getty by, make sure you type this correctly
kill -HUP 1
If you type the above wrongly it could kill INIT which will drop you
to single user shell and you'll effectively need to reboot.
-
Add a new user (for your E-105). My E-105 is called muse
thus I added a user in /etc/passwd using the command
vipw (though you can use whatever program to add a new user
as you wish).
muse::111:100:Casio E-105:/home/awb:/usr/sbin/sliplogin
The home directory is set to my own (though its a different uid) for
convenience. Add a passwd to this account with
passwd muse
- Next ensure you have SLIP devices compiled into your kernel you
can do this with
/sbin/ifconfig -a
This should list all your IP capable devices sl0 and
sl1 are SLIP devices. If you do not have these you'll need
to build a new kernel.
- Set up slip files in /etc/sliphome/ (I had to
create this). Create a file /etc/sliphome/slip.hosts with
muse mule-alter muse-alter 0xfffffc00 autocomp
The first field is the username you just added, the second is the
host alias (in /etc/hosts) identifying the IP number
to use for the server end (the FreeBSD machine) and the second
is the host alias for the E-105 itself. I have a home
network on 192.168.1.x and PLIP/SLIP/PP devices hang
off machines on that net on 192.168.2.x. The
192.168.x.x IP numbers are reserved for those network not
routed on the internet proper. The server end IP should not
be the one you use for the ethernet device on that machine. I have
mule-alter 192.168.2.5
muse-alter 192.168.2.7
Thus my server machine is .5 and the E-105 is .7
- Create the file /etc/sliphome/slip.login containing
#!/bin/sh
/sbin/ifconfig sl$1 down
/sbin/ifconfig sl$1 inet $4 $5 netmask $6
exit 0
I added the ifconfig down command as I was having problems, the exit 0
command I've found is necessary even though this isn't in the FreeBSD
documentation, without it the SLIP login sessions exits immediately.
This seems to be because ifconfig is returning a non-zero exit code.
Also create the file /etc/sliphome/slip.logout containing
#!/bin/sh
/sbin/ifconfig sl$1 down
exit 0
Ensure both of these scripts are executable
chmod +x slip.logout slip.login
- On the WinCE end:
- First disable direct connections to the desk-top computer on the
WinCE machine Start-Settings-Communciation click on PC
Connection. It took me a while to note this, when this is
enabled the E-105 tries, without success, to attach (not through
SLIP) to the desktop PC when you attach the serial line.
- Use Start-Programs-Communication-Connections to create a
new connection Connect-New or double-click Make New
Connection
- Give it a name, and select Dialup Connection. Select
Hayes compatible on COM1:. Click on Configure. On
Port Settings, set the baud rate to 115200, and select
Use terminal window before dialing, Use terminal after
dialing and Manual dial (only manual dial seems
necessary). On Call Options unselect the two options
Cancel the call .. and Wait for dial tone .... And
leave the Extra dial-string ... field blank. Click on
OK.
Then click on TCP/IP Settings. Deselect Use server-assigned
IP address and enter 192.168.2.7 (the number assigned
to the alias named in field 3 of /etc/sliphome/slip.hosts,
i.e. in my case the number I assigned to muse-alter). Then
select the other three options, Use Slip, Use
software compression, and Use IP header compression. For
the time being on the Name Servers form I left the field Use
server-assigned address selected. If you are only
going to use point-to-point (i.e. just talk to that one server machine)
this isn't going to be used. With General and
Name Servers completed, click OK.
Click NEXT. I filled in my country code (1) and area
code (412), and Phone number, 1, yes, just the single digit 1.
I selected Force Local. These aren't actually going to
be used. I then clicked Finish
- Connecting the devices:
- Connect the serial line to the desktop port, and put the
E-105 in the cradle.
- Select your newly made connection from the Connections program or
through the start menu. This will bring up a form asking
for username and passwd. Type in the Unix name
and passwd (although these aren't actually used). Then click
Connect
-
This should display a terminal with a Unix login prompt. Now
type in the username and passwd by hand. This should login to
the Unix machine and then say something like assigned IP
192.168.2.7. Then click OK on the top right of
the E-105. It should then
say connection has been made.
- From the Unix box you should be able to ping the E-105
/sbin/ping 192.168.2.7
But now what, you've got a TCP/IP connection but no software at the
E-105 end to do anything with it.
There is software out there for the WinCE machine and some of it
is free (as in beer but not software). But a substantial amount of
software available is only available as Windows .exe files that
"easily self install". When you don't have Windows these files
are useless. This unfortunately limits the amount of software
you can get (paid or otherwise) even for things which are
probably quite useful.
A few things come as .exe files which are in fact directly
executable under WinCE, if the site differentiates between MIPS and SH
and gives you different .exe then that's probably ok.
.CAB files are also good as they contain a self-extracting
archive that can be run directly on the WinCE device.
- Basic untilities:
- The best site is
Cocos Development Ltd. It releases their programs for free (no cost,
but no source) in .zip files containing .cab files which can
be installed without using Windows. Importantly they have
CCExplorer a file manager and run program; and CCTransfer
an FTP program. They also have CCBrowse a web browser;
CCZip a zip/unzip package, useful when using ftp; a
CCRegEdit a registry editor and they are about to release
CCNetTools containing various net programs, ping, telnet,
nslookup etc.
But Cocos has closed down and stopped distributing their existing
execellent code. I am pleased they have joined the Unix community
(they say they will be working on Mobile Linux after the Transmeta anouncement). However I
am surprised they've stopped distributing their existing code, you may
be able to find it on other servers, I'm pleased I donwloaded
everything when I could.
- Currently, for basic network utiltites (ping, nslookup, etc) I used
Cambridge Computer Corp's VxUtils.
-
As there are much better ftp clients under Unix than WinCE, running
an ftserver on the Casio is a good idea. Thanks to Mordy Ovits, for
pointing out that ftpsrv.exe although written for handheld PCs
works fine on the Casio. It is available
http://pda.tucows.com/wince/ftp.htm and originates from
http://www.oohito.com/, at
http://www.oohito.com/wince/mips_o_j.htm. There may
be other interesting things there too (often includes sources).
Note when started it doesn't appear in the task list, though an
icon appears on the task bar. To exit double tap the icon and then
press the stylus on the border of the window and move it to the left.
The exit button is actually off to the right. Also remenber WinCE is
windows and explicitly select binary mode when transfering.
- I actually use TExplorer as my explorer
available from
http://www2r.biglobe.ne.jp/~tascal/ (click on the English page
if you don't read Japanese), mainly because I found
it first, but I still prefer to CCExplorer.
- I also use TascalTaskMan which allows you to switch
between tasks, select and kill them also available
from
http://www2r.biglobe.ne.jp/~tascal/. Most of the built-in
WinCE programs don't have an explicit exit button, there is
a way to switch and kill tasks but its buried inside
the program menu, this TaskMan is much better.
- Programming:
- Other software:
-
An mpeg video (with audio) player is available for free from
http://www.mpegtv.com called
PocketTV. It comes as a .exe file but it runs
directly on the E-105 without any special unpacking. I also got
a "free" CD from Casio that contains the Mobile Video Player, I'm
sure it requires Windows to install (I've not actually openeed it),
and it uses some proprietary format for which convertors only work on
Windows so PocketTV is a much better options for many reasons.
-
For playing MP3s there appear to be three basic options, but actually
only one. There is a free MP3 called X-audio, at least older versions
are free, but its distributed as a Windows .exe so isn't an option.
There are two MP3 players available for money.
PalmPlayer ($14.95)
is available from
http://www.conduits.com/ce/. They have a zip file
on their web page. Most other places I've seen it it only comes
as a .exe file so its worth looking around.
The second is HUM MP3 Player
($19.95) available from
http://www.utopiasoft.com/ though is also available through
http://www.mpegtv.com. This
comes as a zip file.
In both cases you can get the program and play with it before
deciding then register (and pay) on-line for a registration key.
I bought HUM though may have went for PalmPlayer if I'd found
it in the right format sooner.
-
One of the things I did on on my older handheld was
demo my work through web pages displayed with a locally running
Netscape. I'd like to do the same here. IBrowser
from Foliage is free but only
available as a Windows .exe so is not a contender. CCBrowse from Cocos is
free and is almost good enough. Two things missing from it that I'd
like, it doesn't play audio files (I need that) and it doesn't allow
you to browse the local file systems (though you can browse local
html files). I also looked at Pocket Browser from
Conduits (sometimes called PalmBrowser). It costs $19.95. It does
support audio and file system browsing. I bought this.
- I want to port my speech synthesizer Festival (though under Unix rather than WinCE)
but I note that Elan Informatique already release a text-to-speech
synthesis system for WinCE. A demo version is available
from http://www.elantts.com/
it comes as a Windows .exe but I might actually find a method
to unpack this. Their (UK English) system has a history going
back to my former employer
CSTR and I used to work beside Gordon whose voice is used. Of
course Festival will be smaller faster, better, free and most
improtantly not come as a Windows executable.
- Games:
-
Doom of course it the game you should get, irrespective if you
actually play it, it is a good demo. There seems to be multiple
ports of Doom out thtere, some with sound some without. I got
mine from
http://www.eskimo.com/~hayes/doomce.html. It comes as a .exe
that is directly executable on the E-105. Note you also need a .wad
file (available in variable places, including
http://pda.tucows.com/wince/action.htm)
- I also got various games from
http://pda.tucows.com/wince/, including Space Invaders, and
MahJong solitaires (ShangHai and SiChuan) and Connect 4. Given the
restriction of free, non-windows .exe files, and palm sized PC, it
cuts it down a little on the number available. I'd also like to give
a special mention to Tascal's Daughter
in a box a sliding blocks puzzle. I played it in Trilobyte's 7th
Guest (with furniture). I can't seem to do it in less than 93
moves.
There isn't a shell under WinCE, nor at first glance does there
appear to be any way to run programs other
than those already installed under WinCE. Once you have an
explorer type program installed then this problem goes away but
you have to instll one first. Manipulation of the internal file system
may be possible from Windows but it didn't look good at first.
There are in fact two method that work
The first is from Brad LaRonde's Linux
booting page though
there is an important typo there that made me find the second one.
- Pull up the on-screen keyboard.
- Click Start twice (the Start menu appears then goes away). Don't double-click it - just click it once, let it open, then click it again and let it close.
- Type run23 on the on-screen keyboard.
- A run dialog box will appear, you can type in full
path names. The CF card is called Storage Card so if you
put your program mumble.exe in root on the CF card
you would enter
\Storage Card\mumble.exe
Note that it should be run23 not run32.
This technique does not work for .cab files. WinCE happily
tells you to double-click such files even when there is no way
to get to a position to double click them. The second method
however does work.
The second method is using the Menu programs.
- Bring up the Menu program, Start - Programs - Menu
- Select Define
- Select a blank square and then from the top menu Edit-New
- Select application
- Select browse
- Double-click on the first item in the list, in my
case that's aaview.lnk. This inserts \windows\aaview.lnk in
the dialog box.
- Using the keyboard change the entry to be \Storage Card\whatever.cab
- Exit from the define menu, until you get back to the blue screen
mode.
- Click on the new menu option
This page is maintained by
Alan W Black awb@cs.cmu.edu