Reply
Thread Tools
Posts: 9 | Thanked: 0 times | Joined on Mar 2008
#1
Hello,

I now understand where the two SD slots are mounted, but
unfortunately I still haven't been able to get any SD card to
read/write.

I normally suspect pilot error in these cases, but I am beginning
to wonder if I don't have a faulty N800.

Does someone have a test or two to help me decide which this is?

I have tried two instances of A-data 8GB SDHC cards (re-partitioned
on another Linux box and setup with an ext2 filesystem), a 2GB
Transcend SD card with the factory vfat/filesytem, and the original
Nokia 128MB SD card that came with the N800.

I can't read or write any of them with the N800.

I can write a file to them on another computer (and have verified
that both a Linux machine and a Windows machine can read that
file on the vfat cards).

But, when I put that card back in the external slot of the N800
and type 'ls /media/mmc1' in an xterm, the window hangs. If I put
it in the internal slot, the corresponding ls command returns but
displays no files.

If I go to another xterm window and type 'dmesg', I see a bunch
of mmci-omap I/O errors and command timeouts.

For both the vfat and ext2 cards, mount is showing the correct
filesystem type when it mounts the card - so it is at least partially
reading the cards.

Now I've seen posting here about using cheap SD cards, but
since it is also happening with the SD card supplied by Nokia I'm
thinking that isn't the case. (I am assuming that they supply a
card of reasonable quality.)

So, I'm left with some form of pilot error (e.g., I didn't format the
cards correctly - but that doesn't explain the Nokia card) or faulty
hardware.

I normally discount having two separate faults at the same time
(both slots dying), but perhaps I was extra bad last year and
fate's come around to bite me.

Is it worth flashing back to the 2007 OS version from the 2008
version? Should I try another kernel? (I think I've seen pointers
to experimental kernels.)

Thanks,

Ed
 
Posts: 122 | Thanked: 23 times | Joined on Oct 2007 @ A quiet place.
#2
Sorry that I don't have a test, but have you used the file manager to see if the cards are recognized, as opposed to just xterm?
 
Posts: 9 | Thanked: 0 times | Joined on Mar 2008
#3
Originally Posted by devaler View Post
Sorry that I don't have a test, but have you used the file manager to see if the cards are recognized, as opposed to just xterm?
If I use the file manager, I don't see the test file that I put on the SD card. But
that may be because I haven't learn yet how to navigate around the filesystem
with the file manager.
 
qwerty12's Avatar
Posts: 4,274 | Thanked: 5,358 times | Joined on Sep 2007 @ Looking at y'all and sighing
#4
I have the same problem with my Internal 1GB on my N800 (file manager hanging, input/output error etc). My External works fine. But I have been using a kernel with 48hz mode.

If you want, I can make a standard kernel that has the debug http://intr.overt.org/2.2008.50-mmc-kernel/ mmc patch that sends messages to dmesg. But I don't know if it will help you any.

BTW If you have Linux on your computer, you won't even need to flash this kernel. Just boot from it and see the debug messages. When you turn off the N800, it will be back to original kernel.

Last edited by qwerty12; 2008-03-21 at 08:02.
 

The Following User Says Thank You to qwerty12 For This Useful Post:
Posts: 9 | Thanked: 0 times | Joined on Mar 2008
#5
Since removing the extraneous "mmcblk0 to mmc1" line in the
fstab file, I seem to have gotten a bit further.

Now the cards almost always mount in either slot and I was able
to 'cat' a file (that only has four characters in it). Mounting does
fail more frequently on the internal slot.

But, it doesn't always work even with this small file. Plus, if I try
to do something "big" - like fire up maemo-mapper - and have
extensive reads and writes, then things go bad again.

(And this is with the Nokia 128MB card. So blaming everything on
a faulty card isn't high on my list right now. Another tidbit, the
SDHC cards appear to do worse than the SD cards - VFAT fs
vs. ext2 fs?)

Originally Posted by qwerty12 View Post
I have the same problem with my Internal 1GB on my N800 (file manager hanging, input/output error etc). My External works fine. But I have been using a kernel with 48hz mode.

If you want, I can make a standard kernel that has the debug http://intr.overt.org/2.2008.50-mmc-kernel/ mmc patch that sends messages to dmesg. But I don't know if it will help you any.

BTW If you have Linux on your computer, you won't even need to flash this kernel. Just boot from it and see the debug messages. When you turn off the N800, it will be back to original kernel.
I also don't know how much it would help, but I am willing to give it
a try. I do see some mmc errors already in dmesg, but I'm not sure
what to make of them. So maybe a deeper level of debugging
would provide better insight.

(For example, I just tried mapper again and I got a bunch of
*mmcblk0* error messages - even though I have no card in the
internal slot, just the Nokia card in the external slot.)

And, yes, I do generally use Linux on my home PC, so if you would
kindly let me know where I could grab the kernel and how to boot
it over USB I would appreciate it. (I didn't see instructions for
booting this way on the wiki; I'll search the forums as well.)

TIA

Ed

P.S. Potentially related but maybe not, the dmesg output also has
some JFFS2 errors due to bad CRCs. I'm assuming this is for
the internal-internal flash. Is this normal, or is my flash going
south?
 
qwerty12's Avatar
Posts: 4,274 | Thanked: 5,358 times | Joined on Sep 2007 @ Looking at y'all and sighing
#6
Originally Posted by Ed C View Post
I also don't know how much it would help, but I am willing to give it
a try. I do see some mmc errors already in dmesg, but I'm not sure
what to make of them. So maybe a deeper level of debugging
would provide better insight.

(For example, I just tried mapper again and I got a bunch of
*mmcblk0* error messages - even though I have no card in the
internal slot, just the Nokia card in the external slot.)

And, yes, I do generally use Linux on my home PC, so if you would
kindly let me know where I could grab the kernel and how to boot
it over USB I would appreciate it. (I didn't see instructions for
booting this way on the wiki; I'll search the forums as well.)

TIA

Ed

P.S. Potentially related but maybe not, the dmesg output also has
some JFFS2 errors due to bad CRCs. I'm assuming this is for
the internal-internal flash. Is this normal, or is my flash going
south?
The debug mode adds this to dmesg. If it helps, I will compile a clean kernel with just the debug patch tomorrow (the joys of living at home and having usage limits...).

[ 281.898437] mmc0: clock 48000000Hz busmode 2 powermode 2 cs 0 Vdd 18 width 2 timing 2
[ 281.921875] mmc0: clock 48000000Hz busmode 2 powermode 2 cs 0 Vdd 18 width 2 timing 2
[ 283.648437] mmc1: clock 25000000Hz busmode 2 powermode 2 cs 0 Vdd 15 width 2 timing 0

I believe my 1gb having the same problem is because of the custom krnl i'm using to enable 48hz.

EDIT: After looking through kernel, there is a proper mmc debug mode (not tested by me), if you wish, i will compile standard kernel with debug patch above and mmc debug mode enabled in kernel.

http://maemo.org/community/wiki/HowT...elCompilation/
That page shows how to boot a kernel and if you want - flash it.

jffs2 does refer to the internal flash. Those errors aren't normal afaik, maybe you should install fanoush's initfs to at least have mmc boot.

EDIT: There is also a verbose jffs 2 option, if you want, I can add that in too.

Last edited by qwerty12; 2008-03-22 at 10:43.
 
qwerty12's Avatar
Posts: 4,274 | Thanked: 5,358 times | Joined on Sep 2007 @ Looking at y'all and sighing
#7
@Ed C

Bump. Sorry, read above, I've added in some notes, if you want me to compile, let me know (before 6:00 PM GMT, that's when I have to go, sorry)
 
Posts: 9 | Thanked: 0 times | Joined on Mar 2008
#8
Originally Posted by qwerty12 View Post
@Ed C

Bump. Sorry, read above, I've added in some notes, if you want me to compile, let me know (before 6:00 PM GMT, that's when I have to go, sorry)
Looks like I missed the cut off. If you find some spare time, I would
appreciate a kernel to try out.

I have built kernels & modules for my home PC, but it has always
been at the level of turning on/off flags in the config file. I haven't
played with patching a kernel yet.

I'll take a look at getting a cross compiling environment setup and
try to build a "normal" bootable kernel. (Ideally one that won't
brick my tablet.)

But, while I'm getting that working, it would be great to try a kernel
from a seasoned veteran. That way if it doesn't boot, then I know
to blame my boot procedure, not my build procedure.

Thanks

Ed
 
qwerty12's Avatar
Posts: 4,274 | Thanked: 5,358 times | Joined on Sep 2007 @ Looking at y'all and sighing
#9
Originally Posted by Ed C View Post
Looks like I missed the cut off. If you find some spare time, I would
appreciate a kernel to try out.

I have built kernels & modules for my home PC, but it has always
been at the level of turning on/off flags in the config file. I haven't
played with patching a kernel yet.

I'll take a look at getting a cross compiling environment setup and
try to build a "normal" bootable kernel. (Ideally one that won't
brick my tablet.)

But, while I'm getting that working, it would be great to try a kernel
from a seasoned veteran. That way if it doesn't boot, then I know
to blame my boot procedure, not my build procedure.

Thanks

Ed
I'm still online until 6:00 PM :P

http://www.progbox.co.uk/wordpress/?p=453 - I followed this guide for the environment. But the wget links need fixing. I replaced 4.0 with 4.0.1

http://maemo.org/development/documen...for_maemo.html - This page gets you started on Kernel Compiling.

Skip the Prerequisites & Getting Kernel Sources though. The new target you make as a result of those instructions do not work.

Make sure you are in Chinook-Armel target, run
mkdir ~/maemo_kernel && cd ~/maemo_kernel && apt-get source kernel-source-rx-34
and go onto Configuring Source Tree and Compiling Kernel.

Patching is a bit flaky for me, I admit , I've made changes myself using the patch as a reference...

I'm not really seasoned, . I only learnt about kernel modding recently

fanoush's posts contain a lot of info too. Including a patch to make menuconfig work.

Here is a kernel I've compiled. It has the debug patch applied that I mentioned & mmc debugging enabled in kernel.
Everything else is standard nokia_2420_defconfig

Please remember, you aren't meant to flash this kernel, just boot from it .
I didn't compile in jffs2 debug (not even at 1) as it really really slows down tablet and is making mine at least very near impossible to boot.

I've tested it on my N800 fine. MMC Debugging works.
Download here:
http://www.mediafire.com/?e5j0mznujyy

Grab flasher-3.0 and untar the kernel and use
sudo flasher --load --boot --kernel <path to zImage>
Hold down your N800 while holding home and let go when flashed. When you switch off your NiT, your default kernel will be loaded. You can flash this kernel if you wish (although I would recommend just booting from it rather than flashing)
 
Posts: 1 | Thanked: 0 times | Joined on Mar 2008 @ Lisbon
#10
Hi,

I have a similar problem but I think it's due to another issue.

I've compiled a kernel for my n800 and it works fine except it doesn't mount the external sdcard. I've looked in the /dev directory and there is only one mmcblk device: mmcblk0.

I have 2 4GB sdcards on my n800 and they both work flawlessly when I use the default kernel from the latest OS update(Version 2008SE_2.2007.51-3).

I've ruled out the possibility of the having a damaged sd card because when I change the position of the sdcards the result is the same: the internal slot sdcard is mounted correctly and the external sdcard isn't mounted. I've also been carefull to lock both slot ports.

I've compiled a kernel from the kernel-source-rx-34_2.6.21.0.orig.tar.gz with the default configuration found in the nokia_2420_defconfig file. It has mmc built-in support and the debugging option is not selected. The only message I see on /proc/kmsg, when inserting a sdcard on the external slot, is:

"mmci-omap mmci-omap.1: command timeout (CMD8)".

So I've compiled a kernel with mmc debug and the messages on /proc/kmsg when the sdcard is inserted on the external slot are:

<7>[ 229.429687] mmc1: clock 0Hz busmode 1 powermode 1 cs 0 Vdd 21 width 0 timing 0
<7>[ 229.429687] mmc1: clock 400000Hz busmode 1 powermode 2 cs 0 Vdd 21 width 0 timing 0
<7>[ 229.429687] mmc1: clock 400000Hz busmode 1 powermode 2 cs 1 Vdd 21 width 0 timing 0
<7>[ 229.429687] mmc1: starting CMD0 arg 00000000 flags 00000040
<7>[ 229.437500] mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD0): EOC
<7>[ 229.437500] mmc1: req done (CMD0): 0/0/0: 00000000 00000000 00000000 00000000
<7>[ 229.437500] mmc1: clock 400000Hz busmode 1 powermode 2 cs 0 Vdd 21 width 0 timing 0
<7>[ 229.437500] mmc1: starting CMD8 arg 000001aa flags 00000075
<7>[ 229.437500] mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD8): CTO
<7>[ 229.437500] mmc1: req done (CMD8): 1/0/0: 00000000 00000000 00000000 00000000
<7>[ 229.437500] mmc1: starting CMD55 arg 00000000 flags 00000015
<7>[ 229.437500] mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD55): CTO
<7>[ 229.437500] mmc1: req done (CMD55): 1/0/0: 00000000 00000000 00000000 00000000
<7>[ 229.437500] mmc1: starting CMD55 arg 00000000 flags 00000015
<7>[ 229.437500] mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD55): CTO
<7>[ 229.437500] mmc1: req done (CMD55): 1/0/0: 00000000 00000000 00000000 00000000
<7>[ 229.437500] mmc1: starting CMD55 arg 00000000 flags 00000015
<7>[ 229.445312] mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD55): CTO
<7>[ 229.445312] mmc1: req done (CMD55): 1/0/0: 00000000 00000000 00000000 00000000
<7>[ 229.445312] mmc1: starting CMD55 arg 00000000 flags 00000015
<7>[ 229.445312] mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD55): CTO
<7>[ 229.445312] mmc1: req done (CMD55): 1/0/0: 00000000 00000000 00000000 00000000
<7>[ 229.445312] mmc1: starting CMD1 arg 00000000 flags 00000061
<7>[ 229.445312] mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD1): CTO
<7>[ 229.445312] mmc1: req done (CMD1): 1/0/0: 00000000 00000000 00000000 00000000
<7>[ 229.445312] mmc1: clock 0Hz busmode 1 powermode 0 cs 0 Vdd 0 width 0 timing 0
<7>[ 240.398437] mmc1: clock 0Hz busmode 1 powermode 1 cs 0 Vdd 21 width 0 timing 0
<7>[ 240.398437] mmc1: clock 400000Hz busmode 1 powermode 2 cs 0 Vdd 21 width 0 timing 0
<7>[ 240.406250] mmc1: clock 400000Hz busmode 1 powermode 2 cs 1 Vdd 21 width 0 timing 0
<7>[ 240.406250] mmc1: starting CMD0 arg 00000000 flags 00000040
<7>[ 240.406250] mmci-omap mmci-omap.1: MMC IRQ 0001 (CMD0): EOC
<7>[ 240.406250] mmc1: req done (CMD0): 0/0/0: 00000000 00000000 00000000 00000000
<7>[ 240.406250] mmc1: clock 400000Hz busmode 1 powermode 2 cs 0 Vdd 21 width 0 timing 0
<7>[ 240.406250] mmc1: starting CMD8 arg 000001aa flags 00000075
<7>[ 240.406250] mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD8): CTO
<3>[ 240.406250] mmci-omap mmci-omap.1: command timeout (CMD8)
<7>[ 240.406250] mmc1: req done (CMD8): 1/0/0: 00000000 00000000 00000000 00000000
<7>[ 240.406250] mmc1: starting CMD55 arg 00000000 flags 00000015
<7>[ 240.406250] mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD55): CTO
<7>[ 240.406250] mmc1: req done (CMD55): 1/0/0: 00000000 00000000 00000000 00000000
<7>[ 240.406250] mmc1: starting CMD55 arg 00000000 flags 00000015
<7>[ 240.414062] mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD55): CTO
<7>[ 240.414062] mmc1: req done (CMD55): 1/0/0: 00000000 00000000 00000000 00000000
<7>[ 240.414062] mmc1: starting CMD55 arg 00000000 flags 00000015
<7>[ 240.414062] mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD55): CTO
<7>[ 240.414062] mmc1: req done (CMD55): 1/0/0: 00000000 00000000 00000000 00000000
<7>[ 240.414062] mmc1: starting CMD55 arg 00000000 flags 00000015
<7>[ 240.414062] mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD55): CTO
<7>[ 240.414062] mmc1: req done (CMD55): 1/0/0: 00000000 00000000 00000000 00000000
<7>[ 240.414062] mmc1: starting CMD1 arg 00000000 flags 00000061
<7>[ 240.414062] mmci-omap mmci-omap.1: MMC IRQ 0080 (CMD1): CTO
<7>[ 240.414062] mmc1: req done (CMD1): 1/0/0: 00000000 00000000 00000000 00000000
<7>[ 240.414062] mmc1: clock 0Hz busmode 1 powermode 0 cs 0 Vdd 0 width 0 timing 0

But still the external sdcard isn't mounted.

I'm thinking the problem is some kernel config I've overlooked. Has anyone had this problem? Does anyone have any hint on solving this problem? I really need a compiled kernel in order to get an USB 2.0 ethernet adapter working.

Thanks in advance,
rdc
 
Reply


 
Forum Jump


All times are GMT. The time now is 09:45.