OpenWrt x86: Обновление прошивки

Обновление OpenWrt

Процесс обновления прошивки на платформе x86 кардинально отличается от обновления на большинстве встраиваемых (embedded) устройств. На x86 система устанавливается на один из стандартных разделов диска (например, /dev/sda1, /dev/sda2 и т.д.), а не на отдельный чип flash-памяти. Загрузчик (GRUB, syslinux и др.) просто загружает ядро и указывает на корневой раздел.

По сути, “прошивка” — это просто набор файлов на стандартном разделе ext4. Это означает, что для обновления можно использовать либо полный образ диска (disk image), либо стандартный системный пакетный менеджер (opkg).

Метод 1: Использование полного образа (Disk Image)

Этот метод рекомендуется, если вы хотите получить чистую систему или если ваша текущая установка сильно изменена и вы хотите начать с нуля.

  1. Скачайте последний образ для x86 (combined-ext4.img.gz) с официального сайта OpenWrt.
  2. Распакуйте архив, чтобы получить файл .img.
  3. Скопируйте образ на устройство с OpenWrt (например, с помощью scp).
  4. Важно: Определите, на каком разделе установлена ваша текущая система, командой: mount | grep -E '(/boot|/)' Чаще всего это /dev/sda1, /dev/sda2 или /dev/sda3.
  5. Запишите новый образ на целевой раздел с помощью утилиты dd. ВНИМАНИЕ: Убедитесь, что вы указываете правильный раздел! Неправильное использование dd может привести к полной потере данных. Пример для раздела /dev/sda2: dd if=openwrt-xxxx-combined-ext4.img of=/dev/sda2 bs=2M conv=fsync if= – это ваш входной файл образа. of= – это целевой раздел диска.
  6. После успешной записи перезагрузите систему: reboot

Метод 2: Обновление через пакетный менеджер (opkg)

Этот метод похож на обновление любого дистрибутива Linux. Он позволяет обновить все установленные пакеты, включая ядро и базовую систему, без перезаписи всего раздела.

  1. Обновите списки пакетов: opkg update
  2. Обновите все установленные пакеты до последних версий: opkg list-upgradable | cut -f 1 -d ' ' | xargs opkg upgrade Или, если у вас установлен bash: opkg upgrade $(opkg list-upgradable | awk '{print $1}')
  3. Этот процесс обновит ядро (kernel) и все модули ядра (kmod-*).
  4. После завершения обновления обязательно перезагрузите систему, чтобы новое ядро и все обновленные модули загрузились корректно: reboot

Важные примечания

  • Резервное копирование конфигураций: Перед любым обновлением обязательно создайте резервную копию важных файлов конфигурации (из директории /etc/). Для этого можно использовать встроенный скрипт sysupgrade или скопировать файлы вручную.
  • Совместимость: При обновлении с очень старой версии OpenWrt рекомендуется использовать метод с полным образом, чтобы избежать потенциальных проблем с совместимостью пакетов и конфигураций.
  • Конфигурация загрузчика: Оба метода не изменяют конфигурацию загрузчика (GRUB). Если в новой версии изменилось имя файла ядра или параметры загрузки, вам может потребоваться вручную отредактировать конфиг загрузчика (например, /boot/grub/grub.cfg).

Официальная документация (на английском): OpenWrt x86 Installation Guide

Оставьте комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

 
Чат

Здравствуйте. У вас возникли вопросы? Мы с удовольствием ответим!