* [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