LINUX.ORG.RU
ФорумAdmin

Встроенная система на Disk On Chip


0

0

Я пытаюсь собрать маленькую систему на основе LFS, которая работала бы
на контроллере Advantech, загрузка производится с флэшки (Disk On Chip).
Очевидно, система должна отвечать следующим требованиям:

1) Отсутствие Swap (количество циклов записи на флэш ограничено)
2) Временные файлы должны создаваться на RAM диске (см. п.1) (каталоги
/tmp, /var и т. д.)

Поэтому у меня возникли такие вопросы:
1) Как отключить Swap? Если в /etc/fstab просто будет отсутствовать
строка о swap partition, будет ли система работать корректно (пока
хватает памяти)?
2) Было бы логично разместить всю систему в RAM при загрузке, как это
можно реализовать?

anonymous

По поводу не использования swap - надо просто не монтировать портиции подкачки и всё. Если уж строите встраиваемую систему, то вообще не вижу необходимости пользоваться fstab, не такое уж количество партиций чтобы руками было не вызвать для них mount. По поводу ramdisk проще испольовать tmpfs, для этого надо в ядре поставить галочку поддерживать её и прописать в инициализационном скрипте скажем следующее

mount -t tmpfs tmpfs /tmp

mkdir /tmp/var

mkdir /tmp/etc

....

а /var сделать просто как симлинк на /tmp/var.

сделать партицию в которой будут хранииться данные которые должны сохраниться в результате перезагрузки (всякое случается) и монтировать в режим rw (кстати врядли это будет ext2 :) остальное (в том числе /) в ro. правда при этом надо файл /etc/mtab сделать симлинком на /proc/mounts, а то mount ругаться будет, но работать все равно будет, или использовать флагом -n в mount. Вот немноги моменты из немеренного списка нюансов на которые хотел бы обратить Ваше внимание по поводу Ваших вопросов относитьено маленьких встраиваемых систем

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

Большое спасибо всем кто откликнулся!

>По поводу ramdisk проще испольовать tmpfs, для этого надо в ядре >поставить галочку поддерживать её и прописать в инициализационном >скрипте скажем следующее
>
>mount -t tmpfs tmpfs /tmp
>
>mkdir /tmp/var
>
>mkdir /tmp/etc
>
>....
>
>а /var сделать просто как симлинк на /tmp/var.

Спасибо, очень ценная информация.

>сделать партицию в которой будут хранииться данные которые должны
>сохраниться в результате перезагрузки (всякое случается) и
>монтировать в режим rw (кстати врядли это будет ext2 :)

А почему не ext2, если не секрет? :-) Вообще, насколько я понял,
включив NFTL в ядре, можно отформатировать DOC под любую fs. Лично
я склоняюсь к ext2 на ro и ext3 на rw разделе (если таковой вообще
будет, я пока не уверен).

> /etc/mtab сделать симлинком на /proc/mounts

Спасибо, уже сделано (об этом было в LFS book) :-)

Огромное Вам спасибо за ответ, теперь дело наконец сдвинется с мертвой
точки!

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

Общие рассуждения: по моему опыту ext2 хорошо валится при отрубании питания, и проганять fsck при каждой загрузке не кажется мне хорошим решением, к тому же часто без непосредственного вмешательства администратора не обойтись.... От партиции где будут сохраняться данные хочтся устойчивости и наверное даже немедленной записи на диск без кеширования, возможно можно таким образом настроить и ext2. видел системочку где в качестве такой fs использовался minix, честно говоря не могу ничего сказать по поводу надёжности, но факт имеет место быть. Честно говоря для себя я этот вопрос ещё не решил, так что если у кого-то есть идеи по этому поводу, милости просим. Кстати вопрос назрел: а есть ли опыт использования в качестве носителя Linux DOC. Поделитись ощущениями. Скорее всего ничего сложного нет, но у меня до этого всё руки не доходят всё использую DOMы. Ну материалов в Inetе полно, но всё же......

anonymous
()

Я в свое время делал встраиваемую систему на RTLinux 3.0 + uCLibC + buzybox. Сжатый образ файловой системы получился ~400kB, ядро - около 300к. И все это работает на 8М RAM, причем рамы хватает и на рамдиск, и на приклад.

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

Да работает, я и сам делал, только glibc использовал, их много то и не надо libc и ld.

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

> А почему не ext2, если не секрет? :-)
Так как сам я только теоретик, могу только отметить, что для хранения
системы на флешке в dreambox (это ящик для приема спутникового ТВ под
управлением линукса) используют cramfs, а blin последнее время
использует squashfs. Обе это fs заточены под пзу (либо вообще нет
записи, либо она реализована очень хитрО).

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

То что ext2 сильно ругаеться при падении питания это факт, но в таких вещах вроде как лучше сделать фс только чтения, а данные хранить в другом разделе.

А busybox какой версии был использован, а то что то я никак не могу скомпилироват последнию :((

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

Вопрос по поводу tmpfs. В help'е ядра написано, что tmpfs используется
для shared memory:

/etc/fstab:
tmpfs /dev/shm tmpfs defaults 0 0

Это значит, что я не смогу использовать shared memory, если уже
использую tmpfs для своих целей? :-((

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

Ды верно, так и делал, а какую fs использовать для раздела с данными?

busybox-0.60.5

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

по поводу shared mem, я так понял, что glibc 2.2 использует tmpfs для разделяемой памяти в стандарте POSIX, для этого она монтируется в /dev/shm, при этом разделяемая память в стандарте SYSV будет работать и без tmpfs. но ни что не мешает примонтировать её ы другое место и всё будет работать, о чём кстати говорит пункт 3 того же документа.

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