Set unique hostname at boot
Set hostname to rp-xxxxxx based on the last 6 digits of the MAC address. This is the same as used by the official Red Pitaya software.
This commit is contained in:
		
							parent
							
								
									762097017d
								
							
						
					
					
						commit
						eb544d2c93
					
				|  | @ -0,0 +1,45 @@ | |||
| #!/bin/sh | ||||
| # | ||||
| # Set unique host name rp-xxxxxx based on MAC address. | ||||
| # | ||||
| 
 | ||||
| start() { | ||||
| 
 | ||||
|     # Read "ethaddr" variable from U-Boot environment in EEPROM. | ||||
|     # | ||||
|     # Environment starts at address 0x1800 and is 1024 bytes long. | ||||
|     # The environment consists of "key=value" pairs, separated by 0x00 bytes. | ||||
|     # | ||||
|     ethaddr_pair="$( dd if=/sys/bus/i2c/devices/0-0050/eeprom bs=1k skip=6 count=1 status=none | tr '\000' '\n' | grep ^ethaddr= )" | ||||
| 
 | ||||
|     if [ -z "${ethaddr_pair}" ]; then | ||||
|         echo "ERROR: ethaddr not found in EEPROM enviroment" >&2 | ||||
|         exit 1 | ||||
|     fi | ||||
| 
 | ||||
|     ethaddr="${ethaddr_pair#ethaddr=}" | ||||
| 
 | ||||
|     suffix="$( echo $ethaddr | cut -d: -f 4- | tr -d : | tr ABCEDF abcdef )" | ||||
|     hostname="rp-${suffix}" | ||||
| 
 | ||||
|     echo "Setting hostname ${hostname}" | ||||
| 
 | ||||
|     echo $hostname > /etc/hostname | ||||
|     /bin/hostname -F /etc/hostname | ||||
| 
 | ||||
|     grep -v '^127\.0\.1\.1' /etc/hosts > /etc/hosts.new | ||||
|     echo "127.0.1.1 $hostname" >>/etc/hosts.new | ||||
|     mv /etc/hosts.new /etc/hosts | ||||
| } | ||||
| 
 | ||||
| case "$1" in | ||||
|   start) | ||||
|     start | ||||
|     ;; | ||||
|   stop|restart|reload) | ||||
|     ;; | ||||
|   *) | ||||
|     echo "Usage: $0 start" | ||||
|     exit 1 | ||||
| esac | ||||
| 
 | ||||
|  | @ -53,7 +53,7 @@ sync_config() { | |||
| 	# Atomically replace the old file on the SD card. | ||||
| 	mv ${CONFIG_MOUNTPOINT}/${fname}.new ${CONFIG_MOUNTPOINT}/${fname} | ||||
| 
 | ||||
| 	# Replace the old file in te RAM filesystem. | ||||
| 	# Replace the old file in the RAM filesystem. | ||||
| 	mv ${CONFIG_DIR}/${fname}.new ${CONFIG_DIR}/${fname} | ||||
|     done | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue