tag:blogger.com,1999:blog-62738186848314543062024-03-18T11:48:25.542+02:00cat **/*Akshaalhttp://www.blogger.com/profile/05677582369584740657noreply@blogger.comBlogger17125tag:blogger.com,1999:blog-6273818684831454306.post-8160793863540759232009-03-22T13:49:00.004+02:002009-03-22T14:41:01.532+02:00CeBootLin - Linux autoloader for WinCE on Loox 5XX (560/550)Here is the "bootloader" for wince to boot linux automatically on startup of PDA. It is not real bootloader because it has nothing to do with boot sectors, it is just a wince program which is able to boot linux as soon as possible. I have implemented it in this way because I didn't want to brick my PDA meddling with boot sectors or something. Also I wanted to have a way to skip loading of linux and let wince load itself. So here we are. It works. The code is based on haret (thanks guys!) but I cut off the parts I not used. Because the laoder uses hardware registers (GPIO/CPLD for leds and keybaord) of Fujitsu Siemens Loox N560/C550, it will not work for other PDAs. When CeBootLin is installed and PDA is turned on, wince begins boot process loading applications defined under the HKEY_LOCAL_MACHINE\init registery key. This way it loads CeBootLin. CeBootLin waits for 1 second, blinking with keyboard led. During the keyboard blinking, user can press any button to stop CeBootLin from loading Linux. If no button has been pressed during keyboard blinking, CeBootLin will search for \CeBootLin\default.txt and use this haret script to load Linux.<br /><br />So, in essence, you should complete the following steps in order to install CeBootLin:<br />1. <a href="http://downloads.akshaal.info/linux-n560-c550/CeBootLin-1.zip?attredirects=0">Download</a> CeBootLin.<ad2></ad2><br />2. Unpack the downloaded archive into the PDA root. The CeBootLin.exe must be reachable with the path \CeBootLin\CeBootLin.exe.<br />3. Place default.txt under the \CeBootLin directory. The default txt might looks like this (if the Andorid is what you are going to load with CeBootLin):<pre><br />set MTYPE 1454<br />set KERNEL "\CeBootLin\zImage"<br />set CMDLINE "root=179:3 mem=62M rootdelay=3 boot_delay=0 init=/init console=tty0 fbcon=rotate:0 androidboot.console=tty0 android.checkjni=1"<br />set RAMADDR 0xA0200000<br />bootlinux<br /></pre><br />4. Place zImage under the directory \CeBootLin\.<br /><a href="http://picasaweb.google.com/lh/photo/11wJSVlZKWbWAN3DhaJXSw?authkey=Gv1sRgCMTt-MKs5cTh6wE&feat=embedwebsite"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdZkRMSUr62jBL1ImUfJijSiLy1sAyMvuJweLyHjt__DZsgJGu3IqK5XugDSAFD9l-l4zwYkF-8SaGBN1MbhWh_3YJ23B4ZGo3nbAyIhIdP1IlmqViNyvkn3I-d-Vw9pPYk3_yyxivlpuZ/s400/CeBootEdit-1.png" /></a><br />5. Modify HKEY_LOCAL_MACHINE\init adding Launch82 ="CeBootLin.exe" and Depend82 = 14 00.<br /><a href="http://picasaweb.google.com/lh/photo/00DSupXz9qiOXs43h5f5cA?authkey=Gv1sRgCMTt-MKs5cTh6wE&feat=embedwebsite"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2MZwhAf19ZPkhV9j-m4gtQF_cMBrMeznzwFzLQii9YHqoEQLPJ2QIoPoWIgLtUmbsYoQGmC8xRLQRHzTwy9OFEujuzUHD8VnPJh0Q5ktDlcnN6x3wrJRYUCU8DU2qXOSmE9Yy5YE0LFZA/s400/CeBootEdit-3.png" /></a><br /><a href="http://picasaweb.google.com/lh/photo/0Rc2C1G2xiQKk5R0RmvaZg?authkey=Gv1sRgCMTt-MKs5cTh6wE&feat=embedwebsite"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3JQlgO-EaIaUIakTQIDY5USc81MrvtjKqNvlzHD-V4FGNw4h5HspvDoC7xL1k1TpHvhnt0kIXfuMvYQtXBIvRDFsJ7oEhjdG9WarTWBdSnylug8LHyxB2I9zGXyw2-HDaCYjm6M92cFyE/s400/CeBootEdit-4.png" /></a><br />6. Modify HKEY_LOCAL_MACHINE\Loader\SystemPath adding a new directory \CeBootLin\ to the multi-string list.<br /><a href="http://picasaweb.google.com/lh/photo/hbLfmcNrlr6RpUPvLX_-5A?authkey=Gv1sRgCMTt-MKs5cTh6wE&feat=embedwebsite"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpiM0VaWjfzE7Bi5tf1yqRESsPgvTNPywQqJID1Kra0bws22Ch58GrCupZo-lPHO4ygmXhyphenhyphenrjO6ABQTE0C08ywidwkle-WHwSpiDRAOFGGc8L2VSK-LJjVQ85oNe4Z2EHuMOHiCuhape5N/s400/CeBootEdit-2.png" /></a><br />7. Wait for 5 minutes (WinCE needs time to persist changes to registry).<br />8. Feel free to reboot your PDA<br /><br />To test that CeBootLin is able to boot linux at all, run CeBootLin.exe manually.<br /><br />It looks little bit complicated but later, setup program might be created to ship automatically bootable Andorid on Loox550. But before, Andorid must be polished.<br /><br /><a href="http://downloads.akshaal.info/linux-n560-c550/CeBootLin-1.tar.gz?attredirects=0">Here</a> is the source code of CeBootLinux. CeBootLinux is licensed with GNU GPL.<ad></ad>Akshaalhttp://www.blogger.com/profile/05677582369584740657noreply@blogger.com10tag:blogger.com,1999:blog-6273818684831454306.post-15534963780288953562009-03-15T16:01:00.004+02:002010-01-26T22:49:23.339+02:00Pictures of Linux and Android on Fujitsu-Siemens Loox N560<a href="http://picasaweb.google.com/lh/photo/CUrNwUv_XICGqKQKeMx6rA?authkey=Gv1sRgCMTt-MKs5cTh6wE&feat=embedwebsite"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHPipxiFLXQ3xA743U47IXU9nsVCefgZ6PkBymR9Slh8R4zp_OxWYogjirzfPkFNXwxAcVaRG24YK41gGn_b5Teiz5Q4c2kHRe22nVyG4nUhuketzY80Eq-vN05xt43ypMj55bmjR3IFHb/s400/n560-1s.jpg" /></a><br />Today the desteny of WM5 is only to be replaced with Linux<br /><br /><a href="http://picasaweb.google.com/lh/photo/Wdt450DQpEcjKa1aIu3iUA?authkey=Gv1sRgCMTt-MKs5cTh6wE&feat=embedwebsite"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2Le3lTgew4AIitvwoxRLGr5jN4qeqbuZLlD1pfpZjH2BWk1bnmtPjRGY06TPgop4floQgz4d7T0ypVo1CidHyzvsew5TQgFC8V8wNPn-HHxSo6nFLBD4dm8z4x5GjJA66ewNmyK1oqzYQ/s400/n560-2s.jpg" /></a><br />Haret.. all you need is to press Run<br /><br /><a href="http://picasaweb.google.com/lh/photo/LQ7LXZhb1hXw6cwFARC4pg?authkey=Gv1sRgCMTt-MKs5cTh6wE&feat=embedwebsite"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlozCBxeDrqz9830_QbHaFo8LYsPSVMfPVX8OkHm5EDtV4XNzNGyxxvGTiFiSVbnlrNHlfJxFQfIKdcMi8MCdUUhxJ0jFayy5tc3duNbGf0U15jwKKqIhlLjTbujUyze8f-EFzlZAg-dnC/s400/n560-3s.jpg" /></a><br />Android on Loox N560<br /><br /><a href="http://picasaweb.google.com/lh/photo/K2EytIW2FJWybumV11UTRg?authkey=Gv1sRgCMTt-MKs5cTh6wE&feat=embedwebsite"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOvmMjWCSe0-jN7MRxqKGadD47YvQYMYoTeyAp8CLJdSUzrIbDNn2fAt-w-FNAilCIpearZx66_aqIQSVPCGUBG1MbJxtAVqEmt3TIkYW2F-D9XBR1n8pe23RKy5lEFrHZZ4am1KKQH_Rb/s400/n560-4s.jpg" /></a><br /><a href="http://www.akshaal.info/2009/03/install-emdebian-on-arm-device.html">Installation of debian</a> on Loox N560<br /><br /><a href="http://picasaweb.google.com/lh/photo/ReuuEUcxhZ4y-Es7lRGneQ?authkey=Gv1sRgCMTt-MKs5cTh6wE&feat=embedwebsite"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-6d-XniFGV7jx94znOxlRg-IvxPhHIWAdr7EH4bYrhvQcidLbdGgb2h9-J-VokNJLJ-86sDHr0CAoovBf2sLMqwhcVnUTevuzsF6mxGs1pXMAkAGPjn_G7o-G9XIaoZMyog1CoQxiVUMQ/s400/n560-5s.jpg" /></a><ad></ad><br /><a href="http://www.akshaal.info/2009/03/install-emdebian-on-arm-device.html">Installation of debian</a> on Loox N560Akshaalhttp://www.blogger.com/profile/05677582369584740657noreply@blogger.com21tag:blogger.com,1999:blog-6273818684831454306.post-45732315800437811542009-03-15T15:05:00.003+02:002009-03-15T15:28:00.981+02:00Memory tester for Loox N560/C550Recently I've created a way to test memory for defects on Fujitsu-Siemens Loox N560/C550. Only one who upgraded (or wants to upgrade) PDA's memory from 64M to 128M needs this utility. Using this "util" it is possible to test memory immediately right after memory has been upgraded, without re-flushing WM5/WM6.<br /><br />So do the following to test your PDA's memory:<br />1. Download either <a href="http://downloads.akshaal.info/other-soft-for-pda">LooxMem128-v0.zip</a> (to test 128Mb of memory) or <a href="http://downloads.akshaal.info/other-soft-for-pda">LooxMem64-v0.zip</a> (to test 64Mb of memory).<br />2. Unpack the downloaded archive onto SD.<br />3. Insert SD into your Loox and reboot it.<br />4. Don't let PDA fall asleep, start haret.exe which is in the directory where unpacked the archive to.<br />5. When haret.exe is started press Run.<br />6. Read the caution when Linux is booted.<br />7. Make up your mind and then either press RESET (insert a stylus into a hole on the bottom side of the PDA, if you don't want to test memory) or press enter..<ad2></ad2><br />WARNING: Poor memory chips might be damaged during the test (that is why you want to test your PDA's memory, isn't it?). None will be responsible for your actions except yourself!!<br /><br />Note: You have to press any button during the testing process once per 5 or so minutes.<br />(<i>In a case you need to port the utility on the other platform (not Loox C550/N560) the only thing you have to do is to replace zImage and modify default.txt to let the linux for your platform boot on the target device).</i>)<ad2></ad2>Akshaalhttp://www.blogger.com/profile/05677582369584740657noreply@blogger.com0tag:blogger.com,1999:blog-6273818684831454306.post-20849940761418588312009-03-14T20:36:00.004+02:002009-03-14T21:22:42.397+02:00Linux Kernel for Fujitsu-Siemens Loox N560/C550 with support for CPLD and builtin ledsI've implemented support for CPLD and leds. htc-gpio driver is used with a custom list of CPLD registers/resources for Fujitsu-Siemens Loox 5XX (N560/C550). Now CPLD interface is available for all other drivers (existing and planned) of the linux/android kernel.<br /><br />It is interesting how CPLD is implemented in the linux kernel. Actually CPLD is a chip that supports very simple custom logic (and that is the reason why it is much faster than CPU). CPLD chip has a set of input pins and output pins. All these pins are mapped to a region of memory address space. The most important work with CPLD is that modifying values of pins to control devices. This is done setting a value to 0 or 1. In fact, programming of GPIO (general purpose input/output of CPU) is done in the same way: a programmer writes code that sets a GPIO pin to either 0 or 1. Linux kernel already has support for GPIO which provides a set of functions for platform drivers. In addition, GPIO driver provides a way to map any virtual GPIO pin to some custom code that is responsible for handling of setters and getters for the mapped pins. And indeed, that is how htc-egpio driver does the job. The driver leverages gpiolib mapping CPLD registers to GPIO pins. Thanks to this approach, no addition functions are required to work with CPLD. It is enough to use gpio_set_value/.. methods.<ad2></ad2><br />After the CPLD driver had been implemented, it was possible to implement a driver for the leds of Loox N560/C550. The leds driver, I implemented, exports a set of functions that other drivers (wifi, gps, bluetooth, pm, ...) are supposed to use to control the leds. Also, the leds driver makes it possible to control the leds from userspace (shell scripts, java program, ...) using files under sysfs filesystem.<br /><br />The following is the list of files exported by the leds driver and the possible content values for the each file:<br /><b>/sys/devices/platform/loox5xx-leds.1/keyboard</b>: on, off, any<br />- backlight for keyboard<br /><br /><b>/sys/devices/platform/loox5xx-leds.1/left_green</b>: on, off, any<br />- green led on the left side. WM5 indicates WiFi activity with this led<br /><br /><b>/sys/devices/platform/loox5xx-leds.1/left_blue</b>: on, off, any<br />- blue led on the left side. WM5 indicates Bluetooth activity with this led<br /><br /><b>/sys/devices/platform/loox5xx-leds.1/left_orange</b>: on, off, any<br />- orange led on the left side. WM5 indicates GPS activity with this led on Loox N560<br /><br /><b>/sys/devices/platform/loox5xx-leds.1/right_green</b>: on, off, any<br />- green led on the right side. WM5 allows programs to control this led using winapi.<br /><br /><b>/sys/devices/platform/loox5xx-leds.1/right_orange</b>: on, off, blink, any<br />- orange led on the left side. WM5 indicates charging activity with this led<br /><br />Where:<br /><b>on</b> - the led is on regardless of the kernel activity,<br /><b>off</b> - the led is off regardless of the kernel activity,<br /><b>blink</b> - the led is blinking regardless of the kernel activity,<br /><b>any</b> - the led is controlled by the kernel.<br /><br />For instance, if the content of the right_orange file is set to 'on', then the orange led (on right side of PDA) will be on no matter what you do: plug or unplug your device to/from a cradle. The driver will hold on the state of the led until, you write 'any' into the file right_orange. With 'any' value in file, the first 'power' event will change state of the led. The interface of the driver makes it possible to implement any notification (low battery, new mail..) effects you can imagine involving all leds of the device. The following script demonstrates how to blink with the keyboard backlight led:<pre><br />while true;<br /> do echo on > /sys/devices/platform/loox5xx-leds.1/keyboard;<br /> sleep 0.1;<br /> echo off > /sys/devices/platform/loox5xx-leds.1/keyboard;<br /> sleep 0.1;<br /> # Condition for break...<br />done<br />echo any > /sys/devices/platform/loox5xx-leds.1/keyboard;</pre><br />The current patch for the android cupcake kernel is located <a href="http://downloads.akshaal.info/linux-n560-c550/c550-android-kernel-2009-03-14.patch.gz?attredirects=0">here</a>.<br /><ad></ad>Akshaalhttp://www.blogger.com/profile/05677582369584740657noreply@blogger.com1tag:blogger.com,1999:blog-6273818684831454306.post-91371300565794869242009-03-08T22:11:00.005+02:002009-03-08T22:44:54.171+02:00Install emdebian on ARM deviceHere is how I've successfully installed emdebian on my Fujitsu-Siemens Loox N560. I assume there is an already installed emdebian-tools package and cross-compilers. Next thing is to run the following commands:<pre>cd /tmp;<br />mkdir grip/<br />sudo debootstrap --arch=arm --foreign lenny grip/ http://www.emdebian.org/grip/<br />cd grip/<br />sudo tar -czf /tmp/emdebian-grip-arm-debootstrap.tgz .</pre><br />Then SD card is to be partitioned with fdisk. For example it could be:<pre><br />cfdisk /dev/sdX<br />mkfs.ext3 /dev/sdXy</pre><br />where sdX - is a device for an SD card. And sdXy is a partition that is supposed to be used for linux on the SD card. Then mount the linux partition and untar the emdebian-grip-arm-debootstrap.tgz:<pre><br />mount /dev/sdXy /mnt<br />cd /mnt<br />tar zxpvf /tmp/emdebian-grip-arm-debootstrap.tgz<br />ln -s bin/sh init<br />cd /tmp<br />umount /mnt<br /></pre><br />Now we can boot linux from the partition. When linux has booted and a command line appeared, run the following commands step by step:<pre>cd /debootstrap<br />export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin<br />run ./debootstrap --second-stage<br />dpkg --configure -a<br />rm /init<br />cd /<br />ln -s sbin/init init<br /></pre><ad2></ad2><br />Now it is time to reboot linux again. This time a login prompt should work. Use root login and no password. Then configure basic settings:<pre><br />echo 'nameserver 1.1.1.1' > /etc/resolv.conf<br />echo '127.0.0.1 localhost' > /etc/hosts<br />echo '172.16.0.2 myhost 172.16.0.2' >> /etc/hosts<br />echo 'myhost' > /etc/hostname<br /></pre><br />use actual nameserver IP instead of 1.1.1.1. Reboot PDA one more time. Then configure network:<pre><br />ifconfig usb0 172.16.0.1 netmask 255.255.255.0<br />route add default gw 172.16.0.1</pre>Make sure network is up and running. Then upgrade your installation:<pre><br />echo 'deb http://www.emdebian.org/grip/ sid main' > /etc/apt/sources.list<br />apt-get update<br />apt-get dist-upgrade<br />apt-get install ...whateveryoulike...</pre><br />And configure network properly.<pre>cat > /etc/network/interfaces<br />auto lo<br />iface lo inet loopback<br />allow-hotplug usb0<br />iface usb0 inet static<br /> address 172.16.0.2<br /> netmask 255.255.255.0<br /> network 127.16.0.0<br /> broadcast 172.16.0.255<br /> gateway 172.16.0.1<br /> dns-nameservers 1.1.1.1<br /> dns-search your.domain<br /></pre><ad></ad>Akshaalhttp://www.blogger.com/profile/05677582369584740657noreply@blogger.com4tag:blogger.com,1999:blog-6273818684831454306.post-82714583204525958002009-03-08T12:56:00.004+02:002009-03-08T13:29:41.873+02:00Linux Kernel for Fujitsu-Siemens Loox N560/C550 with usbnet workingAfter 3 days of struggle I am finally able to build a linux kernel for my PDA Fujitsu-Siemens Loox N560. The kernel has been downloaded from <a href="http://www.asm32.ru">http://www.asm32.ru</a> and patched (pxa27x_udc.c) to support for usbnet (host-to-PDA networking through a usb coard). Also I've made a diff file with differences between the current cupcake kernel and the kernel (by date 02-mar-2009) from asm32.ru site. That will be useful later when I need to apply support for Loox to a new upstream cupcake kernel. <a href="http://downloads.akshaal.info/linux-n560-c550/c550-android-kernel-2009-03-07.patch.gz?attredirects=0">Here is the patch</a> which also includes support for usbnet on Loox C550/N560. The patch already contains a kernel configuration file (.config), but usbnet support is not enabled there. <a href="http://downloads.akshaal.info/linux-n560-c550/linux-config-2009-03-07?attredirects=0">Here is the other .config file</a> which is differ from that included in the patch by supporting usbnet, having power management switched off and configuration for larger fonts in console.<br /><br />It is possible to build the kernel with any toolchain for arm of your choice. I've tried crosstool-ng, emdebian and the one that is included in the android repo. I have decided to leverage emdebian toolchain for I use debian on my PC. The following is the command to build the kernel using emdebian toolchain:<pre>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-</pre>Of course you have to have emdebian toolchain installed. You can install emdebian something like it is shown below:<pre><br />apt-get install emdebian-tool<br />emsetup --arch arm</pre>Then add:<pre><br />deb http://www.emdebian.org/debian/ unstable main</pre><br />into your /etc/apt/sources.list and run:<br /><pre>apt-get install linux-kernel-headers-arm-cross gcc-4.2-arm-linux-gnu</pre><br />When the kernel is built and ready you can copy it on an SD card and run it with haret with the following default.txt:<pre><br />set MTYPE 1454<br />set KERNEL zImage<br />set CMDLINE "root=179:2 mem=60M rootdelay=3 boot_delay=0 init=/init console=tty0 fbcon=rotate:0 androidboot.console=tty0 android.checkjni=1"<br />set RAMADDR 0xA0200000<br />bootlinux</pre><ad></ad>That is important! When you've placed zImage on an SD card, you will insert the card in your PDA. And then you must reboot your PDA! And only after you have rebooted your PDA with the SD card inside, you should ask haret to boot linux. That is very important because a linux kernel will not be loaded correctly (or it will but with only 10% chances) if one of the following conditions is true:<br />1. PDA has fallen asleep or suspended.<br />2. You have just inserted an SD card in your PDA and not rebooted it yet.<br />It looks like it is a bug in wince...<br /><br />P.S. There you can download cupcake kernel <a href="http://source.android.com/download"> http://source.android.com/download</a><br /><br />P.P.S. When you build kernel with usbnet, don't set CONFIG_USB_ETH_RNDIS to 'y'! Or your PC kernel (2.6.x) will not find your PDA... neither cdc_ether nor cdc_subset will claim your PDA.Akshaalhttp://www.blogger.com/profile/05677582369584740657noreply@blogger.com5tag:blogger.com,1999:blog-6273818684831454306.post-82617517732490852462009-02-18T20:27:00.004+02:002009-03-01T12:50:56.668+02:00LooxLight 2007-11-19I don't know why I didn't write anything about the new version one year ago. But here I am going fix this mistake.<br /><br />LooxLight is a tool for PDA Fujitsu Siemens C550/N560 (<a href="http://www.akshaal.info/search/label/looxlight">click here</a> to find more information).<br /><br />In version 2007-11-19 I added a new feature. It was ability to block (turn it off) the device's screen. Before I implemented this feature, I had used wossname program to turn PDA's screen off. But this wossname program had been buggy. So I had decided to implement the same feature in my LooxLight app but make it less buggy. And I implemented it. It allowed me to turn off the screen and block keyboard (including suspend button, that was what no other program could do!). It appeared that with screen turned off, the PDA consumed up to 50mA less battery power. This helped to prolong time I could enjoy music/audiobooks.<br /><br />Here is the <a href="http://downloads.akshaal.info/looxlight-1/LooxLight-2007-11-19.zip?attredirects=0">cab</a> file with LooxLight 2007-11-19. Remember that it is for Fujitsu-Siemens Loox C550/N560 and maybe for 720, but I can't give you any guarantee. <br /><ad></ad><br /><b>How to use.</b> After you have installed LooxLight 2007-11-19, run LooxLight Control and check "Permit blocking" option. Then setup up "Unblock by" keys. Remember, when your PDA is blocked, you will have to press these buttons one after another in order to unblock the PDA. By default these buttons are button 2 and button 4. Then, go to Settings/Button assign "LooxLight Block" to a button that will be used to block PDA. That is it, the configuration is over. Enjoy new feature.<br /><br />New versions and latest news about LooxLight will be published <a href="http://www.akshaal.info/search/label/looxlight">right here</a>.<br />Another <a href="http://www.akshaal.info/search/label/goodwavpower">project</a> helps reduce power consumption on Fujitsu-Siemens Loox N560/C550.Akshaalhttp://www.blogger.com/profile/05677582369584740657noreply@blogger.com2tag:blogger.com,1999:blog-6273818684831454306.post-92048331884146240422007-05-26T18:46:00.006+03:002009-03-01T12:52:42.816+02:00LooxLight & GoodWavPowerMinor update of utilities for PDA Fujitsu Siemens C550/N560.<br /><br /><a href="http://downloads.akshaal.info/looxlight-1/LooxLight-2007-05-26.zip?attredirects=0">Here</a> is the new LooxLight version (2007-05-26). You may try it if you are enough annoyed with this message:<b><br />Error while starting: Return status 2 of ReqQueryValueEx<br />for hnd indicates error<br />lasterror=0<br />lasterror=0</b><br /><br /><a href="http://toril.ru/pda/GoodWavPower-2007-05-26.zip">Here</a> is the new GoodWavPower version (2007-05-26). Message '<b>GoodWavPower: error play sound</b>' is simply disabled.<br /><ad></ad><br />New versions and latest news about LooxLight will be published <a href="http://www.akshaal.info/search/label/looxlight">right here</a>.<br />Check for GoodWavPower updates <a href="http://www.akshaal.info/search/label/goodwavpower">here</a>.Akshaalhttp://www.blogger.com/profile/05677582369584740657noreply@blogger.com0tag:blogger.com,1999:blog-6273818684831454306.post-90180508442558132412007-03-05T22:29:00.002+02:002009-02-22T17:32:06.243+02:00WM5DevSpy<a href="http://toril.ru/pda/WM5DevSpy.tar.gz">Here</a> I've published the program intended to monitor device drivers of WM5. Actually, you don't need it if you are not a programmer-hacker. Thus you need it, if you are interested in an information about calls to a device drivers, such as function's arguments and a transferring data. The program has to be compiled before using (and yet again, if you don't know how, you don't need it). A device name is located in the WM5DevSpy.c and you would find it without extra work. I feel too lazy to write a good gui interface for it. As a bonus, this program describes each interrupt, showing a process and a thread of the process that handle interrupt. Feel free to ask. <br /><ad></ad><br /><b>Instance of log:</b><br /><pre>2007.02.22 00:15:32: Starting ------------------------------------------------------<br />2007.02.22 00:15:33: interrupt 5 (abs 13): event struct at 8ffb2818, thread struct at 8efb4024, owner proc at 8c5976d0, proc name=NK.EXE, thread start addr=8c215240<br />2007.02.22 00:15:33: interrupt 8 (abs 16): event struct at 8f7a5xf0, thread struct at 8e7a2a64, owner proc at 8c597ad0, proc name=gwes.exe, thread start addr=015c39b4<br />2007.02.22 00:15:33: interrupt 9 (abs 17): event struct at 8f796yc4, thread struct at 8e785400, owner proc at 8c597ad0, proc name=gwes.exe, thread start addr=01e944e4<br />[...]<br />2007.02.22 00:15:34: fsDev_t at: 06048c50<br />2007.02.22 00:15:34: LegalName: BAT1:<br />2007.02.22 00:15:34: DeviceName: BAT1<br />2007.02.22 00:15:34: BusName: BuiltInPhase1_0_26_0<br />2007.02.22 00:15:34: DeviceKey: Drivers\BuiltIn\Battery<br />2007.02.22 00:15:34: control (openData=0x00000001, code=0x00290400, inBuf=0x0806fa8c, inSize=0x00000004, outBuf=0x0806fa60, outSize=0x00000014, outUsed=0x0806fa20) -> 0x00000001<br />2007.02.22 00:15:34: [ *outUsed : 0x00000018 ]<br />2007.02.22 00:15:34: IN:<br />2007.02.22 00:15:34: 01 00 00 00 <br />2007.02.22 00:15:34: OUT:<br />2007.02.22 00:15:34: 00 08 5a 00 ff ff ff ff <br />2007.02.22 00:15:34: ff ff ff ff 00 ff 00 00 <br />2007.02.22 00:15:34: ff ff ff ff ff ff ff ff <br />2007.02.22 00:15:37: Calls to open function: 0<br />2007.02.22 00:15:37: Calls to close function: 0<br />2007.02.22 00:15:38: Calls to control function: 1<br />2007.02.22 00:15:38: Calls to read function: 0<br />2007.02.22 00:15:38: Calls to write function: 0<br />2007.02.22 00:15:38: Calls to seek function: 0<br />2007.02.22 00:15:38: Calls to powerup function: 0<br />2007.02.22 00:15:38: Calls to powerdn function: 0<br />2007.02.22 00:15:38: ----------------------- stop -------------------------</pre>Akshaalhttp://www.blogger.com/profile/05677582369584740657noreply@blogger.com0tag:blogger.com,1999:blog-6273818684831454306.post-19671626029509217392007-03-04T22:38:00.002+02:002009-03-01T12:53:39.583+02:00LooxLight 2007-03-04LooxLight is a tool for PDA Fujitsu Siemens C550/N560 (<a href="http://www.akshaal.info/search/label/looxlight">click here</a> to find more information).<br /><br />I've released new version of LooxLight. Changelog:<br /><ll><li> Full support for the GPS led.<br /></li><li> Support for the Broadcom Bluetooth Stack.<br /></li><li> Full support for the power led.<br /></li><li> Better support for the keyboard led (it survives brightness changing).<br /></li><li> The LooxLight service is not an EXE, but a DLL now. It is an improvement becouse wince has the limitation on amount of proccesses -- 32 processes.<br /></li><li> Twice as smaller footprint than even before.<br /><br />The CAB archive zipped: <a href="http://downloads.akshaal.info/looxlight-1/LooxLight-2007-03-04.zip?attredirects=0">here</a>.<br />The source code (GPLed): <a href="http://downloads.akshaal.info/looxlight-1/LooxLight-2007-03-04.tar.gz?attredirects=0">here</a>.</li></ll><ad></ad><br />New versions and latest news about LooxLight will be published <a href="http://www.akshaal.info/search/label/looxlight">right here</a>.<br />Another <a href="http://www.akshaal.info/search/label/goodwavpower">project</a> helps reduce power consumption on Fujitsu-Siemens Loox N560/C550.Akshaalhttp://www.blogger.com/profile/05677582369584740657noreply@blogger.com0tag:blogger.com,1999:blog-6273818684831454306.post-78033296697717317912007-02-19T17:30:00.001+02:002009-02-22T17:32:55.755+02:00Virus 4 WinCEI have learned an internals of WM5 deeply. May be I have to recall older days and write a virus for it? Is it needed to enter kernel mode? No problem, there is the function SetKMode. Is it needed to read a memory of an application? No problem, just read it! Is it needed to intercept a system call, a driver, or an interrupt? And it is possible too. :) <ad2></ad2>Akshaalhttp://www.blogger.com/profile/05677582369584740657noreply@blogger.com0tag:blogger.com,1999:blog-6273818684831454306.post-51012170984428898852007-02-11T22:05:00.003+02:002009-08-02T17:53:39.479+03:00WM5EventSpyToday is the very productive day. Today I have implemented an util to monitor system events of Windows Mobile 5 (2005). If you run WM5EventSpy, it will create a file with the name \SD-MMCard\WM5EventSpy.log. There it will write names of all events registered by applications. Then it will wait for these events and then notify about signalled events to the log file. Here is a <a href="http://downloads.akshaal.info/other-soft-for-pda">zip archive</a> with the WM5EventSpy executable file inside (run it on your PPC). And here are <a href="http://downloads.akshaal.info/other-soft-for-pda">its sources</a>. Undocumented structures of WM5 kernel has been used in implemenation of this tool, that is why it doesn't work on other versions of OS.<br /><ad></ad><br /><b>The following in an example of log file produced by WM5EventSpy:</b><br /><pre>2007.02.11 22:28:36: Started ------------------------------------------------------<br />2007.02.11 22:28:36: - - - - Start of event list - - - - <br />2007.02.11 22:28:36: 1: 'WM5EventSpy/SomeEvent', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 2: '50650_ConnMgr', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 3: 'PluginInitialized', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 4: 'HistoryMappingsClosedEvent', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 5: 'CookiesMappingsClosedEvent', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 6: 'ContentMappingsClosedEvent', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 7: 'HistoryCloseMappingsEvent', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 8: 'CookiesCloseMappingsEvent', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 9: 'ContentCloseMappingsEvent', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 10: 'ActiveSync:Started', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 11: 'CE2STATEEVENT1', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 12: 'CE2COMMANDDONEEVENT', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 13: 'CE2COMMANDEVENT', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 14: '__SD_CARD_INOUT', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 15: 'tiacwlnControlReady', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 16: 'tiacwlnResponseToControlReady', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 17: '_LEAP_LIST_CHANGE', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 18: '_BT_STATE_OFF', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 19: '_BT_STATE_ON', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 20: 'WLANStateNotified', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 21: 'LooxLight/FlashlightEvent', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 22: 'LooxLight/SetupEvent', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 23: 'LooxLight/ExitEvent', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 24: 'SYSTEM\netui-TNETWLN1', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 25: 'WLANStatusHasChanged', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 26: 'ProfileStatusEvent', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 27: 'ConnMgrApiReady', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 28: 'DTPT_SRV_STARTED', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 29: 'BindingMapSharedMemoryEvent', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 30: 'All_Awake', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 31: 'BT_EVENT_SECURITY', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 32: '_KeyPress', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 33: 'Shell_Ready', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 34: '$*@DBChanged#%&', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 35: '$*@RegChanged#%&', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 36: 'SSTimeChange', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 37: 'SSUpdatePower', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 38: '$*EventInboxEnableSound*$', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 39: '$*EventInboxDisableSound*$', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 40: 'SSUpdateRecalc', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 41: 'SYSTEM\SipTimerActive', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 42: 'EventSounds_GlobalStopEvent', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 43: 'MS_GWE_TPC_cont_startup', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 44: 'MS_GWE_TPC_startup', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 45: 'TouchPanelCommandEvent', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 46: 'CgrTabletInnerEvent', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 47: 'CgrTabletEvent', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 48: '_SSP_INIT_OK_EVENT3', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 49: 'WatsonUploadClientReady', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 50: 'WALNStatusChangeEvent', manualreset=0, pIntrProxy=8f9fba3c<br />2007.02.11 22:28:36: 50: 'system/events/bluetooth/PairingChange', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 51: 'system/events/bluetooth/HardwareChange', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 52: 'system/events/bluetooth/DeviceIdChange', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 53: 'system/events/bluetooth/ConnectivityChange', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 54: 'system/events/bluetooth/SecurityChange', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 55: 'system/events/bluetooth/ConnectionsChange', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 56: 'system/events/bluetooth/BasebandChange', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 57: 'system/events/bluetooth/StackInitialized', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 58: 'IP6_ROUTE_CHANGE_EVENT', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 59: 'IP6_ADDR_CHANGE_EVENT', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 60: 'TAPILINE00000000', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 61: 'IP_ROUTE_CHANGE_EVENT', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 62: 'IP_ADDR_CHANGE_EVENT', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 63: 'BTWCEShimShutdownThread', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 64: 'BTWCEShimFreeLibs', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 65: 'BTWCEShimLoadLibs', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 66: '_SSP_INIT_OK_EVENT2', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 67: 'Event_HS_PTT_Down', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 68: 'Event_HS_PTT_Up', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 69: 'CPUSpeed4lter', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 70: '_SSP_INIT_OK_EVENT', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 71: '_hLedChangeEvent_Name_', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 72: 'BackLightOverTempEvent', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 73: 'BackLightNormTempEvent', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 74: 'BackLightHighTempEvent', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 75: 'BackLightChangeEvent', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 76: 'BackLightActiveEvent', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 77: 'BackLightNotifyEvent', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 78: 'PowerManager/SystemIdleTimerReset', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 79: 'PowerManager/ReloadActivityTimeouts', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 80: 'PowerManager/UserActivity_Inactive', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 81: 'PowerManager/UserActivity_Active', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 82: 'PowerManager/ActivityTimer/UserActivity', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 83: 'SYSTEM/SystemStarted', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 84: 'system/events/notify/APIReady', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 85: 'SYSTEM/ShellAPIReady', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 86: 'SYSTEM/BatteryAPIsReady', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 87: 'SYSTEM/NLedAPIsReady', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 88: 'SYSTEM/CertChange', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: 89: 'SYSTEM/BootPhase2', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 90: 'SYSTEM/DevMgrApiSetReady', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 91: 'SYSTEM/PowerManagerReady', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 92: 'SYSTEM/GweApiSetReady', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 93: 'LASS_SRV_STARTED', manualreset=1, pIntrProxy=00000000<br />2007.02.11 22:28:36: 94: 'WatsonEventDumpFileReady', manualreset=0, pIntrProxy=00000000<br />2007.02.11 22:28:36: - - - - End of event list - --- - - -<br />2007.02.11 22:28:37: We are going to monitor 63 events!<br />2007.02.11 22:28:37: We are going to monitor 31 events!<br />[...]<br />2007.02.11 22:28:56: Event 'PowerManager/ActivityTimer/UserActivity' is signaled, avgDelay = 54, count=10!<br />2007.02.11 22:28:56: Event 'PowerManager/ActivityTimer/UserActivity' is signaled, avgDelay = 46, count=11!<br />2007.02.11 22:28:56: Monitoring of 'PowerManager/ActivityTimer/UserActivity' is disabled, current count of monitoring events=69!<br />2007.02.11 22:29:16: Event '$*@RegChanged#%&' is signaled, avgDelay = 0, count=1!<br />2007.02.11 22:29:17: Event '$*@RegChanged#%&' is signaled, avgDelay = 24, count=2!</pre>Akshaalhttp://www.blogger.com/profile/05677582369584740657noreply@blogger.com3tag:blogger.com,1999:blog-6273818684831454306.post-74388699343575636112007-02-09T23:08:00.001+02:002009-02-22T17:34:11.806+02:00Synce & Linux & WM5 & PasswordIn a time I developed for WM5 under linux, I found that it was hard and tiresome to copy executable file to PDA for testing. Files were copied to PDA either by using of MMC card or by mounting of PDA as USB Storage. Both ways are not convenient at all when you do such actions every five minutes. In addition, the executable had to be executed to see how it did its job. I executed it by my hands. <ad></ad>Indeed, there is no need to say that after I had developed in windows and such actions had been done by batch files there, I was annoyed in linux enough. Then when I tried to find a better solution for testing process, I came to <a class="snap_shots" href="http://www.synce.org/">synce</a> project. At first, it seemed that <a class="snap_shots" href="http://www.synce.org/index.php/Connecting_your_Windows_Mobile_2005_device_via_USB_%28usb-rndis%29">usb-rndis</a> driver for kernel had to be downloaded, compiled and installed. I did it, but it failed on compilation. Short studies of site were needed to found out that there was the new driver <a class="snap_shots" href="http://www.synce.org/index.php/Connecting_your_Windows_Mobile_2005_device_via_USB_%28usb-rndis-lite%29">"usb-rndis-lite"</a> It did well this time. As the result of installation I got new network device: rndis0. Then it was needed to setup synce utils and libs. It was hardest thing to complete. I tried to follow to the instruction from <a class="snap_shots" href="http://www.synce.org/index.php/Building_SynCE_with_Windows_Mobile_2005_support_from_Subversion">the wiki</a>. But odccm gave me errors about d-bus, hal and so on. Error were dumb.. i.e. they were without any meaning of what really happened wrong. Then I tried vdccm... and it seemed that success was not even near to partitial... There was only one good thing - vdccm started without errors :). It was silent and sad. I started to google for the word vdccm and after a while I found out that one had used triggerconnection util to notify ActiveSync. But in my hands triggerconnection had no effect neither on vdccm nor on ActiveSync. I had walked through sources of the triggerconnection, it looked like it sends a pocket to the port 5679 of PPC. Then PPC was scanned by nmap. And nmap told me that there was no open ports on PPC!! I had no idea why port 5679 was not opened while ActiveSync had been started. I was exhausted and tired. Alas, I had spent a lot of time trying to figure out why port 5679 had been closed, although, at last, it came to me that the port could stay open for a few seconds after a device was plugged into a cradle. Indeed, vdcomm detected plug-event when I had started triggerconnection right after a PPC was plugged into a cradle. This time it made clear that one problem hid another one. At once, vdccm was able to detect a plugged PDA, but it was unable to hold connection more than a several seconds. And none of synce utils worked while it was connected these seconds. Again I googled. Somewhere someone wrote that vdccm doesn't work when device is protected by password. "@!#%@#%*#$!!!" cried me. I didn't wish to have device unprotected or to unlock it each time I plug it into my cradle. I made <a class="snap_shots" href="http://toril.ru/pda/vdccm-password.patch.gz">this patch for vdccm</a>, when I had done reverse engineering of ActiveSync authorization protocol and synce sources had been explored enough for it. And ourtime time had came, patched vdccm worked great! Wheee! So, what I have done at last:<br />1. Installed usb-rndis-lite.<br />2. Installed libs: librapi2, libsynce.<br />3. Patched vdccm.<br />4. Installed ifplugd. It runs ifup/ifdown for rndis0 as needed.<br />5. Appended to /etc/network/interfaces:<pre>iface rndis0 inet static<br /> address 169.254.2.2<br /> netmask 255.255.255.0<br /> post-up /usr/local/bin/triggerconnection-delayed local-pda</pre><br />6. Added line '169.254.2.1 local-pda' into /etc/hosts.<br />7. Wrote /usr/local/bin/triggerconnection-delayed:<div style="margin-left: 30px;"><wbr><pre>#!/bin/sh<br /><br />sleep 2<br />exec /usr/local/bin/triggerconnection $@</pre><br />8. Following lineds added to ~/.xsession:<br /><pre>vdccm -d 3 -f -t -p `cat ~/.pda-pwd` 1>>~/logs/vdccm 2>>~/logs/vdccm &</pre><br />9. Wrote my secret password into ~/.pda-pwd file (chmod 0600).<br /><br />Now I could enjoy with all useful utils like pls, pstatus..., install cabs and etc.<br /><br />It is all. Please, leave a comment if it was useful for you, or you have something to say about. Fell free to leave any kind of comment.<br /><ad2></ad2><br />P.S. The patch I made is not fully featured. I wrote it in a very straightforward way. It does not support pending of password, so you must specify your password with the -p key-option. I really have no time to implement it well, sorry.</div>Akshaalhttp://www.blogger.com/profile/05677582369584740657noreply@blogger.com0tag:blogger.com,1999:blog-6273818684831454306.post-26820185113052881632007-02-04T03:12:00.002+02:002009-03-01T12:54:52.479+02:00LooxLight-2007-02-03LooxLight is a tool for PDA Fujitsu Siemens C550/N560 (<a href="http://www.akshaal.info/search/label/looxlight">click here</a> to find more information).<br /><br />Update. I hope I fixed problem: owners of localized versions of WM5 were unable to install LooxLight. The error message is much more detailed now - it must help to understand cause of the problem if the problem still exists.<br /><br /><a href="http://downloads.akshaal.info/looxlight-1/LooxLight-2007-02-03.zip?attredirects=0">Zipped CAB file (2007-02-03)</a>.<ad></ad><br /><br />New versions and latest news about LooxLight will be published <a href="http://www.akshaal.info/search/label/looxlight">right here</a>.<br />Another <a href="http://www.akshaal.info/search/label/goodwavpower">project</a> helps reduce power consumption on Fujitsu-Siemens Loox N560/C550.Akshaalhttp://www.blogger.com/profile/05677582369584740657noreply@blogger.com0tag:blogger.com,1999:blog-6273818684831454306.post-1550273841604245742007-02-02T19:17:00.002+02:002009-08-02T17:54:51.325+03:00GoodWavPowerIt is my third program for pocketpc. It is simple and sudden even for me. While reading <a href="http://firstloox.org/forums/index.php?styleid=1">firstloox forum</a>, I found <a href="http://firstloox.org/forums/showthread.php?t=7719">that</a> "When you suspend your Fujitsu-Siemens Loox N560 or C550 with power button (with some application executed) and then resume the PDA again, it will consume after resume ~40 mA more power than before!". One suggested to use "Start" button. I tried to discover why "Start" button helped and soon it made clear for me that it was due to a bug in the audio driver! The program is wrotten just to simplify workaround and make it more convenient and not annoying at all. Just install it and forget about mentioned problem. It will prolong your book reading time to about 3 hrs more.<br /><br /><a href="http://downloads.akshaal.info/other-soft-for-pda">Zipped cab file (3k).</a><br /><a href="http://downloads.akshaal.info/other-soft-for-pda">Sources (GPL, 11k).</a><br /><ad></ad><br />Check for updates <a href="http://www.akshaal.info/search/label/goodwavpower">here</a>.<br /><br />(another program that helps you reduce power consumption (drops 15 ... 40mA) is <a href="http://www.akshaal.info/search/label/looxlight">here</a>)<br /><br />As usually, you are welcome for feedback.Akshaalhttp://www.blogger.com/profile/05677582369584740657noreply@blogger.com2tag:blogger.com,1999:blog-6273818684831454306.post-57100443702334585682007-02-01T06:55:00.002+02:002009-03-01T12:55:54.492+02:00LooxLight<img src="http://toril.ru/lj/LooxLight-0.png" align="left" /><br />I've done it! I wrote my second application for pocketpc. LooxLight is a tiny application which is intended to help you control lights (LEDs) of your FSC PPC.<br /><ad></ad><br />Features:<br /><ll><li> LooxLight provides controls for leds of: keyboard, wifi, bluetooth, gps, power. You can keep each led in its individual state. LooxLight can be set to continuosly keep led in ON/OFF state or just temporarily switch led to a desired state.<br /></li><li> Small footprint. LooxLight service takes only 3.5k of memory when it is loaded. LooxLight doesn't waste CPU cycles: it does nothing, when there is nothing for it to do.<br /></li><li> Command line operations. You can control leds from your scripts. No resident service needed to be loaded for command line operations. For instance, "LooxLightCtrl +keyb sleep100 -keyb sleep100 +keyb" winks you with keyboard.<br /></li><li> Tested on Fujitsu-Siemens Loox N560 and Fujitsu-Siemens Loox C550. But AFAIK it must work on Loox 720 or Loox 718 as well.<br /></li><li> I'll open it under GPL in a next few weeks, as soon as everything I plan to implement has been implemented.<br /></li></ll><br /><br /><a href="http://downloads.akshaal.info/looxlight-1/LooxLight-2007-01-31.zip?attredirects=0">Download zipped cab archive (17k).</a><br /><br /><b>How to install and setup.</b><br />1. Download the CAB file and copy it into your LOOX.<br />2. Run the CAB on LOOX. Proceed with an installation process as usually.<br />3. Go to Programs menu and click on the LooxLight Control icon.<br />4. Setup it in accordance with your desires.<br /><br /><b>Short description of dialog controls.</b><br />KBD stands for KEYBOARD, BTH is abbr of BLUETOOTH word, PWR is the POWER word as you already suppose. Each line of controls is prefixed with name of led.<br />"On" button just switches LED on and "Off" button switches LED off :). Blink means blink.<br />"KEEP ON"/"KEEP OFF" means that LooxLight must reset state to required when some other program changed it to unwanted.<br /><br />Some controls are disabled for now, becouse they are not yet implemented.<br /><br /><b>Command line options:</b><br />LooxLightCtrl.exe <op1> <op2> <op3> ... <opx>, where opN is one of:<br /><ll><li><i>stop</i> - tell service to exit<br /></li><li><i>setup</i> - tell service to reload settings from registry<br /></li><li><i>sleep123</i> - sleep 123 milliseconds (where 123 is positive any integer)<br /></li><li><i>flashlight</i> - switch all lights on<br /></li><li><i>+wifi</i> - switch wifi indicator on<br /></li><li><i>-wifi</i> - switch wifi indicator off<br /></li><li><i>+bluetooth</i> - switch bluetooth indicator on<br /></li><li><i>-bluetooth</i> - switch bluetooth indicator off<br /></li><li><i>+gps</i> - switch gps indicator on<br /></li><li><i>-gps</i> - switch gps indicator off<br /></li><li><i>+keyboard</i> - switch keyboard light on<br /></li><li><i>-keyboard</i> - switch keyboard light off<br /></li><li><i>+power</i> - switch power indicator on<br /></li><li><i>-power</i> - switch power indicator off<br /></li><li><i>=power</i> - switch power indicator to blink mode<br /></li></ll><br /><br /><b>History:</b><br />Oneday, I found out <a href="http://www.textzombie.com/keylightc/">KeyLightC</a>. It was useful program but it lacked in ability to turn on/off individual led without touching others. Also I had to run the KeyLightC when some program was changed state of leds or just after PPC was awaked. I mailed Phill McManus. I asked him for command line options like +keyboard or -keyboard. I asked him to open KeyLightC sources in order to add these features by myself. But he didn't answered me. So I started my own research. It took nearly twenty evenings, before I found how to control leds in right way. Then it took ten evenings to find out how to program for PPC in MS Visual Studio and to learn WinCE API. Next it took three days to abandon that ugly MS Visual Studio and migrate to nice mingw32ce under linux. After all, I have to say I hate Win32 API for its tons of caveats.<br /><br /><b>TODO:</b><br /><ll><li>Implement flashlight mode (Sometimes darkness is not a friend of me).<br /></li><li>Implement mechanism to keep power/gps leds in choosen mode.<br /></li><li>Implement backlight control.<br /></li></ll><br /><ad></ad><br /><b>About firmware of Loox N560/C550.</b><br />I am too tired of this post. I am going to describe it in a next post.<br /><br />Feel free to leave a comment with suggestions or information about how it works on your PPC (I am still not sure about 720/718).<br /><br />Latest news about LooxLight are <a href="http://www.akshaal.info/search/label/looxlight">HERE</a>.<br /></opx></op3></op2></op1>Another <a href="http://www.akshaal.info/search/label/goodwavpower">project</a> helps reduce power consumption on Fujitsu-Siemens Loox N560/C550.Akshaalhttp://www.blogger.com/profile/05677582369584740657noreply@blogger.com1tag:blogger.com,1999:blog-6273818684831454306.post-64843393138466981362006-12-14T23:52:00.002+02:002009-02-22T17:37:50.715+02:00Repair after a cleanIf you are owner of PDA, then probably you've heard about utils MemMaid or SKtools, and it means that this post is for you. If you not just heard, but you use it, then this post is 100% for you. If you not just use one of these programs, but also you have cleared notification queue entirely and now you don't know how to force PDA to work - ... so I am going to talk about this problem.<br /><ad></ad><br />1. Why is it a problem? Notification queue mechanism tells PDA what actions are needed to be executed when some event is occured. For example, if you turns PDA on, then there will be an event AppRunAtWakeup (or something that is called like this). PDA does nothing on events if you cleared its notification queue. The main problem is that it will not even connect to PC with usual USB, IR or RS232 link. It means that PDA is unable to sync with PC, and you are unable to explore it from PC.<br /><br />2. How can I cure it? Easiest way is to restore state of PDA from your backup. It is good idea to always have one fresh backup :))).<br /><br />3. I have no backup... not really... I have one but it is ancient, what can I do in this case? You can do Hard Reset. But it is better to restore from backup, even if it is ancient :).<br /><br />4. I don't want do hard reset or restore PDA from backup! Yeah, me too. Then we must add events to notification queue manually.<br /><br />5. Which events do I have to add? You can do following to find out events list: make a backup, than do hard reset, install SKTools and write down events from notification queue, than restore from the recent backup. Or also you can find out events list for your PDA in internet. In my case, I looked at PDA of my wife :). She has a nearly same PDA as mine.<br /><br />6. How can one add events back to notification queue? SKTools is the best that I've seen for this.<br /><br />7. I have to add "\windows\repllog.exe AppRunAfterRndisFnDetected", but SKTools has no event "AppRunAfterRndisFnDetected"! Yes! It is the main problem for now. I spent four days to find such program such allows you to add this event. But I failed. There was no program for it. That is why I have written program to do that. Here it is: <a href="http://toril.ru/soft/akrndisadd.exe">http://toril.ru/soft/akrndisadd.exe</a>. Just run it on your PDA. If event is added successfully, it will show you message "True".<br /><br />8. How can I place your program on PDA if I am unable to explore my PPC from PC until this event is not added?? You can move it with a help of Bluetooth, WIFI, MMC/SD/CF card, IR or RS232 link :). <br /><ad></ad><br />Source of akrndisadd:<br /><pre>#include "stdafx.h"<br />#include <windows.h><br />#include <commctrl.h><br />#include <notify.h><br /><br />int _tmain(int argc, _TCHAR* argv[])<br />{<br /> TCHAR *r = TEXT ("False");<br /><br /> // This API is deprecated. I know.<br /> if (CeRunAppAtEvent (TEXT("\\windows\\repllog.exe"), 14L)) {<br /> r = TEXT ("True");<br /> };<br /><br /> MessageBox (NULL, r, r, MB_OKCANCEL | MB_ICONEXCLAMATION);<br /> return 0;<br />}<br /></pre>Akshaalhttp://www.blogger.com/profile/05677582369584740657noreply@blogger.com0