Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
nrsw:usb-autorun [2015/04/01 15:49] hessnrsw:usb-autorun [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
-====== USB Autorun ====== 
-This feature can be used to automatically launch a shell script or perform a software/config update as soon as an USB storage stick has been plugged in. For authentication, a file called ''autorun.key'' must exist in the root directory of a FAT16/32 formatted stick. 
-It can be downloaded from that page and holds the SHA256 hash key of the admin password. The file can hold multiple hashes which will be processed line-by-line during authentication which can be used for setting up more systems with different admin 
-passwords. For new devices with an empty password the hash key 
-''e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'' 
-can be used. 
-The hash keys can be generated by running the command ''echo -n "<admin-password>" | sha256sum'' on a Linux system or an Internet hash key generator (search for "sha-256 hash calculator"). 
-Once authentication has succeeded, the system scans for other files in the root directory which can perform the following actions: 
-  - For running a script: ''autorun.sh'' 
-  - For a configuration update: ''cfg-<SERIALNO>.zip'' (e.g. ''cfg-00112B000815.zip''), or if not available ''cfg.zip'' 
-  - For a software update: ''sw-update.img'' 
- 
-<code - autorun.key> 
-e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 
-</code> 
- 
-<code bash autorun.sh> 
-# This autorun.sh script applies all *.cfg files that are provided on a USB stick 
-# Make sure autorun.status=1 or the router is set back to factory defaults 
-# and a file autorun.key with e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 is on the stick as well 
- 
-mountpoint="" 
-max=60 
-config="/tmp/myconfig.cfg" 
-serial=$(cli status system -s | grep SERIAL_NUMBER | cut -d= -f2 | tr -d '"') 
-for i in `seq 1 $max` 
-do 
-    echo "mount test $i of $max" 
-    mountpoint=$(mount | grep sda | cut -d" " -f3) 
-    if [ -n "$mountpoint" ]; then 
-      /usr/bin/logger -s -p "local1.notice" -t "autorun" "Stick in now mounted on $mountpoint" 
-      echo  
-      break 
-    fi 
-    sleep 1 
-done 
-# concatenate common.cfg and individual.cfg on USB stick and save it in temp file. 
-cat $mountpoint/*.cfg > $config 
-# apply the whole config in one step 
-cli update config "file:///$config" 
-/usr/bin/logger -s -p "local1.notice" -t "autorun" "config applied, dumping user config and log on stick for your reference and exiting..." 
-# write applied config nad log back on stick 
-cat /etc/config/user-config.cfg > $mountpoint/$serial.cfg 
-tail -n 100 /var/log/messages > $mountpoint/$serial.log 
-exit 0 
-</code>