Para buildroot, todos sus scripts deben colocarse en $path_to_buildroot/output/target/etc/init.d
antes de construir la imagen. En mi caso, este directorio contiene rcS
y algunos scripts llamados S[0-99]script_name. Para que pueda crear su propia secuencia de comandos 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
y por ejemplo 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 $?
Es mala idea cambiar su fs en la carpeta "objetivo". Esto se debe a cambios en output/target/
no sobrevivas al make clean
comando.
En el manual de buildroot se describe cómo hacerlo correctamente
Debe crear un directorio en algún lugar que se superponga parcialmente al sistema de archivos. Por ejemplo, puede crear el directorio "su superposición" en el directorio buildroot donde crea esta estructura
your-overlay/etc/init.d/<any_file>
Luego debe establecer la ruta a esta superposición en defconfig
System configuration > Root filesystem overlay directories
(o busque BR2_ROOTFS_OVERLAY)
Además, la ruta recomendada para esta superposición es board/<company>/<boardname>/rootfs-overlay