Журнал LinuxFormat - перейти на главную

LXF76:Dynebolic

Материал из Linuxformat
Перейти к: навигация, поиск

Содержание

Игры с Dynebolic

Dynebolic применяется творческими людьми как мультимедийная студия, но вы можете также воспользоваться дистрибутивом Dynebolic, чтобы создать собственный Live CD. Том Pассел (Tom Russell) предлагает пошаговое руководство, разъясняющее, как можно модифицировать Dynebolic для ваших нужд…

Перед смертью Франц Кафка завещал своим друзьям и литературному агенту сжечь все его неопубликованные рукописи. Годы были потрачены на их обдумывание, написание и снова обдумывание, а он хотел, чтобы вся его работа была уничтожена, исчезла без следа. Немногие могут представить себе такую просьбу, и уж тем более не разработчики Open Source-проектов. Нет, мы желаем делить свою работу с остальными; в этом весь ее смысл.


Tак, Linux-разработчики меньше всего хотели бы обнаружить, что их удивительное приложение ни у кого, кроме них, не работает. К сожалению, это обычный случай: новая программа может оказаться неработоспособной из-за разного рода зависимостей, включая отсутствующие библиотеки, устаревшие версии ядра и даже другой тип файловой системы.

Но теперь и альтруисты, и хвастуны могут сказать «спасибо» решительно не согласным с Кафкой разработчикам Dynebolic – свободно распространяемого базового дистрибутива для сборки Live CD. Он ориентирован на медиа-приложения и может применяться как мультимедийная студия, но вы также можете модифицировать его и собрать на его основе новый CD-образ, содержащий ваше собственное приложение. таким образом, можно заставить вашу программу работать на любом типе машин, снабженных CD-приводом и процессором Intel или AMD, не вынуждая конечных пользователей задумываться о зависимостях. Это прекрасное решение для разработчиков, которые ищут способ распространить свою программу, особенно если речь идет о мультимедиа-проектах.

Bы также можете сохранить настройки, домашний каталог и различные файлы на жесткий диск или USB-брелок, как на Linux-, так и на Windows-разделы, выполнив несколько простых шагов. Или поместить сжатые файлы с диска в свой раздел, чтобы Dynebolic освобождал привод сразу после загрузки. Загнрузившись, он обнаружит свои сохраненные файлы и спросит вас, использовать ли их. если вы не собираетесь демонстрировать новый проект, а просто хотели бы получить настроенный Live CD для собственных нужд (возможно, вы уже читали об этом в прошлом номере), Dynebolic будет для вас хорошей мультимедиа-альтернативой Knoppix.

Подготовка

Прочитав эту статью, вы узнаете, как пересобрать Dynebolic CD для запуска собственной программы. вы настроите его на использование других Linux-приложений вместе со своей основной программой. Eсли же вы хотите, чтобы работало только ваше приложение, понадобится выполнить некоторые действия с файлами загрузки Linux или инициализацией системы X-Window, но в любом случае будут задействованы процедуры из данной статьи.

Загрузите последнюю версию Dynebolic с http://www.dynebolic.org или воспользуйтесь копией с нашего диска. Для начала работы вам понадобится компьютер с Linux и CD-приводом. Мы, например, будем работать с SuSE 9.2 – зрелым дистрибутивом, хорошо известным нашим читателям. Но любой не слишком старый дистрибутив должен работать так же хорошо.

Шаг 1. Установите файловую систему SQUASHFS

Dynebolic поставляется с shell-скриптом для разработчиков, который позволяет вам выполнять все действия по сборке, включая развертывание упакованных файлов с CD-диска на ваш жесткий диск, чем мы займемся позже. Дерево каталогов /usr сжато с помощью SquashFS, и хотя эту файловую систему модифицировать не требуется, процесс распаковки требует поддержки SquashFS вашим ядром.

Проверьте, нет ли у вас файла mksquashfs, который обычно размещается в /usr/bin или /usr/local/bin. Этот файл использует squashfs-модуль ядра, так что при его наличии можно предположить, что и в ядре есть необходимая поддержка.

Чтобы добавить SquashFS, установите соответствующий патч, пересоберите, протестируйте и установите новое ядро. Не беспокойтесь – мы все время будем рядом! Прежде всего, загрузите SquashFS с сайта http://squashfs.sourceforge.net или возьмите его на нашем диске (мы используем версию Squashfs2.1-r2). После того как вы извлечете tar-файлы в дерево SquashFS, вы увидите множество каталогов, начинающихся со слова «linux» – они содержат файлы патчей для различных ядер, которые вам и нужны. Для SuSE 9.2 используйте каталог linux-2.6.9 - эта версия ядра наиболее близка к той, что используется в SuSE 9.2 (2.6.8-24.14).

B каталоге /usr/src/linux примените патчи, как показано ниже:

patch -p1 < /usr/local/stc/
squashfs2.1-r2/linux-2.6.9/
squashfs2.1-patch

Шаг 2. Сконфигурируйте новое ядро

В ядре SuSe 9.2, используемом по умолчанию, нужно сделать всего три изменения:

  • SuSE 9.2 для монтирования сменных носителей, таких как CD, использует Subfs.

Она не имеет никакого отношения к SquashFS, но ее требуется включить. Отметьте ее (в подменю «Filesystems») для компиляции в виде модуля.

  • B подменю «Miscellaneous Filesystems» экрана конфигурации ядра включите как модуль SquashFS.
  • Задайте новому ядру уникальное имя в «Build Options». Это обеспечит сборку модулей в отдельный каталог в /lib/modules, благодаря чему уже существующие не будут перезаписаны или изменены.

Eсли вы используете дистрибутив, отличный от SuSE, необходимо иметь ввиду, что ваши исходные коды ядра могут не собраться; в этом случае вам может понадобиться установить ядро с нашего диска. Прежде чем вы приступите к настройке нового ядра, распечатайте существующую конфигурацию, найти которую можно в файле /boot/config-<ИмяВашегоЯдра>, и используйте ее в качестве основы.

Сохраните измененную конфигурацию и выполните команду make, чтобы собрать новое ядро и его модули. Когда компиляция завершится, вы сможете установить новое ядро, выполнив команду make install с правами суперпользователя, и новые модули командной make modules_install. На случай серьезных проблем (их не должно возникнуть, но никто не знает, когда мистер Мерфи проявит себя) вам следует внести также изменения в конфигурацию загрузчика Grub, чтобы быть уверенным, что вы сможете загрузиться со своим первоначальным (работоспособным) ядром.

На этапе make install изменяются ссылки в каталоге /boot, указывающие на два только что созданных файла – kernel и initrd. Когда инсталлируется новое ядро, SuSE редактирует символьные ссылки linux и initrd, чтобы они указывали на эти новые файлы, однако в интересах безопасности лучше, чтобы они ссылались на первоначальные файлы kernel' и initrd, а для новых создайте в меню Grub соответствующий пункт «SquashFS-enhanced». Bы сможете выбрать новый пункт в меню Grub при следующей загрузке; если он не будет работать, воспользуйтесь первоначальным ядром и попытайтесь еще раз.


Итак, перезагрузите машину и выберите в меню ваше новое ядро. теперь, когда вы успешно запустили новое ядро, поддерживающее SquashFS, вы можете собрать инструментарий для работы с SquashFS. Скопируйте полученный файл mksquashfs в один из каталогов, доступных через переменную окружения PATH.

Шаг 3. Проверьте ваше приложение

Прежде чем приступать к процессу модификации на вашем жестком диске, найдите минутку, чтобы проверить, заработает ли ваше приложение на Dynebolic. Пока оно работает с версией ядра и библиотеками, имеющимися на CD, сложностей возникнуть не должно. B этой статье мы будем устанавливать на диск Dynebolic многопользовательскую игру Scool (http://www.stomfi.bigpondhosting.com), но в реальности все будет зависеть только от вас. Чтобы запустить саму Scool, распакуйте tar-архив с нашего CD себе на диск, поскольку потом CD-привод у вас будет занят диском с Dynebolic.

Eсли вы обращаетесь к библиотекам, отсутствующим на CD, вы можете создать подкаталог с нужными библиотеками в каталоге вашего приложения и разрешить зависимости, вызвав свое приложение с помощью shell-скрипта, устанавливающего путь к библиотекам:

#!/bin/sh
# Установите пути и запустите приложение
# Закомментируйте строки или измените пути на подходящие
export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/X11R6/lib:/usr/local/lib:/home/YourApp-2.2.1/lib
# Или если есть конфликт с существующими библиотеками в /usr/lib и /usr/local/lib
#export LD_LIBRARY_PATH=/lib:/usr/X11R6/lib:/home/YourApp-2.2.1/lib/home/YourAppDir/YourAppExecutable

Чтобы протестировать ваше приложение, просто загрузитесь с Dynebolic CD на той машине, где оно размещается. Bо время загрузки Dynebolic можно закрыть заставку. вернуть ее можно, просто щелкнув правой клавишей и выбрав верхний пункт в меню.

Заставка предоставляет доступ к web-сайту Dynebolic и позволяет запускать сервисы для сетевой работы и сохранения ваших файлов (или всей загружаемой системы) на жесткий диск или USB Flash. Справа от основного экрана вы увидите иконки, по крайней мере, одного жесткого диска. Щелкните правой кнопкой на любой из них и выберите Launch; откроется файловый менеджер.

Шаг 4. Скопируйте ваше приложение на DYNEBOLIC

Dynebolic монтирует все разделы, которые он найдет, в каталог /vol, устанавливая права на чтение/запись/исполнение. Заметьте, что вы загрузитесь в Dynebolic как root, так что сможете заменить любое приложение (на данном этапе это будет тестовая программа), которое использует те же библиотеки, что и ваше приложение, скопировав его с раздела жесткого диска в вашу систему Dynebolic, и наоборот. Eсли вы используете USB Flash, он может быть смонтирован в каталог /rem, и вы сможете скопировать или даже перенести файлы с жесткого диска на «флэшку». Мы скопируем приложение Scool в каталог /home, чтобы проверить его работу.

Удерживайте клавишу Ctrl, когда будете перетаскивать файлы. Убедитесь, что вы получили в выпадающем окошке сообщение о копировании, щелкните Accept и дождитесь завершения копирования. На самом деле, данные копируются в оперативную память, так что вам потребуется достаточное ее количество – по крайней мере, 128 Мб.

Eсли памяти мало, всегда можно выложить каталог /home на жесткий диск или флэш-драйв подходящего объема. Проверьте, сколько памяти требуется диску, создав небольшие «гнезда» (nest) и увеличивая их на 10 Мб, пока вы не перестанете получать ошибки. Tеперь перезагрузитесь, чтобы активировать созданное «гнездо», и перезапустите процесс копирования. «Гнездо» может быть создано на второй вкладке заставки.

Когда ваше приложение окажется в каталоге /home системы Dynebolic, проверьте, работает ли оно при запуске с рабочего стола или из окна терминала. если нет, попробуйте установить Dynebolic на жесткий диск и добавить необходимое окружение разработки. Завершите сеанс работы с Dynebolic в режиме Live CD и перезагрузитесь в систему разработки. теперь вы сможете убедиться, что приложение, скопированное в систему разработки Dynebolic CD на жестком диске, будет работать и на вашем модифицированном CD.

Шаг 5. Разверните файлы DYNEBOLIC

Теперь настало время «развернуть» сжатые файлы Dynebolic на ваш жесткий диск. Для этого нам потребуется пакет Dynebolic Software Development Kit. DyneSDK можно найти в каталоге /devel на самом диске. Он обеспечивает достаточно много функций; наберите dynesdk -h, чтобы увидеть их полный перечень.

Как следует из данного сообщения, вам потребуется, по крайней мере, 2.4 Гб дискового пространства, чтобы распаковать все файлы с CD. Хорошей идеей будет создать каталог /dyne, в котором будет происходить вся работа, на отдельном разделе, особенно учитывая, что вам потребуются привилегии root, чтобы обладать необходимыми правами доступа к файлам. если вы подключены к небезопасной сети, вам следует выполнять разработку от имени непривилегированного пользователя, и затем выполнить как root команду chown -R root:root /dyne/* перед тем, как создавать образ ISO. Чтобы сделать себе жизнь немного проще, скопируйте файл /media/cdrom/devel/dynesdk туда, где размещается ваш каталог /dyne. Сделайте то же самое для всего каталога cdrom, скопировав его в каталог /dyne по адресу dyne/cdrom.

Хорошо, вернемся к развертыванию системы Dynebolic. Перейдите в каталог dyne и введите в командной строке ./dynesdk explode. вам придется немного подождать, поскольку /usr — достаточно большой файл.

Когда будет создаваться ISO-образ диска, вам не нужно ничего изменять, так что будут использоваться только некоторые небольшие команды. Bам не нужно трогать /usr или /var, поскольку все изменения будут касаться сжатых файлов /home и /initrd; дополнительно /isolinux, если вы хотите изменить сообщение, выводимое при загрузке, и /extra для вашего выбора вложений.

Шаг 6. Соберите свой компакт-диск

Поскольку вы можете радикально увеличить размер каталога /home, вам нужно будет освободить место на CD, далив файлы из /extra. После команды explode вы увидите новое дерево файловой системы в вашем каталоге /dyne. Начните с копирования вашего приложения в каталог /home системы Dynebolic. Мы скопируем каталог приложения Scool, который распаковали на третьем шаге, в dyne/home/SCOOL.

LXF76 dynebolic1.jpg

Нестандартный дистрибутив! Даже если вы не меняли заставку Dynebolic, можете использовать предпочитаемый вами рисунок в качестве фона.


Tеперь измените меню в домашнем каталоге Dynebolic. Перейдите в каталог dyne/home/GnUStep/Defaults и отредактируйте WMRootMenu. Нам нужно добавить сюда два новых пункта: один для программы Scool, и один для файла readme. Как вы можете видеть на рисунке, мы изменили фоновый рисунок Dynebolic и поместили нашу работу в GNUStep Library. Мы также поменяли файл GNUStep Defaults WindowMaker, чтобы он ссылался на рисунок. Это очень полезная операция для демонстрации вашего продукта. Соответствующая строка этого файла будет следующей:

WorkspaceBack = (spixmap, “/home/GNUStep/Library/WindowMaker/Backgrounds/scool.jpg”, gray20);

Bы можете также включить опцию «Save Session On Exit» в этом файле, которая будет нужна, если вы используете «гнезда».

Чтобы запускать ваше приложение во время загрузки оконной системы, отредактируйте два файла в /home/GnUStep/ Library/WindowMaker. Это autostart.sh и exitscript.sh. Поместите в первый из них полный путь к исполнимому файлу – это может быть, например, /home/Revolution-2.2.1/revolution.sh, – и завершите его в exitscript.sh, т.е. укажите там команду:

killall /home/Revolution-2.2.1/revolution.sh.

Полное имя запущенной программы можно узнать, если выполнить команду ps auxw.

Eсли вы не хотите включать опцию «Save Session On Exit», пропустите редактирование сценария выхода, но если у пользователя есть свое «гнездо», и он может включить эту опцию, вам в любом случае понадобится останавливать ваше приложение при выходе. Будьте внимательны.

Последний файл, который мы изменили – это сообщение, которое выводится, когда вы загружаетесь с компакт-диска. Оно размещается в boot.msg и представляет собой текстовый файл в каталоге /dyne/cdrom/isolinux. Tеперь воспользуйтесь командами dynesdk mkhome и dynesdk mkinitrd, как показано в примере, чтобы заменить файлы home и initrd в /dyne/cdrom/dyne. Bернитесь в каталог dyne и введите команды:

./dynesdk mkhome
./dynesdk mkinitrd

При выполнении mkinitrd нужно будет нажать «y». Это может быть необходимо для удаления файлов из /dyne/cdrom/extra, чтобы убедиться, что ISO-образ (включая ваше приложение) помещается на компакт-диске.

Последняя команда Dynesdk – это изготовление ISO-файла. B каталоге dyne наберите:

./dynesdk mkiso

B конце сообщений, выводимых командной dynesdk mkiso, вы увидите размер созданного ISO-файла. Мы получили образ объемом около 534 Мб. Запишите его на чистый компакт-диск, поместите вновь созданный Dynebolic CD в привод вашего компьютера и перезагрузитесь. Bы должны будете увидеть ваш демонстрационный диск. Поздравляем! Проверьте работу вашего нового приложения и меню — скоро все остальные смогут сделать то же самое! LXF

Использование QEMU

С помощью Qemu можно тестировать ваш собственный ISO-образ Dynebolic без записи его на CD. qemu эмулирует виртуальный ПК для тестирования операционных систем и их программ в отдельном окне той системы, которую вы обычно используете. Последнюю версию вы можете найти на http://fabrice.bellard.free.fr/qemu/download.html, или в разделе HotPicks нашего диска.

Чтобы проверить установку Linux, создайте файл-образ размером 2 Гб (или больше) для использования в качестве виртуального жесткого диска. Это делается следующей командой:

qemu-img create mylinux.img 2G

Поместите CD с дистрибутивом Linux в CD-привод и выполните команду:

qemu -boot d -cdrom /dev/cdrom -had mylinux.ing

Bы можете заменить /dev/cdrom полным именем установочного ISO-образа, размещенного на вашем жестком диске.

Bыполните установку как обычно, и когда она будет завершена, измените командную строку на

qemu -boot c -cdrom /dev/cdrom -had mylinux.img -user-net -m 256.

Qemu теперь будет загружаться с жесткого диска, используя /dev/cdrom как устройство чтения компакт-дисков. в данном примере дополнительно разрешаем сетевую работу и выделяем для виртуальной машины 256 Мб оперативной памяти.

Qemu также отлично выполняет работу по виртуализации (это похоже на Xen или VMware, правда, работает не столь быстро), чтобы попробовать новый дистрибутив, не устанавливая его. вы также можете использовать другие форматы, когда создаете дисковый образ для тестирования систем, отличных от Linux.

Все хорошо, что хорошо кончается

Друзья Кафки и его агент, Макс Брод, решили все-таки издать все работы, которые он успел завершить. Среди них — наиболее известные произведения: «Der Prozess» («Процесс»), «Die Verwandlung» («Метаморфозы») и «Das Urteil» («Замок»). Работы Кафки до сих пор трудно отнести к той или иной категории, но многие авторы современности считают, что именно они оказали на них наибольшее влияние.

Персональные инструменты
купить
подписаться
Яндекс.Метрика