summaryrefslogtreecommitdiff
path: root/nodes/core_teres1.yml
blob: ce3dd313fc29da34f98af2e46bd939ff33d31206 (plain)
  1. # minimal system on Teres-I laptop
  2. # Targets: Debian 9 (Stretch) or newer
  3. # Depends: boxer-data (>= 10.6.4)
  4. # TODO: Drop flash-kernel when (U-boot and) flash-kernel supports Teres-I
  5. classes:
  6.   - Console.setup
  7.   - Admin.apt.auto
  8.   - Admin.etc.functions
  9.   - Admin.tools
  10.   - Service.ssh
  11. #  - Hardware.laptop.olimex.teres1 (Limits targets to Debian 10+)
  12.   - hw.soc.allwinner.a64
  13.   - Hardware.net.bluetooth
  14.   - Hardware.nic.realtek
  15.   - hw.firmware
  16.   - Hardware.bootloader.u-boot.sunxi
  17.   - Hardware.harden
  18.   - Framework.pkg.apt.autoremove-suggests
  19.   - Framework.pkg.apt.avoid-removals
  20.   - Framework.pkg.apt.proxy.reset
  21.   - Framework.pkg.apt.source.reset
  22. parameters:
  23.   doc:
  24.     gateway:
  25.       pkg:
  26.         - include network management service NetworkManager
  27.         - include Network Time (NTPservice Chrony
  28.       pkg-nonfree:
  29.         - Include non-free firmware for Realtek devices (needed for wifi)
  30.       tweak:
  31.         - reset root account rcfiles from skeleton
  32.         - tell bootloader helper flash-kernel how to detect Teres-I
  33.         - run flash-kernel explicitly for Teres-I
  34.         - limit video buffers (freeing memory for general use)
  35.         - (re)set ethernet devices to use dhcpand mDNS
  36.         - enable Domain name (DNSservice systemd-resolved
  37.         - use Cloudflare (not Googlefallback DNS resolvers
  38.         - enable multicast DNS
  39.         - use static IPs as fallback with NTP to avoid DNSSEC deadlock
  40.   pkg:
  41.     - chrony
  42.     - iproute2
  43.     - iw
  44.     - wpasupplicant
  45.     - modemmanager
  46.     - sudo
  47.     - whiptail
  48.   pkg-nonfree:
  49.     - firmware-realtek
  50.   pkg-avoid:
  51.     - apparmor
  52.     - shared-mime-info
  53.     - xauth
  54.   tweak:
  55.     - >
  56.       files=".bash_logout .bashrc .profile";\
  57.        for file in $files; do \
  58.         cp -f "/target/etc/skel/$file" "/target/root/$file";\
  59.        done;\
  60.        echo '' >> /target/root/.profile;\
  61.        echo 'mesg n || true' >> /target/root/.profile
  62.     - >
  63.       file=/target/etc/flash-kernel/db;\
  64.        _backup "$file";\
  65.        echo '' "$file";\
  66.        echo 'Machine: Olimex A64 Teres-I' >> "$file";\
  67.        echo 'DTB-Id: allwinner/sun50i-a64-teres-i.dtb' >> "$file";\
  68.        echo 'Boot-Script-Path: /boot/boot.scr' >> "$file";\
  69.        echo 'U-Boot-Script-Name: bootscr.uboot-generic' >> "$file"
  70.     - >
  71.        FK_MACHINE='Olimex A64 Teres-I' flash-kernel
  72.     - >
  73.       _setappendvar /target/etc/default/flash-kernel \
  74.        LINUX_KERNEL_CMDLINE_DEFAULTS \
  75.        '"sunxi_ve_mem_reserve=0 sunxi_g2d_mem_reserve=0 sunxi_fb_mem_reserve=16"'
  76.     - >
  77.       file=/target/etc/systemd/network/90-dhcp.network;\
  78.        _backup "$file";\
  79.        echo '[Match]' "$file";\
  80.        echo 'Name=eth* en* wl*' >> "$file";\
  81.        echo '' >> "$file";\
  82.        echo '[Network]' >> "$file";\
  83.        echo 'DHCP=yes' >> "$file"
  84.     - systemctl enable systemd-networkd
  85.     - >
  86.       dir=/target/etc/systemd/resolved.conf.d;\
  87.        mkdir -p "$dir";\
  88.         file="$dir/local.conf";\
  89.         echo '[Resolve]' "$file";\
  90.         echo 'FallbackDNS=1.1.1.1 1.0.0.1 2606:4700:4700::1111,2606:4700:4700::1001' >> "$file";\
  91.         echo 'MulticastDNS=yes' >> "$file"
  92.     - systemctl enable systemd-resolved
  93.     - >
  94.       ln -sfT ../run/systemd/resolve/stub-resolv.conf \
  95.        /target/etc/resolv.conf
  96.     - >
  97.       file=/target/etc/chrony/chrony.conf;\
  98.        _backup "$file";\
  99.        echo 'pool 2.debian.pool.ntp.org iburst' "$file";\
  100.        echo '# include static IPs (once expanded from above) to avoid DNSSEC deadlock' >> "$file";\
  101.        echo 'server 195.137.195.251 iburst' >> "$file";\
  102.        echo 'server 158.248.189.11 iburst' >> "$file";\
  103.        echo 'server 193.104.228.123 iburst' >> "$file";\
  104.        echo 'server 195.137.195.252 iburst' >> "$file";\
  105.        echo 'server 2001:ac8:37::40 iburst' >> "$file";\
  106.        echo 'server 2001:67c:28c8:12::123 iburst' >> "$file";\
  107.        echo 'server 2a00:1b70:1200:1::123 iburst' >> "$file";\
  108.        echo 'server 2001:67c:564::12 iburst' >> "$file"