mirror of https://github.com/OpenIPC/firmware.git
				
				
				
			added simple fake-hwclock
							parent
							
								
									38020498a5
								
							
						
					
					
						commit
						bc40af0dfd
					
				|  | @ -13,6 +13,7 @@ source "$BR2_EXTERNAL_GENERAL_PATH/package/divinus/Config.in" | |||
| source "$BR2_EXTERNAL_GENERAL_PATH/package/dropbear-openipc/Config.in" | ||||
| source "$BR2_EXTERNAL_GENERAL_PATH/package/exfat-openipc/Config.in" | ||||
| source "$BR2_EXTERNAL_GENERAL_PATH/package/f2fs-tools-openipc/Config.in" | ||||
| source "$BR2_EXTERNAL_GENERAL_PATH/package/fake-hwclock-openipc/Config.in" | ||||
| source "$BR2_EXTERNAL_GENERAL_PATH/package/fdk-aac-openipc/Config.in" | ||||
| source "$BR2_EXTERNAL_GENERAL_PATH/package/ffmpeg-openipc/Config.in" | ||||
| source "$BR2_EXTERNAL_GENERAL_PATH/package/fullhan-osdrv-fh8852v100/Config.in" | ||||
|  |  | |||
|  | @ -0,0 +1,5 @@ | |||
| config BR2_PACKAGE_FAKE_HWCLOCK_OPENIPC | ||||
| 	bool "fake-hwclock-openipc" | ||||
| 	help | ||||
| 	  Restores system time from a file on boot, saves the current time, or periodically updates a timestamp file to maintain time on systems without a hardware RTC. | ||||
| 
 | ||||
|  | @ -0,0 +1,15 @@ | |||
| ################################################################################
 | ||||
| #
 | ||||
| # fake-hwclock-openipc
 | ||||
| #
 | ||||
| ################################################################################
 | ||||
| 
 | ||||
| define FAKE_HWCLOCK_OPENIPC_INSTALL_TARGET_CMDS | ||||
| 	$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/init.d | ||||
| 	$(INSTALL) -m 755 -t $(TARGET_DIR)/etc/init.d $(FAKE_HWCLOCK_OPENIPC_PKGDIR)/files/S39fakehwclock | ||||
| 
 | ||||
| 	$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin | ||||
| 	$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(FAKE_HWCLOCK_OPENIPC_PKGDIR)/files/fake-hwclock | ||||
| endef | ||||
| 
 | ||||
| $(eval $(generic-package)) | ||||
|  | @ -0,0 +1,36 @@ | |||
| #!/bin/sh | ||||
| 
 | ||||
| DAEMON="fake-hwclock" | ||||
| PIDFILE="/var/run/$DAEMON.pid" | ||||
| DAEMON_ARGS="5 /etc/fake-hwclock.data" | ||||
| 
 | ||||
| case "$1" in | ||||
| 	start) | ||||
| 		echo -n "Starting $DAEMON: " | ||||
| 		fake-hwclock load /etc/fake-hwclock.data | ||||
| 		# Save timestamp every 5 seconds | ||||
| 		start-stop-daemon -b -m -S -q -p "$PIDFILE" -x "$DAEMON" -- $DAEMON_ARGS | ||||
| 		if [ $? -eq 0 ]; then | ||||
| 			echo "OK" | ||||
| 		else | ||||
| 			echo "FAIL" | ||||
| 		fi | ||||
| 		;; | ||||
| 
 | ||||
| 	stop) | ||||
| 		echo -n "Stopping $DAEMON: " | ||||
| 		start-stop-daemon -K -q -p "$PIDFILE" | ||||
| 		if [ $? -eq 0 ]; then | ||||
| 			rm -f "$PIDFILE" | ||||
| 			fake-hwclock save /etc/fake-hwclock.data | ||||
| 			echo "OK" | ||||
| 		else | ||||
| 			echo "FAIL" | ||||
| 		fi | ||||
| 		;; | ||||
| 
 | ||||
| 	*) | ||||
| 		echo "Usage: $0 {start|stop}" | ||||
| 		exit 1 | ||||
| 		;; | ||||
| esac | ||||
|  | @ -0,0 +1,27 @@ | |||
| #!/bin/sh | ||||
| 
 | ||||
| if [[ $# -lt 2 ]]; then | ||||
|     exit 1 | ||||
| fi | ||||
| 
 | ||||
| MODE="$1" | ||||
| TIMESTAMP_FILE="$2" | ||||
| 
 | ||||
| mkdir -p "$(dirname "$TIMESTAMP_FILE")" | ||||
| 
 | ||||
| if [[ "$MODE" == "load" ]]; then | ||||
|     if [[ -f "$TIMESTAMP_FILE" ]]; then | ||||
|         LAST_TS=$(cat "$TIMESTAMP_FILE") | ||||
|         if [[ -n "$LAST_TS" ]]; then | ||||
|             echo "fake-hwclock: Setting time to $(date -d @"$LAST_TS")" | ||||
|         fi | ||||
|     fi | ||||
| elif [[ "$MODE" == "save" ]]; then | ||||
|     date +%s > "$TIMESTAMP_FILE" | ||||
| elif [[ "$MODE" =~ ^[0-9]+$ ]]; then | ||||
|     INTERVAL="$MODE" | ||||
|     while true; do | ||||
|         date +%s > "$TIMESTAMP_FILE" | ||||
|         sleep "$INTERVAL" | ||||
|     done | ||||
| fi | ||||
		Loading…
	
		Reference in New Issue