This page is not fully translated, yet. Please help completing the translation.
(remove this paragraph once the translation is finished)
Opkg paket yöneticisi
Çoğu Linux dağıtımı gibi (veya Android veya iOS gibi mobil cihaz işletim sistemleri gibi), sistemin işlevselliği hazır paketleri paket depolarından (yerel veya Internet'ten) indirip yükleyerek oldukça belirgin biçimde yükseltilebilir.
opkg
yardımcısı bu iş için kullanılan hafif paket yöneticisidir.
Opkg bir ipkg
çatalıdır, NSLU2'nin gömülü cihazların stok bellenimlerine yazılım eklemek için tasarlanmış olan Optware'ında kullanılan paket yöneticisi.
Ipkg sadece ayrı bir dizine (/opt
gibi) yazılım ekleme yolu iken, Opkg kök dosya sistemi için, çekirdek modüllerini ve sürücülerini de kapsayan bir tam paket yöneticisidir.
Opkg, gömülü cihazlar için Entware deposunda da (bir OpenWrt topluluk paketleri debosu çatallanması) kullanıldığından bazen Entware olarak da anılır.
Paket yöneticisi opkg
bağımlılıkları depolardaki paketlerle çözmeye girişir - başarısız olursa, bir hata bildirir ve o paketin yüklenmesini iptal eder.
Üçüncü-taraf paketler içeren eksik bağımlılıklar muhtemelen o paketin kaynağında bulunurlar.
Bağımlılık hatalarını yoksaymak için, -force-depends
bayrağını geçirin.
Eğer bir enstantane / gövde / uç versiyon kullanıyorsan, depodaki paket senin çekirdek versiyonundan daha yeni bir çekirdek versiyonu için ise paket yükleme başarısız olabilir.
Bu durumda, “Cannot satisfy the following dependencies for...” (“... için şu bağımlılıklar tatmin edilemiyor”) hata mesajını alırsın.
OpenWrt bellenimin bu gibi kullanımı için, gerekli tüm paketleri içeren çakılabilir bir imaj yapmak için İmaj Oluşturucu kullanılması sıcakça önerilir.
Gövde/enstantane'deyken, çekirdek ve kmod paketleri hold(“sabitle”) ile işaretlenmişlerdir, opkg upgrade
komutu onları yükseltmeyi denemeyecektir.
Çağrı
# opkg opkg must have one sub-command argument: usage: opkg [options...] sub-command [arguments...] where sub-command is one of:
glob desenleri kullanabilirsin.
Package manipulation
update | Uygulanabilir paket listesini güncelle Bu sizin yüklemeniz için, basitçe şunun gibi bir dosya getirir: örnek, ve onu RAM bölümü üstünde /tmp/opkg-lists altına depolar. LEDE 17.01 itiparı ile, opkg yükseltmesi sonrası, bu dizin yaklaşık 450 KiB (kibibyte) alan işgal eder. OPKG paketleri yüklemek veya yükseltmek için veya haklarında bilgi yazmak için, bu dizinin içeriğine gereksinir. Bu dizinin içeriğini biraz RAM boşaltmak için güvenle silebilirsiniz (içeriği yeniden başlada da kaybedilir), yeni bir paket yüklemeden önce yeniden opkg update çalıştırmayı unutma. |
upgrade <pkgs> | Paketleri yükselt Bir grup paketi yükseltmek için, opkg upgrade paketadı1 paketadı2 çalıştır. Yükseltilebilir paketlerin br listesi opkg list-upgrdadable komutuyla elde edilebilir.------------ OpenWrt bellenimi temel sistemi sıkıştırılmış sadece-okunur bir bölümde depoladığından, temel sistem paketlerine her güncelleme okunur-yazılır bölüme yazılacaktır ve bu nedenle sadece, sıkıştırılmış temel sistem bölümündeki daha eski versiyonun üzerine yazıyor olsa kaplayacağı alandan, daha çok alan kullanacaktır. Dahili çakma belleğindeki kullanılabilir alanın ve temel sistem paketlerinin güncellemeleri için gereken alanın kontrol edilmesi önerilir. Yüklenmiş paketlerin güncellenmesinde, zaten okunur-yazılır bölümde olduklarından bu meselenin olmaması gerekir, yenisi öncekinin üzerine yazılır, yine de yükseltmeden önce kontrol etmenin zararı olmaz. Genel bir temel kural olarak, 8 MiB veya daha çok toplam balkı bellek boyutuna sahip ve sonradan yüklenmiş paket içermeyen cihazlarda temel paketleri guncellerken alan meselesi olmamalı, ve elbette Extroota ayarlanmış cihazlarda da alan sorunu olmayacaktır. Serbest alanı kontrol etmek için SSH'tan df -h / yaz veya Luci web arayüzünden Yazılım sayfasına (System submenu → Software) git.Güncellemek istediğin paketlerin büyüklüğünü, SSH'tan opkg info paket-adı yazarak veya Yazılım sayfasından (Software page) kontrol edebilirsin, veya vikide Paket Tablosu'nu kontrol edebilirsin. OPKG'de “büyüklük” sıkıştırılmış arşivdeki paket boyutuyken, jffs2 veya ubifs okunur-yazılır bölüm yüklenen dosyalarda aynı sıkıştırma algoritmasını kullanacaktır, böylece yüklendiğinde benzer boyutta olacaktır.Geliştirme enstantanelerindeki paket depoları inşa botlarınca yeni sürümlere oldukça sık güncellenirler, bu yüzden bazı paketleri kırık çekirdek bağımlılıkları veya çekirdekle ilgili paketler sebebiyle güncelleyemeyecek olman çok olası. O durumda, opkg ile yükseltmek yerine İmaj İnşacısı kullanman ve ihtiyacın olan tüm paketlerle yeni bir bellenim yapman ve çakman önerilir. |
install <pkgs|url> | Paket(ler)i yükle Örnekler: opkg install hiawatha opkg install http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/hiawatha_7.7-2_ar71xx.ipk opkg install /tmp/hiawatha_7.7-2_ar71xx.ipk |
configure <pkgs> | Açılmış paket(ler)i yapılandır |
remove <pkgs|globp> | Paket(ler)i kaldır |
flag <flag> <pkgs> | Bir veya birçok paketi işaretle. Çağrı başına sadece bir işarete izin verilir. Kullanılabilir işaretler: hold • noprune • user • ok • installed • unpacked |
Enformasyonel komutlar
list [pkg|globp] | Kullanılabilir paketleri listelePackage name - Version - Description Tanım satır sonları içerebilir, haliyle basitçe grep kullanmak, grep satır-temelli olduğundan uygunsuz olacaktır. |
list-installed | Kurulu paketleri listele |
list-upgradable | Kurulu ve yükseltilebilir paketleri listele |
list-changed-conffiles | Kullanıcıca değişiklik yapılmış yapılandırma dosyalarını listele |
files <pkg> | <paket>e ait dosyaları listele. Bunun çalıması için paketin halihazırda kurulmuş olması gerekir. Örnek:opkg files asterisk18 Package asterisk18 (1.8.4.4-1) is installed on root and has the following files: /usr/lib/asterisk/modules/res_rtp_multicast.so /usr/lib/asterisk/modules/codec_ulaw.so /etc/asterisk/features.conf /usr/lib/asterisk/modules/format_wav_gsm.so /usr/lib/asterisk/modules/app_macro.so /usr/lib/asterisk/modules/chan_sip.so /usr/lib/asterisk/modules/app_dial.so /usr/lib/asterisk/modules/app_playback.so /usr/lib/asterisk/modules/format_gsm.so /usr/lib/asterisk/modules/func_callerid.so /usr/lib/asterisk/modules/func_timeout.so /etc/asterisk/asterisk.conf /etc/asterisk/modules.conf /usr/lib/asterisk/modules/format_wav.so /etc/asterisk/extensions.conf /etc/init.d/asterisk /etc/asterisk/manager.conf /usr/lib/asterisk/modules/res_rtp_asterisk.so /etc/asterisk/logger.conf /etc/asterisk/rtp.conf /usr/lib/asterisk/modules/codec_gsm.so /etc/asterisk/indications.conf /usr/lib/asterisk/modules/func_strings.so /usr/lib/asterisk/modules/app_echo.so /usr/lib/asterisk/modules/format_pcm.so /etc/asterisk/sip_notify.conf /etc/asterisk/sip.conf /etc/default/asterisk /usr/sbin/asterisk /usr/lib/asterisk/modules/pbx_config.so /usr/lib/asterisk/modules/func_logic.so |
search <file|globp> | <dosya>'yı sağlayan paketi bul |
info [pkg|globp] | <paket> için düm bilgiyi gösterPackage: horst Version: 2.0-rc1-2 Depends: libncurses Provides: Status: install user installed Section: net Architecture: ar71xx Maintainer: Bruno Randolf <br1@einfach.org> MD5Sum: 378cea9894ec971c419876e822666a6a Size: 19224 Filename: horst_2.0-rc1-2_ar71xx.ipk Source: feeds/packages/net/horst Description: [horst] is a scanning and analysis tool for 802.11 wireless networks and especially IBSS (ad-hoc) mode and mesh networks (OLSR).
Not 1: Boyut gzip ile sıkıştırılmş tar arşivinin boyutudur. Kurulumda paket tar'dan çıkarılır ve açılır, ama tekrar JFFS2 kendisi sıkıştırma kullanır. |
status [pkg|globp] | <pkt> için tüm durumu göster |
download <pkg> | Geçerli dizine <paket>i indir |
compare-versions <v1> <op> <v2> | v1 ve v2 versiyonlarını <= , < , > , >= , = , << veya >> işleçlerini kullanarak karşılaştır |
print-architecture | Yüklenebilir paket mimarilerini listele |
whatdepends [-A] [pkgname|pat]+ | Bu sadece kurulu paketler için işler. Bir paket ve tüm bağımlılıklarının ihtiyaç duyacağı depolama alanını bilmek istersen, bu bilgiyi info -seçeneğiyle birleştirmek zorunda olacaksın. |
whatdependsrec [-A] [pkgname|pat]+ | Bu sadece kurulu paketlerde çalışır. Bir paket ve tüm bağımlılıklarının ihtiyaç duyacağı depolama alanını bilmek istersen, bu bilgiyi info -seçeneğiyle birleştirmek zorunda olacaksın. |
whatprovides [-A] [pkgname|pat]+ | |
whatconflicts [-A] [pkgname|pat]+ | |
whatreplaces [-A] [pkgname|pat]+ |
Seçenekler
Seçenek | Uzun | Açıklama |
---|---|---|
-A | Sadece kurulu olanları değil tüm paketleri sorgula | |
-V[<level>] | --verbosity[=<level>] | Ayrıntı seviyesini <seviye> olarak ayarla. Kullanılabilir ayrıntı seviyeleri: 0 sadece hatalar 1 normal mesajlar (varsayılan) 2 tanıtıcı mesajlar 3 hataayıklama 4 hata ayıklama seviye 2 |
-f <conf_file> | --conf <conf_file> | <conf_file> doyasını opkg yapılandırma dosyası olarak kullan. Varsayılanı /etc/opkg.conf |
--cache <directory> | Paket önbelleğini kullan | |
-d <dest_name> | --dest <dest_name> | <dest_name>'i paket yükleme, kaldırma, yükseltme için kök dizin olarak kullan. <dest_name> yapılandırma dosyasından tanımlı bir hedef adı olmalı, (gerektiğin bir dizin adı olabilir). |
-o <dir> | --offline-root <dir> | Use <dir>'i çevrimdışı paket yüklemesi için kök dizin olarak kullan. |
--add-arch <arch>:<prio> | Mimariyi verili öncelikle kaydet | |
--add-dest <name>:<path> | Hedefi veili yol ile kaydet | |
Zorlama Seçenekleri | ||
--force-depends | Arızalı bağımlılıklara rağmen yükle/kaldır | |
--force-maintainer | Önceden varolan yapılandırma dosyalarının üzerine yaz | |
--force-reinstall | Paket(ler)i yeniden yükle | |
--force-overwrite | Diğer paket dosyalarının üzerine yaz | |
--force-downgrade | Opkg'ye paket alçaltması için izin ver | |
--force-space | Boş alan kontrollerini devredışı bırak | |
--force-checksum | Doğrulama özeti uyumsuzluklarını yoksay | |
--force-postinstall | Kurulum sonrası betikleri çevrimdışı kipte de olsa çalıştır | |
--noaction | İşlem yapma -- sadece sına | |
--download-only | İşlem yapma -- sadece indir | |
--nodeps | Bağımlılıkları takip etme | |
--force-removal-of-dependent-packages | Paketi ve tüm bağımlılıklarını kaldır | |
--autoremove | Bağımlılıkları tatmin etmek için kurulmuş paketleri kaldır | |
-t | --tmp-dir | tmp dizinini belirt. |
Örnekler
# Install a package opkg update opkg install <package> # List packages opkg list # Display package information opkg info <package>
glob örüntülerinden doğrudan yararlanabilirsin ve aynı zamanda regular expressions(düzenli ifadeler) kullanmak için ya da enformasyonu başka ileri işleme tabi tutmak için küçük bir shell script(kabuk betiği) yazabilirsin. O çıktıyı filtrelemek için bir pipeline(veri hattı) ve grep, veya awk, veya sed kullanabilirsin:
opkg list | grep -e <pattern1> -e <pattern2> opkg list | awk -e '/<pattern>/{print $0}' opkg info kmod-ipt-* | awk -e '/length/{print $0}' opkg list-installed | awk -e '{print $1}' | tr '\n' ' ' for pkg in <package1> <package2> <package3>; do opkg info ${pkg}; done opkg depends dropbear
Tüm paketlere toplu güncelleme asla önerilmez. Yine de ilerlemek istiyorsanız, Opkg eklerini kurun veya şu tek satırlığı kullanın:
# Upgrade all installed packages opkg list-upgradable | cut -f 1 -d ' ' | xargs opkg upgrade
Yapılandırma
Ana yapılandırma dosyası /etc/opkg.conf
'tur.
Şöyle görünebilir:
dest root / dest ram /tmp lists_dir ext /var/opkg-lists option overlay_root /overlay
Gördüğün gibi, varsayılan klasörleri araylar:
- varsayılan kök dizin (varsayılan
/
) - varsayılan ram disk (varsayılan
/tmp
) - paket listelerinin depolanacağı varsayılan klasör (varsayılan
/var/opkg-lists
, hala bir ram disk'tir ) - bindirme dizini nedir (varsayılan
/overlay
)
Bu seçeneklerin çoğu varsayılan olarak bırakılmalıdır, veya değiştirilmeleri için gerçek bir sebepleri yoktur.
Eğer cihazın 32 MiB veya daha az RAM sahibiyse ve belleniminin depolamana alanını bir harici sürücüye genişletmiş isen, lists_dir ext /var/opkg-lists
satırını lists_dir ext /path/on/disk
olarak değiştirmek isteyebilirsin, böylece opkg'yi Yetersiz Hafıza hatalarına neden olmadan kullanabilirsin.
Bu dosya Luci Web arayüzünden de erişilebilir ve değiştirilebilir, Servisler(Services) ardından Yazılım(Software)'a tıkla. Yapılandırma(Configuration) sekmesine tıkla.
Depoları ayarla
Besiler /etc/opkg/distfeeds.conf
'ta ayarlanmıştır:
src/gz reboot_core http://downloads.lede-project.org/snapshots/targets/ramips/mt7620/packages src/gz reboot_base http://downloads.lede-project.org/snapshots/packages/mipsel_24kc/base src/gz reboot_telephony http://downloads.lede-project.org/snapshots/packages/mipsel_24kc/telephony src/gz reboot_packages http://downloads.lede-project.org/snapshots/packages/mipsel_24kc/packages src/gz reboot_routing http://downloads.lede-project.org/snapshots/packages/mipsel_24kc/routing src/gz reboot_luci http://downloads.lede-project.org/snapshots/packages/mipsel_24kc/luci
Özel besiler için bir dosya daha vardır /etc/opkg/customfeeds.conf
:
# add your custom package feeds here # # src/gz example_feed_name http://www.example.com/path/to/files
Her iki dosyada Luci Web arayüzünden de erişilebilir ve değiştirilebilirdir, Servisler ardından Yazılım'a tıklayın. Yapılandırma sekmesine tıklayıp, aşağı kaydırın.
Yerel depolar
Opkg'yi, paketleri yerel olarak çekmesi için yapılandırabilirsin:
src/gz local file:///path/to/packagesDirectory
OpenWrt, her birinin kendi tanımlayıcısına gerek duyduğu birçok depo kullanır, Asıl adlarını kullanmak mantıklı olur, örneğin:
... src/gz base file:///path/to/packages/directory/packages/base src/gz luci file:///path/to/packages/directory/packages/luci src/gz packages file:///path/to/packages/directory/packages/packages src/gz oldpackages file:///path/to/packages/directory/packages/oldpackages ... etc ...
Mimarileri değiştir
OpenWrt paket mimarileri kullanıyor. Pek çok cihaz paketlerini aynı havuzdan çeker.
Takip eden paragraf redaksiyon ve güncel OpenWrt durumuna uydurmak için bazı değişiklikler gerektirir.
Varsayılan olarak, opkg sadece mimarisi all
olan (= mimariden bağımsız) paketleri ve kurulu olduğu hedef mimarideki paketleri yüklemeye izin verir.
Bir yabancı hedef mimari için paketler indirip kurmak amacı ile, izin verilen mimariler listesi /etc/opkg.conf
'ta, arch
seçeneklerinin kullanımıyla değiştirilebilir:
arch all 100 arch brcm4716 200 arch brcm47xx 300
Bu örnek brcm47xx
paketlerinin (brcm47xx
ailesi SoC/cihazlarda çalışmak üzere derlenmiş) brcm4716
(belirli bir SoC) hedef üzerine kurulmasını sağlayacaktır.
Sayı opkg
tarafından, çoklu mimari için mevcut olan paketlerde, tercih edilecek paket mimarisini belirlemek için kullanılan bir öncelik sıralaması belirtir.
Proxy desteği
OpenWrt 21.02:
# Configure profile mkdir -p /etc/profile.d cat << "EOF" > /etc/profile.d/custom.sh export https_proxy=http://proxy.example.org:8080/ EOF . /etc/profile # Workaround sed -i -e "s/https/http/" /etc/opkg/distfeeds.conf
opkg
'yi proxy üzerinden kullanmak için, aşağıdakini /etc/opkg.conf
'a ekle:
option http_proxy http://proxy.example.org:8080/ option ftp_proxy ftp://proxy.example.org:2121/
Aşağıdaki seçenekleri proxy sunucusuna kimlik doğrulaması için kullan:
option proxy_user xxxx option proxy_passwd xxxx
Bunun yerine, busybox wget yüklenmiş ise, kullanıcı adı ve parola URL'in parçası olarak sağlanabilir:
option http_proxy http://username:password@proxy.example.org:8080/ option ftp_proxy http://username:password@proxy.example.org:2121/
Kimlik doğrulama, wget olarak uclient-fetch kullanırken, Proxy-Authorization
henüz uygulanmadığından şimdilik başarısız olmakta.
Eğer apt-cacher-ng çalıştırıyor ve OpenWrt için kullanmak istiyorsan, apt-cacher-ng üzerinden .sig dosyaları indirirken sorunlar deneyimleyebilirsin.
O durumda şu satırı acng.conf
dosyasına koy:
VfilePatternEx: |\.sig$
Sorun Giderme
Ayrıntılı opkg güncelleme
cat << "EOF" > opkg-update.sh #!/bin/sh rm -f -R /tmp/opkg-lists mkdir -p /tmp/opkg-lists while read TYPE REPO URL do wget -O /tmp/opkg-lists/"${REPO}".gz "${URL}"/Packages.gz wget -O /tmp/opkg-lists/"${REPO}".sig "${URL}"/Packages.sig gunzip -k /tmp/opkg-lists/"${REPO}".gz usign -V -P /etc/opkg/keys -m /tmp/opkg-lists/"${REPO}" 2>&1 \ | grep -e "^OK$" \ && mv -f /tmp/opkg-lists/"${REPO}".gz /tmp/opkg-lists/"${REPO}" done < /etc/opkg/distfeeds.conf EOF chmod +x ./opkg-update.sh ./opkg-update.sh
Yetersiz alan
opkg bir işlem sırasında boş alan biterse, kısmen yüklenmiş paketleri ve bağımlılıklarını kaldır.
# Save the script cat << "EOF" > opkg-rm-pkg-deps.sh #!/bin/sh opkg update URLS="$(opkg --force-space --noaction install "${@}" \ | sed -n -e "/^Downloading\s*/s///p")" rm -f /usr/lib/opkg/lock for URL in ${URLS} do FILES="$(wget -q -O - "${URL}" \ | tar -O -x -z ./data.tar.gz \ | tar -t -z \ | sort -r \ | sed -e "s|^\.|/overlay/upper|")" for FILE in ${FILES} do if [ -f "${FILE}" ] then rm -f "${FILE}" elif [ -d "${FILE}" ] then rmdir "${FILE}" fi done done EOF chmod +x ./opkg-rm-pkg-deps.sh # Run the script ./opkg-rm-pkg-deps.sh <package_name> # Reboot to make the free space visible reboot
Yerel depo
Cihazın kendisinde bir paket deposu bulunmasının avantajlı olduğu kullanım durumları olabilir. Bu gibi durumlar şunları içerebilir:
- Güvenilmez WANlar; cihazın uzak bir depoya bağlantı akışı kabul edilemez bir süre boyunca kesildiğinde.
- Bant genişliği sınırları; cihazın uzak bir depoya bağlantı akışı, veri sınırlandırmasının sıfırlanacağı bir sonraki devire kadar, bağlantı daraltılmadan veya kesilmeden önce çekilebilecek veri miktarı sınırlandırıldığında
- Özelleştirmeli bir depo; kaynaktan oluşturulmuş, uzak depolarda bulunmayan.
- Ağdaki yerel cihazlardaki paketlerin sürümlerinin tutarlılığı için cihaz, diğer cihazlar için bir referans konumundaysa.
Convert this into LEDE and explain what it is actually doing.
Depo kaynağını “downloads.openwrt.org/snapshots/trunk/ar71xx/generic” uzak deposundan, cihaz tarafından bindirilmiş yerel bir depoya değiştirmek ve gömülü web sunucusunu kullanarak depo dosyalarını paylaşmak maksadıyla, opkg.conf dosyasını sed aracını kullanarak düzenleme örneği:
r=44685 search="http://downloads.openwrt.org/snapshots/trunk/ar71xx/generic" replace="file:///mnt/sdcard/shared/users/www/r$r" sed -i -e "s!$search!$replace!" /etc/opkg.conf
Ağdaki yerel cihazlarla depoyu paylaşmak için takip eden kabuk kodunu kullan. Bu bindirilmiş dizinden web sunucusu kök dizinine bir katı bağlantı yaratır, böylece web sunucusu bağlantıyı aşar ve bindirilmiş dosyasistemini görür:
ln -s /mnt/sdcard/shared/users/www /www/pendrive
İkinci cihazda, sed kullanarak benzer bir arama ve değiştirme yap, ama yerine ilk cihazın IP adresini (burada 192.168.1.1) ve web yolunu işaret et, hepsi /etc/opkg.conf dosyasında:
r=44685 search="downloads.openwrt.org/snapshots/trunk/ar71xx/generic" replace="192.168.1.1/pendrive/r$r" sed -i -e "s!$search!$replace!" /etc/opkg.conf
Standartdışı yükleme konumları
Geçmişi nedeniyle (ipkg çatalı), opkg paket yüklemeleri için kök dizinden farklı bir konum belirtebilir, ama aslen çoğu paket bunu çoğu paket bunu desteklemediğinden, bu gerçekten yararlı olmaktan çok merak konusudur.
Paketlerinizi yüklemek için daha çok alana sahip olmanın önerilen yöntemi Extroot
Bu çozüm çoğu durumda olduğu gibi çalışmayacaktır, OpenWrt paketleri kök dosyasistemine yüklenmek üzere tasarlanmışlardır ve değiştirilmiş yol altında çalışmak için ek sembolik-bağlantılar ve düzenlemeler gerektireceklerdir!
Öntanımlı opkg.conf aslında üç hedef içerir:
dest root / dest ram /tmp dest mnt /mnt
Hedef satırlarının yapısı basitçe dest anahtar sözcüğünü takip eden bu hedef için bir isim (herhangi bir şey olabilir), son olaraktan dosyasistemi konumu. Böyle yapılandırılmış her konum opkg komut satırında şu şekilde belirtilebilir:
opkg -d destination_name install somepackage
dest değişkeni /etc/opkg.conf
içinde tanımlanmış hedeflerden birine atfetmek zorundadır, örneğin paketleri /tmp/
'ye yüklemek için -d ram
.
Kökten başka herhangi bir konuma çekirdek modülleri yüklemek istiyorsanız, önce şunu okumak isteyebilirsini: https://dev.openwrt.org/ticket/10739