mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2025-11-17 19:16:25 +00:00
Update AppImage
This commit is contained in:
@@ -1788,13 +1788,15 @@ export default function Hardware() {
|
|||||||
{selectedDisk.rotation_rate !== undefined && selectedDisk.rotation_rate !== null && (
|
{selectedDisk.rotation_rate !== undefined && selectedDisk.rotation_rate !== null && (
|
||||||
<div className="flex justify-between border-b border-border/50 pb-2">
|
<div className="flex justify-between border-b border-border/50 pb-2">
|
||||||
<span className="text-sm font-medium text-muted-foreground">Rotation Rate</span>
|
<span className="text-sm font-medium text-muted-foreground">Rotation Rate</span>
|
||||||
<span className="text-sm">
|
<div className="text-sm">
|
||||||
{typeof selectedDisk.rotation_rate === "number" && selectedDisk.rotation_rate > 0
|
{typeof selectedDisk.rotation_rate === "number" && selectedDisk.rotation_rate === -1
|
||||||
? `${selectedDisk.rotation_rate} rpm`
|
? "N/A"
|
||||||
: typeof selectedDisk.rotation_rate === "string"
|
: typeof selectedDisk.rotation_rate === "number" && selectedDisk.rotation_rate > 0
|
||||||
? selectedDisk.rotation_rate
|
? `${selectedDisk.rotation_rate} rpm`
|
||||||
: "Solid State Device"}
|
: typeof selectedDisk.rotation_rate === "string"
|
||||||
</span>
|
? selectedDisk.rotation_rate
|
||||||
|
: "Solid State Device"}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
|||||||
@@ -211,6 +211,12 @@ export function StorageOverview() {
|
|||||||
if (diskName.startsWith("nvme")) {
|
if (diskName.startsWith("nvme")) {
|
||||||
return "NVMe"
|
return "NVMe"
|
||||||
}
|
}
|
||||||
|
// rotation_rate = -1 means HDD but RPM is unknown (detected via kernel rotational flag)
|
||||||
|
// rotation_rate = 0 or undefined means SSD
|
||||||
|
// rotation_rate > 0 means HDD with known RPM
|
||||||
|
if (rotationRate === -1) {
|
||||||
|
return "HDD"
|
||||||
|
}
|
||||||
if (!rotationRate || rotationRate === 0) {
|
if (!rotationRate || rotationRate === 0) {
|
||||||
return "SSD"
|
return "SSD"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1387,6 +1387,26 @@ def get_smart_data(disk_name):
|
|||||||
smart_data['health'] = 'warning'
|
smart_data['health'] = 'warning'
|
||||||
# print(f"[v0] Health: WARNING (temperature {smart_data['temperature']}°C)")
|
# print(f"[v0] Health: WARNING (temperature {smart_data['temperature']}°C)")
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
# CHANGE: Use -1 to indicate HDD with unknown RPM instead of inventing 7200 RPM
|
||||||
|
# Fallback: Check kernel's rotational flag if smartctl didn't provide rotation_rate
|
||||||
|
# This fixes detection for older disks that don't report RPM via smartctl
|
||||||
|
if smart_data['rotation_rate'] == 0:
|
||||||
|
try:
|
||||||
|
rotational_path = f"/sys/block/{disk_name}/queue/rotational"
|
||||||
|
if os.path.exists(rotational_path):
|
||||||
|
with open(rotational_path, 'r') as f:
|
||||||
|
rotational = int(f.read().strip())
|
||||||
|
if rotational == 1:
|
||||||
|
# Disk is rotational (HDD), use -1 to indicate "HDD but RPM unknown"
|
||||||
|
smart_data['rotation_rate'] = -1
|
||||||
|
# If rotational == 0, it's an SSD, keep rotation_rate as 0
|
||||||
|
except Exception as e:
|
||||||
|
pass # If we can't read the file, leave rotation_rate as is
|
||||||
|
|
||||||
|
except FileNotFoundError:
|
||||||
|
# print(f"[v0] ERROR: smartctl not found - install smartmontools for disk monitoring.")
|
||||||
|
pass
|
||||||
|
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
# print(f"[v0] ERROR: smartctl not found - install smartmontools for disk monitoring.")
|
# print(f"[v0] ERROR: smartctl not found - install smartmontools for disk monitoring.")
|
||||||
|
|||||||
Reference in New Issue
Block a user