После новости о выходе ARM-хромбука за $249 у некоторых возник вопрос: можно ли запустить на нём какой-нибудь стандартный дистрибутив Linux? Это логичный вопрос, ведь ChromeOS и так работает на ядре Linux.

Один из разработчиков Chromebook Олоф Йоханссон (Olof Johansson) сразу сказал, что это возможно. Сейчас он опубликовал подробную инструкцию, как запустить Ubuntu с SD-карты на «хромбуке».

На устройстве есть скрытый режим Developer Mode, который можно вызвать из Recovery Mode. Режим Recovery Mode вызывается нажатием кнопки Power, удерживая при этом Esc+Refresh. После этого можно войти в Dev-mode нажатием Ctrl+D и подтвердив выбор.

Олоф Йоханссон рассказал, как нужно отформатировать SD-карту с Ubuntu, чтобы система загрузилась на ARM-компьютере.

Сначала создаётся пустая таблица разделов:

# sudo parted /dev/sdd
(parted) mktable gpt
(parted) quit

Затем она вручную редактируется в соответствии со спецификациями Chrome OS, в синтаксисе gdisk это делается так:

sudo gdisk /dev/sdd
n
1
<enter>
+16M
7f00 (ChromeOS kernel)

n
2
<enter>
+16M
7f00

n
3
<enter>
<enter>
<enter>

Всего создаётся три раздела. Два раздела для ядра, чтобы легче было вернуться к исходному ядру, в случае чего. На третий ставится рутовая файловая система.

sudo mkfs.ext4 /dev/sdd3

mount /dev/sdd3
sudo mount /dev/sdd3 /mnt
cd /mnt
sudo tar xvpf /work/rootstock/armel.tar.gz

На SD-карту копируется содержимое /lib/modules и /lib/firmware, а затем ядро Linux с Chrome OS.

Переупаковка блоба:

cd /tmp
echo "console=tty1 debug verbose root=/dev/mmcblk1p3 rootwait rw" >
/tmp/config
vbutil_kernel --pack /tmp/newkern --keyblock /usr/share/vboot/devkeys/kernel.keyblock --version 1 --signprivate /usr/share/vboot/devkeys/kernel_data_key.vbprivk --config=/tmp/config --vmlinuz /boot/vmlinuz-3.4.0 --arch arm

SD-карта вставляется в хромбук — и записывается ядро на два раздела.

dd if=/dev/newkern of=/dev/mmcblk1p1
dd if=/dev/newkern of=/dev/mmcblk1p2

После этого в Chromebook нужно разрешить загрузку с USB (команда crossystem dev_boot_usb=1 в Dev-mode), в этом режиме он загружается и с SD-карты.

Последний шаг — пометить разделы на SD-карте как загрузочные.

cgpt -i 1 -S 1 -T 5 -P 10 -l KERN-A /dev/mmcblk1
cgpt -i 2 -S 1 -T 5 -P 5 -l KERN-B /dev/mmcblk1



Оставить мнение