Skip to content

Allow decoding of SMBIOS Type 11 serialnumbers - #55

Draft
JohnAZoidberg wants to merge 2 commits into
mainfrom
smbios11-serialnums
Draft

Allow decoding of SMBIOS Type 11 serialnumbers#55
JohnAZoidberg wants to merge 2 commits into
mainfrom
smbios11-serialnums

Conversation

@JohnAZoidberg

@JohnAZoidbergJohnAZoidberg commented Aug 7, 2024

Copy link
Copy Markdown
Member

They're the serialnumbers of what the system was originally assembled with in the factory.

TODO

  • Cleanup code
  • Make safer with fewer unwraps
  • Custom command, not in info
  • Make sure date is decoded correctly
  • Make sure it works on Framework 12
  • Make sure it works on Framework 13
  • Make sure it works on Framework 16
  • Make sure it works on Framework Desktop
> cargo build && sudo ./target/debug/framework_tool --serialnums FRANMECP864201001H Mainboard NME (Config 6) by CP, Dvt2 Phase (Monday, Week 20, 2024) FRANPJCP8842010012 Laptop NPJ (Config 8) by CP, Dvt2 Phase (Monday, Week 20, 2024) FRANJBCH8141750084 Camera NJB (Config 1) by CH, Dvt2 Phase (Friday, Week 17, 2024) FRANJABQ814213002W Display NJA (Config 1) by BQ, Dvt2 Phase (Wednesday, Week 21, 2024) FRANGWATA1344300PG Battery NGW (Config 1) by AT, Mp Phase (Wednesday, Week 44, 2023) FRANBTENA1414200X1 Touchpad NBT (Config 1) by EN, Mp Phase (Tuesday, Week 14, 2024) FRANBKENA1415100QM Keyboard NBK (Config 1) by EN, Mp Phase (Monday, Week 15, 2024) FRANBFJYA1416603VX Fingerprint (Only Pre-Built) NBF (Config 1) by JY, Mp Phase (Saturday, Week 16, 2024) FRANBDCPA14181003C Unknown/Reserved FRANFJHAA1414500EA AudioDaughtercard NFJ (Config 1) by HA, Mp Phase (Friday, Week 14, 2024) 

@JohnAZoidbergJohnAZoidberg mentioned this pull request Feb 9, 2025
7 tasks
@kiram9

Copy link
Copy Markdown
Member

cfg0 will struggle with keyboard which also use 'B' for some languages

Comment threadframework_lib/src/smbios.rs Outdated
pub fn dump_oem_strings(strings: &SMBiosStringSet) {
for (i, s) in strings.into_iter().enumerate() {
let idx = i + 1;
let sn = match idx {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be cooler if you didn't use idx positions for decoding the serial number (remember what happened last time these positions changed?). Just put them in a big array, shuffle them, and try to tell what each of them is based on the serial number contents.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The order doesn't change, the factory also depends on it, as far as I remember.

Decoding the serialnumber is harder as we would have to embed all possible serialnumbers and I couldn't include those for unannounced projects.

@JohnAZoidberg
JohnAZoidbergforce-pushed the smbios11-serialnums branch 2 times, most recently from 7f595f8 to 7630f51CompareJanuary 18, 2026 07:43
They're the serialnumbers of what the system was originally assembled
with in the factory.
TODO
- [ ] Cleanup code
- [ ] Make safer with fewer unwraps
- [ ] Custom command, not in info
- [ ] Make sure date is decoded correctly
- [ ] Support Framework 12
- [x] Support Framework 13
- [ ] Support Framework 16
Signed-off-by: Daniel Schaefer <dhs@frame.work>
Signed-off-by: Daniel Schaefer <dhs@frame.work>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@JohnAZoidberg@kiram9@amstan