From e75a31cad4e4ae5d9690dfb2597475675649d1e2 Mon Sep 17 00:00:00 2001 From: xust Date: Fri, 4 Jul 2025 14:50:08 +0800 Subject: [PATCH] fix: block model shows 'UnKnow' cannot obtain model info from either smartctl nor lshw commands, try with udevadm command to obtain ID_MODEL field. Log: fix block model missing. Bug: https://pms.uniontech.com/bug-view-322579.html --- service/diskoperation/DeviceStorage.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/service/diskoperation/DeviceStorage.cpp b/service/diskoperation/DeviceStorage.cpp index e6f102c..ced1660 100755 --- a/service/diskoperation/DeviceStorage.cpp +++ b/service/diskoperation/DeviceStorage.cpp @@ -504,6 +504,20 @@ void DeviceStorage::getDiskInfoModel(const QString &devicePath, QString &model) } } + cmd = "udevadm info " + devicePath + " | grep ID_MODEL="; + proc.start("bash", QStringList() << "-c" << cmd); + proc.waitForFinished(-1); + outPut = proc.readAllStandardOutput(); + if (!outPut.isEmpty()) { + auto idModel = outPut.split("=", QString::SkipEmptyParts); + if (idModel.count() > 1) + model = idModel.at(1).trimmed(); + if (!model.isEmpty()) + return; + } + + qWarning() << "tried a lot but got nothing about model for" << devicePath; + // 若未获取到型号名,返回未知 model = "UnKnow"; return;