From Development Machine

Прежде чем приступать к инсталляции платформы Radix.pro с использованием машины разработчика, необходимо выполнить загрузку и установку средств инсталляции так, как описано в параграфе Install Tools раздела Platform Download.

Наиболе простым способом приготовления загрузочной SD-карты является непосредственная запись образа на карту, с использованием утилиты dd. Об этом мы рассказывали во вводной статье. Однако утилита radix-setup позволяет не только записать необходимые образы на загрузочный носитель, но и обеспечить выполнение некоторых операций, связанных с настройкой целевой операционной системы перед ее использованием. Иными словами, программа radix-setup выполняет функции обычного системного инсталлятора, но предназначена для работы на персональной машине разработчика. При этом установка системы производится на сменный носитель, который в дальнейшем будет использован для загрузки целевого устройства.

Итак, после загрузки дистрибутива во временный локальный каталог, копирования в него программ radix-setup, setup-install-tools и установки средств инсталляции в домашний каталог суперпользователя (см. параграф Install Tools), утилита radix-setup готова к работе.

Перед началом необходимо подключить чистый сменный носитель к персональной машине. Здесь важно подчеркнуть, что перед использованием SD-карты или другого носителя информации, с него желательно удалить все разделы, воспользовавшись, например, утилитой fdisk.

Simplest Installation

Рассмотрим процесс инсталляции на простейшем примере, когда используется непосредственная запись загрузочного образа на SD-карту.

Вначале программа установки запросит местоположение каталога, содержащего дистрибутив (см. рис.1).

Select Products Directory
Fig.1. Select Products Directory

Для пользователей, незнакомых с особенностями программ основанных на библиотеке ncurses, необходимо подчеркнуть, что после наведения указателя на выбранный каталог необходимо воспользоваться клавишей <Space> для того, чтобы диалог, показанный на рис.1, вернул правильное значение. На следующем рисунке показано, как должен выглядеть правильный выбор, а именно, то, что в нижней строке присутствует действительный путь к выбранному каталогу.

Right Selection
Fig.2. Right Selection

Далее программа установки попросит подтвердить имя архитектуры, выбранное по умолчанию, или изменить его.

Toolchain Name
Fig.3. Toolchain Name

Кроме того, пользователю будет предложено подтвердить имя целевого устройства так, как показано на следующем рисунке.

Hardware Name
Fig.4. Hardware Name

Следующий вопрос связан с выбором целевого каталога или носителя для копирования продуктов. Дело в том, что утилита radix-setup позволяет осуществить инсталляцию в обычный каталог, естественно, при этом будет разрешена лишь интерактивная инсталляция пакетов, входящих в состав дистрибутива, без использования возможности копирования образа корневой файловой системы на диск.

Поскольку нас интересует приготовление загрузочной SD-карты, мы выберем инсталляцию на сменный носитель так, как показано на рис.5.

Type of Installation
Fig.5. Type of Installation

На следующем рисунке показан выбор, непосредственно, целевого носителя, подключенного к машине разработчика. Здесь следует сказать, что при выбранном нами типе инсталляции, список доступных устройств не будет содержать диск, на котором расположена локальная копия дистрибутива и сама программа radix-setup.

Target Device Selection
Fig.6. Target Device Selection

Следующий диалог предоставляет возможность выбора дальнейшего пути инсталляции. Существует два способа инсталляции системы, первый способ, подразумевает копирование образа целевой файловой системы непосредственно на диск, второй способ, состоит в том, что пакеты, входящие в состав дистрибутива, будут устанавливаться в целевой каталог в последовательности, заданной списком '$(HARDWARE).pkglist'.

Copy FS Image or Install Package by Package
Fig.7. Copy FS Image or Install Package by Package

После подтверждения записи непосредственно образа корневой файловой системы на целевой носитель (кнопка <Yes>), пользователю необходимо дождаться окончания процесса. Текущее состояние будет отображаться так, как показано на следующем рисунке.

Writing Progress
Fig.8. Writing Progress

По окончании процесса записи, будет отображен статус завершения (рис.9):

Exit status of Writing Progress
Fig.9. Exit status of Writing Progress

В принципе, на этом процесс инсталляции можно считать завершенным. Однако если на целевом диске осталось свободное пространство, программа radix-setup передложит создать дополнительные разделы, воспользовавшись утилитой fdisk.

Unallocated Space

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

Use Fdisk to Allocate Space
Fig.10. Use Fdisk to Allocate Space

Разумеется, количство и назначение дополнительных разделов полностью зависит от требований, предъявляемых самим пользователем к целевому устройству. Однако мы рассмотрим процесс выделения дополнительных разделов на примере создания разделов home и swap для того, чтобы предоставить исчерпывающую информацию о работе утилиты radix-setup.

Прежде чем двигаться дальше, необходимо напомнить, что процесс инсталляции мы рассматриваем на примере приготовления загрузочной SD-карты для устройства OMAP5 uEVM. Кроме того размер, имевшейся в нашем распоряжении, SD-карты составлял 16Gb.

Итак, решив создать дополнительные разделы на диске и распечатав затем текущее содержимое с помощью команды 'p', пользователь получит сообщения, примерно такие, как показано на рис.11.

Disk State
Fig.11. Disk State

На следующем листинге показаны все необходимые команды, которые необходимо выполнить для создания разделов home и swap.

Command (m for help): n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p
Partition number (1-4, default 3): 3
First sector (10892288-30881791, default 10893312):
Using default value 10893312
Last sector, +sectors or +size{K,M,G} (10893312-30881791, default 30881791): 30873599
Partition 3 of type Linux and of size 9.5 GiB is set

Command (m for help): n
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): p
Selected partition 4
First sector (10892288-30881791, default 30873600):
Using default value 30873600
Last sector, +sectors or +size{K,M,G} (30873600-30881791, default 30881791):
Using default value 30881791
Partition 4 of type Linux and of size 4 MiB is set

Command (m for help): p

Disk /dev/mmcblk0: 15.8 GB, 15811477504 bytes
4 heads, 16 sectors/track, 482528 cylinders, total 30881792 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1   *        2048     1048575      523264    c  W95 FAT32 (LBA)
/dev/mmcblk0p2         1048576    10892287     4921856   83  Linux
/dev/mmcblk0p3        10893312    30873599     9990144   83  Linux
/dev/mmcblk0p4        30873600    30881791        4096   83  Linux

Command (m for help): t
Partition number (1-4): 4
Hex code (type L to list codes): 82
Changed system type of partition 4 to 82 (Linux swap)

Command (m for help): p

Disk /dev/mmcblk0: 15.8 GB, 15811477504 bytes
4 heads, 16 sectors/track, 482528 cylinders, total 30881792 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1   *        2048     1048575      523264    c  W95 FAT32 (LBA)
/dev/mmcblk0p2         1048576    10892287     4921856   83  Linux
/dev/mmcblk0p3        10893312    30873599     9990144   83  Linux
/dev/mmcblk0p4        30873600    30881791        4096   82  Linux swap

Command (m for help): w

Здесь, выделенные строки представляют собой приглашения, на которые программа fdisk ожидает ответ. Ввод пользователя, отличный от простого нажатия клавиши <Enter>, выделен красным цветом.

Создав все необходимые разделы, важно не забыть воспользоваться командой 'w' утилиты fdisk для записи таблицы разделов.

Format Partitions

После того как необходимые разделы будут созданы, программа radix-setup предложит цикл, в котором пользователь сможет создать файловые системы в соответствующих разделах и указать точки монтирования, созднных файловых систем, в корневой файловой системе. Прохождение по циклу осуществляется кнопкой <OK>, а для выхода из цикла предназначена кнопка <Continue>.

На рис.12 показан диалог выбора раздела home. Кроме того на рис.12 видно, что каждая строка, соответствующая определенному разделу диска, содержит поля, информирующие о размере раздела, типе файловой системы, размещенной на нем, а также о текущем значении точки монтирования (последний столбец).

По умолчанию программа radix-setup расценивает первый свободный раздел, следующий за корневой файловой системой, как раздел, предназначенный для домашних каталогов пользователей. Поэтому созданный нами третий раздел уже имеет точку монтирования /home.

Choose Partition for Creating FS
Fig.12. Choose Partition for Creating FS

После нажатия на кнопку <OK>, программа radix-setup предложит выбрать тип файловой системы из списка, показанного на рис.13.

Select FS type
Fig.13. Select FS type

Далее будет необходимо задать метку раздела. Значение по умолчанию, если оно существует, соответствует предположению программы radix-setup о назначении раздела диска. Диалог, представленный на следующем рисунке, предназначен для задания метки раздела.

Set Volume Label
Fig.14. Set Volume Label

После показа информационного сообщения и, непосредственно создания файловой системы

Message about FS creation
Fig.15. Message about FS creation

пользователю будет предоставлена возможность задать точку монтирования новой файловой системы:

Set Mount Point
Fig.16. Set Mount Point

После того как все операции, связанные с текущим разделом диска, будут завершены, строка в списке разделов будет подсвечена так, как показано на рис.17.

Select Swap Partition
Fig.17. Select Swap Partition

При выборе раздела типа Linux swap, пользователю будет необходимо лишь подтвердить запрос на форматирование:

Create Swap FS
Fig.18. Create Swap FS

Для выхода из цикла создания файловых систем необходимо воспользоваться кнопкой <Continue> так, как показано на рис.19.

FS Creation Loop Break
Fig.19. FS Creation Loop Break

Interactive Installation

Если на вопрос диалога, показанного на рис.7, дать не утвердительный ответ, то программа radix-setup пойдет по пути стандартной инсталляции пакетов программ.

При выборе такого способа инсталляции программа radix-setup, в первую очередь, предложит создать необходимые разделы на диске (диалг, подобный тому, что показан на рис.10), затем предоставит возможность форматирования разделов и выбора точек монтирования так, как описано в параграфе Firmat Partitions.

Важно отметить, что перед тем как создавать разделы диска, необходимо уточнить размер корневой файловой системы, а также выяснить, надо ли создавать дополнительный загрузочный раздел, как, например, для устройства OMAP5 uEVM. Сделать это не трудно. Достаточно посмотреть на наличие и размеры образов файловых систем '$(HARDWARE).{fat32fs|ext4fs}', входящих в состав дистрибутива.

Итак, после создания и форматироания разделов диска, программа radix-setup создаст базовое дерево каталогов, путем инсталляции пакета init-devices

Init Devices Package
Fig.20. Init Devices Package

и, затем, предложит список пакетов для инсталляции:

Packages List
Fig.21. Packages List

Отказываться от инсталляции того или иного пакета, здесь, надо с большой осторожностью. Дело в том, что набор '$(HARDWARE).pkglist' создан не случайно и представляет собой монолитную систему с точки зрения межпакетных зависимостей. Поэтому прежде чем что-либо менять, лучше всего изучить зависимости пакетов друг от друга.

После подтверждения списка, на экран, последовательно, будут выводиться информационные сообщения о пакетах, устанавливаемых в целевую файловую систему. Пример такого сообщения показан на рис.22.

Package Info Example
Fig.22. Package Info Example

По завершении процесса инсталляции программа radix-setup перейдет к выполнению процедур настройки целевой системы.

Post Install Operations

Некоторые пакеты, после инсталляции, могут требовать дополнительной настройки. Рассматриваемые далее процедуры уже не относятся к процессу инсталляции. Программа radix-setup лишь выполняет скрипты, инсталлированные в составе пакетов. Самым простым примером подобных операций является программа установки аппаратного таймера и выбора временной зоны.

Hardware Clock

Пакет glibc-zoneinfo, в своем составе, содержит скрипт /sbin/timeconfig. Именно ему передается управление, программой radix-setup, по завершении инсталляции пакетов.

В первую очередь, пользователю предлагается выбрать шкалу отсчета времени для аппаратного таймера целевого устройства.

Hardware Clock
Fig.23. Hardware Clock

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

Затем скрипт /sbin/timeconfig предложит выбрать временную зону, для работы в которой, предназначено целевое устройство. Пример выбора зоны представлен на рис.24.

Europe Moscow
Fig.24. Europe Moscow

Разумеется, установку временной зоны можно будет повторить в любое время на уже работающей системе. Для этого достаточно обратиться к скрипту /sbin/timeconfig от имени суперпользователя.

Если в системе нет других настроечных скриптов, то программа radix-setup выдаст сообщение о завершении процесса инсталляции.

LILO Setup

Если для большинства, поддерживаемых нами, устройств в качестве загрузчика используется U-Boot, то для Intel-машин обычно используются загрузчики, которые полагаются на средства BIOS. К числу таких загрузчиков относится LILO (LInux LOader).

Итак, обнаружив в системе скрипт /sbin/liloconfig, программа radix-setup немедленно передаст управление ему и, пользователь сможет начать установку LILO.

Expert or Simple LILO Setup
Fig.25. Expert or Simple LILO Setup

Диалог, представленный на рис.25, дает возможность выбора числа вопросов, задаваемых пользователю, во время установки. Однако на данный момент времени процедуры типа Simple и Expert абсолютно одинаковы. Наверное процедура типа Expert будет усложнена, однако, даже в этом случае, мы будем рекомендовать пользователям именно это тип установки.

Первый вопрос, задаваемый пользователю, касается размера Frame Buffer-а. Современные машины имеют достаточно мощьные графические ускорители и, скорее всего данный вопрос относится к возможностям самого загрузчика. Мы рекомендуем подтвердить выбор, показанный на рис.26.

Frame Buffer Size
Fig.26. Frame Buffer Size

Следующий диалог (рис.27) позволяет задать дополнительные параметры ядру Linux. Если пользователь не уверен в необходимости задания параметров, то поле ввода лучше всего оставить пустым.

Optional Kernel Parameters
Fig.27. Optional Kernel Parameters

Далее последует вопрос об использовании кодировки UTF-8 для системной консоли.

Use UTF-8 Text Console
Fig.28. Use UTF-8 Text Console

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

Загрузчик LILO, помимо простого текстового интерфейса, предоставляет возможность отображения на экране простой картинки. Мы приготовили такое изображение и, если пользователь предпочитает иметь графический интерфейс загрузчика, то на следующий вопрос (рис.29) ему надо дать утвердительный ответ.

Boot Screen Type
Fig.29. Boot Screen Type

Когда ответы на все вопросы будут получены, скрипт /sbin/liloconfig предоставит возможность рассмотреть или отредактировать результирующий файл /etc/lilo.conf. На рис.30 представлено начало файла /etc/lilo.conf.

Edit LILO Config File
Fig.30. Edit LILO Config File

Здесь важно отметить, что на данном этапе пользователю не рекомендуется изменять значения пременных boot и root, о которых мы поговорим чуть позже.

Закончив процесс редактирования, пользовать должен сохранить результат воспользовавшись кнопкой <OK> так, как показано на следующем рисунке.

Save LILO Config File
Fig.31. Save LILO Config File

По окончании записи файла /etc/lilo.conf, скрипт /sbin/liloconfig приступит к установке загрузчика LILO. При этом на экран будет выведено сообщение, показанное на рис.32.

Installing LILO
Fig.32. Installing LILO

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

Дело в том, что когда диск будет подключен к целевой машине, значения пременных boot и root, в файле /etc/lilo.conf, окажутся не действительными. На рис.33 показано предупреждение о том, что для старта Intel-машины необходимо изменить значения переменных boot и root, но сделать это нужно на самой целевой машине.

LILO Final Messge
Fig.33. LILO Final Messge

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

Затем необходимо смонтировать корневую файловую систему, приготовленного диска, в любой каталог, перейти в него с помощью команды chroot, отредактировать файл etc/lilo.conf и выполнить команду /sbin/lilo.

Если предположить, что созданный нами диск, например, /dev/mmcblk0 будет подключен к целевой машине как устройство /dev/sda, то все необходимые действия можно описать следующим образом.

# mkdir -p /mnt/radix
# mount /dev/sda1 /mnt/radix
# chroot /mnt/radix
# vim etc/lilo.conf

Изменить значения переменных boot и root на следующие.

boot = /dev/sda

  . . .

  root = /dev/sda1

  . . .

Выполнить команду lilo и перезагрузить систему,

# lilo
# exit
# umount /mnt/radix
# reboot

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

Напомним здесь еще раз, что, как сама установка LILO, так и, описанные нами, нетривиальные действия по подключению загрузочного диска к целевому устройству, касаются только BIOS-машин с архитекткрой x86.

End of Installation

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

End of Installation
Fig.34. End of Radix Platform Installation

Теперь, подключив созданный диск или SD-карту к целевому устройству, можно осуществить первый старт системы Radix.pro.