Как изменить прошивку openwrt

Upgrading OpenWrt firmware using CLI :!: For experienced users only! * This HOWTO will upgrade an existing OpenWrt firmware to a new version from the SSH command line. * A lot of information in this wiki page duplicates content of generic OpenWrt OS upgrade procedure. * Non-experienced users are strongly advised to

:!: For experienced users only!

Follow Backup and restore, or skip this section if you do not want to preserve existing configuration.

Download and verify the OpenWrt firmware upgrade image

Download and use only OpenWrt firmware images ending in “-sysupgrade.bin” for command line upgrades.

For x86 systems there is no “sysupgrade” image, just be sure the new firmware image has the same family of filesystem as your old one.

:!: Note: upgrade files must be placed in /tmp, as the sysupgrade procedure unmounts flash storage during the upgrade process. If the upgrade file is not in /tmp, sysupgrade will NOT perform any upgrade and only reboot the system.

Download the desired upgrade file to your OpenWrt’s /tmp directory and verify firmware checksum. /tmp directory is stored in the device RAM:

  1. Check free memory is available: Run free. Proceed, if “free Mem” is the size of your firmware file + some extra mem (at least twice the size of your firmware file is perfect).

  2. Set the following variables to the download address of your OpenWrt firmware file (you must customize the URL!). You’ll find a link to the file “sha256sums” in the Supplementary Files section of the download page for the architecture of your router, beneath the Image Files section:

  3. DOWNLOAD_LINK="http://URLOFFIRMWAREBIN"; SHA256SUMS="http://URLOFSHA256"
  4. Download and check the firmware checksum with:

    cd /tmp;wget $DOWNLOAD_LINK;wget $SHA256SUMS;sha256sum -c sha256sums 2>/dev/null|grep OK
  5. In the screen output, look for the correct checksum verification:

    FILE_NAME: OK
  6. Do not continue, if the checksum verification mismatches!

Troubleshooting:

Command-line instructions

OpenWrt provides sysupgrade utility for firmware upgrade procedure.

Verify firmware image checksum.
Verify the router has enough free RAM.
Upload the firmware from local PC.
Flash the firmware.

# Check the free RAM 
free
 
# Upload firmware
scp firmware_image.bin root@openwrt.lan:/tmp
 
# Flash firmware
sysupgrade -v /tmp/firmware_image.bin

Troubleshooting:

If sysupgrade is not available.

# Flash firmware
mtd -r write /tmp/firmware_image.bin firmware
Saving config files...
etc/config/dhcp
etc/config/dropbear
etc/config/firewall
etc/config/luci
etc/config/network
etc/config/snmpd
etc/config/system
etc/config/ubootenv
etc/config/ucitrack
etc/config/uhttpd
etc/config/wireless
etc/dropbear/authorized_keys
etc/dropbear/dropbear_dss_host_key
etc/dropbear/dropbear_rsa_host_key
etc/firewall.user
etc/group
etc/hosts
etc/inittab
etc/passwd
etc/profile
etc/rc.local
etc/shadow
etc/shells
etc/sudoers
etc/sudoers.d/custom
etc/sysctl.conf
etc/sysupgrade.conf
killall: watchdog: no process killed
Sending TERM to remaining processes ... ubusd askfirst logd logread netifd odhcpd snmpd uhttpd ntpd dnsmasq
Sending KILL to remaining processes ... askfirst
Switching to ramdisk...
Performing system upgrade...
Unlocking firmware ...

Writing from <stdin> to firmware ...  [w]
Appending jffs2 data from /tmp/sysupgrade.tgz to firmware...TRX header not found
Error fixing up TRX header
Upgrade completed
Rebooting system...

Note: The “TRX header not found” and “Error fixing up TRX header” errors are not a problem as per OpenWrt developer jow’s post at https://dev.openwrt.org/ticket/8623

Troubleshooting

  1. The firmware file is now in /tmp, so you can start the flashing process

  2. Preferably have an assistant physically present at the location of the device, if you upgrade it from remote (as some devices may require a hard reset after the update)

  3. Execute the following command to upgrade:

    sysupgrade -v /tmp/firmware_image.bin
  4. You can add the `-n` option if you DO NOT want to preserve any old configuration files and configure upgraded device from clean state (network/system settings will be lost as well)

  5. While the new firmware gets flashed, an output similar to the following will be shown:

    Saving config files...
    etc/config/dhcp
    ...
    etc/config/wireless
    etc/dropbear/authorized_keys
    ...
    etc/sysupgrade.conf
    killall: watchdog: no process killed
    Sending TERM to remaining processes ... ubusd askfirst logd logread netifd odhcpd snmpd uhttpd ntpd dnsmasq
    Sending KILL to remaining processes ... askfirst
    Switching to ramdisk...
    Performing system upgrade...
    Unlocking firmware ...
    Writing from <stdin> to firmware ...  [w]
    Appending jffs2 data from /tmp/sysupgrade.tgz to firmware...TRX header not found
    Error fixing up TRX header
    Upgrade completed
    Rebooting system...
  6. Ignore the “TRX header not found” and “Error fixing up TRX header” errors. These errors are not relevant according to https://dev.openwrt.org/ticket/8623

  7. Wait until the router comes back online. The system should come up the same configuration settings as before (same network IP addresses, same SSH password, etc.)

Troubleshooting:

See also:
Opkg extras,
UCI extras

The new package installations will have installed new, default versions of package configuration files.
As your existing configuration files were already in place, opkg would have displayed a warning about this and saved the new configuration file versions under *-opkg filenames.

The new package-provided configuration files should be compared with your older customized files to merge in any new options or changes of syntax in these files.
The diff tool is helpful for this.

# Install packages
opkg update
opkg install diffutils
 
# Find new configurations
find /etc -name "*-opkg"
 
# Compare UCI configurations
diff /etc/config/snmpd /etc/config/snmpd-opkg
 
# Manually merge changes to the current config and remove default config
vi /etc/config/snmpd
rm /etc/config/snmpd-opkg
 
# Or replace current config with the default one
mv /etc/config/snmpd-opkg /etc/config/snmpd
 
# Apply changes
/etc/init.d/snmpd restart
reboot

If your device’s /tmp filesystem is not large enough to store the OpenWrt upgrade image, this section provides tips to temporarily free up RAM.

First check memory usage with the free or top or cat /proc/meminfo commands; proceed if you have as much free RAM as the image is in size plus an some additional MiB of free memory.

# free
             total         used         free       shared      buffers
Mem:         29540        18124        **11416**         0         1248
-/+ buffers:              16876        12664
Swap:            0            0            0

In this example there are precisely 11416 KiB of RAM unused.
All the rest 32768 — 11416 = 21352 KiB are used somehow and a portion of it can and will be made available by the kernel, if it be needed, the problem is, we do not know how much exactly that is.
Make sure enough is available.
Free space in /tmp also counts towards free memory.
Therefore with:

# free
Mem:         13388        12636          752            0         1292
Swap:            0            0            0
Total:       13388        12636          752
 
# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/root                 2304      2304         0 100% /rom
tmpfs                     6696        60      6636   1% /tmp
tmpfs                      512         0       512   0% /dev
/dev/mtdblock3             576       288       288  50% /overlay
mini_fo:/overlay          2304      2304         0 100% /

One has actually 752+6636 KiB of free memory available.

rm -r /tmp/opkg-lists/
sync && echo 3 > /proc/sys/vm/drop_caches
rm /etc/modules.d/*80211*
rm /etc/modules.d/*ath9k*
rm /etc/modules.d/b43*
reboot

The wireless drivers usually take up quite some amount of RAM and are not required if you are connected by wire.
You can delete the relevant symlinks in etc/modules.d and reboot to free up the RAM.

Still no room in /tmp?

Use netcat only if you really cannot free enough RAM with other means.
Any network issues during the process are likely to brick your device.

Flash using ssh

# Linux PC
cat firmware_image.bin | ssh root@openwrt.lan mtd write - firmware

Flash using netcat

# Linux PC
nc -q 0 192.168.1.1 1234 < openwrt-ar71xx-tl-wr1043nd-v1-squashfs-sysupgrade.bin
 
# OpenWrt
nc -l -p 1234 | mtd write - firmware

Обновление OpenWrt заменит всю текущую установку OpenWRT с новой версией. Это включает в себя ядро ​​Linux, раздел SquashFS и раздел JFFS2.

Пути общего обновления ниже будет автоматически сохранять большую часть OpenWRT OS конфигурации путем сохранения и последующего восстановления файлов конфигурации в конкретных общих местах ( в том числе / etc / config конфигурации). Это позволит сохранить такие вещи, как настройки OpenWRT сети, настройки Wi-Fi, имя хоста устройства, и так далее.

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

Далее это реальное обновление. Есть два пути общего обновления, чтобы фактически выполнить обновление. Один использует веб — интерфейс LuCI команду «Flash нового образ прошивки» и один использует командную строку sysupgrade команду. Вы можете использовать любой подход.

После OS обновления обычно есть некоторые дополнительные шаги настройки, необходимые для повторной установки дополнительных пакетов не является частью базы OpenWrt установки, чтобы настроить новые функциональные возможности OpenWRT или обновлять файлы конфигурации, чтобы отразить новые настройки или обновленные пакеты. Пожалуйста, смотрите раздел ниже более подробно.

Как работает обновление OpenWrt OS

Процедуры обновления Luci и sysupgrade работают путем сохранения указанных конфигурационных файлов,удаления всей файловой системы, установки новой версии OpenWrt и последующего восстановления сохраненных конфигурационных файлов. Это означает,что все части файловой системы, которые не были специально сохранены, будут потеряны.

В частности, все установленные вручную пакеты программного обеспечения, которые могут быть установлены после первоначальной установки OpenWrt, должны быть переустановлены после обновления OpenWrt. Таким образом, все будет соответствовать, например, обновленное ядро Linux и любые установленные модули ядра.

Каких-либо конфигурационных файлов или файлов данных, размещенных в местах, не перечисленных как ниже, также будут потеряны без возможности обновить openwrt. Обязательно проверьте все файлы, добавленные или настроенные из установки OpenWrt по умолчанию для резервного копирования этих элементов перед обновлением.

Список установленного пользователя пакеты определены в базе данных opkg пакета

Этот сценарий из gsenna членов форума и был первоначально размещен в форуме для обсуждения « по умолчанию пакетов отношения 12.09rc2 1043nd» TP-Link в https://forum.openwrt.org/viewtopic.php?id=43480

vi /tmp/listuserpackages.sh
#!/bin/ash
echo >&2 User-installed packages are the following:
sed -ne '/^Package:[[:blank:]]*/ {
	s///
	h
}
/user installed/ {
	g
	p
}' /usr/lib/opkg/status
/bin/ash /tmp/listuserpackages.sh
User-installed packages are the following:
snmpd-static

Обратите внимание, что сценарий может перечислить несколько пакетов, которые являются частью по умолчанию OpenWrt установки и будут иметь свои измененные файлы конфигурации автоматически резервное копирование и восстановление. Кроме того, пакеты, установленные в зависимости других пакетов могут показать здесь. Важно лишь отметить имена пакетов, которые непосредственно установлены вручную. Любые зависимости этих пакетов будут автоматически переустановлены при переустановке основного пакета.

Альтернативный сценарий, который использует AWK вместо SED / Grep и значительно короче (при условии пользователя Valentijn):

vi /tmp/listuserpackages.awk
/^Package:/{PKG= $2}
/^Status: .*user installed/{print PKG}
awk -f /tmp/listuserpackages.awk /usr/lib/opkg/status

Этот скрипт будет выводить только список пользователей (и по умолчанию) установленные пакеты.

Перечислите все пакеты, связанные с любым пользователем модифицированного файла

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

Обратите внимание, что скрипт может перечислить несколько пакетов, которые являются частью установки OpenWrt по умолчанию и будут иметь их измененные файлы конфигурации автоматически резервное копирование и восстановление. Кроме того, пакеты, установленные в качестве зависимостей от других пакетов, могут отображаться здесь. Важно только отметить имена пакетов, которые вы установили вручную. Любые зависимости этих пакетов будут автоматически переустановлены при переустановке основного пакета.

# Эта версия для OpenWrt 14,07 "Barrier Breaker" или раньше
find /overlay/ | sed s:/overlay::g | while read file; do opkg search $file; done | awk '{print $1}' | sort | uniq
 
# Эта команда для OpenWRT 15,05
find /overlay/upper/ | sed s:/overlay/upper::g | while read file; do opkg search $file; done | awk '{print $1}' | sort | uniq

Убедитесь, что нужные файлы конфигурации будут сохранены

LuCI и sysupgradeобновления будут сохранять файлы конфигурации:

opkg list-changed-conffiles

На основании списка пользователей установленных пакетов,указанных выше и вы знаете, что у вас есть другие конфигурации или файлы данных, которые должны быть сохранены и которые не включены в набор по умолчанию файлов для сохранения. Ваши новые файлы должны быть добавлены к /etc/sysupgrade.conf. По умолчанию этот файл только имеет комментарии в нем.

Метод LuCI

Перейдите система > Резервное копирование/флэш-прошивки > вкладку “Конфигурация”. Это покажет текущее содержимое файла /etc/sysupgrade.conf file и окно редактирования можно использовать для добавления в файл дополнительных строк. После редактирования нажмите кнопку“ Отправить”.

Для того, чтобы просмотреть все конфигурационные файлы, которые будут сохранены на обновление, нажмите «Открыть список …» кнопку.

Метод командной строки

Редактирование /etc/sysupgrade.conf с редактором. Например:

vi /etc/sysupgrade.conf
## This file contains files and directories that should
## be preserved during an upgrade.

# /etc/example.conf
# /etc/openvpn/

## customization: preserve sudo files
/etc/sudoers
/etc/sudoers.d/

Legacy: LuCI flash_keep section of /etc/config/luci

Luci имеет отдельный набор настроек в разделе «Конфигурация экстерн „flash_keep“» в файле /etc/config/luci относящийся к файлам конфигурации, которые должны быть сохранены.

В прошлом по-видимому, этот список был использован Luci (см https://forum.openwrt.org/viewtopic.php?pid=100739#p100739) Однако, по крайней мере из OpenWrt 14.07, процедура обновления LuCI OpenWrt на самом деле вызывает сценарий sysupgrade и поэтому появляется настройки flash_keep в /etc/config/luci теперь игнорируются.

Определение обновления изображения OpenWRT

OpenWrt on x86

:!: Для систем x86 нет «sysupgrade» изображений, просто убедитесь, что использовать новый образ прошивки имеет ту же семью файловой системы (если текущая прошивка использует SquashFS то новый будет использовать SquashFS, а также и если ток, В новую воли использовать файловую систему доб Обратите внимание, что обновление с ext2 [10.03.1] на ext4 [12,09], похоже, не работает Испытано 10.03.1 SquashFS на 12,09 SquashFS, работая,.. 10.03.1 SquashFS до 12.09 ext4 неуспешно; 10.03.1 ext2 до 12.09 ext4 не удался)

Определение обновления изображения OpenWRT

Для обновления LuCI основе

Для sysupgrade на основе обновления

# Пример загрузки OpenWrt 15.05 образ обновления на TP-LINK TL-WR1043ND версия. 1.x router
cd /tmp
wget http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/openwrt-15.05-ar71xx-generic-tl-wr1043nd-v1-squashfs-sysupgrade.bin
 
# Проверить целостность файла образа:
wget http://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/md5sums
# Желаемый результат, что загруженный файл прошивки файла в списке "ОК" впоследствии:
md5sum -c md5sums 2> /dev/null | grep OK

Поиск и устранение неисправностей: /tmp слишком малы, чтобы держать загруженный файл

Если /tmp файловая система вашего устройства не является достаточно большим, чтобы хранить OpenWrt обновления изображения, в данном разделе приведены советы, чтобы временно освободить оперативную память.

Во-первых использование проверки памяти с free или top или cat /proc/meminfo командами; действовать, если у вас есть столько свободной оперативной памяти, как изображение в размере плюс некоторые дополнительные MiB свободной памяти.

root@openwrt:/$ free
total used free shared buffers
Mem: 29540 18124 11416 0 1248
-/+ buffers: 16876 12664
Swap: 0 0 0

root@openwrt:/$ df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 2304 2304 0 100% /rom
tmpfs 6696 60 6636 1% /tmp
tmpfs 512 0 512 0% /dev
/dev/mtdblock3 576 288 288 50% /overlay
mini_fo:/overlay 2304 2304 0 100% /

One has actually 752+6636 KiB of free memory available.

rm -r /tmp/opkg-lists/
sync && echo 3 > /proc/sys/vm/drop_caches
rm /etc/modules.d/*80211*
rm /etc/modules.d/*ath9k*
rm /etc/modules.d/b43*
reboot

Беспроводные драйверы, обычно занимают некоторое количество оперативной памяти и не требуется (если вы подключены через беспроводную конечно ;-)), поэтому простой способ освободить RAM-это удалить cимлинки в etc/modules.d, поэтому они не загружаются в память при следующей перезагрузке.


https://wiki.openwrt.org/doc/techref/sysupgrade

sysupgrade -v /tmp/filename-of-downloaded-sysupgrade.bin
Saving config files...
etc/config/dhcp
etc/config/dropbear
etc/config/firewall
etc/config/luci
etc/config/network
etc/config/snmpd
etc/config/system
etc/config/ubootenv
etc/config/ucitrack
etc/config/uhttpd
etc/config/wireless
etc/dropbear/authorized_keys
etc/dropbear/dropbear_dss_host_key
etc/dropbear/dropbear_rsa_host_key
etc/firewall.user
etc/group
etc/hosts
etc/inittab
etc/passwd
etc/profile
etc/rc.local
etc/shadow
etc/shells
etc/sudoers
etc/sudoers.d/custom
etc/sysctl.conf
etc/sysupgrade.conf
killall: watchdog: no process killed
Sending TERM to remaining processes ... ubusd askfirst logd logread netifd odhcpd snmpd uhttpd ntpd dnsmasq
Sending KILL to remaining processes ... askfirst
Switching to ramdisk...
Performing system upgrade...
Unlocking firmware ...

Writing from <stdin> to firmware ...  [w]
Appending jffs2 data from /tmp/sysupgrade.tgz to firmware...TRX header not found
Error fixing up TRX header
Upgrade completed
Rebooting system...

Примечание: «заголовок TRX не найден» и «фиксации ошибок на заголовок TRX» ошибки не проблема, так как на OpenWRT пост разработчик Джоу по адресу: https://dev.openwrt.org/ticket/8623

Устранение неисправностей

По неизвестным причинам, холодный сброс часто сообщается необходимо после sysupgrade. Это очень и очень плохо в случае, если вы выполнили это удаленно!

Проверка новой версии ОС

* В Luci, перейдите к положению> Обзор, чтобы подтвердить, что вы запускаете новый релиз OpenWRT
* В SSH баннер входа содержит сведения о выпуске

Проверьте наличие обновляемого пакетов

После первоначального обновления рекомендуется проверить наличие обновленных пакетов, выпущенных после создания базового образа микропрограммы ОС.

opkg update
opkg list-upgradable
opkg upgrade luci-lib-ip luci-theme-bootstrap luci-app-firewall luci-proto-ppp luci-mod-admin-full luci-base luci-proto-ipv6 luci-lib-nixio luci

* Убедитесь,что пакеты больше не могут быть обновлены; команда не должна отображать выходные данные

opkg list-upgradable

Переустановите пакеты, установленные пользователем

После успешного обновления необходимо переустановить все ранее установленные пакеты. Вы составили список этих выше. Файлы конфигурации пакетов должны быть сохранены из-за действий, описанных выше, но не из-за самих пакетов.

opkg update
opkg install snmpd-static

Настройка установленных пользователем пакетов

В новых установках пакета будут установлены новые версии файлов конфигурации пакета по умолчанию. Поскольку существующие конфигурационные файлы уже были созданы, opkg отображал бы предупреждение об этом и сохранял новые версии конфигурационных файлов в разделе …-opkg имена.

Новые файлы конфигурации пакета, предоставляемый должны быть сопоставлены с вашими старыми настраиваемыми файлами для слияния в любых новых функций или изменения синтаксиса в этих файлах.

Программа diffutils полезна для этого.

# Установить Diffutils
opkg install diffutils
 
# Найти все файлы -opkg
find /etc -name *-opkg
 
# сравниваем старые настроенный файл /etc/config и/snmpd будет с новый общий файл /etc/config и/snmpd будет-opkg
diff /etc/config/snmpd /etc/config/snmpd-opkg 
 
# слияние всех необходимых изменений в активной версии файла конфигурации
vi /etc/config/snmpd
# и очистить путем удаления пакета менеджер-версию файла конфигурации
rm /etc/config/snmpd-opkg
 
# Или если новая версия предоставляется сопровождающим пакета следует просто заменить старый конфигурационный файл,то просто поменять его в
mv /etc/config/snmpd-opkg /etc/config/snmpd

Включить и запустить установленные пользователем пакеты

* Наконец, вновь установленные пакеты должны быть включены и запущены (если это необходимо; многие делают)

/etc/init.d/snmpd enable
/etc/init.d/snmpd start

Выполните пробную перезагрузку

Обновление полностью завершено. Хорошая идея сделать тестовую перезагрузку и убедиться, что все ожидаемые функциональные возможности работают, как и раньше.

reboot

В OS параметры обновления гораздо более ручной, чем при использовании либо LuCI или sysupgrade. Они нужны только в необычных обстоятельствах.

mtd

  1. Если sysupgrade не поддерживается для встроенного устройства,вы должны использовать mtd вместо:

    mtd -r write /tmp/openwrt-ar71xx-generic-wzr-hp-ag300h-squashfs-sysupgrade.bin firmware

Netcat

Прямой метод

Netcat можно было бы использовать, если вы не можете свободно достаточно оперативной памяти. См netcat. Netcat должен быть установлен первым.

Этот метод НЕ рекомендуется!
  1. На компьютере Linux запустите:

    nc -q0 192.168.1.1 1234 < openwrt-ar71xx-tl-wr1043nd-v1-squashfs-sysupgrade.bin
  2. На маршрутизаторе выполните:

    nc -l -p 1234 | mtd write - firmware

Косвенный метод

Этот метод намного безопаснее, если у вас достаточно оперативной памяти.

Этот метод отлично подходит для самостоятельной сборки firmwares.

Вы должны проверить, сколько оперативной памяти у вас есть в настоящее время.(В случае, если у вас нет достаточно осталось, обратитесь бесплатно оперативную памятьFree up RAM.)

free

Передача файла изображения во временную папку

Напишите это для вспышки

  sysupgrade:<code>sysupgrade -v /tmp/[specified firmware].bin </code>

ИЛИ

  mtd:<code>mtd -r write /tmp/[specified firmware].bin firmware</code>

Я тестировал под Ubuntu 11.10.

Некоторые полезные ссылки для Netcat

scp

Убедитесь, что маршрутизатор имеет достаточно памяти.

root@OpenWrt:/# free

Убедитесь, что вы установили пароль для маршрутизатора (для включения SSH необходимо установить пароль для маршрутизатора). См. First Login для получения более подробной информации.

Скопируйте прошивку на маршрутизаторе

На вашем компьютере Linux запустите:

linux$ scp openwrt-ar71xx-tl-wr1043nd-v1-squashfs-sysupgrade.bin root@192.168.1.1:/tmp

Ввод «да» estabilish подлинность,а затем введите пароль вашего маршрутизатора. Подождите scp команда завершена.Теперь вы можете видеть прошивку в /tmp каталог.

Написать прошивку вашего маршрутизатора

root@OpenWrt:/# sysupgrade -v /tmp/[specified firmware].bin 

Заметка

192.168.1.1 является IP — адрес (можно назвать GateWay) вашего маршрутизатора. Проверка бегом:
run:

linux$ ip r 

или вы можете проверить файл /etc/config/network file, 127.0.0.1 является петлевой IP адрес, другой является IP адрес вашего маршрутизатора.

root@OpenWrt:/# grep ipaddr /etc/config/network 

Важно! Сброс перед обновлением делать не нужно, так как сброс можно сделать во время обновления xxxx-squashfs-sysupgrade.bin, где у вас спросят, сохранить ли настройки или все сбросить. Если выберите не сохранять ничего, то произойдет полный сброс. Обязательно сделайте перед обновлением xxxx-squashfs-sysupgrade.bin бэкап.

Скриншот с примером

  • Если поставить галочку на Keep setting and retain the current configuration, то полного сброса не будет и настройки будут сохранены
  • Если снять галочку с Keep setting and retain the current configuration, то произойдет полный сброс. После перезагрузки поднимется точка доступа OpenWRT и придется подключить шлюз к роутеру WiFi.

image


Резервное копирование

Бэкап будет лежать в папке /tmp

tar cvz -f /tmp/backup_$(date +%d-%m-20%y_%H-%M).tar.gz -C /overlay/upper/ /overlay/upper/


Обновляем OpenWRT

Скачиваем образ xxxx-squashfs-sysupgrade.bin для своего шлюза (смотрим на название файла). Делаем обновление через LuCI.

Важно! Смотрите на название файла xxxx-squashfs-sysupgrade.bin. Ниже пояснение для какого шлюза эти файлы

  • Для шлюза Aqara ZHWG11LM
    > openlumi-21.02.1-imx6-aqara_zhwg11lm-squashfs-sysupgrade.bin
  • Для шлюза Xiaomi DGNWG05LM
    > openlumi-21.02.1-imx6-xiaomi_dgnwg05lm-squashfs-sysupgrade.bin

image

System => Backup/Flash Firmware
image

Если нужно обновиться с Openwrt 21.02 до Openwrt 21.02.01

1) Скачиваем для своего шлюза Xiaomi DGNWG05LM или Aqara ZHWG11LM sysupgrade. Ссылка на прошивки

  • Для Xiaomi DGNWG05LM openlumi-21.02.1-imx6-xiaomi_dgnwg05lm-squashfs-sysupgrade.bin
  • Для Aqara ZHWG11LM openlumi-21.02.1-imx6-aqara_zhwg11lm-squashfs-sysupgrade.bin

image

2) Загружаем прошивку через Flash new firmware image

image

3) Перезагружаем шлюз


Если нужно откатиться с Openwrt 21.02.1 до Openwrt 21.02

1) Скачиваем для своего шлюза Xiaomi DGNWG05LM или Aqara ZHWG11LM sysupgrade. Ссылка на прошивки

  • Для Xiaomi DGNWG05LM openlumi-21.02.0-imx6-xiaomi_dgnwg05lm-squashfs-sysupgrade.bin
  • Для Aqara ZHWG11LM openlumi-21.02.0-imx6-aqara_zhwg11lm-squashfs-sysupgrade.bin

image

2) Загружаем прошивку через Flash new firmware image

image

3) Перезагружаем шлюз

Как обновить шлюз прошивкой squashfs sysupgrade.bin?

Скачайте образ xxxx-squashfs-sysupgrade.bin c добавленными фидами для своего шлюза и обновите через LuCI.

  • Для шлюза Aqara ZHWG11LM
    openlumi-21.02.1-imx6-aqara_zhwg11lm-squashfs-sysupgrade.bin
  • Для шлюза Xiaomi DGNWG05LM
    openlumi-21.02.1-imx6-xiaomi_dgnwg05lm-squashfs-sysupgrade.bin

squashfs-sysupgrade bin

System => Backup/Flash Firmware
image

Во время перепрошивки у вас спросят:

  • Если снять все галочки, то все настройки будут стерты. После перезагрузки поднимется точка доступа OpenWRT
  • Если поставить галочку “Keep setting and retain the current configuration”, то все настройки будут сохранены
    image

upgrade the system

Make sure you can ssh to the router by root and type in the command:

cd /tmp
wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-mw4530r-v1-squashfs-sysupgrade.bin
sysupgrade -v openwrt-ar71xx-generic-mw4530r-v1-squashfs-sysupgrade.bin

wait for the router to reboot and then ssh to it again. the password for root should keep the same.

Reference: http://wiki.openwrt.org/doc/howto/generic.sysupgrade

install USB support

Some packages need to be installed

opkg update
opkg install kmod-usb-storage block-mount kmod-fs-ext4

Reference: http://wiki.openwrt.org/doc/howto/usb.storage

Mount / at USB for larger space

opkg update
opkg install e2fsprogs
mkfs.ext4 /dev/sda1  
mkdir -p /mnt/sda1
mount /dev/sda1 /mnt/sda1
tar -C /overlay -cvf - . | tar -C /mnt/sda1 -xf -
vi /etc/config/fstab

and make sure your fstab config file looks like

root@OpenWrt:~# cat /etc/config/fstab 
config 'global'
	option	anon_swap	'0'
	option	anon_mount	'0'
	option	auto_swap	'1'
	option	auto_mount	'1'
	option	delay_root	'5'
	option	check_fs	'0'

config mount
	option target /overlay
	option device /dev/sda1
	option fstype ext4
	option options rw,sync
	option enabled 1
	option enabled_fsck 0

you can run df to check, /dev/sda1 should be mounted on /overlay like

root@OpenWrt:~# df
Filesystem           1K-blocks      Used Available Use% Mounted on
rootfs                 7730640     21676   7293220   0% /
/dev/root                 1792      1792         0 100% /rom
tmpfs                    63184       948     62236   2% /tmp
/dev/sda1              7730640     21676   7293220   0% /overlay
overlayfs:/overlay     7730640     21676   7293220   0% /
tmpfs                      512         0       512   0% /dev

Reference: http://wiki.openwrt.org/doc/howto/extroot

install LUCI web UI

opkg update
opkg install luci
/etc/init.d/uhttpd enable
/etc/init.d/uhttpd start

Reference: http://wiki.openwrt.org/doc/howto/luci.essentials

remote ssh security

  • disable root password access (via luci UI)
  • add ssh public key (via luci UI)
  • change ssh port to something other than the default port
  • create a new user for ssh access. NEVER use root for remote access
opkg update
opkg install shadow-useradd
useradd nicolaus
passwd nicolaus
mkdir /home/nicolaus
chown nicolaus.nicolaus /home/nicolaus
vi /etc/passwd
   nicolaus:x:1000:1000:nicolaus:/home/nicolaus:/bin/ash

Open firewall port for remote ssh access.

add this to your /etc/config/firewall

config 'rule'
        option 'target' 'ACCEPT'
        option '_name' 'ssh'
        option 'src' 'wan'
        option 'proto' 'tcp'
        option 'dest_port' '22'

change 22 to your ssh port.

Reference:

  • http://wiki.openwrt.org/doc/howto/secure.access
  • https://forum.openwrt.org/viewtopic.php?id=31951

OpenWrt представляет собой кастомную прошивку на роутеры, позволяющую настраивать необходимые функции. Это маленькая операционная система, основанная на коде Linux. Ею поддерживаются несколько полезных опций, как IPTV и функцию multicast от различных операторов. Ставится ОС на разные модели роутеров, так как имеет открытый код, и её можно самостоятельно модифицировать.

Установка OpenWRT на роутер

В этой статье мы расскажем, как перепрошивать ваш Wi-Fi роутер

Нужна ли эта прошивка?

С OpenWrt роутер используется существенно эффективнее. Имеется в виду не качество связи или, допустим, скорость. OpenWrt позволит установить надстройки. К примеру, сможете присоединить небольшое сетевое хранилище, на котором разместится сайт — так вы получите хостинг, оплата за который составит только стоимость оплаты за электроэнергию, потребляемую роутером. Конечно, учтите, что такой сервер не справится с большим наплывом посетителей на сайт. Можно будет подключить загрузчик торрентов. Но в основном прошивка OpenWrt требуется лишь для настройки IPTV и функции multicast от разных провайдеров, потому как эту функцию поддерживают не все официальные прошивки.

Иногда ОС ставят, если официальная прошивка работает некорректно, в сети случаются перебои, интернет-соединения прерываются.

Когда решите расширить функциональность устройства, исправить недостатки в его работе, установив OpenWrt, как прошить роутер правильно?

Где взять прошивку?

Зайдите на сайт openwrt.org. Там пройдите в раздел Downloads, расположенный в верхнем меню.

Скриншот сайта Openwrt.org

Перейдите в раздел Downloads и скачайте последнюю версию

Вы попадёте на страничку загрузки, где увидите список множества версий OpenWrt. Выбираете самую новую, подобрав модификацию, соответствующую вашему устройству.

Нужно знать, какой процессор стоит в роутере. В официальной инструкции такая информация не указывается. Вам предстоит порыться в сети либо разберите роутер и посмотрите надпись на чипе. Иногда это записывается на специальной наклеечке, приклеиваемой на устройство, вероятность такого, конечно, мала, но возможна.

Версия оборудования роутера

Обратите внимание на стикер с обратной стороны устройства

Установка прошивки

Итак, выбрали прошивку, загрузили её на компьютер. Далее выполняем такие шаги.

  1. Зайдите в фирменное ПО роутера, применив браузер. Для этого в адресной строке введите IP устройства (на D-Link, допустим, по умолчанию ставится адрес 168.0.1).
  2. Вводите логин, пароль.
  3. Входите на вкладку обновления ПО, при запросе выбираете скачанный файл. Устанавливаете.

Настройки роутера - Обновление ПО

Укажите путь к скачанному файлу прошивки

Если вы всё выполнили правильно, устройство станет доступно по адресу 192.168.1.1 через несколько минут. Таким образом завершится установка.

Обратите внимание: при неправильно выбранной прошивке, устройство перестанет работать, хотя прошивка вроде успешно установится. Восстановить же фирменное ПО не всегда возможно, в некоторых версиях доступна лишь прошивка чипа памяти, выполняемая на спецоборудовании.

Начало работы

Вами выполнена перепрошивка OpenWrt, теперь настраиваем роутер.

Начиная действия с OpenWrt, выполните вначале настройку подключения провайдера. Следуем такому алгоритму.

  1. Зайдите в веб-интерфейс по адресу 168.1.1.
  2. Система потребует от вас при первом входе задать пароль, выполните это.
  3. Пройдите в меню
  4. Зайдите на Interfaces — Add new interface.
  5. Задайте настройки такие, как были у вашего провайдера в стандартном ПО.
  6. Кнопка Save&Apply занесёт данные в память системы, применит параметры, вписанные вами.

Установка языка для интерфейса

Пакет русского языка ставим следующим образом.

  1. Зайдите в меню System —
  2. В поле на странице введите luci-i18n-russian.
  3. Подтвердите ввод, выберите вкладку Available packages с пакетом, вписанным вами. Нажмите для установки
  4. Когда пакет установится, обновите затем полностью окно браузера посредством кнопки F

Интерфейс устройства станет удобным — русскоязычным.

Возвращение к заводской прошивке

Если решите вернуть старую заводскую прошивку, выполняйте следующие шаги.

  1. Уточните модель роутера и его версию. Для этого зайдите в OpenWrt (168.1.1), откройте админку. После ввода логина и пароля, откроется страничка с данными, где в строке model можете увидеть данные вашего роутера, его модель.
  2. Пройдите на официальный сайт OpenWrt, введите там модель через поиск Ctrl+F.
  3. Скачайте ПО: вам понадобится прошивка с пометкой stripped.
  4. Зайдите снова в админку роутера.
  5. Пройдите в меню System —
  6. Зайдя в раздел Flash new firmware, отметьте выбором скачанный файл, нажмите кнопку Flash Image, подождите немного, потребуется лишь несколько минут.

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

Прошивка роутера — дело ответственное, но благодаря нашей инструкции можно всё выполнить самостоятельно. Главное, будьте внимательны при выборе прошивки, чтобы она соответствовала вашему устройству. Точно следуйте при выборе ПО той модели и версии роутера, что имеется у вас. Остальное выполнить несложно.

Понравилась статья? Поделить с друзьями:
  • Как изменить психиатрический диагноз
  • Как изменить проценты на телефоне
  • Как изменить псевдоним почты icloud
  • Как изменить проценты батареи на iphone
  • Как изменить псевдоним на литнет