On mercredi 19 mars 2025 09 h 41 min 05 s CET, Toussaint OTTAVI wrote:
Pour une config complète "out of the box" sous OpenWRT, il y a donc (au moins) les deux approches ci-dessous : - soit injecter les commandes 'uci' une par une depuis un script, comme tu le fais - soit préparer un jeu de templates (fichiers texte), que l'on pousse dans /etc par FTP, et ensuite un petit script qui va juste modifier les paramètres spécifiques (ce que je fais sur le réseau radioamateur TKNet)

Il y a aussi l'approche basée sur uci-defaults :

https://openwrt.org/docs/guide-developer/uci-defaults

Qui peut être combinée avec imagebuilder :

https://openwrt.org/docs/guide-user/additional-software/imagebuilder#custom_files

Je ne sais pas dans quelle mesure c'est applicable pour teltonika, mais pour un vrai OpenWrt, ca permet de flasher direct le firmware avec sa configuration, et également de choisir (ajouter et enlever) les paquets préinstallés.

Un coup de script, et j'ai des images personnalisées pour toutes mes bornes wifi :

################################################################
#!/bin/bash

set -e -o pipefail

basedir="$PWD"

make_image() {
 name="$1"
 model="$2"
 cowsay "Building image for $name ($model)"

 rm -fr "$basedir/tmp/"
 mkdir -p "$basedir/tmp/etc/uci-defaults"
cp -vr "$basedir/files/etc/crontabs" "$basedir/tmp/etc/crontabs/" cp -vr "$basedir/files/root" "$basedir/tmp/" cp -vr "$basedir/files/etc/uci-defaults/"6[02468]* "$basedir/tmp/etc/uci-defaults/" cp -vr "$basedir/files/etc/uci-defaults/"6[13579]*_"$name" "$basedir/tmp/etc/uci-defaults/" cp -vr "$basedir/files/etc/uci-defaults/"7[02468]* "$basedir/tmp/etc/uci-defaults/" cp -vr "$basedir/files/etc/uci-defaults/"7[13579]*_"$name" "$basedir/tmp/etc/uci-defaults/"

 packages_files=("$basedir/packages.list")
 if [ -e "$basedir/packages_$name.list" ]; then
   packages_files+=("$basedir/packages_$name.list")
 fi

 make image \
   BIN_DIR="$basedir/out/$name/" \
   PROFILE="$model" \
   EXTRA_IMAGE_NAME="$name" \
   DISABLED_SERVICES="dnsmasq firewall odhcpd uhttpd" \
PACKAGES="$(grep --no-filename -v '^#' "${packages_files[@]}" | xargs)" \
   FILES="$basedir/tmp/"
}

pushd imagebuilder

make_image "wrt1"    "tplink_archer-c7-v2"
make_image "wrt2"    "tplink_archer-c7-v5"
# ...

popd

################################################################

Exemple de config :

$ cat files/etc/uci-defaults/60_system
#!/bin/sh
set -e

uci batch << EOI
set system.@system[0].zonename='Europe/Paris'
set system.@system[0].timezone='CET-1CEST,M3.5.0,M10.5.0/3'

set system.@system[0].conloglevel='8'
set system.@system[0].cronloglevel='5'

set system.@system[0].log_size='128'
set system.@system[0].log_proto='tcp'
set system.@system[0].log_ip='10.x.x.x'
set system.@system[0].log_port='514'
set system.@system[0].log_trailer_null=0


delete system.ntp.server
add_list system.ntp.server='10.x.x.x'
add_list system.ntp.server='10.x.x.x'
set system.ntp.use_dhcp='0'

commit
EOI


$ cat packages.list
dropbear
logd
urandom-seed
urngd

-ath10k-firmware-qca988x-ct
-ath10k-firmware-qca988x-ct-full-htt
-kmod-ath10k-ct
kmod-ath10k
ath10k-firmware-qca988x
kmod-ath9k

# no ppp
-ppp
-ppp-mod-pppoe
-kmod-slhc
-kmod-ppp
-kmod-pppox
-kmod-pppoe

# ...



---------------------------
Liste de diffusion du FRnOG
http://www.frnog.org/

Répondre à