wiki/en/sdcardautoconfig.md

2.5 KiB

OpenIPC Wiki

Table of Content

SD Card Autoconfig

OpenIPC can be configured automatically from an SD card. This method is particularly useful for WiFi-only IP cameras equipped with and SD card slot and where UART is not acessible.

Format an SD card with at least one FAT/FAT32/vFAT partition.

Attention! All existing data on the SD card will be deleted!

On Windows:

diskpart

list disk
select disk <number corresponding to your SD card>
clean
create partition primary
format quick fs=FAT32
list partition
active
assign letter=<letter>

Create automount.sh file in the root directory of the card.

echo "#!/bin/sh" > <sdcard-path>/automount.sh

Add files to inject into firmware.

Create a folder named autoconfig at the root of your SD card and place there files that should be copied inside OpenIPC firmware with their paths following this pattern: <sdcard-path>/autoconfig/<target-path>/file => /<target-path>/file.

E.g. <sdcard-path>/autoconfig/etc/init.d/interfaces will be copied to /etc/init.d/interfaces.

Add this code to automount.sh to handle the copying:

if [ -d "${destdir}/$1/autoconfig" ]; then
  cp -afv ${destdir}/$1/autoconfig/* / | logger -s -p daemon.info -t autoconfig
fi

Add a one-time configuration script.

Create autoconfig.sh file at the root of the SD card. This script will be run once, then removed.

Add this code to automount.sh to handle the one-time execution:

if [ -f "${destdir}/$1/autoconfig.sh" ]; then
  (sh ${destdir}/$1/autoconfig.sh; rm -f ${destdir}/$1/autoconfig.sh) | logger -s -p daemon.info -t autoconfig
fi

Add a permanent script to run on every start

Create autostart.sh file at the root of the SD card. This script will run on every start.

Add this code to automount.sh to hande the execution on every start:

if [ -f "${destdir}/$1/autostart.sh" ]; then
  sh ${destdir}/$1/autostart.sh | logger -s -p daemon.info -t autostart
fi

Your resulting automount.sh file should look like this:

#!/bin/sh

if [ -d "${destdir}/$1/autoconfig" ]; then
  cp -afv ${destdir}/$1/autoconfig/* / | logger -s -p daemon.info -t autoconfig
fi

if [ -f "${destdir}/$1/autoconfig.sh" ]; then
  (sh ${destdir}/$1/autoconfig.sh; rm -f ${destdir}/$1/autoconfig.sh) | logger -s -p daemon.info -t autoconfig
fi

if [ -f "${destdir}/$1/autostart.sh" ]; then
  sh ${destdir}/$1/autostart.sh | logger -s -p daemon.info -t autostart
fi

Unmount the card, eject if from PC and insert it into the IPC camera. Reboot the camera.