3 # Dieses Skript wird nur ein einziges Mal nach einem Upgrade oder der Erstinstallation ausgefuehrt: 4 # http://wiki.openwrt.org/doc/uci#defaults 8 # shellcheck source=opennet/packages/on-core/files/usr/lib/opennet/on-helper.sh 9 .
"${IPKG_INSTROOT:-}/usr/lib/opennet/on-helper.sh" 12 # packages that should be enabled by default (applied only during the first initialization) 13 DEFAULT_ENABLED_PACKAGES=
"on-olsr2" 16 # Die Einstellungen "use_olsrd_dns" und "use_olsrd_ntp" sind mit v0.5 hinzugekommen. 17 add_default_settings() {
18 prepare_on_uci_settings
19 # erzeuge die services-Node, falls noetig 20 for setting in use_olsrd_dns use_olsrd_ntp;
do 21 [ -n
"$(uci_get "on-core.settings.$setting
")" ] &&
continue 22 uci
set "on-core.settings.$setting=1" 28 # cron-Logging abschalten (bis auf Fehlermeldungen) 29 # siehe http://wiki.openwrt.org/doc/uci/system#system 30 disable_cron_logging() {
31 uci
set "system.@system[0].cronloglevel=9" 36 # verschiedene dnsmasq-Einstellungen 38 # die Namensaufloesung im Opennet generiert auch 192.168er-Adressen - diese werden durch "rebind_protection" blockiert 39 uci
set "dhcp.@dnsmasq[0].rebind_protection=0" 40 # keine Speicherung von DHCP leases 41 uci
set "dhcp.@dnsmasq[0].quietdhcp=1" 42 # erlaube reverse lookup von 192er und 10er privaten IP Adressen 43 uci
set "dhcp.@dnsmasq[0].boguspriv=0" 48 add_crontab_entries() {
49 local crontab_file=/etc/crontabs/root
50 local cron_prefix=
"[ -x /usr/bin/on-function ] && /usr/bin/on-function schedule_parts" 51 local cron_suffix=
"2>&1 | logger -t cron-error" 52 local random_hourly_minute=
53 local random_daily_minute=
54 # Erzeuge unterschiedliche Minuten-Werte (die nicht auf 0 oder 5 enden) für stündliche und 56 while [ -z
"$random_hourly_minute" ] \
57 || echo
"$random_hourly_minute" | grep -q
"[05]$";
do 58 random_hourly_minute=$(get_random 60)
60 while [ -z
"$random_daily_minute" ] \
61 || [
"$random_hourly_minute" =
"$random_daily_minute" ] \
62 || echo
"$random_daily_minute" | grep -q
"[05]$";
do 63 random_daily_minute=$(get_random 60)
65 line_in_file
"$crontab_file" '^[^#].*\(schedule\|run\)_parts.*/etc/cron\.minutely' \
66 "* * * * * $cron_prefix /etc/cron.minutely '$cron_suffix' && /usr/bin/on-function run_with_cron_lock run_scheduled_tasks" 67 line_in_file
"$crontab_file" '^[^#].*\(schedule\|run\)_parts.*/etc/cron\.5mins' \
68 "*/5 * * * * $cron_prefix /etc/cron.5mins '$cron_suffix'" 69 line_in_file
"$crontab_file" '^[^#].*\(schedule\|run\)_parts.*/etc/cron\.hourly' \
70 "$random_hourly_minute * * * * $cron_prefix /etc/cron.hourly '$cron_suffix'" 71 line_in_file
"$crontab_file" '^[^#].*\(schedule\|run\)_parts.*/etc/cron\.daily' \
72 "$random_daily_minute $(( $(get_random 3) + 3)) * * * $cron_prefix /etc/cron.daily '$cron_suffix'" 73 # es ist schwer zu pruefen, ob die Datei sich geaendert hat - also einfach neustarten
74 /etc/init.d/cron restart
78 set_timezone_berlin() {
79 # "zonename" ist bereits gesetzt? Wert beibehalten ... 80 [ -n
"$(uci_get "system.@system[0].zonename
")" ] &&
return 0
81 # Zone und Verschiebung setzen 82 uci
set "system.@system[0].zonename=Europe/Berlin" 83 uci
set "system.@system[0].timezone=CET-1CEST,M3.5.0,M10.5.0/3" 88 enable_firewall_reload_trigger() {
89 local script_path=
"/usr/lib/opennet/events/on-firewall-reload" 91 apply_changes firewall
95 enable_default_modules() {
97 [ -n
"$(uci_get "on-core.modules
")" ] &&
return 0
98 # prepare the uci settings for modules 100 for module in $DEFAULT_ENABLED_PACKAGES;
do 111 enable_firewall_reload_trigger
112 enable_default_modules
enable_on_module(module)
Aktiviere ein Opennet-Modul.
create_uci_section_if_missing()
Prüfe, ob eine definierte UCI-Sektion existiert und lege sie andernfalls an.