Kernel patches for 4.12.1 with GPIO & LEDs
Hugo
New Member Posts: 7 ✭
I've just built this and it seems to be working without issue. I'm using the official kernel sources from kernel.org 4.12 with the 4.12.1 patchset.
I do get an error when booting "esrt header is not in the memory map", which seems to be an issue between systemd and the firmware, but it doesn't affect anything other than initial filesystem detection; the Arch forums tell me it's a(nother) systemd issue and it can be safely ignored.
I've tested the three LEDs and a few GPIOs and everything seems to be working fine.
I diff'ed Ubuntu 4.35 kernel with the Up Board 4.35, then diff'ed each of those with Yocto 4.11 and finally diff'ed again with 4.12.1 in order to arrive to the final patchset I'm attaching.
In the archive there's also an Arch Linux PKGBUILD file laying out all the steps to patch/build, from which building procedures can be extrapolated to other distros.
Regarding that, I've also included the config file I'm using, again merged from diff'ing 4.35/4.11/4.12.1 which has all the needed configs to build on Arch Linux, make sure to edit it accordingly if building for other distros as it does have some Arch specific settings.
If anyone takes the leap and builds this let me know any issues so we can further refine it.
---edit---
I've just realized my bolding might seem a bit pretentious without an explanation. To give one example, the Up Board config CONFIG_USB_HID is set to "y", which panics in Arch Linux because it is expected as a module. Sadly there is no other way to figure this out than to compare the Up config with your distro's original config. To that end, I'm attaching a csv of the options I've used.
I do get an error when booting "esrt header is not in the memory map", which seems to be an issue between systemd and the firmware, but it doesn't affect anything other than initial filesystem detection; the Arch forums tell me it's a(nother) systemd issue and it can be safely ignored.
I've tested the three LEDs and a few GPIOs and everything seems to be working fine.
I diff'ed Ubuntu 4.35 kernel with the Up Board 4.35, then diff'ed each of those with Yocto 4.11 and finally diff'ed again with 4.12.1 in order to arrive to the final patchset I'm attaching.
In the archive there's also an Arch Linux PKGBUILD file laying out all the steps to patch/build, from which building procedures can be extrapolated to other distros.
Regarding that, I've also included the config file I'm using, again merged from diff'ing 4.35/4.11/4.12.1 which has all the needed configs to build on Arch Linux, make sure to edit it accordingly if building for other distros as it does have some Arch specific settings.
If anyone takes the leap and builds this let me know any issues so we can further refine it.
---edit---
I've just realized my bolding might seem a bit pretentious without an explanation. To give one example, the Up Board config CONFIG_USB_HID is set to "y", which panics in Arch Linux because it is expected as a module. Sadly there is no other way to figure this out than to compare the Up config with your distro's original config. To that end, I'm attaching a csv of the options I've used.
Comments
-
Hi hdezela,
Thanks for your great contribution!
Would it be possible to share your patches via Github?
We are enabling a new page on the wiki where to show all the contributions from the community and it would be best if we could provide the source code from a common platform like Github.
Thanks again! -
I've put it up here.
-
Thanks!
Just added your contribution to our UP Wiki: https://up-community.org/wiki/Software_from_the_Community#Linux_Kernels
Thank you!