LINUX.ORG.RU

установка Linux как прошивки для устройства (на базе x86 или ARM)


1

1

1) Меня интересует один очень важный вопрос - как подготовить ОС Linux + специализированный софт для установки на некую серию из 10-ти _одинаковых_ устройств? И чтобы это всё функционировало тоже одинаково.

Проблема мне видится в том что udev пропишет свои какие-то свои имена сетевым картам и прочим устройствам. Есть и много других ньюансов, которые надо не забыть учесть.

Собственно вопрос - это делается вручную? Есть ли мебутодика? Спец софт?

2) И чтобы вообще хорошо стало, надо чтобы система вертелась из RAM-диска. А вот тут как быть?

Делитесь опытом :) Возможно просто мне надо подсказать как называется этот процесс, а дальше-то я нагуглю :) Заранее благодарю :)

Просто ставить с CD и вручную лопатить для N устройств - это не айс. На серийный какие-то устройства типа нетбуков же как-то ставят, вероятно там какой-то конфигуратор, типа как на образах Ubuntu для ARM - вот там просто некий самонастраивающийся образ - знаю точно ибо не раз ставил на PandaBoard. А мне надо для x86 и ARM.

1. ИМХО, это стоит делать средствами автоматической установки. Например, пользовательские конфиги оформить отдельным пакетом (в /etc/skel) и написать файл ответов для установщика (preseed, kickstarter, etc.).

2. Это уже больше похоже на livecd.

AITap ★★★★★
()

Для ARM можно посмотреть в сторону OpenEmbedded, там всё как раз заточено на создание имеджей (jffs2 или ubifs, например).

Ramdisk тоже можно делать, как пример, первая же ссылка из гугла:
http://trac.nslu2-linux.org/slugos/browser/releases/slugos-3.8-beta/openembed...

OE так же может собирать образы и для x86.

Если бы не нужно было связываться с ARM, то лучше было бы брать что-нибудь из mainstream дистрибутивов. А коль есть в задании ARM, то без OE будет сложновато. Emdebian еле живой, Debian/ARM может быть тяжеловат (в смысле размера), сборку Fedora/ARM осилить можно, но документации будет явно меньше чем к OE, плюс снова тяжелый.

hexdump01010101
()
Ответ на: комментарий от hexdump01010101

Совсем забыл, ramdisk в OE создается чуть ли не по дефолту, рядышком с jffs2 обычно лежит. Так что...

hexdump01010101
()

Я делал так:

  1. сборка файловой системы
  2. упаковка файловой системы в TAR-архив, сжатие по желанию
  3. экспортирование файловой системы по NFS
  4. загрузка устройства с использованием этой файловой системы по NFS
  5. распаковка архива на нужный раздел

Другой не менее распространнённый вариант, чаще применяется для RO-rootfs:

  1. подготовка файловой системы, например cramfs
  2. останавливаем загрузку на стадии загрузчика
  3. скачиваем по TFTP или UART файловую систему
  4. прошивка файловой системы

Также никто не мешает писать прямо в нужный раздел, вариантов - вагон и маленькая тележка.

imb ★★
()

посмотри в сторону eCos - позволяет сконфигурять все, вплоть до ядра системы и с армом нормально работает

EugeneBas ★★
()

Для ARM есть еще такая штука: http://buildroot.uclibc.org/

Сам пробовал - все вполне понятно. Ramdisk тоже поддерживает. Насчет того, можно ли собрать для x86 - не знаю, надо почитать. Я только под ARM пробовал.

solovey ★★
()
Ответ на: комментарий от solovey

можно и для x86

всем спасибо за ответы!

я-то знаком и с buildroot и c openembedded/yocto и с ptxdist - всеми перечисленными пользовался на практике, просто суть в том что было непонятно как грамотно готовить образы для устройства

это либо ковырять систему сборки что не так просто, а можно просто взять рабочую систему, установить на ней всё и провести которые очистные шаги :)

я пока знаю про udev файлы в /etc - вот и интересуюсь - может я чего упустил или важное забыл, может какие-то логи надо чистить в идеале, а может еще что... я в этом плане

I-Love-Microsoft ★★★★★
() автор топика
Ответ на: комментарий от I-Love-Microsoft

Был похожий опыт с развертыванием emdebian на несколько arm-машин.

Я сделал совсем тупо - развернул и настроил все необходимое на одной (КФС была на флешке), а затем просто создал из этой КФС архив, который распаковывал и перезаливал на другие машины.

Никакой дополнительной настройки на других машинах уже не требовалось. Никаких логов не чистил. Так что мне кажется, особых проблем возникнуть не должно. Удачи!

З.Ы.: КФС == корневая файловая система, если что =)

solovey ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.