SDHC Finally Works !!!!!! - HTC Tornado

look at this thread:
http://forum.xda-developers.com/showthread.php?t=575526
The link to the cab file first doesn't work. go to this page:
http://cotulla.pp.ru/StarTrek.html
and download the cabfile. enjoy!

None for WM5?

didn't test it. i don't know. (why use wm5)

oh well, just tell me if MINI SDHC Works? not the mini SDHC adapter thingi for MICRO SDHC
i want a MINI SDHC working on tornado naoooo

i don't think there is any difference between a "mini sdhc" and a "micro sdhc" with adapter to mini. The pinout should be the same and there is no "intelligence" in the adapter part. correct me if I'm wrong.
i don't have a mini sdhc card to test, but maybe someone else has.
Here are some pictures of the adapter/converters. maybe this will help:
http://www.camerahacker.com/Digital/Inside_miniSD_Adapter.shtml

walram said:
i don't think there is any difference between a "mini sdhc" and a "micro sdhc" with adapter to mini. The pinout should be the same and there is no "intelligence" in the adapter part. correct me if I'm wrong.
i don't have a mini sdhc card to test, but maybe someone else has.
Here are some pictures of the adapter/converters. maybe this will help:
http://www.camerahacker.com/Digital/Inside_miniSD_Adapter.shtml
Click to expand...
Click to collapse
for micro sd or micro sdhc, the transfer rate is drastically low compared to a mini SDHC. and when u use a mini sd adapter for it, it will be uber slow. I would rather stick to my 2 Gig minisd card. (there are non SDHC 4 Gig ones too)

hi well im new but i test this patch and finally works im using kamikase rc7 wm6.1prof and load 8gb microsd with adapter and isnt slow have a good performance

Have something important to add! With these drivers SD performance doesnt degradate! Hence You get SDHC support and normal SD-card read/write speed. Check it out! I've uploaded it to FileFactory. Great thanks to comrad llnhhy (the developer)!
http://www.filefactory.com/file/a093fdb/n/llnhhy_SDHC_For_Tornado_20090726_CAB
PS
Cotulla's drives and certs arent needed anymore...Only install the software mentioned above.

myzhLAN said:
Have something important to add! With these drivers SD performance doesnt degradate! Hence You get SDHC support and normal SD-card read/write speed. Check it out! I've uploaded it to FileFactory. Great thanks to comrad llnhhy (the developer)!
http://www.filefactory.com/file/a093fdb/n/llnhhy_SDHC_For_Tornado_20090726_CAB
PS
Cotulla's drives and certs arent needed anymore...Only install the software mentioned above.
Click to expand...
Click to collapse
Big thanks,super work! My test two card Tornado WM 6.1 Standard works OK.

myzhLAN said:
Have something important to add! With these drivers SD performance doesnt degradate! Hence You get SDHC support and normal SD-card read/write speed. Check it out! I've uploaded it to FileFactory. Great thanks to comrad llnhhy (the developer)!
Click to expand...
Click to collapse
Not working here with Gregory's 6.5 ROM. I had previously installed Cotulla's, but I did uninstall that first.
Edit: redoing the install seems to have fixed it. And I (and CardSpeed) agree - much less stuttery and faster than Cotulla's, this with a Transcend 8GB class 6 micro-SDHC with Kingston Micro->Mini adaptor. So many thanks from here to the developer.

Thanks for confirmation of working state! Perhaps, i should consider purchasing larger-sized SD (currently only 128Mb).

Next card test OK WM6.1

Awssommeee!!!! i'm gonna try too!!!

Are there any results on the performance of the SD Card?
Check out the SKTools standard from http://www.s-k-tools.com/index.html?sktools/m_standard.html and look at the benchmark section for the SD card.

Using standard Cachesize (Auto) on the device the sk tools benchmark delivers a WRITE of ~450kB/s and a READ of ~880kB/s. I used a 16GB SanDisk Ultra class4 for this test. This is as good as it can get on the device
It does not work with WM5 though - so you have to use a cooked rom from WM6 onwards. I tested it with the Nitrogen WM6

The driver cab file inserts invalid data to the key
HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class\High_Capacity value "IClass" which should be identical to
HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class value "IClass"
as it is also for other sdhc aware drivers. It seems that the setting of the <parm name="IClass" value="<some-value>" datatype="multiplestring" /> requires special attention in separating the strings. I found a hint in a German forum :
<parm name="SomeTestString2"
value="string1string2string3&#xF00 0;" datatype="multiplestring" />
<!-- multi strings separation with  -->
<!-- multi strings ending with  -->
After altering the _setup.xml in the cab file and re-creating it (otherwise identical) the values inserted in the registry for the value above is correct.
I suspect that the invalid setting is excluding the driver from handling the class "{8DD679CE-8AB4-43c8-A14A-EA4963FAA715}" which is found at HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\Interfaces value "{8DD679CE-8AB4-43c8-A14A-EA4963FAA715}" set to "Power-manageable block devices".
This could have resulted in not (properly?) doing power management, but this was demanded anyhow by another value set as
<parm name="DisablePowerManagement" value="1" datatype="integer" /> in the _setup.xml
Consequently the net-result of the fixed cab may just be the same as the orginal but for different resons. For those who want it, I have attached the fixed cab file below. You may want to play with enabling power management possibly?

I have further debugged the two SDHC cab files that are available (llnhhy_ and Cotulla_ ) for the StarTrek and the Tornado and the core function is de-facto identical.
The only file you need for the Tornado is the OMAP850_SDHC.dll which is (apart from the two different certificates they are signed with in either cab archive) identical. This also means that all the credits of making the SDHC work on the Tornado goes to Cotulla.
The other 2 files packed into the llnhhy_SDHC_For_Tornado... cab are the identical files that are in your cooked WM6 ROMs anyway (again signed differently only).
Also the fuzz about adding an own sub-key below
HKEY_LOCAL_MACHINE\Drivers\SDCARD\ClientDrivers\Class\SDMemory_Class
named
\High_Capacity
is useless on the Tornado, simply as the relevant dll (sdbus.dll) will not read this from the registry. The sdbus.dll from the StarTrek (Cotulla's cab) should read it there - and it also works on the Tornado without decreasing performance.
So why not using the Cotulla cab right away? Well, the 3.rd file contained - sdmemory.dll creates the big slowdown and should not be installed on the Tornado - and the Registry Key that the driver needs to work is not set in the installation cab.
So what?
The supplied file from llnhhy works as is and should not do any harm to the device. It unnecessarily installs two dlls and creates a reg-key that is never read.
The Cotulla cab is usable on the Tornado as well if you delete the non suitable sdmemory.dll after installation and add the registry key (see below).
Smallest footprint: just copy OMAP850_SDHC.dll to your \Windows directory and add one value to the registry: HKLM\Platform\ColdBootConfig = dword:1
I have added a simple cab to install this file - credits go to Cotulla for the OMAP850_SDHC.dll and to llnhhy to discover the one registry setting that makes the driver actually work.
And why all this?
It has given me back my Tornado - the best ever Windows Mobile Smartphone. Nothing that came after it could ever match the composition of features (WiFi) and form-factor (candybar).
I am currently cooking my own WM6 ROM on base of the Nitrogens Kitchen - no need for WM6.1 or 6.5 from my point of view. All my Homescreen Plugins already worked on WM5 and all the new nice sliding and animated stuff is not for me...
Have an eye on the latest HP Ipaq Voice Messenger already, but after my odyssee with the Benq E72 and the LG KS20 I am happy to be back to known grounds.

You can cook the driver into your ROM - its easy!
Now that I stepped in all traps, the final result is truely simple:
The registry key HKLM\Platform\ value (dword) ColdBootConfig=1 is mandatory or the driver will not operate.
I suspect (don't have a StrTrk) that the StrTrk has this value permanently set at ColdBoot and so also the altered driver for SDHC requires this setting. Logically the setting of this value is not present in the StrTrk relevant CAB from Cotulla.
So llnhhy seems to be the one who found out that this did the trick for the Tornado as well, packing just the same two related files (plus the surplus Reg Settings - see previous post) into an own cab for distribution.
So my thanks go to both of them finally
I have cooked it succesfully in my private cooked ROM (using Nitrogens kitchen) as a module:
1.) create a module from the OMAP850_SDHC.dll using reversmode (look up the G'Reloc thread)
2.) replace the created folder with the one in the Work\SYS\OEMDrivers\
3.) run G'Reloc, accepting the valules it presents (the come from the .VM folder as I understand) to realign the modules in the first VM slot without gaps or overlap. A little more insight on the VM is found here: http://www.codeproject.com/KB/mobile/VirtualMemory.aspx
4.) IMPORTANT: Add one line to the relevant *.rgu file of your directory (mine is 173a9ae3-aea7-4dda-a089-433f33821a1a.rgu) where the path HKLM\Platform\ is filled, in mine the section there now looks like:
[HKEY_LOCAL_MACHINE\Platform]
"Name"="Hornet Reference Platform"
"Type"=dword:2
"ColdBootConfig"=dword:1 ;required for OMAP850_SDHC.dll
5.) build your ROM.
One advantage of the module approach is that you do not have to care about certificates (and its the smallest as well).
Enjoy!

Take care about the microSD to miniSD adapter!
If you noticed intermittent problems with your microSD card (especially after inserting it new), take care that the adapter and both connections (card <--> adapter <--> device) are stable and clean.
I have set an adhesive tape around the miniSD fixing the microSD inside and additionally flapped the tape around for easier removal in case I have to remove the microSD. This is giving it an extra pressure to the connection inside the adapter from the battery above.
No problems observed since then any longer

Another thing to notice: If you have the problem that "suddenly" the card is no more detected, check if device settings have created a directory "Storage Card" - even if the card was not present once. This happens if you set system directories (like for IE cache) to the card.
The next time that the card is present it will be mounted as "Storage Card2" but all your links and settings will not point to it. So from first glance (looking at the startmenu) it seems that the card is not mounted still.
This will never cleanup automatically - so you may think microSD card support is broken suddenly, but it is not
To clean up:
rename the false "Storage Card" directory to another name
reboot
the card is mounted with the right name and all your links are back
look if anything was stored in the renamed directory, copy it to the card if needed and finally delete it.

Related

Relocate .NET Compact Framework 2.0 to your storage card!

One of the biggest complaints with Microsoft's Compact Framework 2 (CF2 for short) (and, consequently, with programs relying on it - Hitchhiker, SMS Notifier, Webby, IBE Mail etc.) has always been its storage needs, which, by default, is some 5.4 Mbytes. See for example this thread for users' opinions on the memory consumption on CF2 and their subsequent not wanting to install it.
I've always tried to reduce the main memory load on Pocket PC - with great success. Just search for the word-start "relocat" in the Pocket PC Magazine Expert Blog and on my old homepage for some examples of them. No wonder I've also decided to look into this, so far, unsolved problem to greatly help my fellow Pocket PC users. And, after a day's work and testing, I can present you a 100% working solution, which has been thoroughly tested on four of my WM2003+ PDA's, all with success. This IS a big thing, considering that internal memory is still precious, even with most Windows Mobile 5 (WM5) Pocket PC's. (For example, most WM5 PPC's are shipped with 128M of ROM, of which in general 40-45 Mbytes is free.) The situation is even worse with pre-WM5 Pocket PC's, where the available RAM is very rarely (only with devices shipped with 128 Mbytes of RAM) over 50 Mbytes, from which CF2 takes away 5.4 Mbytes.
Note that this will work on all Pocket PC and Pocket PC Phone Edition devices that are able to run CF2 (that is, all WM2003+ devices, including WM5).
The complete tutorial
* create a directory on your storage card or, if you have, in the built-in File Store. (Note that the files, as they are surely not needed at boot time (unlike some Today plug-in DLL's), may also be relocated to a storage card. That is, they don't need to be stored in the more scarce File Store - if it's available at all; that is, if you have a pre-WM5 device). Let's assume you give this directory the name "DLLs".
* move the following files from \Windows to this directory:
cgacutil.exe
MSCOREE2_0.dll
netcfagl2_0.dll
netcfd3dm2_0.dll
GAC_CustomMarshalers_v2_0_0_0_cneutral_1.dll
GAC_Microsoft.VisualBasic_v8_0_0_0_cneutral_1.dll
GAC_Microsoft.WindowsCE.Forms_v2_0_0_0_cneutral_1.dll
GAC_Microsoft.WindowsMobile.DirectX_v2_0_0_0_cneutral_1.dll
GAC_mscorlib_v2_0_0_0_cneutral_1.dll
GAC_System.Data_v2_0_0_0_cneutral_1.dll
GAC_System.Drawing_v2_0_0_0_cneutral_1.dll
GAC_System.Messaging_v2_0_0_0_cneutral_1.dll
GAC_System.Net.IrDA_v2_0_0_0_cneutral_1.dll
GAC_System.Web.Services_v2_0_0_0_cneutral_1.dll
GAC_System.Windows.Forms.DataGrid_v2_0_0_0_cneutral_1.dll
GAC_System.Windows.Forms_v2_0_0_0_cneutral_1.dll
GAC_System.Xml_v2_0_0_0_cneutral_1.dll
GAC_System_v2_0_0_0_cneutral_1.dll
(netcf2_0license.txt can also be copied here - or just deleted.)
This means only Microsoft .NET CF 2.0.GAC and mscoree.dll needs to stay in \Windows. Never ever try to touch the former (Microsoft .NET CF 2.0.GAC). Even if you copy it back to \Windows (after starting any CF2-dependent app), CF2 won't work again until you reinstall it.
Copying the files can be done in several ways, of which I show the one way that requires no third-party apps, that is, without having to resort to, for example, the WindowsCE File System plug-in of the desktop-based Total Commander.
Start the built-in (Pocket) File Explorer and navigate to \Windows. Tap and hold an empty (not highlighting any file or directory) region anywhere (for example, the end of the list) and enable "View All files" in the context menu:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Now, click the "Name" drop-down menu in the upper right corner; a "Sort By" list will be displayed, defaulting to "Name". Switch it to "Date":
Scroll to the region with filedates of Aug 26 and, with cgacutil.exe, 27, 2005 (this is the easiest way to find the files) and mass-highlight all files that are listed in the above list. Note that mscoree.dll should not be highlighted (as has been pointed out, it should be left in \Windows). Also note that the filedates of the current, 2.0 version of CF2 are all dated at Aug 26/27 last year. They will only have a different filedate if you've restored them from a backup. Then, they will have the timestamp of the restoration and you'll may end up having to hunting for them one-by-one, based on their name.
Now tap-and-hold the selection somewhere so that the context menu comes up. Choose Cut:
Go to the target directory (in this case, DLLs on your storage card); tap-and-hold an empty area and choose Paste:
The transfer of the files will start:
Note that you can also use other file handler tools on the Pocket PC; for example Resco File Explorer or Total Commander. In Resco, go to File/Options/Browser and make sure "Show all files" is chosen (instead of the default "Hide hidden files and files...") as can be seen in this screenshot.
* get a registry editor that is able to (flawlessly (!)) edit multiline strings (that is, all known, up-to-date registry editors except PHM Registry Editor and Total Commander; please check out The Ultimate Roundup of Registry Editors for the Pocket PC for a thorough explanation of why I don't recommend these two applications if interested). In this tutorial, I use Resco Registry Editor (Resco for short). It's commercial, but the 14-day, unrestricted trial version is fully sufficient for our purposes. Start it.
* First, we'll modify the so-called "System Path" (which is a bit similar to the PATH in traditional operating systems) so that it includes our new directory. To do this, go to HKEY_LOCAL_MACHINE\Loader:
Note that, in here, I've switched to "Tree Mode" in View/Show Tree View as can be seen in here.
Now, click SystemPath (highlighted in this screenshot); you'll be presented the following dialog:
Note that there may be some values already in the text input area in here. For example, if you've ever had SKTools or MemMaid relocate DLL's for you, the target directory will be in here. Also, by default (if you haven't ever touched the System Path), there may be a \Release\ or \windows\oem\ in here. These can be safely deleted as they're not used. You can, naturally, leave them in there; of course, then, you must make sure the new path is entered in a new row as can be seen in this x51v or this HTC Wizard (latest Qtek ROM) screenshot. Once again: you can safely delete them.
All you have to do is entering the full path of your new DLL directory in here. For example, if you've moved the CF2 files to a directory named DLLs on your storage card named CF-Card (Storage Card, CF Card, SD Card, SD-MMCard are also widely used), enter
\CF-Card\DLLs\
in here, as can also be seen in here:
Don't forget to add the leading and the trailing backslash characters (\)!
Now, click OK in the upper right corner and answer Yes:
In the list view, the new, just-entered value should be shown as can be seen in here:
Note that, again, if you want to keep the previous values of System Path, then, the new entry should be put in a separate row. For example, if the previous value of HKEY_LOCAL_MACHINE\Loader has been
\SD-MMCard\Programs\CrEme\bin\
\LOOXstore\DLLs\
then, you need to add the new value in a new row as can be seen in here:
* now comes a bit more complicated part. First, go to HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ .NETCompactFramework\ Installer\ Assemblies\ Global.
Note that, on some devices, in the above path, SOFTWARE may not (all) be uppercase. This varies from model to model and shouldn't be paid attention to. (Also note that I’ve added spaces after every backslash characters (\) in the above registry path so that the blog engine nicely renders it. In the reality, it should not contain any spaces!)
Here, look for names (on the left) that have 2.0 in them. Note that almost all values (except for CustomMarshalers, Microsoft.WindowsMobile.DirectX and Microsoft.WindowsMobile.DirectX, which have all been introduced in CF2 and didn't exist in CF 1.x) seem to be duplicated and their name will start with the same (Microsoft.*, mscorlib.*, System* etc.); it's only after this that they start to be different. One set of them will continue in Version=1.0, the other set will continue in Version=2.0. The only exception from this "must contain Version=2.0" law is the value starting with "Microsoft.VisualBasic, Version=8.0.0.0" (that is, 8.0 instead of 2.0).
In all these Version=2.0 values, you'll need to modify the original path referring to \Windows to the new home of the relocated files - for example, in our case, \CF-Card\DLLs.
In order to be able to see this as easily as possible, enabling Show Header in the View menu is highly recommended, as can be seen in here. Then, you'll be able to greatly increase the displayed length of the value names if you drag the header to the right. Of course, switching to Landscape and/or VGA mode (if possible) is highly recommended. Then, you'll be able to see the version number in all the values. For example, this screenshot shows a QVGA WM5 device in Landscape - here, it's also possible to increase the width of the "Name" column so that the version number can also be seen without having to click every value.
All you need to do is just click all the values that have Version=2.0 in their name (except, as has already been pointed out, the 8.0 Microsoft.VisualBasic) and just change \Windows to the new value in the first row. An example of this:
before:
after:
Another example of a changed value (WM5, QVGA device, with files relocated to \Storage Card\_):
and with the VGA x51v in standard VGA mode:
Note that, much as it refers to the main storage (\Program Files\.NET CF 2.0\), you don't need to pay attention to the second row in all these values. Just leave them there.
Consider using a PC-based Pocket PC controller tool to do this (please read this article for more info on them if not sure). Using them, you can speed up the registry modification by orders of magnitude, particularly if you use copy/paste to insert the new directory path.
After you've modified all the affected values, check once more if it was successful. Fortunately, you'll see all the names (showing that a given value is 2.0-specific) and values (showing whether it refers to the original \Windows directory in the main storage or somewhere else) on the same screen as in this screenshot.
You may also want to export the just-modified branch to a registry (.reg) file. Then, in case you reinstall CF2 and want to avoid hand-editing the entire stuff, you'll only need to reimport this file. To do this, tap-and-hold Globals in the upper, tree pane and choose Export:
On WM5 devices, you will also want to make sure the changes are flushed back to the ROM (as the Registry is kept in RAM and changes are rarely flushed back to ROM, which will result in a simple soft reset getting rid of all changes and, therefore, CF2 not working after the relocation). To do this, on many WM5 devices (like the HTC Wizard), just long-press the Power button. On some other devices, you must explicitly configure the device to shut the PDA completely down upon a long-press (instead of just dimming the screen). For example, on the x51v, you must go to Settings/System/Power/Power Button and enable "Full power off" instead of the default "Dim/light the display" as can be seen in this screenshot. You'll only need to power off your PDA for some seconds because it's before shutting it down that the Registry is flushed back to the ROM; that is, you can safely switch it back on instantly.
Congratulations! Now, the relocated CF2 will be working! If you've modified the System Path, you'll need to reboot; otherwise, you can start your CF2 apps right away.
Advanced remarks for geeks/advanced hackers
* Exporting, editing and re-importing the contents of HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ .NETCompactFramework\ Installer\ Assemblies\ Global (so that you can much easier change all occurrences of \Windows to the new path) just won't work because the values in here are multiline strings, which are exported as hexadecimal values by all export-capable Pocket PC-based registry editors (I've checked this!) like in here:
* The \Windows paths in HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ .NETCompactFramework\ Installer\ Assemblies\ Reference (note that the last word is Reference, not Global!) don't need to be modified. Actually, you can even get rid of the entire subkey because it's not used at all.
* Technically, the GAC*.dll files don't need to be in the System Path; it's only with the other files (cgacutil.exe, MSCOREE2_0.dll, netcfagl2_0.dll and netcfd3dm2_0.dll) that must be. That if, you have already set up a relocated DLL directory somewhere in the System Path, you can safely move the files to there. It's in order to be as easy as possible for a novice user that I've instructed copying all relocated files to the same directory in the System Path.
one better make damm sure that one dont have any .net programs running when the pda is off too
because then the SD interface get shutdown to save power
and then programs which are running which depend on the framework crash and burn
Rudegar said:
one better make damm sure that one dont have any .net programs running when the pda is off too
because then the SD interface get shutdown to save power
and then programs which are running which depend on the framework crash and burn
Click to expand...
Click to collapse
Yup, but you can also play with PNPUnloadDelay to avoid problems because of this (see http://www.pocketpcthoughts.com/forums/viewtopic.php?t=44488 for more info).
how does this method compare to the way the new beta allows GAC to be installed to the storage card?
http://www.microsoft.com/downloads/...53-a418-42d9-a481-19ba3ceca1a6&displaylang=en
from what another user told me, the beta allows you to install about 80% of the framework to the storage card.
-jeff
jeffreii said:
how does this method compare to the way the new beta allows GAC to be installed to the storage card?
http://www.microsoft.com/downloads/...53-a418-42d9-a481-19ba3ceca1a6&displaylang=en
from what another user told me, the beta allows you to install about 80% of the framework to the storage card.
-jeff
Click to expand...
Click to collapse
Yes !!! Thanks for the council.
Before with the previous version of net framework 2 my free memory was of 25,80 Mb.
After to have installed the Sp1 new beta on the Storage Card is of 29,78 Mb.
Hi Menneisyys. Would MUCH appreciate your guidance;
I'm using a ROM image that works great - except that the CF 2.0 SP1 installation is buggy. I can't de-install it as it's not in my installed apps. Any idea what files I need to delete so the install proggie thinks it's gone and does a reasonable re-install? Currently the install proggie says "you already have this verison installed".
craigiecraigie4 said:
Hi Menneisyys. Would MUCH appreciate your guidance;
I'm using a ROM image that works great - except that the CF 2.0 SP1 installation is buggy. I can't de-install it as it's not in my installed apps. Any idea what files I need to delete so the install proggie thinks it's gone and does a reasonable re-install? Currently the install proggie says "you already have this verison installed".
Click to expand...
Click to collapse
Unfortunately, it's not only files but also registry entries. Try deleting all the above-listed, 2.0-only (don't touch the CF1-specific ones!) registry entries.
Do you have WM5 or a previous OS? If you have the latter, I can send over an .unload file and a registry import so that you can directly delete these without any manual registry editing.
Menneisyys said:
Unfortunately, it's not only files but also registry entries. Try deleting all the above-listed, 2.0-only (don't touch the CF1-specific ones!) registry entries.
Do you have WM5 or a previous OS? If you have the latter, I can send over an .unload file and a registry import so that you can directly delete these without any manual registry editing.
Click to expand...
Click to collapse
Hi Mennei, I'm on WM5 and would TRLUY appreciate a .unload file! Thanks a stack.
craigiecraigie4 said:
Hi Mennei, I'm on WM5 and would TRLUY appreciate a .unload file! Thanks a stack.
Click to expand...
Click to collapse
Unfortunately, you can't easily hack WM5 (as opposed to pre-WM5 OS'es) to think it has a program installed - you don't have write rights on \Windows\AppMgr and, tehrefore, can't copy the (un)install DLL there. That is, with WM5, it's, to my knowledge, not possible to automatically remove stuff.
Menneisyys said:
Unfortunately, you can't easily hack WM5 (as opposed to pre-WM5 OS'es) to think it has a program installed - you don't have write rights on \Windows\AppMgr and, tehrefore, can't copy the (un)install DLL there. That is, with WM5, it's, to my knowledge, not possible to automatically remove stuff.
Click to expand...
Click to collapse
hmmm.....
maybe if you installed a "dummy" program that would reference the appropriate uninstall file for CF2.0?
just an uneducated noob suggestion. (feel free to educate me! i'm always eager to learn)
blazoner said:
hmmm.....
maybe if you installed a "dummy" program that would reference the appropriate uninstall file for CF2.0?
just an uneducated noob suggestion. (feel free to educate me! i'm always eager to learn)
Click to expand...
Click to collapse
It might work.
CF2 late question
I know there has been no action on this thread but as a late commer I was wondering if the CF files can be copied and included into the extended ROM (instead of the storage card) and then flashed onto the device?
mnazmi said:
I know there has been no action on this thread but as a late commer I was wondering if the CF files can be copied and included into the extended ROM (instead of the storage card) and then flashed onto the device?
Click to expand...
Click to collapse
Yup, I think so - after all, when unlocked, the extended ROM is just another drive in the file system. WHEN unlocked, I think.
FYI
i downloaded the .Net CF2.0 SP1 fr http://www.microsoft.com/downloads/...88-59e2-4eba-a70e-4cd851c5fcc4&DisplayLang=en
i selected Storage Card during the installation. all GAC* files are installed automatically\directly onto my Storage Card\Windows folder. when i checked on HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ .NETCompactFramework\ Installer\ Assemblies\ Global, all 14 2.0 and 8.0 entries are already with the correct folder path (\Storage Card\Windows). therefore, i only needed to move 4 files below onto the \Storage Card\Windows folder, and added value Storage Card\Windows\ into the SystemPath in HKEY_LOCAL_MACHINE\Loader
cgacutil.exe
MSCOREE2_0.dll
netcfagl2_0.dll
netcfd3dm2_0.dll
thanks for the tips!

What happened to the infamous ignore_my_docs in WM5?

(Note that if you’ve never heard of ignore_my_docs, you can safely skip this article. It’s only meant for users of previous Windows Mobile operating systems that would like to know whether ignore_my_docs is still in effect.)
There is still a lot of confusion caused by ignore_my_docs explained for example in THIS (this is the most important article!), THIS and THIS threads / articles.
WM5 (and, of course, all subsequent operating system versions), finally, got rid of this, for several Windows Mobile users, pretty confusing feature as is explained for example HERE or HERE.
In a nutshell: WM5+ is different from how earlier OS versions behaved if and only if they also contained an ignore_my_docs file in the root of the card and also a \My Documents directory. In this case, only the contents of \My Documents (and ALL its subdirs) were accessible, nothing else on the card. An example screenshot of my WM2003 HP iPAQ 2210 showing this in effect is in HERE (with removed ignore_my_docs) and HERE (with present ignore_my_docs). As you can see, in the former case, the content of the other directories on the card aren’t listed, only those of \My Documents on it (and, incidentally, all its subdirs – as opposed to the case of WM5+, where this is no longer the case).
All in all, under WM5 and later operating systems, it doesn’t make any difference whether there’s an ignore_my_docs file in the root of a storage card or not: the standard file dialog will see all directories - one directory deep. The latter also applies to \My Documents, unfortunately, as has also been explained HERE. This problem still hasn't been fixed.
Noticing this behaviour of WM5 I put a question about one year ago: how can I save my new files produced by Word, Excel and Notes to 'Storage Card\My Documents' by default, instead of the root of Storage Card. In WM5 and WM6 you can set these apps to save every new doc to Storage Card but you cannot specify any subdir -- unlike the older OS where My Documents was the "root".
Nobody answered so far.
So, I guess your post also means that there are no solution for the above described problem.
ctibor said:
Noticing this behaviour of WM5 I put a question about one year ago: how can I save my new files produced by Word, Excel and Notes to 'Storage Card\My Documents' by default, instead of the root of Storage Card. In WM5 and WM6 you can set these apps to save every new doc to Storage Card but you cannot specify any subdir -- unlike the older OS where My Documents was the "root".
Nobody answered so far.
So, I guess your post also means that there are no solution for the above described problem.
Click to expand...
Click to collapse
Word / Excel Mobile use a different file selector; therefore, FDC / Pocket Plus can't help with them.
I don't have a definite answer to your question; I'll, however, try to look around / experiment. I'll post the answer into this thread if I find it.

Analysing RAM Usage on the device [DevHealth] - How to Change PagePool size ?

-DevHealth.exe
To get a summary of where the RAM is going on the device, you can use the comprehensive DevHealth application to create a snapshot of the memory usage on the device at any point. DevHealth.exe is available in the Windows Mobile 6 Adaptation Kit and you can run it several ways.
To run DevHealth using SD/MMC card (recommended method)
Create a folder named "2577" on an SD/MMC card.
Rename DevHealth.exe to autorun.exe and copy it to "2577" folder.
Insert the SD/MMC card into the device. This automatically runs autorun.exe from the card, which is really the DevHealth application.
To run DevHealth using ActiveSync or another method
Copy DevHealth.exe to \Windows\Start Menu folder on the device.
Run DevHealth from Start menu.
The device displays a wait cursor while DevHealth.exe is running. At the end of the process, you will have a log file named mem_N.txt, where N is the run number starting with 1 and the highest N is the latest run. The log is saved on the SD\MMC card if it is present, otherwise the log file is saved in the "\" directory of the device.
Now guys, with this tool, we can view the available Page Pool for RAM. On my vox it is 6 MB. How to change this value to say 10 MB ??
Any ideas??
Regards,
Chandan
page pool
I'd like to know how to change the pagepool, too.
On my wizard the larger pagepool made my device far more responsive.
pagepool of 10MB will not make any changes in performance.
it will just waste your ROM space.
6 MB is more than enough for Vox. Many people have found 4MB to be giving similar performance. So 6MB is a safe bet.
If you do increase it to 10MB you will be wasting 4MB of ROM.
PagePool uses RAM space and not ROM space. Yes, 6 MB is the sweet spot as suggested by Microsoft.
pagepool
So can i conclude from your comments that this has been tried?
Again, on my wizard i used a 16(!) mb pagepool with a very minimal rom. This gave me a far more responsive device. In fact, my wizard is a lot more responsive then most "high performance" wm devices such as kaisers.
Since the vox has a similar (or actually the same) processor, i was expecting similar performance.
If there was a tool to change the pagepool, as there is for the wizard, i'd be happy to find out for myself and of course post the results to this forum.
Thank you for your answers so far.

NAND and NOR ROM on the Kaiser

So with all the excitement going on in the page pool thread I was doing some external reading. One topic that caught my interest is NAND and NOR ROM.
I got a nice summary from here:
http://blogs.msdn.com/windowsmobile/archive/2005/08/19/453784.aspx
Basically, the synopsis is:
NOR: Faster to read, slower to write.
NAND: Slower to read, faster to write.
But, more importantly, NOR ROM let's you perform XIP operations. Now i remember seeing this XIP acronym before...in a directory when I extracted a ROM. This leads me to believe that at least part of the ROM in the Kaiser is NOR ROM.
XIP means eXecute In Place. It basically allows code to be executed directly from the ROM without first being copied into the RAM. This means less RAM utilization. As the article states i works for programs only, not user data files.
If we look in the XIP directory of an extracted ROM we see subdirectories like:
busenum.dll
diskcache.dll
imgfs.dll
These are things like low level bus, disk, and file system drivers. These things make perfect sense to XIP.
My question then is... if indeed we do have NOR ROM that can do XIP operations, how much is free on a typical ROM? AND can we cook in other applications into this XIP NOR location instead of into the NAND ROM and thus have those eXecute in Place and free up additional RAM?
It would be nice to get the 3% of my RAM back from Voice Command, or the 1% from PocketCM, etc, etc...
Could it be as easy as moving .dll files from \SYS to \ROM\XIP before cooking the ROM? I doubt it, but is it possible?
I'm just throwing a concept out there and asking about it's feasability. I'm not really a developer so I don't know how much further I can take this.
Thoughts?
bengalih said:
My question then is... if indeed we do have NOR ROM that can do XIP operations, how much is free on a typical ROM? AND can we cook in other applications into this XIP NOR location instead of into the NAND ROM and thus have those eXecute in Place and free up additional RAM?
It would be nice to get the 3% of my RAM back from Voice Command, or the 1% from PocketCM, etc, etc...
Could it be as easy as moving .dll files from \SYS to \ROM\XIP before cooking the ROM? I doubt it, but is it possible?
I'm just throwing a concept out there and asking about it's feasability. I'm not really a developer so I don't know how much further I can take this.
Click to expand...
Click to collapse
I don't think that blog applies to the Kaiser-like devices anymore. We already use all the ROM space we get. The partitioning between XIP and storage is out of the same space and controlled by how the ROM image is built and whatever they set the pagepool to.
Did you run out of space of the 100MB+ internal storage we all get?
I don't know why it wouldn't apply...it's not a WM5 vs WM6 issue.
Based on the only specs I have seen it lists the Kaiser with 256 ROM and 128 RAM.
The question is what type of ROM is it? Devices can mix NOR and NAND ROM. And based on what I see on the extracted ROM, at least some of it must be NOR (because of the existence of the XIP directories).
And this isn't a question of storage space. I am not trying to get more usable storage...I have a 8GB SDHC card for that. I am trying to maximize my available application space.
The point of my post is... can an application, let's say like Voice Command be moved from what might be the NAND portion of the ROM into the NOR portion of the RAM (from \SYS to \ROM\XIP). It would take up the same space of the TOTAL ROM, but when it executed it DOES NOT NEED BE LOADED INTO RAM and thus your available application space is not decreased.
Again, I am not a developer, so I may be way off in asking if this can be done. However your response is one that doesn't speak to the theory I am proposing.
if I remember right this was talked about before but on a different device I think the hermes. I am not sure of the reason it couldnt be done but I just remember it couldnt lol. Something about allocated memory maps
Some interesting things
I found this wile reading the link you posted. Some great information in there.
By the way, every SD and CF card is made out of NAND flash. So, no, you can't XIP programs stored on a storage card.
Click to expand...
Click to collapse
So am I reading this right. That any program we have stored on our Storage Card won't utilize the XIP
I've been working on & subsequently screwing up, page pool alteraitions for awhile. Because I'm messing with a Kaiser(CE5) & a UMPC (CE6) based device, I can tell you that while the pagepool will save you some seconds, mostly with the loading of contacts, your inbox, & the boot to os speed of the device, for the most part you're right, you won't see much difference.
However, with CE6, that will change. With CE 6 based devices you will be able to completely comtrol paging, be it XIP or Data (Read Only) paging. Maybe wm7 will introduce CE6 to PDA devices. With CE6, formerly & frequently confused with WM6, you will have 2 page pools & several controls over them including compaction.
The effectiveness of page pool sizes can vary widely depending on the types of processes & programs you use, but suffice to say, the average user will take little to no benefit from a larger paging file.
For all of you truly interested, there is a PB process file called DevHealth.exe, that can be used via SD card to report the actual status of the paging pool. Google it, you will find it. Kind of interesting to see what your device is actually doing before & after the changes.
AllTheWay said:
I found this wile reading the link you posted. Some great information in there.
So am I reading this right. That any program we have stored on our Storage Card won't utilize the XIP
Click to expand...
Click to collapse
No but what the OP is asking is if we can take apps and put them in the XIP section and run them from there. I think someone should try it out just cook up a rom with a complete app cooked in the XIP and see what happens. the worst is bad blocks i would guess but maybe POF or OLI should chime in on this one.
I do believe you can XIP from an SD card, I believe MS has done this with a few test devices that utilize under battery sd cards. I think it's not something they've done mostly because of problems in system stability when the SD is removed.
austinsnyc said:
No but what the OP is asking is if we can take apps and put them in the XIP section and run them from there. I think someone should try it out just cook up a rom with a complete app cooked in the XIP and see what happens. the worst is bad blocks i would guess but maybe POF or OLI should chime in on this one.
Click to expand...
Click to collapse
THANK YOU AUSTIN!
Yes, this is what I am saying. Forget about SD cards (which, according to what I have read are all NAND and thus can't XIP).
I am just asking if some of the applications that we are cooking into the flash (the things that extract to \SYS) like MS Voice Command, CM Contacts, QuickGPS, etc... if instead those things can be places in XIP.
Again, this is under the assumption (which is a big assumption) that what is in \XIP gets placed in the NOR ROM and what is in \SYS gets placed in the NAND.
What this would mean is that when you execute any of the programs I mention, like say Quick GPS you won't see the RAM utilization on your device go up, meaning you will have the same amount of available free memory. This is because of the XIP (based on the description I have read) it can be executed from the ROM without being copied into RAM.
Now, my guess is that even though the NOR has faster reads than NAND, it still might be slower than RAM. So, it might take another second to open Quick GPS. However for some apps I think I would prefer the slight delay in order for my available memory to be increased.
GSLEON3 said:
I've been working on & subsequently screwing up, page pool alteraitions for awhile. Because I'm messing with a Kaiser(CE5) & a UMPC (CE6) based device, I can tell you that while the pagepool will save you some seconds, mostly with the loading of contacts, your inbox, & the boot to os speed of the device, for the most part you're right, you won't see much difference....
For all of you truly interested, there is a PB process file called DevHealth.exe, that can be used via SD card to report the actual status of the paging pool. Google it, you will find it. Kind of interesting to see what your device is actually doing before & after the changes.
Click to expand...
Click to collapse
Good info Leon...but better to put this in the pagepool thread so we can discuss it there (and please do). What I'm trying to get at here is not directly related to pagepool sizes and speeds.
austinsnyc said:
if I remember right this was talked about before but on a different device I think the hermes. I am not sure of the reason it couldnt be done but I just remember it couldnt lol. Something about allocated memory maps
Click to expand...
Click to collapse
That's entirely possible. Again, I'm being the "idea guy" as I'm trying to synthesize some info I have absorbed. The most programming I do is high level scripting and VB so I don't know details about how this stuff would actually work down at the memory map level. There may be some other issues as well. I was hoping there was someone in these forums who actually had the knowledge (and wasn't just following cooking tutorials like most of us) of how this stuff truly interacts.
Also please reference my post in the pagepool thread, has some good thoughts (I think!):
http://forum.xda-developers.com/showpost.php?p=2101324&postcount=99
bengalih said:
http://forum.xda-developers.com/showpost.php?p=2101324&postcount=99
Click to expand...
Click to collapse
In addition to the above, I have found some more info which may partially defeat my reasoning:
XIPKernel
There are portions of the deepest parts of the OS that have to XIP. If you're on NOR, that code just XIPs like everything else. Not so on NAND. For a NAND system to boot, it needs to load this code into RAM first and then run it from there. When the system is running, it can't really tell if it's running from RAM or ROM, so it assumes it's running from ROM and doesn't count this space.
The XIPKernel region tends to be between 1.5 and 2M.
Click to expand...
Click to collapse
So it seems that just because we have a \XIP directory doesn't mean we have NOR ROM. It could just be the area the ROM places data that in NEEDS to XIP, and therefore means that it will get copied to RAM on boot (instead of just XIPing from where it is in ROM). This could also account for the additional "missing" RAM up to 128MB.
Therefore moving an application to this \XIP pre-cook doesn't mean that it will save us any RAM (again, assuming we DON'T have NOR ROM). It could however speed up that application since we are basically "pre-loading" it into RAM instead of waiting for the load to be user initiated.
I guess a question now is does all XIPed code run at the same time and is that all at boot? It does us no good to try and load up voice command (or QuickGPS, etc.) before the supporting code from the OS has loaded.
So, this may all be a wash, but it does help explain some of the interaction better and even if it leads no where, at least we will better understand how the devices memory system works.

Need help again, 7510 registry seach

Still searching in my endeavor to fit an SSD to a 7501.
I have been learning more about the registry and was wondering if the 7510 has the following lines in registry? (thanks in advance!)
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\NAND]
"Dll"="nandflash.dll"
"Prefix"="DSK"
"Order"=dword:1
"Ioctl"=dword:4
"Profile"="NAND"
"IClass"="{A4E7EDDA-E575-4252-9D6B-4195D48BB865}" (this will be different)
"Build"="0000000"
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\NAND]
"DefaultFileSystem"="FATFS"
"PartitionDriver"=""
"Folder"=""
"Name"=""
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\NAND\FATFS]
"Flags"=dword:14
"FormatTfat"=dword:1
"MountFlags"=dword:6
"CheckForFormat"=dword:1
[HKEY_LOCAL_MACHINE\System\StorageManager\AutoLoad\NAND]
"DriverPath"="Drivers\\BuiltIn\\NAND"
; load synchronously:
"LoadFlags"=dword:1
"Order"=dword:0
"MountFlags"=dword:6
"Bootphase"=dword:1
The 7501 has these registry values missing, as well as the nandflash.dll file.
There is no such lines in the registry.
However there is something, which can help you:
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MSFlash]
"Name"="FLASH Disk Block Device"
"Folder"="Flash Disk"
"MountHidden"=dword:00000001
"MountAsROM"=dword:00000001
"PartitionDriver"="mspart.dll"
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MSFlash\FATFS]
"MountHidden"=dword:00000000
"MountAsROM"=dword:00000000
As you can see, MSFlash describes Flash Disk, which is the name of 16GB disk in X7510.
My X7501 has the exact same settings.
BUT, those settings are inactivated since there is no folder in the following registry location:
HKEY_LOCAL_MACHINE\Drivers\BuiltIn\MSFlash
Do you have that folder (or similar) in your 7510, and if so what are the contents?
There should probably be an IClass GUID (Unique ID) for the actual hardware, as well as some other items.
Thanks again! If I were to do it, I would be flashing 7501 & 7510 ROM's back and forth....
Keith Walker
Tadeusz said:
There is no such lines in the registry.
However there is something, which can help you:
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MSFlash]
"Name"="FLASH Disk Block Device"
"Folder"="Flash Disk"
"MountHidden"=dword:00000001
"MountAsROM"=dword:00000001
"PartitionDriver"="mspart.dll"
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles\MSFlash\FATFS]
"MountHidden"=dword:00000000
"MountAsROM"=dword:00000000
As you can see, MSFlash describes Flash Disk, which is the name of 16GB disk in X7510.
Click to expand...
Click to collapse
keithwwalker said:
My X7501 has the exact same settings.
BUT, those settings are inactivated since there is no folder in the following registry location:
HKEY_LOCAL_MACHINE\Drivers\BuiltIn\MSFlash
Do you have that folder (or similar) in your 7510, and if so what are the contents?
There should probably be an IClass GUID (Unique ID) for the actual hardware, as well as some other items.
Thanks again! If I were to do it, I would be flashing 7501 & 7510 ROM's back and forth....
Keith Walker
Click to expand...
Click to collapse
If you mean, folder "MSFLASH" in ...\Built registry, then no. There is no such folder in the registry. I know , it is weired, but that is it.
I was looking for anything which could describe Flash Disk (any hardware ID or something, but I could not find anything. And I do have this 16GB Flash Disk and I love it.
I have noticed that I can install any software, also services and Today plug-ins, on this disk and it works fine. It means, the disk is initialized very early during booting the system, not like SD card slot.
I do have old X7500 with broken screen, and I would like to be able to move my screen and the flash disk from X7510 to X7500 to have joystick on board, but I did not find any solution for drivers for 16GB flash disk.

Categories

Resources