Skip to content

Commit b7fcd7f

Browse files
committed
Board (Linux): use model name as board name if SMBIOS is not available
1 parent b2810bc commit b7fcd7f

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ Features:
1111
* TerminalSize, TerminalTheme
1212
* Detect more ARM microarchitectures (CPU, Linux)
1313
* Detect the number of online cores (CPU, FreeBSD)
14+
* Support board name detection for Asahi Linux (Board, Linux)
1415

1516
Bugfixes:
1617
* Fix tests building when system yyjson is used (#1244)

src/detection/board/board_linux.c

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,21 @@
66

77
const char* ffDetectBoard(FFBoardResult* board)
88
{
9-
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/board_name", "/sys/class/dmi/id/board_name", &board->name);
10-
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/board_serial", "/sys/class/dmi/id/board_serial", &board->serial);
11-
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/board_vendor", "/sys/class/dmi/id/board_vendor", &board->vendor);
12-
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/board_version", "/sys/class/dmi/id/board_version", &board->version);
9+
if (ffGetSmbiosValue("/sys/devices/virtual/dmi/id/board_name", "/sys/class/dmi/id/board_name", &board->name))
10+
{
11+
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/board_serial", "/sys/class/dmi/id/board_serial", &board->serial);
12+
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/board_vendor", "/sys/class/dmi/id/board_vendor", &board->vendor);
13+
ffGetSmbiosValue("/sys/devices/virtual/dmi/id/board_version", "/sys/class/dmi/id/board_version", &board->version);
14+
}
15+
else if (ffReadFileBuffer("/proc/device-tree/compatible", &board->vendor))
16+
{
17+
// use model name as board name
18+
uint32_t comma = ffStrbufFirstIndexC(&board->vendor, ',');
19+
if (comma < board->vendor.length)
20+
{
21+
ffStrbufSetS(&board->name, board->vendor.chars + comma + 1);
22+
ffStrbufSubstrBefore(&board->vendor, comma);
23+
}
24+
}
1325
return NULL;
1426
}

0 commit comments

Comments
 (0)