3# Dieses Skript wird nur ein einziges Mal nach einem Upgrade oder der Erstinstallation ausgefuehrt: 
    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) 
   13DEFAULT_ENABLED_PACKAGES=
"on-olsr2" 
   16# Die Einstellungen "use_olsrd_dns" und "use_olsrd_ntp" sind mit v0.5 hinzugekommen.
 
   17add_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) 
   30disable_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" 
   48add_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
 
   78set_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" 
   88enable_firewall_reload_trigger() {
 
   89    local script_path=
"/usr/lib/opennet/events/on-firewall-reload" 
   91    apply_changes firewall
 
   95enable_default_modules() {
 
   97    # prepare the uci settings for modules 
   99    for module in $DEFAULT_ENABLED_PACKAGES; 
do 
  105reduce_uhttpd_requests() {
 
  106    if uci show uhttpd >/dev/
null 2>&1 && [ 
"$(get_memory_size)" -le 32 ]; then
 
  107        uci set 
"uhttpd.main.max_requests=1" 
  119enable_firewall_reload_trigger
 
  120enable_default_modules
 
  121reduce_uhttpd_requests
 
save_on_modules_list()
Speichere die aktuelle Liste der installierten opennet-Module in der uci-Konfiguration.
 
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.
 
set eu grep root::etc shadow exit if command v chpasswd dev null