diff --git a/package/utils/ugps/Makefile b/package/utils/ugps/Makefile
index 8744300c50730b21825449dc81c1e5c1d4c53a4d..1dad863fd8f85e6effa2918d5caad45b5251a45d 100644
--- a/package/utils/ugps/Makefile
+++ b/package/utils/ugps/Makefile
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ugps
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE_URL=$(LEDE_GIT)/project/ugps.git
 PKG_SOURCE_PROTO:=git
diff --git a/package/utils/ugps/files/ugps.init b/package/utils/ugps/files/ugps.init
index a7a88c225827dc31424d1f729c4700ef0925bdf1..157043cc283ee1be77a0f6393e02baf89b64bd3b 100644
--- a/package/utils/ugps/files/ugps.init
+++ b/package/utils/ugps/files/ugps.init
@@ -14,11 +14,15 @@ start_service() {
 	local tty="$(uci get gps.@gps[-1].tty)"
 	local atime="$(uci get gps.@gps[-1].adjust_time)"
 
-	[ -d "/sys/class/tty/$tty/" ] || return
+	[ -c "$tty" ] || {
+		tty="/dev/$tty"
+		[ -c "$tty" ] || return
+	}
 
 	procd_open_instance
-	procd_set_param command "$PROG" "/dev/$tty"
+	procd_set_param command "$PROG"
 	[ "$atime" -eq 0 ] || procd_append_param command "-a"
+	procd_append_param command "$tty"
 	procd_set_param respawn
 	procd_close_instance
 }