ayufan-rock64/pinebook-pro-keyboard-updater

Maybe write a plugin for fwupd and upload firmware to the LVFS

Opened this issue · 7 comments

I'm the developer for fwupd. Would you like to write a plugin for fwupd, so that the hardware can be updated easily using the built-in tool for the Linux distro? I'd be happy to help you, but I don't have any hardware myself for testing. If this sounds interesting to you please see https://www.fwupd.org/ and if needed I can create you an account so you can have a play.

Richard. (LVFS and fwupd maintainer)

If it helps, I've got a PoC 100% untested branch of fwupd that adds support for the novatek devices. I'd need a lot more support (and hardware!) to be able to upstream something that's actually going to work.

Of course, the other issue is that the code is currently MIT and fwupd requires all plugins to be LGPLv2+ -- but if you own the code outright (i.e. you wrote it all) then it's easy enough to just tell me I can use the existing flashing code as LGPLv2+.

I'd be happy to send my PBP to Richard if anyone from Pine64 is interested in supporting fwupd officially.

tllim commented

@hughsie, I am TL Lim, PINE64 community founder. Please email your shipping address, phone (shipping purpose) and email, I will ship the Pinebook Pro to you. Thanks to Aleix Pol ping me and bring up this attention.

Hey @tllim -- you have email! Before sending hardware I had a few hardware and legal questions, but it's all in the email. Thanks.

I've been working on a plugin for a few hours now. I've got one question about the source code which might explain some issues other people are hitting: #22

Hi @tllim. Many thanks for the hardware, it arrived last week. I’ve written a new plugin and created a pull request against fwupd: fwupd/fwupd#2495 – the plugin mostly works, but is incomplete; I need some more information to enumerate the hardware more completely so that it can work with firmware metadata from the LVFS.

  • How do you get the keyboard version from runtime mode? The USB descriptor REV already sets this to v1.0 which might be correct but seems super coincidental.
  • How do you get the touchpad firmware version from runtime mode? There nothing in the HID descriptor either.
  • How do you tell apart the ISO/ANSI keyboards from runtime mode? I suppose I could read and parse the HID descriptor if that’s different, but ideally I could ask the device directly with a command on either of the HID interfaces and add the appropriate GUID to the fwupd device.

Thanks,

Richard.