Ядро сам собирал, но с патчами от linux4sam. С готовым ядром карта так же себя вела. Там в логах я встречал сообщение про то, что драйвер SD надо обновить
Посмотри еще раз предыдущее сообщение, я его редактировал и ты похоже не увидел его до конца.
Лучше взять свежее ванильное ядро с kernel.org без всяких патчей с linux4sam, они все равно в последних версиях процессора at91sam9260 не касались. Я не знаю как на твоей плате распаян mci - на слот А или слот В, в замвисимости от этого возможно придется подправить board-файл.
fdisk -l /dev/mmcblk0 ничего не дал
ls -l /dev | grep mmc* - пусто соответственно и
root@at91sam:~$ mount /dev/mmcblk0p1 /media/card
mount: special device /dev/mmcblk0p1 does not exist
Значит у тебя как у меня mci распаян на слот А, в оригинальной EK он распаян на слот В. Нужно в исходниках менять
linux-2.6.32.5/arch/arm/mach-at91/board-sam9260ek.c
чтобы было типа этого
Error opening /dev/fb0: No such device or address
.udev/ already exists on the static /dev!
Starting the hotplug events dispatcher udevd
Synthesizing the initial hotplug events
Waiting for /dev to be fully populated
Remounting root file system...
Setting up IP spoofing protection: rp_filter.
Configuring network interfaces... udhcpc (v1.2.1) started
udhcpc[1566]: udhcpc (v1.2.1) started
eth0: link up (100/Full)
Sending discover...
udhcpc[1566]: Sending discover...
Sending select for 192.168.55.173...
udhcpc[1566]: Sending select for 192.168.55.173...
Lease of 192.168.55.173 obtained, lease time 691200
udhcpc[1566]: Lease of 192.168.55.173 obtained, lease time 691200
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with return code 1: Success
adding dns 83.217.192.2
adding dns 192.168.55.100
adding dns 193.232.88.17
adding dns 195.34.32.10
done.
Starting portmap daemon: portmap.
/sbin/ldconfig: Can't open configuration file /etc/ld.so.conf: No such file or directory
Nothing to be done
INIT: Entering runlevel: 5
ALSA: Restoring mixer settings...
Starting Dropbear SSH server: dropbear.
Starting system message bus: Unknown group "netdev" in message bus configuration file
dbus.
Starting syslogd/klogd: done
Starting thttpd.
* Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon
[ ok ]
root@at91sam:~$ fdisk -l /dev/mmcblk0
Disk /dev/mmcblk0: 1004 MB, 1004535808 bytes
255 heads, 63 sectors/track, 122 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 1 122 979933+ b Win95 FAT32
команда mount выдает вот что:
/dev/mmcblk0 on /media/mmcblk0 type vfat (rw,sync,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1)
Далее:
root@at91sam:~$ umount /media/mmcblk0 - нормально
root@at91sam:~$ mount /dev/mmcblk0p1 /media/card - ОК
root@at91sam:~$ ls -l /media/card
drwxr-xr-x 2 root root 4096 Feb 4 16:45 SD_READER
-rwxr-xr-x 1 root root 601096 Oct 28 12:15 wursetup.exe
[quote]Значит у тебя как у меня mci распаян на слот А, в оригинальной EK он распаян на слот В. Нужно в исходниках менять
linux-2.6.32.5/arch/arm/mach-at91/board-sam9260ek.c
чтобы было типа этого
det_pin проверь по схеме своей платы.[/quote]
Во как!
/*
* MCI (SD/MMC)
*/
static struct at91_mmc_data __initdata ek_mmc_data = {
.slot_b = 1,
.wire4 = 1,
// .det_pin = ... not connected
// .wp_pin = ... not connected
// .vcc_pin = ... not connected
};
Да понятно - там как раз не прописан det_pin - при загрузке ядра он обнаруживает вставленную карту при инициализации модуля а если карта не была вставлена в самом начале то уже не увидит ее никогда, раньше Павел делал финт ушами - модуль mmc собирал и не линковал статически а оставлял подгружаемым модулем и писал маленький срипт который постоянно загружал выгружал этот модуль, тогда карта определялась. Добавление det_pin полностью решает эту проблему. При вставке карты срабатывает прерывание от этого gpio и запускается инит карты автоматом. На всякий случай убедись чкуда распаян mci - на схеме хорошо видно.
Вобщем, похоже что так:
/*
* MCI (SD/MMC)
*/
static struct at91_mmc_data __initdata ek_mmc_data = {
.slot_b = 1,
.wire4 = 1,
.det_pin = AT91_PIN_PC9,
// .wp_pin = ... not connected
// .vcc_pin = ... not connected
};
Теперь при вставке/удалении карты она монтируется размонтируется сама. НО! В fstabe вот так:
/dev/mmcblk0p1 /media/card auto defaults,sync 0 0
а монтируется так:
/dev/mmcblk0 on /media/mmcblk0 type vfat (rw,sync,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1)
А хотелось бы как в fstabe- в card и раздел, иначе не видно данных и приходится размонтировать и монтировать на p1
В догонку! Кстати, если загружаться со вставленной картой, то в логе появляется вот что:
root: mount: /dev/mmcblk0p1 already mounted or /media/card busy
То есть попытка смонтироваться согласно fstab'у делается, но там уже смонтировался /dev/mmcblk0 на
/media/mmcblk0
Ну это явно дело рук udev - изменяй его правила. Или вообще закоменть его, _при загрузке_ карта смонтируется по правилу из fstab правда в процессе работы автомоунта уже не будет, если он нужен - правь правила для udev.