Skip to content

Commit 50a18e8

Browse files
committed
--nvidia: Don't print error if no likely nvidia
Otherwise loading the library fails. Signed-off-by: Daniel Schaefer <[email protected]>
1 parent 6854dfe commit 50a18e8

File tree

1 file changed

+25
-4
lines changed
  • framework_lib/src/commandline

1 file changed

+25
-4
lines changed

framework_lib/src/commandline/mod.rs

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -777,20 +777,36 @@ fn print_versions(ec: &CrosEc) {
777777
print_nvidia_details();
778778
}
779779

780+
#[cfg(feature = "nvidia")]
781+
fn probably_has_nvidia() -> bool {
782+
match smbios::get_platform().and_then(Platform::which_family) {
783+
Some(PlatformFamily::Framework12) => false,
784+
Some(PlatformFamily::Framework13) => false,
785+
Some(PlatformFamily::FrameworkDesktop) => true,
786+
Some(PlatformFamily::Framework16) => true,
787+
_ => true,
788+
}
789+
}
790+
780791
/// Brief NVIDIA details for --version output
781792
#[cfg(feature = "nvidia")]
782793
fn print_nvidia_details() {
794+
let probably_has_nvidia = probably_has_nvidia();
783795
let nvml = match Nvml::init() {
784796
Ok(nvml) => nvml,
785797
Err(err) => {
786-
error!("Nvidia, library init fail: {:?}", err);
798+
if probably_has_nvidia {
799+
error!("Nvidia, library init fail: {:?}", err);
800+
}
787801
return;
788802
}
789803
};
790804
let device = match nvml.device_by_index(0) {
791805
Ok(device) => device,
792806
Err(err) => {
793-
error!("Nvidia, device not found: {:?}", err);
807+
if probably_has_nvidia {
808+
error!("Nvidia, device not found: {:?}", err);
809+
}
794810
return;
795811
}
796812
};
@@ -809,17 +825,22 @@ fn print_nvidia_details() {
809825
/// Detailed NVIDIA information for --nvidia command
810826
#[cfg(feature = "nvidia")]
811827
fn print_nvidia_info() {
828+
let probably_has_nvidia = probably_has_nvidia();
812829
let nvml = match Nvml::init() {
813830
Ok(nvml) => nvml,
814831
Err(err) => {
815-
error!("Nvidia, library init fail: {:?}", err);
832+
if probably_has_nvidia {
833+
error!("Nvidia, library init fail: {:?}", err);
834+
}
816835
return;
817836
}
818837
};
819838
let device = match nvml.device_by_index(0) {
820839
Ok(device) => device,
821840
Err(err) => {
822-
error!("Nvidia, device not found: {:?}", err);
841+
if probably_has_nvidia {
842+
error!("Nvidia, device not found: {:?}", err);
843+
}
823844
return;
824845
}
825846
};

0 commit comments

Comments
 (0)