Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:3
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:7
Форум » starterkit.ru » Старый форум » SK-MAT91SAM9XE512
sasamy (Guest)
Добавлено 29.12.2008 00:22 Редактировалось 29.12.2008 00:22 Сообщение: 11
sasamy (Guest)

>одна из моих карточек MMC по прежнему не монтируется после reset - проблемы с инициализацией.

Вы оптимист :) Иногда бывает что наоборот откат надо делать чтобы снова что-то заработало :) Поэтому я обычно не спешу обновлять ядро. С sdhc не грузился - только вручную монтировал - вроде проблем не было, помоему и после reset с кнопки но точней уже не помню. У меня самые лучшие результаты в скорости показала mmc 512 Мб kingston - с ней сейчас и работаю. Помучался с debian и fedora - не понравилось, настолько там все запутано... В новогодние праздники скорей всего займусь портированием своего любимого дистрибутива на arm. Проще и гибче него я еще ничего не встречал :)
Спуститься к концу Подняться к началу
alexey123 (Guest)
Добавлено 16.01.2009 23:48 Редактировалось 16.01.2009 23:48 Сообщение: 12
alexey123 (Guest)

а как автоматически монтировать SD-карту? Ну типа - сунул в разъем, обождал 3 сек - и нате: /mnt/mmc. (без mount_mmc/unmount_mmc)
Понимаю, что вопрос т.н. - "из разряда". Но хоть направление одним пальцем ткните, а дальше я уж сам:)
Спуститься к концу Подняться к началу
sasamy (Guest)
Добавлено 17.01.2009 00:39 Редактировалось 17.01.2009 00:39 Сообщение: 13
sasamy (Guest)

В busybox есть некая упрощенная замена udev - называется mdev. Сам недавно ее взял на заметку. В исходниках busybox есть описание, в том числе как писать для него правила. Вот тут помоему уже с mdev имидж (я немного поменял скрипты). Что это дает:
1 Файлы устройств создаются динамически - в /dev присутствует то что реально есть в системе
2 Умеет загружать firmware по запросу ядра
3 Позволяет выполнять различные команды при определенных событиях в ядре - что мне кажется вам и нужно. Я не уверен можно ли при помощи этого сделать автомонтирование - думаю можно. На большом linux к этому обычно привлекают hal+d-bus и средства DE или ivman. Вообще вопрос интересный, думаю если будет время попробую. Доки к mdev - /исходники_busybox/docs/mdev.txt

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно sasamy 17.01.2009 г. в 00:44:46
Спуститься к концу Подняться к началу
sasamy (Guest)
Добавлено 17.01.2009 09:05 Редактировалось 17.01.2009 09:05 Сообщение: 14
sasamy (Guest)

Все оказалось действительно просто. Достаточно написать простейшее правило для mdev в его конфиге - /etc/mdev.conf. Я испробовал на usb flash - у меня mci занят mmc на которой root.

Код
# cat /etc/mdev.conf

# mdev rules

sd[a-z][1-9] 0:0 660 @mount_usb

Содержимое mount_usb
Код
# cat /bin/mount_usb

#!/bin/sh

mount /dev/$MDEV /mnt


mdev создает переменную окружения MDEV в которой лежит название устройства попавшего под правило, которую можно использовать в скриптах. После как вставил usbflash она автоматомсмонтровалась в /mnt. Думаю для sd/mmc можно так же легко переделать автроский скрипт и добавить правило в /etc/mdev.conf
Спуститься к концу Подняться к началу
alexey123 (Guest)
Добавлено 17.01.2009 23:13 Редактировалось 17.01.2009 23:13 Сообщение: 15
alexey123 (Guest)

Намек понял. Разбираюсь.
Thnx!
Спуститься к концу Подняться к началу
alexey123 (Guest)
Добавлено 18.01.2009 22:32 Редактировалось 18.01.2009 22:32 Сообщение: 16
alexey123 (Guest)

Поковырялся с mdev - есть результаты.
Все действительно работает так, как описано. Появляются/удаляются усройства в /dev, ядро вызывает mdev, тот вызывет скрипты, исходя из правил в /etc/mdev.conf. USB-флешка автоматически монтируется. подтвреждаю:)
Но есть и деготь:
1) Автоматическое демонтирование при unplug'е флешки. Казалось было логичным создать две строки в /etc/mdev.conf:
sd[a-z][1-9] 0:0 660 @mount_usb #после появления /dev/sda*
sd[a-z][1-9] 0:0 660 $umount_usb #перед удалением /dev/sda*
Но mdev устроен иначе:
>>The config file parsing stops at the first matching line
это значит, что скрипт демонтирования (вторая строка) вызываться не будет.
Видимо придется писать что-то вроде:
sd[a-z][1-9] 0:0 660 *mount_umount_usb #вызывать в обоих случаях.
А внутри mount_umount_usb уже разбираться - монтировать-ли, демонтировать, что, куда.. причем в скрипт, кроме имени устройства, ничего не передается, что добавит возни с анализом текущей таблицы смонтированных устройств.
чешутся руки поправить busybox :)

2) C MMC все оказалось еще хуже. До mdev дело не дошло, так как обнаружилась неспособность драйвера at91_mci на ходу обрабатывать plug/unplug mmc-карты. Потыкал так и сяк - убедился, что видимо только при загрузке драйвер ENUM'ит состояние разъемов и регистрирует /dev/mmc*
Способ сборки (статически или *.ko) на результат не влияет. В случае *.ko имеется возможность руками его rmmod/insmod.
Пока рою гугл на эту тему, так как работать с mci пока не доводилось, а значит я хрен чего пойму в at91_mci.c

PS поправьте, если ошибаюсь. в linux я новичок, потому допускаю, что могу чего-то недопонимать или не видеть.
Спуститься к концу Подняться к началу
sasamy (Guest)
Добавлено 19.01.2009 01:23 Редактировалось 19.01.2009 01:23 Сообщение: 17
sasamy (Guest)

Цитата
1) Автоматическое демонтирование при unplug'е флешки. Казалось было логичным создать две строки в /etc/mdev.conf:

В этом нет никакого смысла - демонтирование нужно делать до извлечения устройства. Основной смысл его - сбросить все буферы и кеши - запись на физическое устройство происходит не сразу, операции чтения-записи кешируются системой и самим устройством.
По поводу
Цитата
2) C MMC все оказалось еще хуже.
скорей всего ничего не исправить - я совсем забыл про глюки с mci...

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Отредактированно sasamy 19.01.2009 г. в 01:27:55
Спуститься к концу Подняться к началу
alexey123 (Guest)
Добавлено 19.01.2009 11:36 Редактировалось 19.01.2009 11:36 Сообщение: 18
alexey123 (Guest)

Сброс буфферов и кешей это часть дела. Демонтировать необходимо еще потому, что при следующем plug'е флешки поямится такой-же /dev/sda* и он второй раз(и третий, и четверный..) будет смонтирован в /dev/mnt. А при попытке прочитать этот каталог валятся ошибки. До тех пор, пока не отмонтируешь "старые" точки.

MCI должен работать. вчера покопался в драйвере и в pdf - все предусмотрено: отдельный gpio на разъем, который шевелится при plug/unplug. драйвер ловит прерывание и перечитывает карты.
Только закомментировано кое что. сегодня продолжу.
Спуститься к концу Подняться к началу
Strijar (Guest)
Добавлено 19.01.2009 18:18 Редактировалось 19.01.2009 18:18 Сообщение: 19
Strijar (Guest)

буфера сбрасывать не надо если монтировать c async
Спуститься к концу Подняться к началу
sasamy (Guest)
Добавлено 19.01.2009 18:44 Редактировалось 19.01.2009 18:44 Сообщение: 20
sasamy (Guest)

Честно говоря не знаю "правильного" метода как поступать если устройство извлекли без предварительного размонтирования. Директория монтирования занята и ничего не помогает - кто знает поделитесь.
Спуститься к концу Подняться к началу
Форум » starterkit.ru » Старый форум » SK-MAT91SAM9XE512