Foresee — это линейка флеш-памяти от производителя Longsys, которую часто можно встретить в роутерах и IoT-железках эконом-класса. Эти чипы не громко пиарятся, зато стоят адекватно и встречаются повсюду — от компактных клиентских устройств до домашних точек доступа. С выходом OpenWrt 24.10.3 основная интрига для пользователя простая: будет ли «из коробки» нормальная поддержка, насколько надежно работать с UBI/UBIFS и что делать, если система вдруг начинает жаловаться на ECC-ошибки. Ниже — живой, практический разбор без занудного академизма, но с полезными командами и рабочими сценариями.
Сразу оговоримся: NAND — капризная штука. В отличие от eMMC или NVMe, здесь на вас смотрят «голые» блоки, таблицы плохих блоков, порой щепотка драйверной магии и обязательно корректная разметка MTD. Чипы Foresee не исключение. Если все сделать правильно, OpenWrt 24.10.3 ведет себя предсказуемо и стабильно. Если торопиться, можно поймать пару серых волос и «кирпич». Разберем всё по порядку.
Железо и идентификация: что именно у вас за Foresee
Первое, что нас интересует — это параметры конкретного NAND. У разных ревизий отличаются размер страницы, объем OOB-области, требования по коррекции ошибок и поддерживаемые режимы. Мы не гадаем, а смотрим факты в логах ядра и MTD. Это избавляет от «проб и ошибок» при прошивке и разметке.
Полезные команды диагностики в OpenWrt 24.10.3. Они покажут, как ядро увидело чип и что думает о его блоках и геометрии. Выполняем по SSH:
dmesg | grep -i -e nand -e mtd— быстрое знакомство с контроллером и найденным чипом.cat /proc/mtd— список MTD-разделов, их размер и назначение.ubinfo -a— если уже используете UBI, тут видно объем, количество блоков, wear-leveling и т.д.logread -e UBI— полезно при разборе автоподключения томов и «психологии» загрузки.
Для ориентира — типовые профили, с которыми чаще всего сталкиваются пользователи. Это не «железобетонный стандарт», а удобная шпаргалка при первом знакомстве с устройством.
| Типовой профиль | Страница / OOB | ECC (типичная сила) | Комментарий |
|---|---|---|---|
| NAND 2 КБ | 2048 Б / 64–128 Б | BCH 4–8 бит/512 Б | Встречается в бюджетных роутерах; чувствителен к износу при частых перезаписях. |
| NAND 4 КБ | 4096 Б / 224–256 Б | BCH 8–16 бит/1 КБ | Более современный вариант, комфортнее для UBI, реже «сыплет» ECC. |
| NAND 8 КБ | 8192 Б / 448–1024 Б | BCH 16+ бит/1 КБ | На потребительских роутерах редкость, но приятно в эксплуатации. |
Еще один нюанс — таблица плохих блоков (BBT). Наличие пары «красных» блоков на новых чипах — не трагедия. Критично другое: появляются ли новые плохие блоки при активной записи. Если рост есть, имеет смысл подумать об уменьшении количества перезаписей и переносе шумных логов в RAM.
Поддержка в OpenWrt 24.10.3: UBI/UBIFS, разметка и процесс обновления
OpenWrt уже много лет «дружит» с NAND через связку MTD + UBI/UBIFS. В 24.10.3 все привычно: sysupgrade понимает NAND-платформы, UBI-тома поднимаются автоматически, а UBIFS ведет себя адекватно на чипах с разной геометрией. Главное — корректная разметка в DTS и внимание к загрузчику.
Базовый поток таков. Заводская прошивка ставится из веб-интерфейса производителя, далее — переход на OpenWrt factory-образ. После первого запуска на NAND обычно уже лежит UBI-том с корнем. Дальнейшие обновления — sysupgrade, предпочтительно с сохранением конфигов, если точно уверены в совместимости. Для «чистой» миграции используйте ключ -n, но не забывайте про бэкапы.
Где чаще всего спотыкаются. Первое — попытка залить sysupgrade-образ прямо в «сырой» MTD без UBI-слоя. Второе — несоответствие OOB-разметки ожиданиям загрузчика или драйвера. Третье — перенос старых конфигов, которые тянут с собой «кривую» fstab/mtab и создают петлю ошибок при монтировании.
Для проверки, что вы действительно работаете через UBI, а не по «сырым» разделам, используйте mount и ubinfo -a. Если видите ubi0:rootfs и ubifs в роли корневой ФС — все идет как задумано. Если же /overlay внезапно JFFS2 на «сыром» MTD — это повод навести порядок.
Практика: команды, сценарии миграции и тесты скорости
Начнем с диагностики текущего состояния. Снимите бэкап конфигов, посмотрите, как устроены разделы, и заодно оцените здоровье чипа. Так проще жить в дальнейшем и понятнее, где искать проблемы.
- Бэкап конфигов:
sysupgrade -b /tmp/backup.tar.gzи скачайте файл с роутера. - Состояние MTD:
cat /proc/mtd,dmesg | grep -i mtd. - UBI-инфо:
ubinfo -a,ubihealthdв логах, если присутствует. - Плохие блоки:
dmesg | grep -i "bad"иnanddumpпри продвинутой диагностике.
Если хотите «обнулить» overlay и заново развернуть корень на UBI, действуем аккуратно. Схема ниже подходит для опытных пользователей и предполагает физический доступ к устройству на случай нештатной ситуации.
- Сделайте бэкап:
sysupgrade -b /tmp/backup.tar.gz. - Перейдите на чистую установку:
sysupgrade -n /tmp/openwrt-24.10.3-...-sysupgrade.bin. - После перезагрузки проверьте:
mount, должно бытьubi0:rootfs/ubifs. - Верните нужные конфиги выборочно, избегая старых fstab и всего, что трогает MTD/UBI.
Тесты скорости и «ощущений». Для быстрой оценки можно использовать dd и fio (последний — из репозитория, если доступен для вашей архитектуры). Чуда не ждите — NAND не про мегабайты в секунду, а про предсказуемость и надежность.
dd if=/dev/zero of=/overlay/test.bin bs=256k count=128 conv=fsync— грубая запись ~32 МБ.fio --name=randrw --filename=/overlay/fio.bin --size=32M --rw=randrw --bs=4k --iodepth=1 --direct=1 --numjobs=1 --runtime=30 --time_based— смешанный профиль «как под реальную жизнь».
Компрессия на UBIFS. По умолчанию используются LZO/Zlib. Если у вас много мелких файлов конфигов, эффект будет заметный: скорость чтения чуть выше, запись — мягче по износу. Для «шумных» путей (логи, кэш пакетов opkg) имеет смысл перенести их в RAM через tmpfs, чтобы не «жечь» флешку зря.
Типичные проблемы: ECC-ошибки, «сыпучие» блоки и загрузчик
Признаки беды легко узнаются по логам. «unrecoverable ECC error» и «UBI: CRC error» — это звоночки. Не каждый из них катастрофический, но игнорировать не стоит. Если они возникают регулярно на одних и тех же LEB/PEB, готовьтесь к «переселению» томов и ревизии разметки.
Что можно сделать без фанатизма. Во-первых, освободить место и дать UBI маневр для wear-leveling. Во-вторых, перевести лог-директории в RAM. В-третьих, при необходимости выполнить ubiformat проблемного MTD и заново развернуть тома. На ряде устройств бывает полезно обновить загрузчик, если старый использует экзотическую OOB-разметку и конфликтует с ядром.
Где грань между «починить» и «менять железо». Если новые bad-blocks появляются стабильно, а ECC-ошибки сыпятся даже при чтении свежезаписанных данных — это, скорее всего, деградация чипа. Для домашних роутеров эконом-класса это не редкость. Радикальная мера — переход на extroot (USB) или замена устройства.
И еще маленькая хитрость. При ручной работе с «сырыми» разделами используйте пары nanddump/nandwrite с корректными ключами под ваш OOB, а перед экспериментами — всегда сохраняйте дампы загрузчика и ENV. Ошибка на 64 КБ — и «кирпич» гарантирован, а ресусцитация через UART — занятие на вечер.
Срок службы и гигиена записи: как продлить жизнь Foresee на OpenWrt
В NAND бесполезно «верить в чудо». Здесь работают простые правила. Меньше записей — дольше жизнь. Предсказуемая нагрузка — меньше сюрпризов. Под OpenWrt 24.10.3 всё это достигается в пару шагов.
- Логи в RAM: перенесите
/var/logи временные файлы в tmpfs. По умолчанию OpenWrt и так агрессивно использует RAM для временных путей — не мешайте ему. - opkg-кеш: храните кэш пакетов в RAM или вовсе не кэшируйте после установки. Меньше «мелкой возни» на флеше — лучше.
- Мониторьте wear-leveling: периодически
ubinfo -aи гляньте распределение износа. Резкие перекосы — повод расчистить место. - Старайтесь избегать свопа на NAND: если нужен своп, используйте внешний носитель или zram.
Если планируются активные сценарии — VPN с логированием, частые скачивания, прокси и фильтрация — подумайте об extroot на USB-накопитель. Заодно ускорите работу в «чувствительных» местах и уберете часть нагрузки с Foresee.
Стоит ли брать устройства с Foresee под OpenWrt и кому это подойдет
Если вам нужен недорогой роутер, который стабильно держит Wi-Fi, раздает пару VLAN и поднимает несколько сервисов, — чипы Foresee в комплекте с OpenWrt 24.10.3 чувствуют себя уверенно. При грамотной разметке, UBI и минимальной «болтовне» на флеше вы вряд ли заметите разницу с любым другим вендором NAND из того же класса.
Кому не подойдет. Тем, кто хочет «антихрупкости» уровня eMMC и планирует писать на флеш десятки гигабайт в неделю. Для такого сценария лучше смотреть в сторону устройств с eMMC/NVMe или сразу выносить «тяжелые» задачи на внешний носитель.
И наконец, про психологический комфорт. Если вы не любите ковыряться в MTD, OOB и UBI, выбирайте модель с уже известным «хорошим» деревом устройства под OpenWrt и готовыми образами. А если вам наоборот нравится «поджать» систему под себя — Foresee не станет препятствием. Чуть внимательности — и чип служит годами.