OpenEmbedded/Загрузка b4 с новой FS
Материал из b4wiki
Содержание |
Загрузка B4 c новой FS
И так, мы установили OpenEmbedded, настроили его под B4, cобрали rootfs. Чтобы ее загрузить нам не хватает 3х вещей:
- загрузчика, способного грузиться с CF
- начальной файловой системы, с которой будут загружены все необходимые модули, чтобы ядро смогло подмонтировать CF
- СF c ядром Linux, образом начальной загрузки и rootfs
Bootldr
Выкачиваем из svn bootloader:
svn co svn://srv/b4/branch/bootldr.yl bootldr
Cобираем его под вторую ревизию платы (загрузка с CF работает только на второй ревизии) и прошиваем.
Initramfs
при помощи BitBake собираем пакет initramfs-b4-image. Готовый образ initramfs будет лежать тамже где и rootfs - /home/user/oe/build/tmp/deploy/images/
Bootable CF
Берем обычный CF и делим его на два раздела: 1-ый раздел FAT-16 - 16мб будет вполне достаточно, 2-ой раздел ext3 - все остальное место.
Монтируем первый раздел (допустим в /media). Создаем на нем папку boot, копируем туда ядро, образ начальной загрузки и файл params (из /home/user/oe/b4/config/).
cp build/tmp/deploy/images/initramfs-b4-image-b4.cpio.gz /media/boot/initrd cp build/tmp/deploy/images/zImage-b4.bin /media/boot/zImage cp b4/config/params /media/boot/params
Имена должны быть именно такими! Отмонтируем первый раздел.
Монтируем второй раздел (опять в /media). Из под fakeroot разворачиваем в /media/ архив с файловой системой. Отмонтируем второй раздел.
Загрузка
Загрузочная CF готова. Вставляем CF в B4, цепляем RS232, включаем и смотрим. Сейчас там есть несколько ошибок с udev и initscripts, нет поддержки micrel, но загрузиться и залогиниться можно. При первой загрузке ipkg будет запускать postinst всех установленных пакетов. Будет не быстро. Когда b4 загрузится, надо сделать sync и перезагрузить. После второй загрузки будут загружены все необходимые модули.
Из-за отставания модулей, которые собираются BitBake от транка сейчас не работает детектирование карт. Т.е. из связи с миром - только com-port.
