ЗАО «ЗЭО»
Техническая поддержка пользователей => Тион-Про28, Орион28 => Тема начата: Александр Глухов от 31 Октября, 2014, 12:08:12
-
Здравствуйте, у меня в Тионе после кнопки ресет сыпятся такие ошибки:
EXT2-fs (mmcblk0p3): error: ext2_lookup: deleted inode referenced: 318416
После этого только заново флешку писать. Подскажите, это как то лечится или в чём причина этой проблемы?
-
Скорее всего, связано с тем, что были активные операции или открытые файлы на SD-карте в момент перезагрузки.
Варианты решения:
1. Отмонтировать SD-карту перед перезагрузкой.
2. Использовать журналируемую файловую систему, например jffs2.
Можно попробовать исправить ошибки с помощью fsck.
-
Хорошо, спасибо, буду разбираться. Насчет файловой системы, я так понимаю это уже в настройках buildroot'а искать. А как флешку с такой системой создавать? Я ж раньше только mk_mx28_sd_v2 скриптом создавал)
И где можно найти, как отмонтировать флешку?
-
EXT2-fs (mmcblk0p3) - это не флешка, это SD-карта. На внутренней флешке используется ubifs.
Отмонтировать можно командой umount.
Вынимать SD-карту при загруженной ОС также не стоит.
Скрипт mk_mx28_sd_v2 создает на SD-карте ext2-fs. Чтобы была другая файловая система, нужно переписывать скрипт.
-
> Я ж раньше только mk_mx28_sd_v2 скриптом создавал)
1. Скопировать содержимое /boot с SD-карте (лучше поместить его в rootfs
overlay в Buildroot).
2. В созданном mk_mx28_sd_v2 скриптом разделе ext2 удаляете всё (кроме
/boot, если вы его не скопировали в п.1) и разархивируете файлы из
output/images/rootfs.tar (sudo tar xf output/images/rootfs.tar -C
/media/mounted-sd; sudo umount /media/mounted-sd)
jffs2 на SD-карте нет смысла использовать, так как она предназначена для "чистых" микросхем, без промежуточного контроллера.
-
Похоже не так поняли, или я что-то не понял. Когда уже SD-карта в тионе, тион запущен, приложение работает. При нажатии на тионе кнопки B1 (reset) (или включении/выключении питания) при следующем запуске получаю такие ошибки:
EXT2-fs (mmcblk0p3): error: ext2_lookup: deleted inode referenced: 318416
Как с ними бороться, чтобы при перезагрузке такого не возникало?
-
> Как с ними бороться, чтобы при перезагрузке такого не возникало?
Не нажимать на кнопку сброса без необходимости.
-
В том то и проблема, что необходимость возникает и будет возникать, и особенно будет необходимость во включении/выключении питания. Как можно решить эту проблему? Если записывать КФС на память Тиона это что-то изменит?
-
По простому: монтируйте только на чтение, используйте ext3, проверяйте ФС (только на чтение) при включении.
По нормальному: обрабатывать сброс (включать сторожевой таймер и сбрасываться по нему, только когда не успел перед сбросом разобраться с ФС, обрабатывать отключение питания (также, но нужен аккумулятор).
-
Спасибо, буду разбираться, похоже использование ext3 помогло
-
> ext3
Нет, пока просто везёт.
-
По простому: монтируйте только на чтение, используйте ext3, проверяйте ФС (только на чтение) при включении.
По нормальному: обрабатывать сброс (включать сторожевой таймер и сбрасываться по нему, только когда не успел перед сбросом разобраться с ФС, обрабатывать отключение питания (также, но нужен аккумулятор).
Столкнулся с аналогичной проблемой: содержимое SD-карты сыпится после отключения.
Причем лечение командой fsck не всегда помогает.
Можно описать подробнее, каким образом выполняется монтирование только на чтение и формирование файловой системы ext3?
-
На чтение ro в cmdline ядра и отсутствие перемонтирования с rw в скриптах и /etc/fstab
ext3 поменять с ext2 в mk_mk28_sd
-
На чтение ro в cmdline ядра
Сделал т.о., система стала стабильнее, но вот какая проблема получается: программе требуется сохранять рабочие файлы, причём их объём достаточно большой (чтобы сохранять на внутреннюю флэшь), т.о. требуется периодически монтировать ФС в режиме разрешения записи на время записи, далее перемонтировать в режиме только чтения, вопрос как это сделать? или есть вариант более корректный для данной возможности? например, сделать отдельный раздел на SD, который будет монтироваться в режиме rw.
-
Скрипт mk_mx28_sd создаёт ещё два раздела на SD-карте, для чего они? можно ли их менять/форматировать и т.д ?
-
Скрипт mk_mx28_sd создаёт ещё два раздела на SD-карте, для чего они? можно ли их менять/форматировать и т.д ?
Кто-нибудь здесь знает ответ?!!!
-
В скрипте есть пояснения.
Первый раздел - загрузчик, второй - образ ОС, третий КФС.
Можно изменить размер третьего раздела под размер КФС, остальное занять под свои нужды.
-
В скрипте есть пояснения.
Первый раздел - загрузчик, второй - образ ОС, третий КФС.
Можно изменить размер третьего раздела под размер КФС, остальное занять под свои нужды.
1) С этим разобрался, сделал доп.раздел, который, кстати, не монтируется из fstab.
/dev/mmcblk0p4 /mnt/localdisk ext3 rw,noauto 0 0
- строка не имеет эффекта, почему? Через команду mount всё работает.
2) Также вопрос: почему программа находясь в монтированной КФС в режиме только чтения, безпрепятственно осуществляет в неё запись?
bootargs=console=ttyAM0,115200n8
bootdelay=3
baudrate=115200
ipaddr=192.168.1.103
serverip=192.168.1.101
netmask=255.255.255.0
bootfile="uImage"
loadaddr=0x42000000
nfsroot=/home/notroot/nfs/rootfs
bootargs_nfs=setenv bootargs ${bootargs} root=/dev/nfs ip=dhcp nfsroot=${serveri
p}:${nfsroot},v3,tcp fec_mac=${ethaddr}
bootcmd_net=run bootargs_nfs; dhcp; bootm
ethact=FEC0
bootcmd_mmc=run bootargs_mmc; mmc read 0 ${loadaddr} 100 3000
mmc_root=/dev/mmcblk0p3 ro rootwait
bootargs_mmc=setenv bootargs ${bootargs} root=${mmc_root}
bootcmd=run bootcmd_mmc; bootm
stdin=serial
stdout=serial
stderr=serial
ver=U-Boot 2009.08 (Jun 26 2014 - 09:58:37)
-
Подниму тему если ТС читает. Разобрались с ro rootfs?
P.S. Стартовые скрипты надо было еще выложить