Warning: touch() [function.touch]: Unable to create file /home/starterkit/starterkit.ru/html/error.log because Permission denied in /home/starterkit/starterkit.ru/html/errorhandler.php on line 51
MB - LCD800x480 - SODIMM и SK - iMX6S - Автомонтирование флешки SK - Embedded Linux - Форум - starterkit.ru
Ник:
Пароль:

Контакты

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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:3
Форум » starterkit.ru » Embedded Linux
Автомонтирование флешки SK-iMX6S-SODIMM и SK-LCD800x480-MB
Yura_K
Добавлено 01.06.2018 12:36
0
Сообщение: 1
Yura_K
5

Пункты: 284
Регистрация: 08.09.2017
Пол: Мужчина
Создана такая конфигурация:
плата SK-LCD800x480-MB и модуль SK-iMX6S-SODIMM. Память разбита на две части:
одна RO (~1Гб) - в ней весь линукс и пользовательская программа.
другая RW (~3Гб) - в ней /root
Если система загрузилась и я вставляю флешку она монтируется в /media/usb0 и все замечательно работает.
Если система загружается с заранее вставленной флешкой то флешка монтиркется в /root (во всяком случае именно там я вижу её содержимое) затем выдергиваем флешку и все рут пропал и начинается бардак. Мне нужен второй вариант ибо задумано так, что флеш может содержать скрипт с обновлением программы пользователя, который срабатывает до запуска пользовательской программы. Может как-то задать жестко куда монтировать флеш или как-то еще?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 01.06.2018 14:39 Редактировалось 01.06.2018 14:42 Сообщение: 2
sasamy
4.70

Пункты: 76182
Регистрация: 14.08.2009
Цитата

Память разбита на две части:
одна RO (~1Гб) - в ней весь линукс и пользовательская программа.
другая RW (~3Гб) - в ней /root
Если система загрузилась и я вставляю флешку она монтируется в /media/usb0 и все замечательно работает.
Если система загружается с заранее вставленной флешкой то флешка монтиркется в /root (во всяком случае именно там я вижу её содержимое)


У вас где-то ошибка в команде монтирования /root - кроме вас никто не знает что у вас там. Штатно автомонтирование съемных носителей всегда выполняется в /media/usbX

Цитата

Может как-то задать жестко куда монтировать флеш или как-то еще?


традиционно это делается через /etc/fstab. В /etc/inittab есть mount -a в инициализации загрузки

man mount

Цитата

The file /etc/fstab (see fstab(5)), may contain lines describing what devices are usually mounted where,
using which options.

The command

mount -a [-t type] [-O optlist]

(usually given in a bootscript) causes all filesystems mentioned in fstab (of the proper type and/or having
or not having the proper options) to be mounted as indicated, except for those whose line contains the noauto
keyword.
Спуститься к концу Подняться к началу
Персональная информация
Yura_K
Добавлено 04.06.2018 06:44 Сообщение: 3
Yura_K
5

Пункты: 284
Регистрация: 08.09.2017
Пол: Мужчина
Цитата
У вас где-то ошибка в команде монтирования /root - кроме вас никто не знает что у вас там.

Простите я в линуксе слабо разбираюсь, но вроде я никаких команд монтирования /root не давал.
Вот мой inittab
Скрытый текст
Скрытый текст виден только зарегистрированным пользователям.

Вот fstab
Скрытый текст
Скрытый текст виден только зарегистрированным пользователям.

Я в них ничего не менял, кроме того в каталоге init.d у меня есть файл S99remount следующего содержания:
Скрытый текст
Скрытый текст виден только зарегистрированным пользователям.

Насколько я понял только тут идет монтирование /root. Если я его удаляю, то второй раздел памяти (который 3Гб) при загрузке монтируется в usb0, а если загрузка идет со вставленной флешкой то её содержимое оказывается там же. Возвращаем файл и содержимое флеш начинает сливаться с содержимым /root.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 04.06.2018 09:34 Редактировалось 04.06.2018 09:38 Сообщение: 4
sasamy
4.70

Пункты: 76182
Регистрация: 14.08.2009
Цитата

в каталоге init.d у меня есть файл S99remount следующего содержания

mount /media/usb0 /root


он вам и монтирует флешку в /root - удалите его и вместо него допишите монтирование второго раздела в /root в файле /etc/fstab

/dev/mmcblk2p2 /root ext4 rw 0 0

тут в зависимости от версии ядра может быть /dev/mmcblk0p2 - я не знаю какую версию вы используете

Цитата

mount -o remount,ro /


для перемонтирования корневого раздела в режим только чтение вместо скрипта - исправьте соотвествующую строку в /etc/inittab

::sysinit:/bin/mount -o remount,ro /
Спуститься к концу Подняться к началу
Персональная информация
Yura_K
Добавлено 05.06.2018 14:31 Сообщение: 5
Yura_K
5

Пункты: 284
Регистрация: 08.09.2017
Пол: Мужчина
Огромное Вам Спасибо! Все заработало!
Спуститься к концу Подняться к началу
Персональная информация
Sol
Добавлено 08.06.2018 17:11 Сообщение: 6
Sol
0

Пункты: 578
Регистрация: 01.07.2010
Решил вмешаться в этот пост не создавая новый.

У меня схожий вопрос - не могу добиться автомонтирования (да и вообще работы как таковой по сути) SD карточки на SK-iMX6S-SODIMM и MB.

На присутствие карточки в разъеме система никак не реагирует, ничего нового в /dev/mmcblk* не появляется.

При этом с железом все ОК и из u-boot карточка видна (команды ext2ls mmc 1 / fatls mmc 1).

Dts пробовал и свой и стандартный из ftp.startrekit.ru, в нем вроде все четко:
Скрытый текст
Скрытый текст виден только зарегистрированным пользователям.


Может подскажете куда копать? Использую buildroot-2017.08-sk.
Спуститься к концу Подняться к началу
Персональная информация
Sol
Добавлено 08.06.2018 17:35 Редактировалось 08.06.2018 17:47 Сообщение: 7
Sol
0

Пункты: 578
Регистрация: 01.07.2010
Отвечу сам себе же. Как иногда помогает собрать код в одном сообщении и взглянуть свежим взглядом.
В дефолтном im6qdl-sodimm.dtsi из поставки buildroot-2017.08-sk надо добавить строчку указывающую какой gpio использовать для card detect:

&usdhc1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc1_sodimm>;
bus-width = <4>;
cd-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
vmmc-supply = <&reg_3p3v>;
keep-power-in-suspend;
no-1-8-v;
status = "okay";
};

После этого карточка начинает появляться в моем случае как /dev/mmcblk0p1.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux