2016-07-01 5 views
0

Как видно из названия, я пытаюсь использовать rootfs для armhf, чтобы создать минимальное изображение Ubuntu для моей малины-Pi2.Как добавить ядро ​​linux и загрузчик к корневым файлам Ubuntu 14.0.4 для Raspberry Pi2?

Мне нужно добавить ядро ​​и загрузчик в микс, и, поскольку я не являюсь профессионалом в этой теме, меня полностью смущают все разные руководства для компиляции ядра/U-boot. Не удалось найти что-либо, чтобы охватить весь процесс и получить RPi для загрузки.

Есть ли кто-нибудь, кто может помочь мне с процедурой пощечины ядра и загрузчика на корневых серверах Ubuntu (core) для RPi2 и создать загрузочную SD-карту (с нуля)?

PS: Я хотел бы пошаговое руководство для всего процесса, чтобы я (и любой другой, как я) мог применять их локально и получать Pi2 и работать с нуля.

У меня есть Ubuntu 14.0.4 ноутбук, как мой хост-машины для кросс-компиляции и копирования файлов и т.д.

Я в отчаянии, спасибо!

ответ

0

Почему бы не использовать официальные версии here? Общая процедура наличия SD-карты состоит в том, чтобы иметь два раздела для SD-карты. Первый раздел будет FAT32, в котором может находиться ваш загрузчик, кадр дерева устройства и образ ядра и любой другой файл. RPI требует, чтобы в первом разделе было еще несколько двоичных blob, если я правильно помню. Второй будет разделом ext, в котором вам нужно поставить rootfs. Возьмите любое доступное изображение дистрибутива, напишите его на SD-карту и замените второй раздел rootfs любыми привилегиями rootfs, которые вам понравились. Также возможно, что ядро ​​и блок blob дерева находятся на/boot второго раздела вместо первого.

Я также просто быстро проверил. У меня была SD-карта для RPi3, на которой был Raspbian. Я заменил второй раздел, у которого были rootfs из Raspbian с помощью rootfs на основе Ubuntu. Он загружается прекрасно, но глохнет на

* Starting Mount filesystems on boot[ OK ] 
* Starting Populate /dev filesystem[ OK ] 
* Stopping Populate /dev filesystem[ OK ] 
* Starting Populate and link to /run filesystem[ OK ] 
* Stopping Populate and link to /run filesystem[ OK ] 
* Stopping Track if upstart is running in a container[ OK ] 
* Starting Initialize or finalize resolvconf[ OK ] 
* Starting set console keymap[ OK ] 
* Starting Signal sysvinit that virtual filesystems are mounted[ OK ] 
* Starting Signal sysvinit that virtual filesystems are mounted[ OK ] 
* Starting Bridge udev events into upstart[ OK ] 
* Starting device node and kernel event manager[ OK ] 
* Starting Signal sysvinit that remote filesystems are mounted[ OK ] 
* Stopping set console keymap[ OK ] 
* Starting load modules from /etc/modules[ OK ] 
* Starting cold plug devices[ OK ] 
* Starting log initial device creation[ OK ] 
* Stopping load modules from /etc/modules[ OK ] 
* Starting set console font[ OK ] 
* Stopping set console font[ OK ] 
* Starting userspace bootsplash[ OK ] 
* Starting Send an event to indicate plymouth is up[ OK ] 
* Stopping userspace bootsplash[ OK ] 
* Stopping Send an event to indicate plymouth is up[ OK ] 
* Stopping cold plug devices[ OK ] 
* Stopping log initial device creation[ OK ] 
* Starting configure network device security[ OK ] 
* Starting Mount network filesystems[ OK ] 
* Starting configure network device security[ OK ] 
* Stopping Mount network filesystems[ OK ] 
* Starting configure network device[ OK ] 
* Starting configure network device[ OK ] 
* Starting Bridge socket events into upstart[ OK ] 
The disk drive for/is not ready yet or not present. 
keys:Continue to wait, or Press S to skip mounting or M for manual recovery 

Я не исследовал причину, но я считаю, что это связано с/и т.д./Fstab.

[[email protected] ~]# cat /etc/fstab 
# 
# /etc/fstab: static file system information 
# 
# <file system> <dir> <type> <options>  <dump> <pass> 
/dev/mmcblk0p1 /boot vfat defaults  0  0 

Это из арки. Я не заметил Убунту, но это было неправильно.

Замена rootfs на rootfs на основе ARM на основе ArchLinux, и, похоже, он отлично загружается. Обратите внимание, что я взял SD-карту на основе Raspbian и заменил rootfs на Arch.

[ 3.743064] systemd-journald[85]: Received request to flush runtime journal from PID 1 
[ 4.791472] smsc95xx 1-1.1:1.0 eth0: hardware isn't capable of remote wakeup 

Arch Linux 4.1.18-v7+ (ttyS0) 

alarmpi login: 
Arch Linux 4.1.18-v7+ (ttyS0) 

alarmpi login: root 
Password: 
Welcome to Arch Linux ARM 

    Website: http://archlinuxarm.org 
     Forum: http://archlinuxarm.org/forum 
     IRC: #archlinux-arm on irc.Freenode.net 
[ 15.258407] random: nonblocking pool is initialized 

Надеюсь, это даст вам достаточно общей идеи о том, как подойти к этому.