Установка на sheevaplug
Получение образа
- скачать репозиторий http://git.altlinux.org/people/silicium/packages/mkimage-profile-armrootfs.git
- прочитать README и сделать по нему. Для работы mkimage нужен правильно настроенный hasher под arm, подробнее о нем можно прочитать здесь Ports/arm/BuildHowto
- в .work/.out/armroot.tar появиться образ системы
Загрузка с USB flash
Подготовка
ОСТОРОЖНО все данные на флешке будут уничтожены!
- берем любую флешку
- создаем на ней fdiskом 1 раздел типа 83 (linux). Можно создать несколько и использовать по своему усмотрению, но дальше мы будем работать только с этим первым разделом
- форматируем её(вместо sdd' название устройства на вашей машине)
mkfs -t ext2 /dev/sdd1
Можно в принципе и ext3 но не ext4
- монтируем
- заходим туда и распаковываем tar архив
Загрузка
- Вставляем флешку в sheevaplug
- Подключаем USB консоль
- включаем
- запускаем minicom. устройство скорее всего /dev/ttyUSB0
- Видим примерно такое
U-Boot 1.1.4 (Mar 19 2009 - 16:06:59) Marvell version: 3.4.16 U-Boot code: 00600000 -> 0067FFF0 BSS: -> 006CEE80 Soc: 88F6281 A0 (DDR2) CPU running @ 1200Mhz L2 running @ 400Mhz SysClock = 400Mhz , TClock = 200Mhz
- Нажимаем любую клавишку чтобы не началась загрузка по умолчанию
- Появляется консоль
MARVEL>>>
- Для загрузки пишем там:
usb start ext2load usb 0:1 800000 /boot/uImage-2.6.34-sheeva-alt1 set bootargs console=ttyS0,115200 root=/dev/sda1 rootdelay=10 rootwait=1 ro bootm 800000
После каждой из этих команд должны быть ответы. После первой должно написать что 1 storge device found. После второй появиться много точек. После третий ничего. После четвертой начинает грузиться ядро. hint: по флешке можно полазить ext2ls usb 0:1 <путь>
- Должна начаться загрузка ядра и системы
- root там без пароля
Установка системы
Забекапить!
подключаем имеющиеся фс, скорее всего
mkdir /mnt/src mount /dev/mtdblock2 /mnt/src
делаем бекап
cd /mnt/src/ mkdir /backup/ tar czf /backup/orig.tar.gz .
Создаем раздел ubifs
отмонтируем
umount /mnt/src
Проверяем расположение разделов
cat /proc/mtd dev: size erasesize name mtd0: 00100000 00020000 "u-boot" mtd1: 00400000 00020000 "uImage" mtd2: 1fb00000 00020000 "root"
Нам нужен mtd2.
Cобственно процесс создания раздела
ubiformat /dev/mtd2 ubiattach /dev/ubi_ctrl -m 2 ubimkvol /dev/ubi0 -m -N root
В принципе можно сделать несколько разделов по вкусу.
Помните что своп на mtd не самая лучшая идея
Заливаем файлы
Для того чтобы не залить содержимое proc dev и прочего делаем
mount --bind / /mnt/src
Создаем и подключаем ubifs
mkfs.ubifs /dev/ubi0_0 mkdir /mnt/dst mount -t ubifs /dev/ubi0_0 /mnt/dst
Заливаем систему
rsync -avP --exclude backup /mnt/src /mnt/dst
Правим конфиги
Правим /mnt/dst/etc/fstab
/dev/ubi0_0 / ubifs defaults 0 0
Ставим ядро
Поскольку ядро ставиться в специальную область, для этого нужно сделать дополнительные действия
flash_eraseall /dev/mtd1 nandwrite -map /dev/mtd1 /boot/uImage-2.6.34-sheeva-alt1
erase надо делать всегда, потому что это nand и запись переводит только из 1 в 0, но не наоборот. И если там что то было то образ будет поврежден.
Правим опции загрузки
Перезагружаемся. Заходим в консоль загрузчика
set bootargs console=ttyS0,115200 rootfstype=ubifs ubi.mtd=2 root=ubi:root fastboot save
Ещё раз перезагружаемся и наблюдаем за загрузкой.
reset
Конфигурирование
- поправить /etc/net
- задать hostname в /etc/sysconfig/network
- поправить /etc/resolv.conf
- настроить апт на репозитарий
rpm file:/sisyphus arm classic
Здесь /sisyphus это подмонтированая по NFS копия сизифа. Можно использовать классический путь с FTP