diff --git a/Makefile b/Makefile index 23742fc98..0bb81ffce 100644 --- a/Makefile +++ b/Makefile @@ -76,7 +76,6 @@ TEST = \ ${GOPKG_PREFIX}/system/keyevent1 \ ${GOPKG_PREFIX}/system/lang \ ${GOPKG_PREFIX}/system/power1 \ - ${GOPKG_PREFIX}/system/power_manager1 \ ${GOPKG_PREFIX}/system/resource_ctl \ ${GOPKG_PREFIX}/system/scheduler \ ${GOPKG_PREFIX}/system/swapsched1 \ diff --git a/bin/dde-system-daemon/main.go b/bin/dde-system-daemon/main.go index 30ccc3279..b34d42f5d 100644 --- a/bin/dde-system-daemon/main.go +++ b/bin/dde-system-daemon/main.go @@ -21,7 +21,6 @@ import ( _ "github.com/linuxdeepin/dde-daemon/system/keyevent1" _ "github.com/linuxdeepin/dde-daemon/system/lang" _ "github.com/linuxdeepin/dde-daemon/system/power1" - _ "github.com/linuxdeepin/dde-daemon/system/power_manager1" _ "github.com/linuxdeepin/dde-daemon/system/resource_ctl" _ "github.com/linuxdeepin/dde-daemon/system/scheduler" _ "github.com/linuxdeepin/dde-daemon/system/swapsched1" diff --git a/go.mod b/go.mod index 2c8320a8d..62f56e315 100644 --- a/go.mod +++ b/go.mod @@ -9,7 +9,7 @@ require ( github.com/godbus/dbus/v5 v5.1.0 github.com/jouyouyun/hardware v0.1.8 github.com/linuxdeepin/dde-api v0.0.0-20251010074154-51d1a75add21 - github.com/linuxdeepin/go-dbus-factory v0.0.0-20251016090126-a071e2cfa352 + github.com/linuxdeepin/go-dbus-factory v0.0.0-20251106025636-c57e2e679c9a github.com/linuxdeepin/go-gir v0.0.0-20250812023606-b28aaee32ac9 github.com/linuxdeepin/go-lib v0.0.0-20251103025305-67a8f34eebc3 github.com/linuxdeepin/go-x11-client v0.0.0-20240415051504-c8e43d028ff9 diff --git a/go.sum b/go.sum index 854503504..bdc15f85c 100644 --- a/go.sum +++ b/go.sum @@ -30,8 +30,8 @@ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/linuxdeepin/dde-api v0.0.0-20251010074154-51d1a75add21 h1:djcA0sDYOGMam+3PXLvWCSWgrT/q4zYPQXvVrQTLmFc= github.com/linuxdeepin/dde-api v0.0.0-20251010074154-51d1a75add21/go.mod h1:0ZwJxZjAVBso131IbmEEBS41D5G6mtNZ3i0/csrLDMM= -github.com/linuxdeepin/go-dbus-factory v0.0.0-20251016090126-a071e2cfa352 h1:MaDDdeUL7WfbJb3yR6SUbptaII8IbxYFJc2VSNMqTMY= -github.com/linuxdeepin/go-dbus-factory v0.0.0-20251016090126-a071e2cfa352/go.mod h1:dfpixHkqiijg3P7w5QArkMyC7+vlHcutN5R6zHIn8is= +github.com/linuxdeepin/go-dbus-factory v0.0.0-20251106025636-c57e2e679c9a h1:pUnReu+BGSsca8XtsT2YyQvMp0EOuCiEbVJK4dZBfZc= +github.com/linuxdeepin/go-dbus-factory v0.0.0-20251106025636-c57e2e679c9a/go.mod h1:dfpixHkqiijg3P7w5QArkMyC7+vlHcutN5R6zHIn8is= github.com/linuxdeepin/go-gir v0.0.0-20250812023606-b28aaee32ac9 h1:H95pXIA104lsylGPXXPm8rM+6vVsmKff7sJGGgWMu5A= github.com/linuxdeepin/go-gir v0.0.0-20250812023606-b28aaee32ac9/go.mod h1:a0tox5vepTQu5iO6rdKc4diGT+fkyXZlRROM8ULEvaI= github.com/linuxdeepin/go-lib v0.0.0-20251103025305-67a8f34eebc3 h1:r84k4eXs1xwlnIwexfndGxEQY9y1TW76ctTUfJwkxHo= diff --git a/misc/conf/org.deepin.dde.PowerManager1.conf b/misc/conf/org.deepin.dde.PowerManager1.conf deleted file mode 100644 index 5fbd238fc..000000000 --- a/misc/conf/org.deepin.dde.PowerManager1.conf +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/misc/systemd/services/system/dde-system-daemon.service b/misc/systemd/services/system/dde-system-daemon.service index ef2c322f6..f53105e6f 100644 --- a/misc/systemd/services/system/dde-system-daemon.service +++ b/misc/systemd/services/system/dde-system-daemon.service @@ -100,8 +100,6 @@ ReadWritePaths=-/var/lib/dde-daemon/display/ ReadWritePaths=-/var/lib/dde-daemon/power/ # ReadWritePaths=-/etc/tlp.d # com.deepin.daemon.SwapSchedHelper -# 需要操作cgroup -# com.deepin.daemon.PowerManager # 无读写文件 # com.deepin.daemon.Daemon # ReadWritePaths=-/etc/NetworkManager/system-connections @@ -116,7 +114,6 @@ ReadWritePaths=-/var/tmp ReadWritePaths=-/boot # com.deepin.daemon.KeyEvent # 写/proc/uos/touchpad_switch -# com.deepin.daemon.PowerManager # 无读写文件 # com.deepin.system.InputDevices # 写/proc/uos/touchpad_switch diff --git a/system/power_manager1/daemon.go b/system/power_manager1/daemon.go deleted file mode 100644 index a560a58c4..000000000 --- a/system/power_manager1/daemon.go +++ /dev/null @@ -1,62 +0,0 @@ -// SPDX-FileCopyrightText: 2018 - 2022 UnionTech Software Technology Co., Ltd. -// -// SPDX-License-Identifier: GPL-3.0-or-later - -package power_manager - -import ( - "github.com/linuxdeepin/dde-daemon/loader" - "github.com/linuxdeepin/go-lib/log" -) - -const ( - dbusServiceName = "org.deepin.dde.PowerManager1" - dbusPath = "/org/deepin/dde/PowerManager1" - dbusInterface = dbusServiceName -) - -var logger = log.NewLogger("daemon/system/powermanager") - -func init() { - loader.Register(NewDaemon(logger)) -} - -type Daemon struct { - *loader.ModuleBase - manager *Manager -} - -func NewDaemon(logger *log.Logger) *Daemon { - daemon := new(Daemon) - daemon.ModuleBase = loader.NewModuleBase("powermanager", daemon, logger) - return daemon -} - -func (d *Daemon) GetDependencies() []string { - return []string{} -} - -func (d *Daemon) Start() (err error) { - service := loader.GetService() - d.manager, err = newManager(service) - if err != nil { - return - } - - err = service.Export(dbusPath, d.manager) - if err != nil { - return - } - - err = service.RequestName(dbusServiceName) - return -} - -func (d *Daemon) Stop() error { - if d.manager == nil { - return nil - } - - d.manager = nil - return nil -} diff --git a/system/power_manager1/exported_methods_auto.go b/system/power_manager1/exported_methods_auto.go deleted file mode 100644 index b7f0d62bc..000000000 --- a/system/power_manager1/exported_methods_auto.go +++ /dev/null @@ -1,32 +0,0 @@ -// Code generated by "dbusutil-gen em -type Manager"; DO NOT EDIT. - -package power_manager - -import ( - "github.com/linuxdeepin/go-lib/dbusutil" -) - -func (v *Manager) GetExportedMethods() dbusutil.ExportedMethods { - return dbusutil.ExportedMethods{ - { - Name: "CanHibernate", - Fn: v.CanHibernate, - OutArgs: []string{"can"}, - }, - { - Name: "CanReboot", - Fn: v.CanReboot, - OutArgs: []string{"can"}, - }, - { - Name: "CanShutdown", - Fn: v.CanShutdown, - OutArgs: []string{"can"}, - }, - { - Name: "CanSuspend", - Fn: v.CanSuspend, - OutArgs: []string{"can"}, - }, - } -} diff --git a/system/power_manager1/manager.go b/system/power_manager1/manager.go deleted file mode 100644 index d0b85cba7..000000000 --- a/system/power_manager1/manager.go +++ /dev/null @@ -1,111 +0,0 @@ -// SPDX-FileCopyrightText: 2018 - 2022 UnionTech Software Technology Co., Ltd. -// -// SPDX-License-Identifier: GPL-3.0-or-later - -package power_manager - -import ( - "os" - "os/exec" - - "github.com/godbus/dbus/v5" - login1 "github.com/linuxdeepin/go-dbus-factory/system/org.freedesktop.login1" - "github.com/linuxdeepin/go-lib/dbusutil" -) - -//go:generate dbusutil-gen em -type Manager -type Manager struct { - service *dbusutil.Service - objLogin login1.Manager - - VirtualMachineName string -} - -func newManager(service *dbusutil.Service) (*Manager, error) { - m := &Manager{ - service: service, - } - err := m.init() - if err != nil { - return nil, err - } - - name, err := detectVirtualMachine() - if err != nil { - logger.Warning(err) - } - - m.setPropVirtualMachineName(name) - - return m, nil -} - -func (*Manager) GetInterfaceName() string { - return dbusInterface -} - -func (m *Manager) init() error { - sysBus, err := dbus.SystemBus() - if err != nil { - logger.Warning(err) - return err - } - - m.objLogin = login1.NewManager(sysBus) - return nil -} - -func (m *Manager) CanShutdown() (can bool, busErr *dbus.Error) { - str, _ := m.objLogin.CanPowerOff(0) - return str == "yes", nil -} - -func (m *Manager) CanReboot() (can bool, busErr *dbus.Error) { - str, _ := m.objLogin.CanReboot(0) - return str == "yes", nil -} - -func (m *Manager) CanSuspend() (can bool, busErr *dbus.Error) { - // 虚拟机屏蔽待机 - if m.VirtualMachineName != "" { - return false, nil - } - _, err := os.Stat("/sys/power/mem_sleep") - if os.IsNotExist(err) { - return false, nil - } - - str, _ := m.objLogin.CanSuspend(0) - return str == "yes", nil -} - -func (m *Manager) CanHibernate() (can bool, busErr *dbus.Error) { - // 虚拟机屏蔽休眠 - if m.VirtualMachineName != "" { - return false, nil - } - str, _ := m.objLogin.CanHibernate(0) - return str == "yes", nil -} - -var autoConfigTargets = []string{ - "suspend.target", - "sleep.target", - "suspend-then-hibernate.target", - "hibernate.target", - "hybrid-sleep.target", -} - -func (m *Manager) maskOnVM(enable bool) { - var oper string - if enable && m.VirtualMachineName != "" { - oper = "mask" - } else { - oper = "unmask" - } - - for _, target := range autoConfigTargets { - logger.Debug("auto mask on virt") - exec.Command("systemctl", oper, target).Run() - } -} diff --git a/system/power_manager1/power_manager_dbusutil.go b/system/power_manager1/power_manager_dbusutil.go deleted file mode 100644 index f7ca281e5..000000000 --- a/system/power_manager1/power_manager_dbusutil.go +++ /dev/null @@ -1,16 +0,0 @@ -// Code generated by "dbusutil-gen -type Manager manager.go"; DO NOT EDIT. - -package power_manager - -func (v *Manager) setPropVirtualMachineName(value string) (changed bool) { - if v.VirtualMachineName != value { - v.VirtualMachineName = value - v.emitPropChangedVirtualMachineName(value) - return true - } - return false -} - -func (v *Manager) emitPropChangedVirtualMachineName(value string) error { - return v.service.EmitPropertyChanged(v, "VirtualMachineName", value) -} diff --git a/system/power_manager1/utils.go b/system/power_manager1/utils.go deleted file mode 100644 index 10cc5a681..000000000 --- a/system/power_manager1/utils.go +++ /dev/null @@ -1,47 +0,0 @@ -// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. -// -// SPDX-License-Identifier: GPL-3.0-or-later - -package power_manager - -import ( - "os" - "os/exec" - "strings" -) - -const ( - fileMemSleep = "/sys/power/mem_sleep" -) - -func canSuspend() bool { - // TODO: 这种判断方式只能作为当前的临时方案使用,不是一个标准的判断是否支持待机的方法, - // 等到内核对systemd的login中判断是否能待机的DBus接口(服务名 org.freedesktop.login1, - // 对象 /org/freedesktop/login1,接口 org.freedesktop.login1.Manager 方法 CanSuspend) - // 支持完善以后就要移除这部分逻辑。 - data, err := os.ReadFile(fileMemSleep) - if err != nil { - logger.Warningf("read %s failed: %v", fileMemSleep, err) - return false - } - if !strings.Contains(string(data), "deep") { - logger.Debugf("can not find 'deep' in %s", fileMemSleep) - return false - } - - return true -} - -func detectVirtualMachine() (string, error) { - out, err := exec.Command("/usr/bin/systemd-detect-virt").Output() - if err != nil { - return "", err - } - - name := strings.TrimSpace(string(out)) - if name == "none" { - name = "" - } - - return name, nil -}