OpenWrt и x86.

Сборка openWrt для персонального компьютера.

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

OpenWrt постоянно эволюционирует, и те пошаговые инструкции, которые работают сегодня, могут не работать через некоторое время, так, видимо, и случается с предыдущими how-to, которые размещены на этом сайте. Тем не менее, «make menuconfig» остается неизменным :)). Поэтому выполним его и произведем следующую конфигурацию.
Target System:
<*> x86

Utilities:
filemanager:
<*> mc

Выполним make.

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

1) Итак, для установки на x86 нужно выделить раздел на жестком диске с помощью какого-нибудь Acronis Partition Magic или любой другой подходящей для этой цели утилиты.

2) Монтируем раздел, например, вот так:

mount /dev/sda6 /media/openwrt/

3) Копируем файловую систему openwrt из директории /openwrtX86/bin/x86. Также создаем там директорию /boot и копируем в неё образ ядра «openwrt-x86-generic-vmlinuz» вот отсюда /openwrtX86/bin/x86/.

4) Отмонтируем раздел, например, вот так:

umount /media/openwrt

Установка на этом завершена, осталось внести пункт для загрузки в меню grub. Поскольку у меня используется burg, то осталось внести пункт в меню загрузки burg.

Делается это тоже достаточно просто. Иногда сам себе говорю «спасибо», что не поленился и расписал на сайте, что, где и как делается, поскольку сегодня это помнишь, а завтра уже нет. То же самое касается и этого how-to, сегодня помню про burg, завтра - нет, поэтому по шагам про настройку burg :
1) Внести изменения в конфигурационный файл /etc/burg.d/40_custom , чтобы он имел следующий вид:

#!/bin/sh

exec tail -n +3 $0

# This file provides an easy way to add custom menu entries. Simply type the

# menu entries you want to add after this comment. Be careful not to change

# the 'exec tail' line above.

menuentry 'OpenWrt' --class gnu-linux --class gnu --class os --group group_main {

insmod ext3

set root='(hd0,6)'

echo 'Loading OpenWrt kernel ...'

linux /boot/openwrt-x86-generic-vmlinuz root=/dev/sda6

}

2) Обновить конфигурацию burg, выполнив следующую команду:

sudo update-burg

Текущая конфигурация burg находится в файле /boot/burg/burg.cfg, изменения в этот файл вносить нельзя, что и написано в самом верху. Все изменения вносятся через процедуру
sudo update-burg

для удаления ненужных строк в меню burg:
1)uname -r
2) через synaptic удалить пункты «linux-image-» неиспользуемых версий.
3) sudo update-burg

Теперь можно перезагрузить.
Меню burg будет выглядеть примерно так. Как-то даже непривычно видеть там слово «openWrt» :))

Очень полезно при конфигурации openWrt добавить пакет c gcc. Тогда получим полноценную машину для программирования.
Для добавления gcc в openWrt нужно на этапе конфигурации отметить:
Global build settings:
Binary stripping method (none)
Development:
<*> gcc

Способ сборки и установки openWrt на персональный компьютер, описанный выше, наверное, полезен при отладке каких-то аппаратных драйверов или программного обеспечения. В целом, он несложен, но гораздо проще и быстрее запустить openWrt на виртуальной машине типа «VMware Player» или «VM VirtualBox».

Для получения образов openWrt для «VMware Player» и «VM VirtualBox» нужно на этапе конфигурации отметить:
Target Images:
<*> Build VirtualBox image files (VDI)
<*> Build VMware image files (VMDK)