
oh well .. it was worth a shot... nothing happened.
Quote:
Originally Posted by Xaphiosis
How did you figure out the diagnostic MS card thing? Also, how did you get the cramfs images for the 600 and 900 in the first place? I'm really interested how this kind of high wizardry is done, and there isn't really much in the ways of "tutorials" as such... so maybe you'll throw a hint or two my way 
|
There was a link given to the diagnostic programs given back a few posts; I followed that and there was a link (in russian) to the programs. So I downloaded recovery_update.zip, unpacked it, and read porkupan's linux shell scripts. I then used google translator to translate the russian pages I was given, and it wasn't very good -- but I verified that I had the right idea from the scripts in the package.
It has a diag_card_update directory, and inside the directory is PRS-900\ Updater.package and a script called update.sh;
The first time I simply copied those two items to the root directory of my SD card -- and left the autorun.xml where it was. That didn't do anything at all ... my sony was locked up (crashed) from attempting a factory init from diagnostics at the time.
I didn't expect it to work -- but just wanted to try the default first. Then I followed the instructions to run create_900_Update.sh on the diag_card_update directory -- and it didn't work because of a bug. So, I debugged the shell script -- and found that my version of dd is specifically programmed not to read the /dev/stdin or /dev/stdout files -- a quirk. (Sort of like what ps -ax | grep xxx will do, some programmers idea of a joke... do it ps ax | grep xxx .... ) In any event, looking at the expanded trace of the shell it was clear that the dd command always received the stdin, stdout in order to pipe information into sed, awk, etc -- so since that is the default behavior of sed without if= or of= specified, I removed those extra parameters from the scripts -- and it worked correctly. The main issue there is that "update.sh" is intended to be customized, and has to be made executable (it isn't) before running the create_900_Update.sh -- to be retentive I re-unpacked the files in the original state, overwrote the corrected scripts and ran the create_900... on the diag_card_update directory. Then I copied it to the memory card again, inserted the card -- hard reset rebooted, and the Sony rebooted several times and then came up as it would normally. YAY! undead sony...
I have a train to catch, so I'll have to keep the cramfs discussion short -- but essentially, under Linux there is an item called a loopback device (often it is a module, modprobe loop) which allows one to take a file and pretend it is a hard drive/flash drive/etc. In the flasher package we all downloaded, the .img file is an "image" of a partition to be copied onto the Sony. So one can simply do a mount -o loop xxx.img /foo_directory_to_mount and the cramfs image inside of it will become mounted on that directory. Then you can "cd" into the mount, look at all the files of the cramfs as if it were a normal hard drive, and tinker with them.
In the flasher package, the image file is in the directory test-flash.
--Cheers, and I'll be back at it in a few weeks. Now to use the reader for a long boring train ride, and dream of bug fixes and a mobile linux box....