Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Comments

Allow decoding of SMBIOS Type 11 serialnumbers#55

Draft
JohnAZoidberg wants to merge 2 commits intomain from
smbios11-serialnums
Draft

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

Conversation

@JohnAZoidberg
Copy link
Member

@JohnAZoidberg JohnAZoidberg commented Aug 7, 2024
edited
Loading

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) 

Copy link
Member

kiram9 commented Jun 6, 2025

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

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

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
Member Author

@JohnAZoidberg JohnAZoidberg Jun 6, 2025

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.

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 free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

1 more reviewer

@amstan amstan amstan left review comments

Reviewers whose approvals may not affect merge requirements

At least 1 approving review is required to merge this pull request.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

AltStyle によって変換されたページ (->オリジナル) /