Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions general/package/Config.in
Original file line number Diff line number Diff line change
Expand Up @@ -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/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"
Expand Down
5 changes: 5 additions & 0 deletions general/package/fake-hwclock/Config.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
config BR2_PACKAGE_FAKE_HWCLOCK
bool "fake-hwclock"
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.

15 changes: 15 additions & 0 deletions general/package/fake-hwclock/fake-hwclock.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
################################################################################
#
# fake-hwclock
#
################################################################################

define FAKE_HWCLOCK_INSTALL_TARGET_CMDS
$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/init.d
$(INSTALL) -m 755 -t $(TARGET_DIR)/etc/init.d $(FAKE_HWCLOCK_PKGDIR)/files/S39fakehwclock

$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/bin
$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/bin $(FAKE_HWCLOCK_PKGDIR)/files/fake-hwclock
endef

$(eval $(generic-package))
35 changes: 35 additions & 0 deletions general/package/fake-hwclock/files/S39fakehwclock
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#!/bin/sh

DAEMON="fake-hwclock"
PIDFILE="/var/run/$DAEMON.pid"
DAEMON_ARGS="5 /etc/fake-hwclock.data"

case "$1" in
start)
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
28 changes: 28 additions & 0 deletions general/package/fake-hwclock/files/fake-hwclock
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#!/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")"
date -s @"$LAST_TS" >/dev/null 2>&1
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