niujiuru пре 1 месец
родитељ
комит
0e3c6c5d10
4 измењених фајлова са 58 додато и 14 уклоњено
  1. 16 13
      Makefile
  2. 14 0
      myir-mkupdate-sdcard/build.sh
  3. 25 0
      networkd.service/main.go
  4. 3 1
      sshd-mqtt-bridge.service/readme.txt

+ 16 - 13
Makefile

@@ -33,7 +33,7 @@ D_LIBS2 += -L$(RTU_LINUX_MODULES_PATH)/dh_takephoto/lib/armv7hf -lMVSDK -liImage
 D_LIBS2 += -L$(RTU_LINUX_MODULES_PATH)/dh_takephoto/lib/armv7hf/GenICam/bin -lGCBase_gcc483_v3_0 -lGenApi_gcc483_v3_0 -lLog_gcc483_v3_0 -llog4cpp_gcc483_v3_0 -lMathParser_gcc483_v3_0 -lNodeMapData_gcc483_v3_0 -lXmlParser_gcc483_v3_0
 
 # 编译的目标
-all: networkd timesyncd gnss
+all: networkd timesyncd gnss sshd-mqtt-bridge
 
 # 可执行程序
 networkd : LK_LIBS = $(S_LIBS0) $(S_LIBS1) $(D_LIBS0)
@@ -41,45 +41,48 @@ networkd : libswapi.a libair720u.a libec200u.a
 	mkdir -p ./build
 	$(GO) mod tidy
 	$(SETGO_ENV) CGO_LDFLAGS="$(LK_LIBS)" $(GO_BUILD) $(GO_FLAGS) -o $@  ./networkd.service/*.go
-	cp -rf $@ ./build/ && cp -rf $@ ./build/$(basename $@)_$(DATE)$(suffix $@) && rm -rf $@
+	cp -f $@ ./build/ && rm -f $@
 
 timesyncd : LK_LIBS = $(S_LIBS0) $(S_LIBS1) $(D_LIBS0)
 timesyncd : libswapi.a libair720u.a libec200u.a
 	mkdir -p ./build
 	$(GO) mod tidy
 	$(SETGO_ENV) CGO_LDFLAGS="$(LK_LIBS)" $(GO_BUILD) $(GO_FLAGS) -o $@ ./timesyncd.service/*.go
-	cp -rf $@ ./build/ && cp -rf $@ ./build/$(basename $@)_$(DATE)$(suffix $@) && rm -rf $@
+	cp -f $@ ./build/ && rm -f $@
 
 gnss : LK_LIBS = $(S_LIBS0) $(S_LIBS3) $(D_LIBS0)
 gnss : libswapi.a libair530z.a
 	mkdir -p ./build
 	$(GO) mod tidy
 	$(SETGO_ENV) CGO_LDFLAGS="$(LK_LIBS)" $(GO_BUILD) $(GO_FLAGS) -o $@ ./gnss.service/*.go
-	cp -rf $@ ./build/ && cp -rf $@ ./build/$(basename $@)_$(DATE)$(suffix $@) && rm -rf $@
+	cp -f $@ ./build/ && rm -f $@
+
+sshd-mqtt-bridge :
+	mkdir -p ./build
+	$(MAKE) -C $(RTU_LINUX_MODULES_PATH) yfkj_sshd.out target=armv7hf
+	cp -f $(RTU_LINUX_MODULES_PATH)/yfkj_sshd.out ./build/$@
 
 # 静态库模块
 libswapi.a :
-	$(MAKE) -C $(RTU_LINUX_MODULES_PATH)/swapi        target=armv7hf $@
+	$(MAKE) -C $(RTU_LINUX_MODULES_PATH)/swapi         target=armv7hf $@
 
 libec200u.a :
-	$(MAKE) -C $(RTU_LINUX_MODULES_PATH)/ec200u       target=armv7hf $@
+	$(MAKE) -C $(RTU_LINUX_MODULES_PATH)/ec200u        target=armv7hf $@
 
 libair720u.a :
-	$(MAKE) -C $(RTU_LINUX_MODULES_PATH)/air720u      target=armv7hf $@
+	$(MAKE) -C $(RTU_LINUX_MODULES_PATH)/air720u       target=armv7hf $@
 
 libair530z.a :
-	$(MAKE) -C $(RTU_LINUX_MODULES_PATH)/air530z      target=armv7hf $@
+	$(MAKE) -C $(RTU_LINUX_MODULES_PATH)/air530z       target=armv7hf $@
 
 libhk_takephoto.a :
-	$(MAKE) -C $(RTU_LINUX_MODULES_PATH)/hk_takephoto target=armv7hf $@
+	$(MAKE) -C $(RTU_LINUX_MODULES_PATH)/hk_takephoto  target=armv7hf $@
 
 libdh_takephoto.a :
-	$(MAKE) -C $(RTU_LINUX_MODULES_PATH)/dh_takephoto target=armv7hf $@
+	$(MAKE) -C $(RTU_LINUX_MODULES_PATH)/dh_takephoto  target=armv7hf $@
 
 # 编译的清理
 clean:
-	@for m in swapi hk_takephoto dh_takephoto ec200u air720u air530z; do \
-		$(MAKE) -C $(RTU_LINUX_MODULES_PATH)/$$m clean || true; \
-	done
+	$(MAKE) -C $(RTU_LINUX_MODULES_PATH) clean
 
 	rm -rf build

+ 14 - 0
myir-mkupdate-sdcard/build.sh

@@ -36,6 +36,20 @@ cp -f "$MYBINS_DIR/networkd" "$ROOTFS_OPT/networkd.service/a"
 mkdir -p "$ROOTFS_OPT/timesyncd.service/a"
 cp -f "$MYBINS_DIR/timesyncd" "$ROOTFS_OPT/timesyncd.service/a"
 
+[ -f "$MYBINS_DIR/gnss" ] || {
+    echo "❌ missing: $MYBINS_DIR/gnss"
+    exit 1
+}
+mkdir -p "$ROOTFS_OPT/gnss.service/a"
+cp -f "$MYBINS_DIR/gnss" "$ROOTFS_OPT/gnss.service/a"
+
+[ -f "$MYBINS_DIR/sshd-mqtt-bridge" ] || {
+    echo "❌ missing: $MYBINS_DIR/sshd-mqtt-bridge"
+    exit 1
+}
+mkdir -p "$ROOTFS_OPT/sshd-mqtt-bridge.service/a"
+cp -f "$MYBINS_DIR/sshd-mqtt-bridge" "$ROOTFS_OPT/sshd-mqtt-bridge.service/a"
+
 echo "4, 正在压缩 rootfs 根文件系统..."
 
 TMP_ROOTFS="${ROOTFS_TAR}.tmp"

+ 25 - 0
networkd.service/main.go

@@ -7,6 +7,7 @@ import (
 	"fmt"
 	"net/http"
 	"os"
+	"strings"
 	"time"
 
 	"rtu_linux_services/servicelib"
@@ -48,6 +49,8 @@ func (p *program) Start(s service.Service) error {
 		return errors.New("modem init failed")
 	}
 
+	go writeDeviceIMEI() // 异步获取IMEI号并写入文件, 用于YFKJ SSHD远程运维服务的设备标识
+
 	netmgrd.SetTimeSyncEnabled(false) // -> "timesyncd.service"
 	netmgrd.ModuleInit()
 
@@ -176,3 +179,25 @@ func main() {
 		os.Exit(1)
 	}
 }
+
+func writeDeviceIMEI() {
+	const path = "/var/device_imei.txt"
+	tmp := path + ".tmp"
+
+	for {
+		imei := strings.TrimSpace(netmgrd.GetIMEI())
+		if imei == "" || imei == netmgrd.ErrUnknownModemTypeMsg {
+			time.Sleep(time.Second)
+			continue
+		}
+
+		if old, err := os.ReadFile(path); err == nil && strings.TrimSpace(string(old)) == imei {
+			return
+		}
+
+		if os.WriteFile(tmp, []byte(imei+"\n"), 0644) == nil {
+			_ = os.Rename(tmp, path)
+		}
+		return
+	}
+}

+ 3 - 1
sshd-mqtt-bridge.service/readme.txt

@@ -1 +1,3 @@
-编译:“rtu_linux_modules/yfkj_sshd.out”,重命名为:“sshd” + 配合"yfkj-sshd.service"服务配置文件 使用即可
+1,编译:“rtu_linux_modules/yfkj_sshd.out”;
+2,重命名为:“sshd-mqtt-bridge”;
+3,配上"yfkj-sshd.service"服务配置文件 使用。