Active Topics

 


Reply
Thread Tools
Posts: 31 | Thanked: 32 times | Joined on Jan 2008 @ Helsinki
#1
I rebooted my N810 today, and now it will reboot itself automatically after it has started, before the desktop appears. The kernel loads, the logo with two hands is displayed, the startup sound is played, and then it just reboots again (and when it does that, it plays the same sound and flashes the blue led as when you shut it down with the power button normally).

I would gladly reflash it, but the problem is that there is one important file in my home directory in the internal memory. And I can't access that via USB.

Any ideas on how to get the thing either started up or how I could access the internal flash?

Are there any kernel command line options I could try with the flasher --boot option? It would even be enough to be able to boot in single user mode and busybox as the important file contains text only and I could copy the information by hand. I tried "flasher --boot single" but no effect...
 
Posts: 2,152 | Thanked: 1,490 times | Joined on Jan 2006 @ Czech Republic
#2
If you don't have modified initfs already installed then it is hard to install it on non-booting device. Still it is possible. Depends on how important the file is, see
http://www.gossamer-threads.com/lists/maemo/users/32921
__________________
Newbies click here before posting. Thanks.

If you really need to PM me with troubleshooting question please consider posting it to the forum instead. It is OK to PM me a link to such post then. Thank you.
 
gerrymoth's Avatar
Posts: 125 | Thanked: 27 times | Joined on Nov 2007 @ Bellshill, UK
#3
I got this when I installed bluez by mistake and then tried to remove it, next time I rebooted it went into overdrive turning off & on. Even taking the battery out didn't help. Couldn't get it to stop and only solution I had was to reflash, but luckily I had done a backup the previous day, so didn't lose much.

I'll keep an eye on this thread to see if you come up with any solution, just in case it happens to me again.
__________________
Gerry (The MOTH)
Website: http://gerrymoth.co.uk
 
Posts: 31 | Thanked: 32 times | Joined on Jan 2008 @ Helsinki
#4
Originally Posted by fanoush View Post
If you don't have modified initfs already installed then it is hard to install it on non-booting device. Still it is possible. Depends on how important the file is, see
http://www.gossamer-threads.com/lists/maemo/users/32921
Thanks for the link fanoush! I looked into it, and it does seem possible. However the N810 does not seem to be fully supported yet with initfs_flasher.

But I decided to go another way. I opened up the initfs and added lines to linuxrc:

Code:
mount -t jffs2 /dev/mtdblock4 /mnt/mtdblock4

mount /dev/mmcblk0p1 /mnt/mmcblk0p1
mount /dev/mmcblk1p1 /mnt/mmcblk1p1
mount /dev/mmcblk1p2 /mnt/mmcblk1p2

cp -r /mnt/mtdblock4/home /mnt/mmcblk0p1
cp -r /mnt/mtdblock4/home /mnt/mmcblk1p1
cp -r /mnt/mtdblock4/home /mnt/mmcblk1p2

umount /mnt/mtdblock4

umount /mnt/mmcblk0p1
umount /mnt/mmcblk1p1
umount /mnt/mmcblk1p2
The idea behind that is to guess where the user files reside and copy them over to the memory card (the device which I also had to guess as I can't boot the device). While that copied something from /home/user to the mmc card, I couldn't find my files.

Could somebody help me and tell me which partition to mount, and what the correct directory is, so I could find the user's files? I would then be able to flash an initfs that does the copying...

And yes, the file is really important, as you may have guessed
 
Posts: 31 | Thanked: 32 times | Joined on Jan 2008 @ Helsinki
#5
So I did it: I was able to rescue my data from the internal flash. Should somebody else ever need to do the same, here's how I did it.

I downloaded the latest FIASCO image, then unpacked it with flasher:

Code:
./flasher-3.0.amd64 -F RX-44_2008SE_2.2007.50-2_PR_COMBINED_MR0_ARM.bin -u
I unpacked the initfs image which was contained in the FIASCO image with the instructions from:

http://labs.vivi.eng.br/blog/?p=29

I copied the whole thing on my home drive into a directory "myinitfs". I then edited the "linuxrc" file. I added these lines just under the "We are in USER state now" comment line:

Code:
# We are in USER state now

text2screen -s 2 -H center -y 20 -T 0 -t "Copying data..."
mount -t jffs2 /dev/mtdblock4 /mnt/mtdblock4
mount /dev/mmcblk0p1 /mnt/mmcblk0p1
tar cf /mnt/mmcblk0p1/mtdbl4.tgz /mnt/mtdblock4
umount /mnt/mtdblock4 
umount /mnt/mmcblk0p1
text2screen -s 2 -H center -y 40 -T 0 -t "Copy done."
That little script will pack your whole root file system from the internal memory to the external memory card, which you can then remove and insert into a memory card reader.

To create a new initfs image, i ran:

Code:
mkfs.jffs2 --root=myinitfs --eraseblock=128KiB --little-endian --no-cleanmarkers --output=myinitfs.jffs2
You need mtd-tools for that (apt-get mtd-tools etc.)

And to flash the new initfs, preserving the roofs on the internal memory card:

Code:
./flasher-3.0.amd64 -n myinitfs.jffs2 -f
That's it! After rebooting with the new initfs and waiting for the data to copy, I was able to rescue my invaluable personal data from the internal memory.

Next thing to do: schedule regular backups. On the other hand, why bother anymore...
 
Posts: 452 | Thanked: 522 times | Joined on Nov 2007
#6
I'm not sure if you missed a step or two; but two things I had to change to get this to work for me (Thanks btw, this was a lifesaver)

I created the two mounts in the /mnt/ directory, w/o them it didn't seem to want to mount.
So /mnt/mtdblock4 & /mnt/mmcblk0p1 where created with the same 755 privs and owner as the existing "new_root" directory in the myinitfs directory.

The mount command was set to:
mount -t vfat -o rw,nodev,nosuid,utf8,uid=29999,shortname=mixed,dma sk=0000,fmask=0000 /dev/mmcblk0p1 /mnt/mmcblk0p1

Since it was a card formatted with FAT32


Nathan
 
Posts: 31 | Thanked: 32 times | Joined on Jan 2008 @ Helsinki
#7
Originally Posted by Nathan View Post
I'm not sure if you missed a step or two; but two things I had to change to get this to work for me (Thanks btw, this was a lifesaver)

I created the two mounts in the /mnt/ directory, w/o them it didn't seem to want to mount.
So /mnt/mtdblock4 & /mnt/mmcblk0p1 where created with the same 755 privs and owner as the existing "new_root" directory in the myinitfs directory.

The mount command was set to:
mount -t vfat -o rw,nodev,nosuid,utf8,uid=29999,shortname=mixed,dma sk=0000,fmask=0000 /dev/mmcblk0p1 /mnt/mmcblk0p1

Since it was a card formatted with FAT32
Oh, yes, thanks for the correction, you are right about creating the directories. I just forgot to put it in the instructions.

And yes, you should probably set the mount options according to your filesystem.

Good to hear the instructions helped!
 
Reply


 
Forum Jump


All times are GMT. The time now is 00:29.