|
6 | 6 |
|
7 | 7 | const char* ffDetectBoard(FFBoardResult* board) |
8 | 8 | { |
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 | + } |
13 | 25 | return NULL; |
14 | 26 | } |
0 commit comments