From 9b17a8dcbc1f94eb117a37b3b24ca9dae0d2d588 Mon Sep 17 00:00:00 2001
From: qixiaoning <jony.kee@outlook.com>
Date: 星期三, 29 十月 2025 09:40:54 +0800
Subject: [PATCH] 摄像机相关接口跳转,推送配置修改,系统权限菜单修改

---
 system-service/sys/sysinfo.go |   39 +++++++++++++++++++++++++++++----------
 1 files changed, 29 insertions(+), 10 deletions(-)

diff --git a/system-service/sys/sysinfo.go b/system-service/sys/sysinfo.go
index e5ede0e..c3504ae 100644
--- a/system-service/sys/sysinfo.go
+++ b/system-service/sys/sysinfo.go
@@ -1,6 +1,7 @@
 package sys
 
 import (
+	"errors"
 	"fmt"
 	"io/ioutil"
 	"os"
@@ -12,7 +13,6 @@
 	"vamicro/extend/util"
 
 	"basic.com/valib/gogpu.git"
-	"basic.com/valib/logger.git"
 	"github.com/shirou/gopsutil/cpu"
 	"github.com/shirou/gopsutil/disk"
 	"github.com/shirou/gopsutil/host"
@@ -81,26 +81,45 @@
 	return util.Struct2Map(Stat)
 }
 
+func GetGpu(key string) (vGpu []string, err error) {
+	resultMsg, e := util.ExeCmd("dlsmi --query-gpu=" + key)
+	if e != nil {
+		return vGpu, errors.New("鏃犲彲鐢℅PU!璇锋鏌ユ槸鍚︽甯稿畨鏄惧崱鍙婃樉鍗¢┍鍔紝閫氳繃dlsmi鏌ヨ鐘舵��")
+	}
+	vGpu = strings.Split(string(resultMsg), "\n")
+	if len(vGpu) == 0 {
+		return vGpu, errors.New("鏃犲彲鐢℅PU!璇锋鏌ユ槸鍚︽甯稿畨鏄惧崱鍙婃樉鍗¢┍鍔紝閫氳繃dlsmi鏌ヨ鐘舵��")
+	}
+	return vGpu, nil
+}
+
 func GetDeviceInfo() map[string]interface{} {
 	cmd := exec.Command("/bin/sh", "-c", "lsblk -d | grep -v part | grep -v SWAP | grep -v M | grep disk | awk '{printf $4\" \"}'")
 	disks, _ := cmd.Output()
 	cpu, _ := cpu.Info()
-	gpuInfo, err := gogpu.Info()
-	var gpuMemTotal int64
-	if err == nil {
-		for _, gpu := range gpuInfo.Info {
-			gpuMemTotal = gpuMemTotal + gpu.GpuMemoryTotal
+
+	var gpuStr string
+
+	//鑾峰彇鍨嬪彿
+	gpuName, _ := GetGpu("name")
+	if len(gpuName) > 0 {
+		var gpuArr []string = []string{}
+		gpuTotal, _ := GetGpu("memory.total")
+		for i, name := range gpuName {
+			//i>0璺宠繃header
+			if i > 0 && len(name) > 0 {
+				gpuArr = append(gpuArr, fmt.Sprintf("%s %s", name, gpuTotal[i]))
+			}
 		}
-	} else {
-		logger.Debug("gpu error " + err.Error())
+		gpuStr = strings.Join(gpuArr, ",")
 	}
-	gpu := gpuMemTotal
+
 	mem, _ := mem.VirtualMemory()
 	host, _ := host.Info()
 
 	return util.Struct2Map(map[string]interface{}{
 		"cpu":  cpu,
-		"gpu":  gpu,
+		"gpu":  gpuStr,
 		"mem":  mem,
 		"host": host,
 		"disk": string(disks),

--
Gitblit v1.8.0