Pour buildroot tous vos scripts doivent être placés dans $path_to_buildroot/output/target/etc/init.d
avant de construire l'image.Dans mon cas, ce répertoire contient rcS
et quelques scripts nommés S[0-99]script_name. Vous pouvez donc créer votre propre script start\stop.
RCS :
#!/bin/sh
# Start all init scripts in /etc/init.d
# executing them in numerical order.
#
for i in /etc/init.d/S??* ;do
# Ignore dangling symlinks (if any).
[ ! -f "$i" ] && continue
case "$i" in
*.sh)
# Source shell script for speed.
(
trap - INT QUIT TSTP
set start
. $i
)
;;
*)
# No sh extension, so fork subprocess.
$i start
;;
esac
done
et par exemple S40network :
#!/bin/sh
#
# Start the network....
#
case "$1" in
start)
echo "Starting network..."
/sbin/ifup -a
;;
stop)
echo -n "Stopping network..."
/sbin/ifdown -a
;;
restart|reload)
"$0" stop
"$0" start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
exit $?
C'est une mauvaise idée de changer votre fs dans le dossier "target". C'est parce que les changements dans output/target/
ne survivez pas au make clean
commande.
Dans le manuel de buildroot décrit comment le faire correctement
Vous devez créer un répertoire quelque part qui recouvre partiellement le système de fichiers. Par exemple, vous pouvez créer le répertoire "votre superposition" dans le répertoire buildroot où vous créez cette structure
your-overlay/etc/init.d/<any_file>
Ensuite, vous devez définir le chemin vers cette superposition dans defconfig
System configuration > Root filesystem overlay directories
(ou trouvez BR2_ROOTFS_OVERLAY)
En outre, le chemin recommandé pour cette superposition est board/<company>/<boardname>/rootfs-overlay