Ник:
Пароль:

Контакты

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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Процессорные модули » SK-iMX6S-OEM(-WiFi)
Рушится NAND rootfs, предположительно при появлении bad block
sasamy
Добавлено 12.12.2017 16:11 Сообщение: 11
sasamy
4.70

Пункты: 77030
Регистрация: 14.08.2009
1 Опция nand-on-flash-bbt в DTS отключена или вы ее оставили ? Ошибка ECC может быть связана с нехваткой OOB для маркеров - если отключена попробуйте вернуть как было.

2 Для верности - поменяйте и в командной строке ядра rw на ro

uboot-imx_3.10.31_1.1.0_beta-sk/include/configs/oem_imx6.h

...
#ifdef CONFIG_SYS_BOOT_NAND
#define CONFIG_EXTRA_ENV_SETTINGS \
"delenv=env default -a -f; saveenv\0" \
...
"nandroot=root=ubi0:rootfs rootfstype=ubifs rootwait rw\0" \
Спуститься к концу Подняться к началу
Персональная информация
Alex61RUS
Добавлено 12.12.2017 17:21 Сообщение: 12
Alex61RUS
5

Пункты: 3161
Регистрация: 30.05.2014
Пол: Мужчина
Цитата
1 Опция nand-on-flash-bbt в DTS отключена или вы ее оставили ? Ошибка ECC может быть связана с нехваткой OOB для маркеров - если отключена попробуйте вернуть как было.

2 Для верности - поменяйте и в командной строке ядра rw на ro

uboot-imx_3.10.31_1.1.0_beta-sk/include/configs/oem_imx6.h

...
#ifdef CONFIG_SYS_BOOT_NAND
#define CONFIG_EXTRA_ENV_SETTINGS \
"delenv=env default -a -f; saveenv\0" \
...
"nandroot=root=ubi0:rootfs rootfstype=ubifs rootwait rw\0" \


Нет, на том изделии, которое вышло из строя, nand-on-flash-bbt ещё не был исключен. Был только применен скрипт, переводящий rootfs в режим ro. Завтра соберу образ с вашей рекомендацией. Только вот не совсем понимаю её действия, ведь у меня сейчас и так ничего не получается писать, за исключением папок создаваемых системой в ОЗУ.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 12.12.2017 17:39 Сообщение: 13
sasamy
4.70

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

Нет, на том изделии, которое вышло из строя, nand-on-flash-bbt ещё не был исключен.


уберите эту опцию - это конечно мое предположение но но на мой взгляд проблемы возникают из-за этой опции

Цитата

ведь у меня сейчас и так ничего не получается писать, за исключением папок создаваемых системой в ОЗУ.


корневую фс монтирует ядро и запускает init который в вашем случае перемонтирует её в ro, лучше сразу монтировать ее в режиме "только чтение"
Спуститься к концу Подняться к началу
Персональная информация
Alex61RUS
Добавлено 13.12.2017 09:51 Сообщение: 14
Alex61RUS
5

Пункты: 3161
Регистрация: 30.05.2014
Пол: Мужчина
Цитата
Цитата
1 Опция nand-on-flash-bbt в DTS отключена или вы ее оставили ? Ошибка ECC может быть связана с нехваткой OOB для маркеров - если отключена попробуйте вернуть как было.

2 Для верности - поменяйте и в командной строке ядра rw на ro

uboot-imx_3.10.31_1.1.0_beta-sk/include/configs/oem_imx6.h

...
#ifdef CONFIG_SYS_BOOT_NAND
#define CONFIG_EXTRA_ENV_SETTINGS \
"delenv=env default -a -f; saveenv\0" \
...
"nandroot=root=ubi0:rootfs rootfstype=ubifs rootwait rw\0" \


Нет, на том изделии, которое вышло из строя, nand-on-flash-bbt ещё не был исключен. Был только применен скрипт, переводящий rootfs в режим ro. Завтра соберу образ с вашей рекомендацией. Только вот не совсем понимаю её действия, ведь у меня сейчас и так ничего не получается писать, за исключением папок создаваемых системой в ОЗУ.


Изменения в архив uboot внёс. Пересобрал uboot. Но раздел почему-то продолжает монтироваться в режиме rw.

buildroot login: root
Password:
# mount
rootfs on / type rootfs (rw)
ubi0:rootfs on / type ubifs (rw,relatime)
devtmpfs on /dev type devtmpfs (rw,relatime,size=90864k,nr_inodes=22716,mode=755)
proc on /proc type proc (rw,relatime)
devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,relatime,mode=777)
tmpfs on /tmp type tmpfs (rw,relatime)
tmpfs on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755)
sysfs on /sys type sysfs (rw,relatime)
# mkdir /opt/123
#
Спуститься к концу Подняться к началу
Персональная информация
Alex61RUS
Добавлено 13.12.2017 14:07 Сообщение: 15
Alex61RUS
5

Пункты: 3161
Регистрация: 30.05.2014
Пол: Мужчина
u-boot > printenv
baudrate=115200
bootcmd=run nand_boot
bootdelay=3
console=console=ttymxc0,115200
delenv=env default -a -f; saveenv
dtbaddr=12800000
dtbfile=imx6dl-oem.dtb
ethact=FEC
ethaddr=00:1f:f2:00:00:00
fdt_high=0xffffffff
initrd_high=0xffffffff
ipaddr=192.168.0.136
kernel=zImage
loadaddr=0x12000000
mtdparts=mtdparts=gpmi-nand:16M(boot),8M(kernel),2M(dtb),512M(rootfs),-(userdata)
nand_boot=run nandargs;mtdparts default;nand read ${loadaddr} kernel 0x600000;nand read ${dtbaddr} dtb 0x19000;bootz ${loadaddr} - ${dtbaddr}
nandargs=setenv bootargs ${console} ${mtdparts} ${ubilayout} ${nandroot} ${video}
nandroot=root=ubi0:rootfs rootfstype=ubifs rootwait ro
netmask=255.255.255.0
serverip=192.168.0.2
stderr=serial
stdin=serial
stdout=serial
ubilayout=ubi.mtd=3
video=video=mxcfb0:dev=ldb,SK-ATM0704,if=RGB24 video=mxcfb1:dev=lcd,SK-ATM0704,if=RGB24 consoleblank=0
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 13.12.2017 14:17 Редактировалось 13.12.2017 14:19 Сообщение: 16
sasamy
4.70

Пункты: 77030
Регистрация: 14.08.2009
Значит в inittab стоит rw - больше негде. Посмотрите после загрузки

cat /proc/cmdline
cat /etc/inittab
Спуститься к концу Подняться к началу
Персональная информация
Alex61RUS
Добавлено 13.12.2017 14:35 Редактировалось 13.12.2017 14:36 Сообщение: 17
Alex61RUS
5

Пункты: 3161
Регистрация: 30.05.2014
Пол: Мужчина
Цитата
Значит в inittab стоит rw - больше негде. Посмотрите после загрузки

cat /proc/cmdline
cat /etc/inittab


# cat /proc/cmdline
console=ttymxc0,115200 mtdparts=gpmi-nand:16M(boot),8M(kernel),2M(dtb),512M(rootfs),-(userdata) ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs rootwait ro video=mxcfb0:dev=ldb,SK-ATM0704,if=RGB24 video=mxcfb1:dev=lcd,SK-ATM0704,if=RGB24 consoleblank=0

# cat /etc/inittab
# /etc/inittab
#
# Copyright (C) 2001 Erik Andersen <andersen@codepoet.org>
#
# Note: BusyBox init doesn't support runlevels. The runlevels field is
# completely ignored by BusyBox init. If you want runlevels, use
# sysvinit.
#
# Format for each entry: <id>:<runlevels>:<action>:<process>
#
# id == tty to run on, or empty for /dev/console
# runlevels == ignored
# action == one of sysinit, respawn, askfirst, wait, and once
# process == program to run

# Startup the system
null::sysinit:/bin/mount -t proc proc /proc
null::sysinit:/bin/mount -o remount,rw /
null::sysinit:/bin/mkdir -p /dev/pts
null::sysinit:/bin/mkdir -p /dev/shm
null::sysinit:/bin/mount -a
null::sysinit:/bin/hostname -F /etc/hostname
# now run any rc scripts
::sysinit:/etc/init.d/rcS

# Put a getty on the serial port
ttymxc0::respawn:/sbin/getty -L ttymxc0 115200 vt100 # GENERIC_SERIAL
tty1::respawn:/sbin/getty 38400 tty1 linux

# Stuff to do for the 3-finger salute
::ctrlaltdel:/sbin/reboot

# Stuff to do before rebooting
::shutdown:/etc/init.d/rcK
::shutdown:/sbin/swapoff -a
::shutdown:/bin/umount -a -r

Да, там всё ещё присутствуют записи с rw. И будут они там до того момента, пока не будет применён скрипт:
Цитата

#!/bin/bash

echo "Make directory /mnt/mmcblk0p1"
mkdir /mnt/mmcblk0p1

echo "Replace string rw,noauto to ro,noauto in /etc/fstab"
sed -i "s/rw,noauto/ro,noauto/" /etc/fstab

echo "Replace string remount,rw to remount,ro in /etc/inittab"
sed -i "s/remount,rw/remount,ro/" /etc/inittab

echo "Reboot CPU"
reboot


Таким образом при загрузке система всё равно остаётся доступной для записи.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 13.12.2017 14:55 Редактировалось 13.12.2017 14:56 Сообщение: 18
sasamy
4.70

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

Да, там всё ещё присутствуют записи с rw. И будут они там до того момента, пока не будет применён скрипт


зачем нужен этот скрипт если можно элементарно добавить одну строчку в root2nand.sh

Цитата

printf "copy root fs to NAND "
tar -cf - \
--exclude 'dev/*' --exclude 'proc/*' --exclude 'sys/*' \
--exclude 'tmp/*' --exclude lost+found --exclude 'mnt/*' \
--exclude 'media/usb*/*' --exclude 'run/*' / | \
tar -xf - -C /mnt
msg $?

sed -i '/remount/d' /mnt/etc/inittab

printf "umount ubifs "
umount /mnt >> root2nand.log 2>&1
msg $?
Спуститься к концу Подняться к началу
Персональная информация
Alex61RUS
Добавлено 13.12.2017 15:24 Сообщение: 19
Alex61RUS
5

Пункты: 3161
Регистрация: 30.05.2014
Пол: Мужчина
Цитата
Цитата

Да, там всё ещё присутствуют записи с rw. И будут они там до того момента, пока не будет применён скрипт


зачем нужен этот скрипт если можно элементарно добавить одну строчку в root2nand.sh

Цитата

printf "copy root fs to NAND "
tar -cf - \
--exclude 'dev/*' --exclude 'proc/*' --exclude 'sys/*' \
--exclude 'tmp/*' --exclude lost+found --exclude 'mnt/*' \
--exclude 'media/usb*/*' --exclude 'run/*' / | \
tar -xf - -C /mnt
msg $?

sed -i '/remount/d' /mnt/etc/inittab

printf "umount ubifs "
umount /mnt >> root2nand.log 2>&1
msg $?


Спасибо! Так действительно намного лучше, не нужно совершать лишних телодвижений.
А в /etc/fstab вносить изменения нужно, или это я у же переборщил?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 13.12.2017 16:06 Сообщение: 20
sasamy
4.70

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

А в /etc/fstab вносить изменения нужно


не нужно, но если очень хочется - не вижу проблемы дописать вторую строчку
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Процессорные модули » SK-iMX6S-OEM(-WiFi)