Macbruins’s Blog
Update 12/24/2011: initramfs.img for Backfire 10.03.1 final is now available.
Update 11/16/2011: If you want to a larger root partition for your installation (The official one is about 50 MB), see Expanding x86 OpenWrt Root Partition
Update 11/15/2011: initramfs.img for Backfire 10.03.1-rc6 is available for download on SkyDrive.
Update 09/05/2011: If your OpenWRT PC’s BIOS does not support USB boot, see Booting From USB Without BIOS Support.
In this blog I will cover steps to create an x86 OpenWRT live USB on a Windows 7 PC. The steps are fairly simple. Just downloading files, move them around, and type a few commands. No Linux experience necessary. They can be easily adapted to Windows Vista or Windows XP if you have an older PC.
With a little more work, the technique discussed here can be adapted to create a bootable-x86-ISO/live-USB combination, for PCs that can’t boot from USB. That is something in my pipeline.
And of course Live USB can be created on a Linux system, but I don’t plan to write up the instructions. Leave a comment if you need help with that.
Finally, the theory of operation comes after the instructions. I think this live USB concept is a big improvement over my livecd idea (see Creating OpenWrt x86 Live CD with USB Support). I plan to keep up with newer OpenWRT releases.
Выбор прошивки
Для эмуляции нужна прошивка для платформы x86, желательно с файловой системой Ext2 или Ext4.
Хотя официальная вики советует ставить версию attitude_adjustment, с ней у меня возникли проблемы: она отказалась запускаться, сообщая о kernel panic. Так что проще остановиться на одной из двух оставшихся. Выбрав прошивку, посмотрите в вариантах для загрузки готовый .vdi файл.
Ссылка для версии backfire 10.03.1: http://downloads.openwrt.org/backfire/10.03.1/x86_generic/openwrt-x86-generic-combined-ext2.vdi.
Если интересующая вас прошивка доступна только как raw образ (img.gz, image.gz, bin) будет необходимо воспользоваться входящим в комплект VirtualBox конвертером. Под Windows для этого сохраните в папке VirtualBox (могут понадобиться права администратора) следующий текстовой файл и задайте ему расширение .bat или .cmd:
После чего распакуйте скачанный образ прошивки и перетащите его на данный скрипт. Полученный .vdi образ можно подключать к виртуальной машине.
Download OpenWRT image onto the Debian USB
Now you should be logged in either via ssh or through the serial cable as shown above. Make sure you have the WAN cable connected, so you have a connection to the internet.
You can now download the latest OpenWRT image from here http://archive.openwrt.org/releases/. Make sure to download x86 / 64 / combined-ext4.img.gz file. We need an image called «combined-ext4.img.gz». Make sure you get the ext4 image; otherwise, you won’t be able to resize the partition and use the entire disk space.
At the time of writing, the latest image is 19.07.5, so my wget command looks like shown below.
This should go relatively quickly. Once it’s downloaded, unpack it with
This should produce a file named «openwrt-19.07.5-x86-64-combined-ext4.img» (without the .gz extension).
Installing OpenWrt¶
Step 1 — Enabling CSM Mode in ODYSSEY — X86J4105¶
Plug in your bootable USB, Monitor and keyboard to ODYSSEY — X86J4105, and power up. When booting up, keep pressing DEL key to enter the setup Screen. Navigate to Advanced -> CSM Support and press Enter to enable it.
Step 2 — Install the OS¶
Reboot your ODYSSEY — X86J4105 and keep pressing F7 to enter the boot manager screen. Select the bootable USB and press Enter.
Step 3 — Installing process¶
Select the OpenWrt and press Enter. Follow through the installing instructions on the screen.
When it’s done, press Enter and you should see the screen as follow:
Now your OpenWrt is installed and ready to be used!
Step 4:
Gargoyle (offshoot of Openwrt) running in as an x86 using Qemu.
Exerpt from my blog:
Update openwrt PC (x86).
More and more of the plastic routers you get from a retailer are limiting you from installling a third party firmware to make the unit more valuable. So it is nice you can put an old pc back to work and install the same kind of firmware you would put on the store bought routers. Also with the pc you can swap the nic cards for better nics without getting a whole new system.
Pulled out of the closet the pc I was using as a router and found that a few things have changed. I just went ahead and installed the latest openwrt kamikaze image on the system. What does the system have? Intel PII 266 mhz with 192 meg ram. The openwrt hard drive is only 2 gig. Thinking about using another case. The system actually has two drives. one with a minimal Debian linux to be able to get the latest image or dd (or install) to the openwrt drive. The Debian linux drive is usally left unconnected.
First thing I did was to change the dead motherboard battery. Second thing I did was change the password from the console.
There have been a few changes and a few quirks. When I cranked up the system it did not seem to see the wan (internet). so I had to do a couple of things.
# Copyright (C) 2006 OpenWrt.org
config interface loopback
option ifname lo
option proto static
option ipaddr 127.0.0.1
option netmask 255.0.0.0
config interface lan
option ifname eth0
option type bridge
option proto static
option ipaddr 192.168.6.1
option netmask 255.255.255.0
config interface wan
option ifname eth1
option proto dhcp
First I had to add the wan interface to the /etc/config/network file. Those are the last three lines. then I had to bring up the interface with: (ifup wan)
I also changed the default ipaddress of the lan from 192.168.1.1 to 192.168.6.1 so as to not interfere with my local network.
local network 192.168.1.x) > router > private network (192.168.6.x)
Then there were changes to some of the commands. You used to use ipkg, so now to update the system you would use (opkg replaced ipkg):
You can ssh root@openwrtbox and do everything remotey from the command line.
So far so good. Then I tried to access a web interface remotely. Did not work, So I had to install a web interface to the system. There are actually three to choose from. I chose Luci or the first on the list suggested in the install notes. To do that you have to add the repository (where to get the files from). So you add that repository to the /etc/opkg.conf file. In this case it was just one line or the last line in the file:
src/gz snapshots http://downloads.openwrt.org/kamikaze/8.09.2/x86/packages
dest root /
dest ram /tmp
lists_dir ext /var/opkg-lists
option overlay_root /jffs
src luci http://downloads.openwrt.org/kamikaze/8.09.2/x86/packages
Now you let the system know the file has changed, so again you do:
The you need to install the web interface. There are quite a few modules you can install, but I just did the basic interface. You can add more later.
# opkg install luci-web
At this point it would not hurt to do a reboot. You should then be able to see the router’s web page.
Cool! Almost forgot. If you have more than one pc to connect to the router, you will need to get a switch.
Note: Some people say that using a pc for a router has much better throughput that the plastic store bought routers. Your mileage may very.
Управление пакетами
Управление дополнительным программным обеспечением в OpenWrt может осуществляться как через веб-интерфейс, так и средствами консольной утилиты opkg. В LuCI администрирование пакетов выполняется на вкладке Software раздела System (рис. 4). Здесь отображается информация о свободном пространстве оперативной памяти, списки установленных пакетов и доступных пакетов, форма поиска и настройки пакетного менеджера. Для загрузки пакетов из удаленного репозитория требуется подключение к Интернету.
Рис. 4. Управление ПО OpenWrt через интерфейс LuCI
Консольная утилита opkg представляет собой легковесный пакетный менеджер, позволяющий использовать как удаленные, так и локальные хранилища пакетов и отслеживающий зависимости между пакетами. Конфигурационный файл менеджера пакетов opkg.conf расположен в каталоге /etc. Следует отметить, что opkg может работать как с архитектурно-независимыми пакетами (по умолчанию), так и со специфичным для данной архитектуры ПО (следует указать опцию «arch» в конфигурационном файле). Также пакетный менеджер поддерживает доступ в Интернет через прокси-сервер.
Что касается списка дополнительного ПО, то он достаточно обширный и включает около 2000 наименований. Кроме системных и сетевых утилит, модулей ядра и базовых средств разработки, доступны HTTP-серверы (Apache, nginx), средства телефонии (Asterisk), DNS-серверы (bind, djbdns, tinydns), средства организации беспроводных hot-спотов (ChilliSpot), поддержки принтера (CUPS), звуковой подсистемы и USB, DHCP-серверы (Dibbler, dhcpd), разнообразные сетевые утилиты (nmap, nagios, snort, tcpdump), средства программирования (Perl, PHP, Lua, Python, Ruby), прокси-сервер Squid и многие другие.
Требования к роутеру для установки Openwrt
Openwrt – это не простая прошивка, а целая операционная система для маршрутизаторов, созданная на базе Linux. Если вы решили перепрошить свой роутер и установить данную ОС, то проверьте, соответствует ли ваше устройство следующим требованиям:
- соответствие архитектурам, которые указаны на официальном сайте;
- минимум 4 Мб флеш-памяти (без возможности установить GUI (LuCI));
- от 32 Мб ОЗУ.
Перед тем как экспериментировать с сетевым устройством, рекомендуется усвоить – перепрошивка оборудования часто лишает пользователя заводской гарантии. Кроме того, вероятно, интерфейс новой оболочки будет несколько непривычным по сравнению с предыдущим, и это вызовет некоторые затруднения в настройке параметров.
Установка
OpenWrt не может быть установлена настолько просто и безопасно, как любой другой дистрибутив GNU/Linux. Установка на Flash-чип, впаянный в PCB карту, к сожалению, несколько более затруднительна, чем установка с диска DVD на жесткий диск. После того, как вы выбрали ваш метод получения прошивки (по-английски firmware image) уникальной для вашего устройства и иногда даже модели и версии, вам придется перезаписать оригинальную прошивку на чипе flash-памяти. На этой странице вы найдете описание того, как сделать это.
По сравнению со сборкой дистрибутива, установка файла с прошивкой OpenWrt иногда может быть самым непростым во всей процедуре, а иногда занимает пару минут. В зависимости от конкретной модели вашего устройства, вы можете ограничиться простой заливкой вашей новой прошивки через web-интерфейс; можете вручную заливать необходимую прошивку через tftp; или, если ваши дела совсем плохи, то вплоть до изменения структуры вашего устройства и подключения через JTAG доступ. Но в целом, основным вариантом установки является установка через вшитый загрузчик (Redboot, Uboot и проч.) или простое копирование на CompactFlash-карточку: все зависит от конкретной модели вашего устройства.
Существует четыре способа установки OpenWrt на ваше устройство:
1. Из-под оригинальной прошивки
Откройте в вашем браузере Web-интерфейс оригинальной прошивки и установите файл OpenWrt через опцию «Firmware Upgrade». Готово. Как правило, нужный файл прошивки OpenWRT содержит в названии подстроку «-factory», например, openwrt-ar71xx-generic-wndr3800-squashfs-factory.img
Замечание: Иногда оригинальная прошивка проверяет, какой файл ей предлагают для «обновления». В случае, если заводская прошивка решит, что предлагаемый ей файл не является приемлемым, вам не удастся установить OpenWrt одним кликом. Не отчаивайтесь, попробуйте один из оставшихся трех путей.
2. Через автозагрузчик и Ethernet порт
Чтобы провернуть такой вариант, а именно принудительно залить прошивку, можно воспользоваться тем, что большинство автозагрузчиков содержат встроенный функционал для таких целей. Некоторые содержат TFTP-client, другие — TFTP-server, третьи FTP-client, а некоторые даже FTP-server. Вам необходимо выяснить:
IP адрес автозагрузчика (это не обязательно тот же IP адрес, который устройство имеет по умолчанию для доступа через web-интерфейс);
- возможно, потребуется username и login (для доступа не к web-интерфейсу, а именно к автозагрузчику);
- важно также узнать время после включения, в течение которого ваше устройство принимает входящие подключения к автозагрузчику. Это может быть, например, время в 2 секунды, начиная с 3-ой секунды после включения устройства в сеть.
установите, по необходимости, недостающие программы на ваш PC для доступа к роутеру (так, если автозагрузчик содержит FTP-server, вам нужен FTP-client);