UCI varsayılanları
Ayrıca bakın: UCI sistemi
OpenWrt çekirdek hizmetlerini yapılandırmak için UCI'ye dayanır, Unified Configuration Interface(Birleştirilmiş Yapılandırma Arayüzü). UCI varsayılanları imajlarınızın önyapılandırması için, UCI kullanarak bir yol sağlar.
Bazı sistem varsayılanlarını cihazın ilk açılışında ayarlamak için, /etc/uci-defaults
dizininde bir betik oluşturun.
Bu dizindeki tüm betikler otomatik olarak /etc/init.d/boot
tarafından çalıştırılırlar:
- Eğer 0 kodu ile tamamlanırlarsa ardından silinirler.
- 0'dan başka kod ile tamamlanan betikler silinmezler ve başarıyla tamamlanana kadar sonraki açılışlarda tekrar çalıştırırlar.
Bir canlı yönlendiricide tipik olarak /etc/uci-defaults
boş olacağindan, var olan UCI varsayılanları betiklerini /rom/etc/uci-defaults
'ta görebilirsiniz,
UCI varsayılanları betikleri paketlerce oluşturulabilirler veya inşaya el ile özel dosyalar olarak eklenebilirler.
Özel ayarları dahil etme
Ayrıca bakınız: İnşa sistemi - Özel dosyalar, İmaj oluşturucu - Özel dosyalar
Belleniminize uci varsayılanları betiklerini dahil etmenin en kolay yolu onları özel dosyalar olarak eklemek olabilir.
Özel ayarları, /files/etc/uci-defaults
dizinine UCI komutları içeren betik yığınları ekleyerek önyükleyebilirsiniz
Yol inşakökü ve imaj oluşturucu için aynıdır.
Betikler çakma sürecinden sonra çalıştırılırlar - yükseltme durumunda, varolan yapılandırmayı JFFS2 bölümüne (overlay
olarak bindirilmiştir) eklemeyi de kapsar.
Betikler çalıştırılabilir olmamalıdırlar.
Kendi betiklerinizin diğer betiklerle çakışmadığından emin olmak için, yüksek bir önek kullanarak (örn. xx_özel) onların en son çalıştırıldığından emin olun.
Basit bir betik şunun gibi görünebilirdi:
cat << "EOF" > /etc/uci-defaults/99-custom uci -q batch << EOI set network.lan.ipaddr='192.168.178.1' commit network set wireless.@wifi-device[0].disabled='0' set wireless.@wifi-iface[0].ssid='OpenWrt0815' commit wireless add dhcp host set dhcp.@host[-1].name='bellerophon' set dhcp.@host[-1].ip='192.168.2.100' set dhcp.@host[-1].mac='a1:b2:c3:d4:e5:f6' commit dhcp rename firewall.@zone[0]='lan' rename firewall.@zone[1]='wan' rename firewall.@forwarding[0]='lan_wan' commit firewall EOI EOF
Bu LAN IP adresi, SSID, ayarlamak, Wi-Fi'yi etkinleştirmek, sabit DHCP kirası yapılandırmak, güvenlik duvarı bölgesini ve iletimini adlandırmak için basit bir örnek.
Betik bir kez çalışıp temiz çıkış yaptığında (0 çıkış kodu), /etc/uci-defaults
'tan kaldırılır.
Gerekirse aslını hala /rom/etc/uci-defaults
'ta inceleyebilirsiniz.
Betiklerin özel ayarların üstüne yazmamasını sağlama: denetimler uygulama
/etc/uci-defaults
'taki betikler her ilk önyüklemede, olasılıkla varolan değerlerin üstüne yazarak çalıştırılırlar (örnek olarak bir temiz yükleme veya yükseltme sonrası).
Bu davranış istenmiyorsa, betiğinizin tepesine bir test dahil etmenizi öneririz - örneğin betiğinizin normalde yapılandıracağı özel ayar için bir ön kontrol:
[ "$(uci -q get system.@system[0].zonename)" = "America/New York" ] && exit 0
Anahtara doğru değer ayarlanmış olduğunda betiğin, yukarıda açıklandığı gibi temiz tamamlanıp /etc/uci-defaults
'tan kaldırıldığından emin olmanızı sağlar.