ALT Linux architecture porting
 help / color / mirror / Atom feed
* [devel-ports] создание очень диетических пакетов для очень маленького rootfs (до 50 Mb)?
@ 2010-05-04  9:14 Mike Lykov
  2010-05-04  9:38 ` Lenar Shakirov
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Mike Lykov @ 2010-05-04  9:14 UTC (permalink / raw)
  To: ALT Linux arch porting

Здравствуйте.

Встретилась такая проблема при уменьшении размера пространства, доступного для размещения rootfs - сгенеренная с помощью mkimage система с трудом лезет на 128Mb, занимая все место и не оставляя свободного для процесса работы.
(правда, нынешнее устройство на которое я пытаюсь это засунуть - это x86 система - потомок одноплатных компьютеров для встраиваемых систем типа vortex86, а не arm - но, может, это актуально и для arm-репозитория?)

Система представляет из себя минимальный консольный вариант (из бранча 5.1 i586, который может загрузиться, залогиниться и иметь минимум полезных инструментов под рукой:
login,cron,etcnet,apt,tar,openssh
 - получилась такая (со всеми зависимостями):
-rw-r--r-- 1 mlykov_a mlykov_a 103198720 Апр 13 14:31 i586-root.tar (100780K)

например, при apt-get update места для индексов не хватает ;)
вот самые толстые пакеты в такой системе:
# rpm -qa --qf "%{NAME} %{SIZE}\n" | sort -k 2 -n -r | head
coreutils 10438235
glibc-gconv-modules 5678368
gnupg 4729471
util-linux 4689483
perl-base 4028177
glibc-core 2783899
elinks 2561638
file 2201774
tar 2023657
tzdata 1835407

приходу к выводу, что rootfs, построенная на общей пакетной базе с "большими" дистрибутивами, на основе glibc,rpm,apt и т.п. просто никак не может быть предназначена для таких маленьких обьемов (одни только базы rpm + apt займут 10% обьема от 128Mb?)

Логично было бы, если ответ "да, это невозможно" перейти к использованию busybox? Но тут опять, наверно "между общим и частным" - кто-то у себя уже это делал, но смысла держать его в виде рядового пакета в общем репозитории 5.1 бранча нет?

В общем, посоветуйте генеральную линию - 
1. забить и собирать busybox локально для себя, засоывать его в систему вручную;
2. или есть шанс для создания отдельного бранча с "очень диетическими" пакетами, но близкими к обычным (например, где убраны из зависимостей ман-страницы, apt не тянет целиком пакет gnupg, сокращено количество локалей и т.п.);
3. разное?

ЗЫ это не вопрос, требующий срочного ответа и помощи от читателей, это скорее тема для обсуждения ;)


-- 
Mike 


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel-ports] создание очень диетических пакетов для очень маленького rootfs (до 50 Mb)?
  2010-05-04  9:14 [devel-ports] создание очень диетических пакетов для очень маленького rootfs (до 50 Mb)? Mike Lykov
@ 2010-05-04  9:38 ` Lenar Shakirov
  2010-05-04 13:42 ` Michail Yakushin
  2010-05-04 15:22 ` Денис Смирнов
  2 siblings, 0 replies; 6+ messages in thread
From: Lenar Shakirov @ 2010-05-04  9:38 UTC (permalink / raw)
  To: ALT Linux arch porting

04.05.2010 13:14, Mike Lykov пишет:
> В общем, посоветуйте генеральную линию -
> 1. забить и собирать busybox локально для себя, засоывать его в систему вручную;
> 2. или есть шанс для создания отдельного бранча с "очень диетическими" пакетами, но близкими к обычным (например, где убраны из зависимостей ман-страницы, apt не тянет целиком пакет gnupg, сокращено количество локалей и т.п.);
> 3. разное?
4. юзать squashfs + unionfs|aufs?


-- 
С уважением, инженер отдела ИИС ООО «Центр»
Шакиров Ленар Наилевич
shakirov@cg.ru
(843) 533-88-14

Российская Федерация
Казань, ул. Зинина, 3а
420029, а/я 81

http://www.cg.ru/


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel-ports] создание очень диетических пакетов для очень маленького rootfs (до 50 Mb)?
  2010-05-04  9:14 [devel-ports] создание очень диетических пакетов для очень маленького rootfs (до 50 Mb)? Mike Lykov
  2010-05-04  9:38 ` Lenar Shakirov
@ 2010-05-04 13:42 ` Michail Yakushin
  2010-05-04 15:22 ` Денис Смирнов
  2 siblings, 0 replies; 6+ messages in thread
From: Michail Yakushin @ 2010-05-04 13:42 UTC (permalink / raw)
  To: devel-ports

04.05.2010 13:14, Mike Lykov пишет:
> Здравствуйте.
> 
> Встретилась такая проблема при уменьшении размера пространства, доступного для размещения rootfs - сгенеренная с помощью mkimage система с трудом лезет на 128Mb, занимая все место и не оставляя свободного для процесса работы.
> (правда, нынешнее устройство на которое я пытаюсь это засунуть - это x86 система - потомок одноплатных компьютеров для встраиваемых систем типа vortex86, а не arm - но, может, это актуально и для arm-репозитория?)
> 
> Система представляет из себя минимальный консольный вариант (из бранча 5.1 i586, который может загрузиться, залогиниться и иметь минимум полезных инструментов под рукой:
> login,cron,etcnet,apt,tar,openssh
>  - получилась такая (со всеми зависимостями):
> -rw-r--r-- 1 mlykov_a mlykov_a 103198720 Апр 13 14:31 i586-root.tar (100780K)
> 
> например, при apt-get update места для индексов не хватает ;)
> вот самые толстые пакеты в такой системе:
> # rpm -qa --qf "%{NAME} %{SIZE}\n" | sort -k 2 -n -r | head
> coreutils 10438235
> glibc-gconv-modules 5678368
> gnupg 4729471
> util-linux 4689483
> perl-base 4028177
> glibc-core 2783899
> elinks 2561638
> file 2201774
> tar 2023657
> tzdata 1835407
> 
> приходу к выводу, что rootfs, построенная на общей пакетной базе с "большими" дистрибутивами, на основе glibc,rpm,apt и т.п. просто никак не может быть предназначена для таких маленьких обьемов (одни только базы rpm + apt займут 10% обьема от 128Mb?)
> 
> Логично было бы, если ответ "да, это невозможно" перейти к использованию busybox? Но тут опять, наверно "между общим и частным" - кто-то у себя уже это делал, но смысла держать его в виде рядового пакета в общем репозитории 5.1 бранча нет?
> 
> В общем, посоветуйте генеральную линию - 
> 1. забить и собирать busybox локально для себя, засоывать его в систему вручную;
> 2. или есть шанс для создания отдельного бранча с "очень диетическими" пакетами, но близкими к обычным (например, где убраны из зависимостей ман-страницы, apt не тянет целиком пакет gnupg, сокращено количество локалей и т.п.);
> 3. разное?
Я считаю что нужно делать специальный sourcebase репозиторий с
инструментами в sisyphus с помощью которого можно будет
изготовить желаемую прошивку для системы.
> ЗЫ это не вопрос, требующий срочного ответа и помощи от читателей, это скорее тема для обсуждения ;)
> 
> 



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel-ports] создание очень диетических пакетов для очень маленького rootfs (до 50 Mb)?
  2010-05-04  9:14 [devel-ports] создание очень диетических пакетов для очень маленького rootfs (до 50 Mb)? Mike Lykov
  2010-05-04  9:38 ` Lenar Shakirov
  2010-05-04 13:42 ` Michail Yakushin
@ 2010-05-04 15:22 ` Денис Смирнов
  2010-05-05  5:45   ` Mike Lykov
  2 siblings, 1 reply; 6+ messages in thread
From: Денис Смирнов @ 2010-05-04 15:22 UTC (permalink / raw)
  To: ALT Linux arch porting

[-- Attachment #1: Type: text/plain, Size: 2541 bytes --]

On Tue, May 04, 2010 at 01:14:05PM +0400, Mike Lykov wrote:

ML> Встретилась такая проблема при уменьшении размера пространства, доступного для размещения rootfs - сгенеренная с помощью mkimage система с трудом лезет на 128Mb, занимая все место и не оставляя свободного для процесса работы.

Да, надо точить.

ML>  - получилась такая (со всеми зависимостями):
ML> -rw-r--r-- 1 mlykov_a mlykov_a 103198720 Апр 13 14:31 i586-root.tar (100780K)
ML> например, при apt-get update места для индексов не хватает ;)

Не надо делать apt-get update на 128Mb. Надо после установки грохать базу
rpm, и обновлять систему методом заливки новой прошивки.

ML> приходу к выводу, что rootfs, построенная на общей пакетной базе с "большими" дистрибутивами, на основе glibc,rpm,apt и т.п. просто никак не может быть предназначена для таких маленьких обьемов (одни только базы rpm + apt займут 10% обьема от 128Mb?)

Вот когда я собирал роутер на 16Mb флешке -- вот там да, мне очень
понадобился busybox. 128Mb это уже дохрена места, если не планируется
там хранить данные.

ML> Логично было бы, если ответ "да, это невозможно" перейти к использованию busybox? Но тут опять, наверно "между общим и частным" - кто-то у себя уже это делал, но смысла держать его в виде рядового пакета в общем репозитории 5.1 бранча нет?

В чистом виде -- опасно. Потому как в busybox есть, скажем, /bin/sh -- и
может вытянутся вместо шелла busybox.

Поэтому если уж и собирать его, то бинарники класть в /usr/share
куда-нибудь, а в hook'ах mkimage уже переносить.

ML> В общем, посоветуйте генеральную линию - 
ML> 1. забить и собирать busybox локально для себя, засоывать его в систему вручную;
ML> 2. или есть шанс для создания отдельного бранча с "очень диетическими" пакетами, но близкими к обычным (например, где убраны из зависимостей ман-страницы, apt не тянет целиком пакет gnupg, сокращено количество локалей и т.п.);
ML> 3. разное?
ML> ЗЫ это не вопрос, требующий срочного ответа и помощи от читателей, это скорее тема для обсуждения ;)

Ты сначала конечную задачу сформулируй. Если это роутер -- решение одно
(128Mb это дофига лишнего места, которое можно расходовать почти не думая
головой). Если же это что-то более серьезное, то надо думать.

Еще обрати внимание на squashfs. Большую часть прошивки есть смысл делать
read-only, часть диска монтировать в tmpfs, а часть уже с данными -- на
флешке.

-- 
С уважением, Денис

http://mithraen.ru/
----------------------------------------------------------------------------

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel-ports] создание очень диетических пакетов для очень маленького rootfs (до 50 Mb)?
  2010-05-04 15:22 ` Денис Смирнов
@ 2010-05-05  5:45   ` Mike Lykov
  2010-05-05 14:36     ` Денис Смирнов
  0 siblings, 1 reply; 6+ messages in thread
From: Mike Lykov @ 2010-05-05  5:45 UTC (permalink / raw)
  To: ALT Linux arch porting

Отвечу тут как самое подробное ;)

>  ML>  - получилась такая (со всеми зависимостями):
>  ML> -rw-r--r-- 1 mlykov_a mlykov_a 103198720 Апр 13 14:31 i586-root.tar (100780K)
>  ML> например, при apt-get update места для индексов не хватает ;)
>  Не надо делать apt-get update на 128Mb. Надо после установки грохать базу
>  rpm, и обновлять систему методом заливки новой прошивки.

там стоит PQI disk-on-module, который усиленно прикидывается обычным IDE-винтом. и все это вместе прикидывается "обычным PC", поэтому и методы такие поначалу - как на "обычном" ;)

>  В чистом виде -- опасно. Потому как в busybox есть, скажем, /bin/sh -- и
>  может вытянутся вместо шелла busybox.
>  Поэтому если уж и собирать его, то бинарники класть в /usr/share
>  куда-нибудь, а в hook'ах mkimage уже переносить.

ладно, busybox тут можно откинуть я думаю. не стоят эти извращения выигрыша при наличии такого обьема диска.

>  Ты сначала конечную задачу сформулируй. Если это роутер -- решение одно
>  (128Mb это дофига лишнего места, которое можно расходовать почти не думая
>  головой). Если же это что-то более серьезное, то надо думать.

Это такое "устройство одной определенной функции", не роутер. На нем запускается Одна Главная Программа, которая опрашивает подключенные устройства через rs-232, rs-485 порты, немного хранит опрошенные данные на диске и передает по ethernet.
По сути, кроме Главной Программы, которая сейчас собирается статически и кидается в /opt, все остальное - сервисно-отладочное. 
а пока идет отладка, то просто было бы удобно получить что-либо типа setserial или lspci с пом. apt по сети, чем запихивать туда бинарники с либами вручную по отдельности ;) но в конечном варианте оно, конечно, не нужно.

>  Еще обрати внимание на squashfs. Большую часть прошивки есть смысл делать
>  read-only, часть диска монтировать в tmpfs, а часть уже с данными -- на
>  флешке.

судя по ответам да - наверно самое осмысленное - это сжатый образ squashfs, грузящийся и монтирующий в rw раздел "диска" для хранения данных и tmpfs для хранения всяких временных изменяемых файлов. 

сейчас это просто распакованный на раздел диска tar, полученный с пом. mkimage (т.е. как обычная установленная система).
будет проще, чем вырезать что-то из каждого пакета ;)

-- 
Mike 



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [devel-ports] создание очень диетических пакетов для очень маленького rootfs (до 50 Mb)?
  2010-05-05  5:45   ` Mike Lykov
@ 2010-05-05 14:36     ` Денис Смирнов
  0 siblings, 0 replies; 6+ messages in thread
From: Денис Смирнов @ 2010-05-05 14:36 UTC (permalink / raw)
  To: ALT Linux arch porting

[-- Attachment #1: Type: text/plain, Size: 1898 bytes --]

On Wed, May 05, 2010 at 09:45:26AM +0400, Mike Lykov wrote:

ML> там стоит PQI disk-on-module, который усиленно прикидывается обычным IDE-винтом. и все это вместе прикидывается "обычным PC", поэтому и методы такие поначалу - как на "обычном" ;)

Вот я на подобном но 16Мб с busybox и вынужден был мучаться.

ML> ладно, busybox тут можно откинуть я думаю. не стоят эти извращения выигрыша при наличии такого обьема диска.

Именно.

ML> Это такое "устройство одной определенной функции", не роутер. На нем запускается Одна Главная Программа, которая опрашивает подключенные устройства через rs-232, rs-485 порты, немного хранит опрошенные данные на диске и передает по ethernet.
ML> По сути, кроме Главной Программы, которая сейчас собирается статически и кидается в /opt, все остальное - сервисно-отладочное. 
ML> а пока идет отладка, то просто было бы удобно получить что-либо типа setserial или lspci с пом. apt по сети, чем запихивать туда бинарники с либами вручную по отдельности ;) но в конечном варианте оно, конечно, не нужно.

Ну ставь не apt'ом, а rpm. Вот уже экономия на индексах :) Но тогда
придется базу rpm оставить.

ML> судя по ответам да - наверно самое осмысленное - это сжатый образ squashfs, грузящийся и монтирующий в rw раздел "диска" для хранения данных и tmpfs для хранения всяких временных изменяемых файлов. 
ML> сейчас это просто распакованный на раздел диска tar, полученный с пом. mkimage (т.е. как обычная установленная система).
ML> будет проще, чем вырезать что-то из каждого пакета ;)

mkimage вполне в состоянии hook'ами и из squashfs или tar повырезать
лишнее. Например если известно точно место где железка будет
эксплуатироваться -- на tzdata, к примеру, можно сэкономить. Также стоит
сэкономить на локалях.

-- 
С уважением, Денис

http://mithraen.ru/
----------------------------------------------------------------------------

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2010-05-05 14:36 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-05-04  9:14 [devel-ports] создание очень диетических пакетов для очень маленького rootfs (до 50 Mb)? Mike Lykov
2010-05-04  9:38 ` Lenar Shakirov
2010-05-04 13:42 ` Michail Yakushin
2010-05-04 15:22 ` Денис Смирнов
2010-05-05  5:45   ` Mike Lykov
2010-05-05 14:36     ` Денис Смирнов

ALT Linux architecture porting

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel-ports/0 devel-ports/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel-ports devel-ports/ http://lore.altlinux.org/devel-ports \
		devel-ports@lists.altlinux.org devel-ports@lists.altlinux.ru devel-ports@lists.altlinux.com
	public-inbox-index devel-ports

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel-ports


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git