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/