Я не поленился и проверил: в iRMC S4 FW 9.05F для TX1330M3 на программном уровне LCM включен по умолчанию (как и подозревал). То что вкладки в меню нет — ни о чем не значит, при отрисовке меню проверяется наличие и sdcard и лицензии. Если одно из условий не выполнено — раздел меню не покажется.
Во-вторых, никаких особо катастрофических последствий это решения для программиста не несёт. Ошибок, которые можно по этому поводу совершить я могу придумать целых две: неверно выделить память для строки (забыть место под NULL) и неверно записать строку (забыть NULL). О первой ошибке уже предупреждают компиляторы, избежать второй помогает использование библиотечных функций. Всей-то беды.
1. От неверного выделения памяти компиляторы не спасают. Т.к. зачастую размер строки вычислимый, на стадии компиляции неизвестен.
2. От забыть NULL многие библиотечные функции не спасают. У них нет средств проверить максимальный размер буфера под строку.
3. Имеется третья проблема — переполнение буфера, где финальный NULL затирается. И это как раз проблема дизайна,
В Си мы не можем положится на язык и стандартные библиотечные функции при работе со строками. И дополняем стандартные средства своими проверками и вычислением границ памяти на постоянной основе.
Было бы неплохо в тексте статьи запостить список докладов со ссылками на тезисы и/или презентации.
Насколько я помню — в электронной системе, обслуживающей LVEE таковые есть.
А вот Ubuntu… на IdeaPad A10 запустить не удалось :)
Боюсь если этам машинка всё таки наберёт некоторую условную популярность — то можно пытаться душить Lenovo на открытие GPL-частей прошивки, и потом из этого конструктора собирать BSP для запуска полноценного Linux. Но это занятие не для слабых духом людей. Как подсказывает нам опыт Toshiba AC100.
>> 1. Что произошло и как этого избежать в будущем?
Протухла страница или несколько страниц на NAND-flash, на который было записано ядро. Не лечится иначе как перезаписать поверх что-нибудь (это и было сделано, часто лечит). Полностью избежать — не получится.
>> 2. Реальный размер uImage образа существенно меньше считываемого U-Boot'ом размера 0x300000;
Область задана с запасом. Используется не вся.
>> 3. Использование tftp для передачи образа uImage;
После инициализации сети uBoot — почему бы и нет? Состоит из двух частей — поддержка конкретного ethernet в uBoot (может быть проблемой) и установки параметров сети после старта uboot (тривиально).
>> 4. Использование USB flash для загрузки образа uImage (в расширеном U-Boot есть возможность инициализации USB);
Если штатный u-boot уже умеет — то только прописать переменные загрузки.
Опять же тот, который загружен с serial — уже чтото умеет. Осталось посчитать, влезет ли в область flash предназначенную для него.
Если не умеет — добро пожаловать сумрачный мир сборки u-boot и загрузки его в устройство.
Только я бы те самодельные u-boot сначала с serial стартовал, без прошивки.
>> 5. Бэкап разделов внутренней flash памяти на внешнюю USB память.
На логе загрузки:
Using static partition definition
Creating 6 MTD partitions on «nand_mtd»:
0x00000000-0x00100000: «u-boot»
0x00100000-0x00600000: «uImage»
0x00600000-0x00b00000: «ramdisk»
0x00b00000-0x07100000: «image»
0x07100000-0x07b00000: «mini firmware»
0x07b00000-0x08000000: «config»
На загруженном линукс+busybox чтото вроде:
dd if=/dev/mmcblk0p1 of=/mnt/usb/u-boot.img
.
Эксплуатировал 6 таких станций (SGI Indy) в рамках Лаборатории Unix-систем на кафедре Информатики в БГУИР (Белорусский Государственный университет информатики и радиоэлектроники). Одна из минских фирм, работавшая с CAD, передала старую технику мне на баланс, в 2002-2003 году.
Оригинальный Irix в целях большей актуальности окружения для обучения пришлось снести, на все машины был поставлен Debian GNU/Linux, оконный менеджер IceWM. Помимо Linux проверены и работают NetBSD и OpenBSD.
До того как появилась аппаратное ускорение в драйвере Newport (XFree/Xorg) на битности 24 — перерисовка в 24 битах выглядела как медленная волна идущая сверху вниз. После патчей с акселерацией — стало хорошо. В 256 цветах всё же было ок (кроме безобразного дизеринга). И Frambuffer в адском разрешении — выглядел впечатляюще, можно было потеряться в огромном поле консоли.
Пожалуй производители сошли бы с ума, если бы увидели, что на каждую рабочую станцию были навешены «уши чебурашки» — два текстовых 10-дюймовых чёрно-белых терминала, по RS-232 (кабеля пришлось паять отдельно). «Голова» — 20 дюймовый монитор Sony и «ушки» — два текстовых ч/б терминала. Количество рабочих мест увеличилось в 3 раза, а задачи изучались не графические.
Спасибо автору топика за напоминание о тех забористых временах.
Lifecycle management разве совсем — совсем выключен? Или забыли вставить sdcard и/или лицензию?
Я не припомню чтобы LCM был выключен для каких то конкретных моделей с IRMC S4.
2-я улица Шестая Линия,
1й — нет, остальных линий — тоже.
С тех пор как я на ней побывал — интригует загадка происхождения этого названия.
1. От неверного выделения памяти компиляторы не спасают. Т.к. зачастую размер строки вычислимый, на стадии компиляции неизвестен.
2. От забыть NULL многие библиотечные функции не спасают. У них нет средств проверить максимальный размер буфера под строку.
3. Имеется третья проблема — переполнение буфера, где финальный NULL затирается. И это как раз проблема дизайна,
В Си мы не можем положится на язык и стандартные библиотечные функции при работе со строками. И дополняем стандартные средства своими проверками и вычислением границ памяти на постоянной основе.
Насколько я помню — в электронной системе, обслуживающей LVEE таковые есть.
GNU indent смотрит на вас с недоумением.
Плюсы подхода:
Минус — не хипстерский, пишем тесты руками. Никаких ruby и генераторов тестов.
Боюсь если этам машинка всё таки наберёт некоторую условную популярность — то можно пытаться душить Lenovo на открытие GPL-частей прошивки, и потом из этого конструктора собирать BSP для запуска полноценного Linux. Но это занятие не для слабых духом людей. Как подсказывает нам опыт Toshiba AC100.
shop.lenovo.com/gb/en/laptops/lenovo/a-series/a10/
Ноутбук Lenovo IdeaPad A10
CPU: RockChip RK3188 1600Mhz (ARM)
OS: Android
RAM: 2GB
HDD: 32GB SSD
Держал в руках. Цена уже стремительно приближается к заветным 200$. Стартовали в ближайшем MediaMarkt с 330$, сейчас уже 230$.
Протухла страница или несколько страниц на NAND-flash, на который было записано ядро. Не лечится иначе как перезаписать поверх что-нибудь (это и было сделано, часто лечит). Полностью избежать — не получится.
>> 2. Реальный размер uImage образа существенно меньше считываемого U-Boot'ом размера 0x300000;
Область задана с запасом. Используется не вся.
>> 3. Использование tftp для передачи образа uImage;
После инициализации сети uBoot — почему бы и нет? Состоит из двух частей — поддержка конкретного ethernet в uBoot (может быть проблемой) и установки параметров сети после старта uboot (тривиально).
>> 4. Использование USB flash для загрузки образа uImage (в расширеном U-Boot есть возможность инициализации USB);
Если штатный u-boot уже умеет — то только прописать переменные загрузки.
Опять же тот, который загружен с serial — уже чтото умеет. Осталось посчитать, влезет ли в область flash предназначенную для него.
Если не умеет — добро пожаловать сумрачный мир сборки u-boot и загрузки его в устройство.
Только я бы те самодельные u-boot сначала с serial стартовал, без прошивки.
>> 5. Бэкап разделов внутренней flash памяти на внешнюю USB память.
На логе загрузки:
Using static partition definition
Creating 6 MTD partitions on «nand_mtd»:
0x00000000-0x00100000: «u-boot»
0x00100000-0x00600000: «uImage»
0x00600000-0x00b00000: «ramdisk»
0x00b00000-0x07100000: «image»
0x07100000-0x07b00000: «mini firmware»
0x07b00000-0x08000000: «config»
На загруженном линукс+busybox чтото вроде:
dd if=/dev/mmcblk0p1 of=/mnt/usb/u-boot.img
.
Оригинальный Irix в целях большей актуальности окружения для обучения пришлось снести, на все машины был поставлен Debian GNU/Linux, оконный менеджер IceWM. Помимо Linux проверены и работают NetBSD и OpenBSD.
До того как появилась аппаратное ускорение в драйвере Newport (XFree/Xorg) на битности 24 — перерисовка в 24 битах выглядела как медленная волна идущая сверху вниз. После патчей с акселерацией — стало хорошо. В 256 цветах всё же было ок (кроме безобразного дизеринга). И Frambuffer в адском разрешении — выглядел впечатляюще, можно было потеряться в огромном поле консоли.
Пожалуй производители сошли бы с ума, если бы увидели, что на каждую рабочую станцию были навешены «уши чебурашки» — два текстовых 10-дюймовых чёрно-белых терминала, по RS-232 (кабеля пришлось паять отдельно). «Голова» — 20 дюймовый монитор Sony и «ушки» — два текстовых ч/б терминала. Количество рабочих мест увеличилось в 3 раза, а задачи изучались не графические.
Спасибо автору топика за напоминание о тех забористых временах.
Серверные вендоры начали тащить свои любимые игрушки с x86 на ARM.