OpenWrt Project je postavený na operačním systému Linux, a je zaměřený na embedded zařízení. Místo snahy vytvořit jednotný statický firmware, OpenWrt poskytuje plně zapisovatelný souborový systém se správou balíčků. Toto Vás osvobodí z použití výběru a konfigurace které poskytl prodejce a umožňuje upravit zařízení použitím balíčků k jakékoliv aplikaci. Pro vývojáře je OpenWrt rámec ke stavbě aplikací bez potřeby postavit úplně nový firmware, pro uživatele to znamená schopnost užít zařízení způsobem kterým by to s originálním firmwarem nešlo.
Výhody OpenWRT proti jiným rešením
-
Podpora širokého množství hardware, dokonce i toho hardware, který již výrobce nepodporuje. K datu napsání tohoto článku je OpenWRT k dispozici pro 2458 zařízení. Tabulka hardware (stažení firmware)
-
Otevřený zdrojový kód umožňuje snadnou kontrolu, opravování chyb a přizpůsobení ke konkrétní aplikaci.
-
Snadná správa pomocí jednotného rozhraní UCI (příkazová řádka pomocí SSH ) nebo LUCI (webové rozhraní)
Proč používat OpenWRT
Lidé instalují OpenWrt protože věří že pracuje lépe než standardní firmware od jejich dodavatele a hledají větší stabilitu, nabídku více prvků, větší bezpečnost a lepší podporu.
-
Rozšíření: OpenWrt poskytuje mnohé schopnosti které se nalézají pouze v high-end zařízeních. Je více než 3000 aplikačních balíčků které jsou standardizované, takže můžete snadno replikovat stejné nastavení na další podporované zařízení, včetně dvou (nebo až dokonce pěti) let staré routery.
-
Bezpečnost: OpenWrt standardní instalace je bezpečná i ve výchozím nastavení, s vypnutou Wi-Fi, bez slabého hesla nebo zadních dvířek. OpenWrt softwarové komponenty jsou aktualizovány, zjištěná slabá místa jsou rychle opravena.
-
Výkon a Stabilita: OpenWrt firmware je vyroben ze standardizovaných modulů užitých ve všech podporovaných zařízeních. To znamená, že každý modul bude pravděpodobně více testován a opraveny chyby než populace firmware, který může být pro každý produkt neupravený a linii které se znovu nikdy nedotkli.
-
Silná podpora komunity: OpenWrt členové týmu jsou pravidelně účastníky e-mailových skupin OpenWRT Forum, OpenWRT Developer a OpenWRT Admin , a LEDE’s IRC channels. Můžete komunikovat přímo s vývojáři, dobrovolníci spravující softwérové moduly a s dalšímí dlouhodobými uživateli OpenWrt, drasticky zvyšují šanci že nynější problémy vyřeší.
-
Výzkum: Mnoho týmů používajících OpenWrt jako platformu pro jejich výzkum výkonu sítě. To znamená, že zlepšení jejich úspěšných pokusů bude k dispozici v OpenWrt první, než bude začleněn do linie prodejce firmware.
-
Open Source/bez přídaných nakládů: OpenWrt je poskytována bez jakékoliv peněžních nákladů. Toto bylo zcela vytvořeno skupinou dobrovolníků: vývojářů a udržovatelů, jednotlivců a společností. Pokud vás láka použití OpenWrt, zvážte možnost přispívání za snahu, a pomozte nám vylepšit pro ostatní! Všechno výše uvedené je možné, protože OpenWrt je součástí open source [ otevřeného kódu ] společenství, a vzniklý z linuxového jádra. Zdrojové kódy jsou na gitu zde
Instalace
Instalace není jednoduchá záležitost, protože krabičky nemají klávesnici ani myš ani monitor. Někdy se instaluje pomocí sériové linky a operační systém se zavádí ze sítě pomocí DHCP(BOOTP) a TFTP protokolů. U některých krabiček je možné instalovat z webového rozhraní. K libovolné krabičce máme přístup po síti, pokud máme štestí tak po sériové lince. Pokud se nám cokoliv z tohoto "přetrhne", jsme v háji.
V každém případě je potřeba si velmi pečlivě přečíst návod, protože na instalaci je obvykle jeden pokus a v případě neúspěchu se ze zařízení stává cihla. V některých případech je na instalaci více pokusů, to je v případě, že má krabička sériovou linku. Nejprve zkusíme nabootovat OpenWRT ze sítě a pokud jsme úspěšní, tak můžeme instalovat (a je velká pravěpodobnost, že budeme také úspěšní)
Například pro Mikrotik RouterBoard RB450G (používáme ho při síťování na OU5) je návod k instalaci https://openwrt.org/toh/mikrotik/rb450g. Dále je potřeba přečíst Všeobecné postupy pro RouterBordy od Mikrotiků
Instalace do virtuálního stroje.
Virtuální stroj (VMware nebo VirtualBox) nám bude sloužit na bezstarostné pokusy a experimenty, které s krabičkami není radno dělat.
Návod na instalaci je zde, hotové firmware pro obě platformy jsou připraveny.
V této instalaci, která slouží čistě pro první osahání zařízení s OpenWRT budeme mít k dispozici jenom jedno ethernetové rozhraní.
Konfigurace
Obecné principy
Centrální konfigurace OpenWrt je rozdělena do několika souborů umístěných v adresáři /etc/config/. Každý soubor se vztahuje zhruba k části systému, kterou konfiguruje. Konfigurační soubory můžete upravit pomocí textového editoru nebo je upravit pomocí obslužného programu příkazového řádku uci. Konfigurační soubory UCI jsou také upravitelné pomocí různých programovacích rozhraní API (jako Shell, Lua a C), což je také způsob, jakým webová rozhraní jako LuCI provádějí změny v souborech UCI.
root@OpenWrt:~# ls -l /etc/config/
-rw------- 1 root root 1029 May 15 11:32 dhcp (1)
-rw------- 1 root root 134 Mar 22 22:09 dropbear (2)
-rw-r--r-- 1 root root 4066 Mar 22 22:09 firewall (3)
-rw-r--r-- 1 root root 968 May 15 11:32 luci (4)
-rw------- 1 root root 365 May 15 14:54 network (5)
-rw------- 1 root root 167 Mar 22 22:09 rpcd (6)
-rw------- 1 root root 357 May 15 11:32 system (7)
-rw-r--r-- 1 root root 788 Mar 22 22:09 ucitrack (8)
-rw------- 1 root root 783 May 15 11:32 uhttpd (9)
root@OpenWrt:~#
| 1 | Konfigurační soubor pro dhcp server lokální sítě LAN |
| 2 | Konfigurační soubor SSH serveru dropbear. |
| 3 | Konfigurační soubor firewallu. |
| 4 | Konfigurační soubor webové konfigurace LUCI |
| 5 | Konfigurační soubor sítě. |
| 6 | Konfigurační soubor démona rpcd |
| 7 | Konfigurační soubor systému (hostname a čas) |
| 8 | Konfigurační soubor pro UCI. Nebudeme se v něm hrabat. |
| 9 | Konfigurační soubor pro web server. |
jirka@jirka-Precision-T3610:~/Stažené/openwrt$ ssh root@192.168.120.186
root@192.168.120.186's password:
BusyBox v1.36.1 (2024-03-22 22:09:42 UTC) built-in shell (ash)
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
-----------------------------------------------------
OpenWrt 23.05.3, r23809-234f1a2efa
-----------------------------------------------------
root@OpenWrt:~# ls -l /etc/init.d/
-rwxr-xr-x 1 root root 1333 Mar 22 22:09 boot
-rwxr-xr-x 1 root root 846 Mar 22 22:09 cron
-rwxr-xr-x 1 root root 35048 Mar 22 22:09 dnsmasq
-rwxr-xr-x 1 root root 263 Mar 22 22:09 done
-rwxr-xr-x 1 root root 6199 Mar 22 22:09 dropbear
-rwxr-xr-x 1 root root 378 Mar 22 22:09 firewall
-rwxr-xr-x 1 root root 1379 Mar 22 22:09 gpio_switch
-rwxr-xr-x 1 root root 3640 Mar 22 22:09 led
-rwxr-xr-x 1 root root 2665 Mar 22 22:09 log
-rwxr-xr-x 1 root root 2706 Mar 22 22:09 network
-rwxr-xr-x 1 root root 292 Mar 22 22:09 odhcpd
-rwxr-xr-x 1 root root 321 Mar 22 22:09 packet_steering
-rwxr-xr-x 1 root root 393 Mar 22 22:09 rpcd
-rwxr-xr-x 1 root root 1212 Mar 22 22:09 sysctl
-rwxr-xr-x 1 root root 764 Mar 22 22:09 sysfixtime
-rwxr-xr-x 1 root root 3226 Mar 22 22:09 sysntpd
-rwxr-xr-x 1 root root 1007 Mar 22 22:09 system
-rwxr-xr-x 1 root root 1339 Mar 22 22:09 ucitrack
-rwxr-xr-x 1 root root 6056 Mar 22 22:09 uhttpd
-rwxr-xr-x 1 root root 125 Mar 22 22:09 umount
-rwxr-xr-x 1 root root 239 Mar 22 22:09 urandom_seed
-rwxr-xr-x 1 root root 220 Mar 22 22:09 urngd
root@OpenWrt:~#
Po změně konfiguračního souboru UCI, ať už prostřednictvím textového editoru nebo příkazového řádku, musí být dotčené služby nebo spustitelné soubory znovu spuštěny (restartovány) nebo v některých případech jednoduše znovu načteny voláním spouštěcího skritpu v adresáři /etc/init.d/<služba>,
takže je na ně aplikována aktualizovaná konfigurace UCI.
Mnoho programů je kompatibilních s UCI jednoduše tím, že jejich skript v /etc/init.d/<služba> nejprve aktualizuje jejich standardní konfigurační soubory specifické pro tento program na základě aktualizované konfigurace UCI v /etc/config a poté restartuje spustitelný soubor.
To znamená, že pouze (re)spuštění spustitelného souboru přímo, bez volání příslušného skriptu init.d, se nebude chovat podle očekávání, protože by to ještě nevedlo k začlenění aktualizací konfigurace do standardních konfiguračních souborů programu.
Jako příklad úpravy konfigurace UCI předpokládejme, že chcete změnit IP adresu zařízení z výchozí 192.168.1.1 na 192.168.2.1.
Chcete-li to provést, pomocí libovolného textového editoru, například vi, změňte řádek v souboru /etc/config/network
option ipaddr 192.168.1.1
option ipaddr 192.168.2.1
# /etc/init.d/network restart
V tomto případě si zapamatujte, že pokud jste přihlášeni pomocí SSH, tak krabička bude dostupná na své nové IP adrese.
Konfigurace po instalaci
Čerstvě nainstalovaná krabička s OpenWRT bude mít síťové karty zapojené do bridge s IP adresou 192.168.1.1/24, síťově bude přístupná jenom ze sítě LAN a uživatel root bude bez hesla.
První věc, co musíme udělat po instalaci firmwaru je nastavit heslo roota. Implicitně není heslo uživatele root nastaveno.
root@OpenWrt:~# passwd
Changing password for root
New password:
Retype password:
passwd: password for root changed by root
root@OpenWrt:~#
Druhou věcí bude pravděpodobně zrušení bridge a nastavení LAN a WAN ethernetových rozhraní.
Konfigurace pomocí textového editoru
Jediný editor v základu je vi. Je možné doinstalovat třeba editor nano nebo Midnight Commander mc. Editor vi má tu výhodu, že perfektně chodí i na sériové lince, u ostatních editorů se na sériové lince může vyskytnout smetí a proto jsou dost nepoužitelné.
Konfigurace se provádí editací příslušného konfiguračního souboru a restartováním sloužby, jak bylo ukázáno výše.
Konfigurace pomocí UCI
Zkratka UCI znamená Unified Configuration Interface a je to systém pro centralizaci konfigurace služeb OpenWrt.
UCI je nástupcem konfigurace založené na NVRAM nalezené v sérii White Russian OpenWrt. Je to hlavní konfigurační uživatelské rozhraní pro nejdůležitější nastavení systému včetně konfigurace hlavního síťového rozhraní, bezdrátového nastavení, funkce protokolování a konfigurace vzdáleného přístupu.
Mnoho balíčků v úložišti OpenWrt bylo kompatibilních se systémem UCI. Aplikace jsou kompatibilní s UCI pouhým zapsáním původního konfiguračního souboru (který program načte) podle zvoleného nastavení v odpovídajícím souboru UCI. To se provádí spuštěním inicializačních skriptů v /etc/init.d/. Další informace najdete v části Init skripty. Když tedy spouštíte démona s takovým inicializačním skriptem kompatibilním s UCI, měli byste si být vědomi toho, že původní konfigurační soubor programu bude přepsán. Například v případě Samba/CIFS se při spuštění /etc/init.d/samba start přepíše soubor /etc/samba/smb.conf nastavením UCI z konfiguračního souboru UCI /etc/config/samba. Konfigurační soubor aplikace je navíc často uložen v paměti RAM místo flash, protože se nemusí ukládat do energeticky nezávislé paměti a po každé změně se přepisuje na základě souboru UCI. Existují způsoby, jak deaktivovat UCI v případě, že chcete upravit nastavení v původním konfiguračním souboru nedostupném přes UCI, na cifs.server můžete vidět, jak deaktivovat UCI například pro sambu.
Pro programy, které nejsou kompatibilní s UCI, existuje pohodlný seznam některých konfiguračních souborů jiných než UCI, o které byste měli mít tendenci. Všimněte si, že u většiny programů třetích stran byste měli nahlédnout do vlastní dokumentace programu.
| Soubor | Popis |
|---|---|
Základní |
|
Nastavení SSH serveru dropbear |
|
Nastavení firewallu, NAT, paketový filtr, forwardování portů atd. |
|
Přepínač, rozhraní a směrování: všeobecné, IPv4, IPv6, směrování |
|
Bezdrátová nastavení a definice wifi sítí |
|
IPv6 |
|
Ad-hoc konfigurační protokol (AHCP), konfigurace serveru a forwarderu |
|
WIDE-DHCPv6 klient |
|
WIDE-DHCPv6 server |
|
konfigurace GW6c klienta |
|
Ostatní |
|
konfigurace babeld |
|
konfigurace serveru Box Backup |
|
konfigurace dynamického DNS (ddns skripty) |
|
konfigurace DNSCrypt proxy |
|
konfigurace daemona Docker CE Engine |
|
konfigurace jednoduchého SMTP serveru a proxy s POP, balíček emailrelay |
|
Wake on Lan: zapínaní počítačů po síti, program etherwake |
|
přípojné body a swap |
|
další idle-daemon pro připojené disky |
|
nastavení web serveru (busybox - nedoporučovaný) |
|
konfigurace ipset-dns |
|
KadNode p2p DNS |
|
základní konfigurace LuCI |
|
konfigurace balíčku statistiky |
|
nastavení mini_snmpd |
|
nastavení MiniDLNA |
|
aplikace pro streamování z Linux-UVC kompatibilní webkamery |
|
OpenWRT automount daemon |
|
konfigurační volby pro více rout WAN |
|
jednoduchá konfigurace více WAN |
|
konfigurace více WAN s vyvažováním a převzetím při selhání |
|
konfigurace nodogslash |
|
získání přesného času |
|
řízení UPS (nepřerušitelný zdroj napájení) a sdílení s jinými stroji |
|
monitor UPS z jiného stroje nebo lokálního nut-serveru |
|
webové rozhraní pro NUT (pomocí UCI) |
|
konfigurace p910nd serveru |
|
konfigurace ftp serveru Pure-FTPd |
|
implementace QoS pro odchozí provoz |
|
daemon racoon (IPsec) |
|
nastavení pro sambu |
|
nastavení SNMPd |
|
nastavení SQM |
|
nastavení pro balíček |
|
konfigurace serveru STUN |
|
konfigurace balíčku tinc |
|
konfigurace Tor |
|
konfigurace skrytých služeb Tor |
|
konfigurace BitTorrent |
|
nastavení web serveru uHTTPd |
|
nastavení mini upnpd UPnP serveru |
|
databáze uživatelů pro různé služby |
|
nastavení server uShare UPnP |
|
nastavení stahovače vnstat |
|
přepínání Wifi tlačítkem |
|
Wake on Lan: wol |
|
nastavení ZNC bounceru |
Syntaxe konfiguračních souborů
UCI konfigurační soubor se skládá z jednoho nebo více config příkazů, tak zvaných sekcí, které obsahují jednu nebo více voleb option, která definují skutečné hodnoty.
Řádek začínající znakem je komentář. Pokud se znak vyskytuje mimo řetězcový literál, všechno od něj doprava se považuje také za komentář.
Níže je příklad jednoduchého smyšleného oknfiguračního souboru.
package 'priklad'
config 'priklad' 'test' (1)
option 'retezec' 'řetezcová hodnota' (2)
option 'boolean' '1' (3)
list 'seznam' 'první položka seznamu' (4)
list 'seznam' 'druhá položka téhož seznamu'
list 'seznam' 'třetí položka téhož seznamu'
| 1 | Příkaz config 'priklad' 'test' definuje začátek sekce typu priklad se jménem test. |
| 2 | Volba typu string pojmenovaná retezec jejíž hodnota je řetězcová hodnota. |
| 3 | Volba typu bool pojmenovaná boolean a hodnotou 1, čili ANO. |
| 4 | Definice seznamu hodnot pojmenovaný seznam s hodnotami první položka seznamu, druhá položka téhož seznamu a třetí položka téhož seznamu. (druhá a třetí položka jsou definovány na dalších řádcích a spojuje je dohromady pojmenování seznam). |
Pokud potřebujeme vypnout celou sekci v konfiguračním souboru, stačí udělat uvnitř sekce volbu option enabled 0.
Je potřeba vědět, že v UCI identifikátorech je možné používat jenom malá písmenka latinky (bez háčků a čárek) a-z, číslice 0-9 a podtržítko _. Není možné použít pomlčku -.
Potřebujeme-li v hodnotě použít jiné znaky, je potřeba je uzavřít uvozovkami.
Obvykle není potřeba identifikátory a hodnoty uzavírat do uvozovek, ale je to dobré.
option priklad hodnota
option priklad "hodnota"
option 'priklad' hodnota
option 'priklad' "hodnota"
option "priklad" 'hodnota'
option priklad h_od no t-a (1)
option 'priklad" "hod nota' (2)
| 1 | Neuzavřená hodnota uvozovkami |
| 2 | Nesprávné párování uvozovek |
UCI v příkazovém řádku
Pro úpravu nastavení se normálně mění konfigurační soubory UCI přímo. Pro účely skriptování však lze veškerou konfiguraci UCI také číst a měnit pomocí nástroje příkazového řádku uci. Pro vývojáře, kteří vyžadují automatickou analýzu konfigurace UCI, je proto zbytečné, nerozumné a neefektivní používat awk a grep k analýze konfiguračních souborů OpenWrt. Uci nástroj nabízí všechny funkce s ohledem na modifikaci a analýzu UCI.
Níže je uvedeno použití a také několik užitečných příkladů použití tohoto výkonného nástroje.
| Při použití uci k zápisu konfiguračních souborů jsou soubory vždy přepsány celé a nerozpoznané příkazy jsou vynechány. To znamená, že všechny nadbytečné řádky v souboru, jako jsou komentáře, budou odstraněny. Pokud máte konfigurační soubory UCI, které jste sami upravili, a chcete zachovat své vlastní komentáře a prázdné řádky, neměli byste používat nástroj příkazového řádku, ale soubory normálně upravovat. Všimněte si, že některé soubory, jako je konfigurační soubor uHTTPd, již obsahují mnoho komentářů při první instalaci aplikace. Všimněte si také, že některé aplikace, jako je LuCI, také používají utilitu uci, a proto mohou přepisovat konfigurační soubory UCI. |
Pokud je v konfiguraci více sekcí stejného typu, UCI pro ně podporuje odkazy podobné poli.
Pokud je v /etc/config/system definováno 8 NTP serverů, UCI vám umožní odkazovat na jejich sekce jako system.@timeserver[0] pro první nebo system.@timeserver[7] pro poslední.
Můžete také použít záporné indexy, například system.@timeserver[-1]. „-1“ znamená poslední, „-2“ znamená předposlední a tak dále.
To je velmi užitečné při přidávání nových pravidel na konec seznamu. Viz příklady níže.
# uci
Usage: uci [<options>] <command> [<arguments>]
Commands:
batch
export [<config>]
import [<config>]
changes [<config>]
commit [<config>]
add <config> <section-type>
add_list <config>.<section>.<option>=<string>
del_list <config>.<section>.<option>=<string>
show [<config>[.<section>[.<option>]]]
get <config>.<section>[.<option>]
set <config>.<section>[.<option>]=<value>
delete <config>.<section>[.<option>]
rename <config>.<section>[.<option>]=<name>
revert <config>[.<section>[.<option>]]
reorder <config>.<section>=<position>
Options:
-c <path> set the search path for config files (default: /etc/config)
-d <str> set the delimiter for list values in uci show
-f <file> use <file> as input instead of stdin
-m when importing, merge data into an existing package
-n name unnamed sections on export (default)
-N don't name unnamed sections
-p <path> add a search path for config change files
-P <path> add a search path for config change files and use as default
-q quiet mode (don't print error messages)
-s force strict mode (stop on parser errors, default)
-S disable strict mode
-X do not use extended syntax on 'show'
| příkaz | cíl | popis |
|---|---|---|
|
|
Zapíše změny daného konfiguračního souboru, nebo pokud není zadán žádný, všechny konfigurační soubory do souborového systému. Všechny příkazy „uci set“, „uci add“, „uci rename“ a „uci delete“ jsou umístěny do dočasného umístění a zapsány do flash najednou pomocí „uci commit“. To není potřeba po úpravě konfiguračních souborů pomocí textového editoru, ale pro skripty, GUI a další programy pracující přímo se soubory UCI. |
|
- |
Spustí víceřádkový skript UCI, který je obvykle zabalen do syntaxe dokumentu zde. |
|
|
Exportuje konfiguraci ve strojově čitelném formátu. Používá se interně k vyhodnocení konfiguračních souborů jako skriptů shellu. |
|
|
Importuje konfigurační soubory UCI |
|
|
Vypisuje neuložené změny v daném konfiguračním souboru, pokud není konfigurační soubor zadán, tak vypisuje neuložené změny ve všech konfiguračních souborech. |
|
|
Přidá nepojmenovanou sekci typu |
|
|
Přidá do existujícího seznamu zadaný řetězec |
|
|
Odstraní z existujícího seznamu zadaný řetězec |
|
|
Vypíše zadanou volbu, sekci nebo konfigurace ve zhuštěném formátu |
|
|
Vypíše hodnotu dané volby nebo typ dané sekce |
|
|
Nastaví hodnotu zadané volby nebo přidá novou sekci, kde typ sekce je zadaná hodnota. |
|
|
Vymaže zadanou sekci nebo volbu |
|
|
Přejmenuje zadanou sekci nebo volbu na dané jméno |
|
|
Vrátí zpět zadanou volbu, sekci nebo konfigurační soubor |
|
|
Přesune sekci na jinou pozici |
Všimněte si, že nemůžete odstranit celou konfiguraci pomocí uci delete, např. uci delete umdns nebude fungovat. Pokud jste si opravdu, opravdu jisti, že chcete vymazat celou konfiguraci, tento fragment kódu shellu to udělá tak, že zacyklí a odstraní první položku v konfiguraci, dokud nebude prázdná:
while uci -q delete umdns.@umdns[0]; do :; done
Konfigurace pomocí LuCI
LuCI je nadstavba nad UCI a umožňuje nám konfigurovat krabičku pomocí webu. Je to pohodlné, ale skrývá to v sobě několik potíží:
-
Bezpečnostní: web server vystavený do internetu bývá vždy terčem útoků darebáků
-
Nemožnost automatizace
-
Problémy s certifikátem pro https protokol: používá se obvykle self-signed certifikát, což není úplně dobré.
Instalace a aktualizace programových balíků
Instalace softwarových balíků se provádí pomocí balíčkovacího systému opkg.
Nejprve je potřeba provést aktualizaci dostupných balíčků. Potom můžeme instalovat opkg install <jméno balíčku>, aktualizovat opkg upgrade <jméno balíčku> nebo mazat opkg remove <jméno balíčku>.
root@OpenWrt:~# opkg update
Downloading https://downloads.openwrt.org/releases/23.05.3/targets/x86/64/packages/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_core
Downloading https://downloads.openwrt.org/releases/23.05.3/targets/x86/64/packages/Packages.sig
Signature check passed.
Downloading https://downloads.openwrt.org/releases/23.05.3/packages/x86_64/base/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_base
Downloading https://downloads.openwrt.org/releases/23.05.3/packages/x86_64/base/Packages.sig
Signature check passed.
Downloading https://downloads.openwrt.org/releases/23.05.3/packages/x86_64/luci/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_luci
Downloading https://downloads.openwrt.org/releases/23.05.3/packages/x86_64/luci/Packages.sig
Signature check passed.
Downloading https://downloads.openwrt.org/releases/23.05.3/packages/x86_64/packages/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_packages
Downloading https://downloads.openwrt.org/releases/23.05.3/packages/x86_64/packages/Packages.sig
Signature check passed.
Downloading https://downloads.openwrt.org/releases/23.05.3/packages/x86_64/routing/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_routing
Downloading https://downloads.openwrt.org/releases/23.05.3/packages/x86_64/routing/Packages.sig
Signature check passed.
Downloading https://downloads.openwrt.org/releases/23.05.3/packages/x86_64/telephony/Packages.gz
Updated list of available packages in /var/opkg-lists/openwrt_telephony
Downloading https://downloads.openwrt.org/releases/23.05.3/packages/x86_64/telephony/Packages.sig
Signature check passed.
root@OpenWrt:~#
root@OpenWrt:~# opkg install nano-full
Installing nano-full (8.0-1) to root...
Downloading https://downloads.openwrt.org/releases/23.05.3/packages/x86_64/packages/nano-full_8.0-1_x86_64.ipk
Configuring nano-full.
root@OpenWrt:~#
root@OpenWrt:~# opkg remove nano
Removing package nano from root...
root@OpenWrt:~#
root@OpenWrt:~# opkg
opkg must have one sub-command argument
usage: opkg [options...] sub-command [arguments...]
where sub-command is one of:
Package Manipulation:
update Update list of available packages
upgrade <pkgs> Upgrade packages
install <pkgs> Install package(s)
configure <pkgs> Configure unpacked package(s)
remove <pkgs|regexp> Remove package(s)
flag <flag> <pkgs> Flag package(s)
<flag>=hold|noprune|user|ok|installed|unpacked (one per invocation)
Informational Commands:
list List available packages
list-installed List installed packages
list-upgradable List installed and upgradable packages
list-changed-conffiles List user modified configuration files
files <pkg> List files belonging to <pkg>
search <file|regexp> List package providing <file>
find <regexp> List packages whose name or description matches <regexp>
info [pkg|regexp] Display all info for <pkg>
status [pkg|regexp] Display all status for <pkg>
download <pkg> Download <pkg> to current directory
compare-versions <v1> <op> <v2>
compare versions using <= < > >= = << >>
print-architecture List installable package architectures
depends [-A] [pkgname|pat]+
whatdepends [-A] [pkgname|pat]+
whatdependsrec [-A] [pkgname|pat]+
whatrecommends[-A] [pkgname|pat]+
whatsuggests[-A] [pkgname|pat]+
whatprovides [-A] [pkgname|pat]+
whatconflicts [-A] [pkgname|pat]+
whatreplaces [-A] [pkgname|pat]+
Options:
-A Query all packages not just those installed
-V[<level>] Set verbosity level to <level>.
--verbosity[=<level>] Verbosity levels:
0 errors only
1 normal messages (default)
2 informative messages
3 debug
4 debug level 2
-f <conf_file> Use <conf_file> as the opkg configuration file
--conf <conf_file>
--cache <directory> Use a package cache
-d <dest_name> Use <dest_name> as the the root directory for
--dest <dest_name> package installation, removal, upgrading.
<dest_name> should be a defined dest name from
the configuration file, (but can also be a
directory name in a pinch).
-o <dir> Use <dir> as the root directory for
--offline-root <dir> offline installation of packages.
--verify-program <path> Use the given program to verify usign signatures
--add-arch <arch>:<prio> Register architecture with given priority
--add-dest <name>:<path> Register destination with given path
Force Options:
--force-depends Install/remove despite failed dependencies
--force-maintainer Overwrite preexisting config files
--force-reinstall Reinstall package(s)
--force-overwrite Overwrite files from other package(s)
--force-downgrade Allow opkg to downgrade packages
--force-space Disable free space checks
--force-postinstall Run postinstall scripts even in offline mode
--force-remove Remove package even if prerm script fails
--force-checksum Don't fail on checksum mismatches
--no-check-certificate Don't validate SSL certificates
--noaction No action -- test only
--download-only No action -- download only
--nodeps Do not follow dependencies
--nocase Perform case insensitive pattern matching
--size Print package size when listing available packages
--strip-abi Print package name without appended ABI version
--force-removal-of-dependent-packages
Remove package and all dependencies
--autoremove Remove packages that were installed
automatically to satisfy dependencies
-t Specify tmp-dir.
--tmp-dir Specify tmp-dir.
-l Specify lists-dir.
--lists-dir Specify lists-dir.
regexp could be something like 'pkgname*' '*file*' or similar
e.g. opkg info 'libstd*' or opkg search '*libop*' or opkg remove 'libncur*'
root@OpenWrt:~#