I packaged the kernel for Gentoo

I have written an ebuild (the equivalent to a package on Gentoo) that builds and installs a kernel for the MNT Reform 2.

You can find documentation on how to install the kernel on the MNT Reform page in the Gentoo wiki.

On the same page you can also find instructions on how to configure dracut to generate an accompanying Initrd.

The ebuild uses the patches provided by MNT, but unlike the kernel included in the official Debian image, it is not actually based on the Debian kernel sources and configuration. Instead it is based on the Gentoo-patched kernel sources and the Gentoo kernel configuration (which in turn is based on the Fedora kernel configuration).

If you’re interested in how it’s done, you can find the ebuild in my repository here: sys-kernel/mnt-reform2-kernel · master · Niklaus Hofer / mnt-reform2-overlay · GitLab

12 Likes

I bumped the version of the package to 6.1.12. I also tested it with USE=“hardened” and it works just fine :slight_smile:

Nice work! I like the detailed documentation.

bdw… the link to the generic bootscr.uboot doesn’t work (not existing in the linked path)

1 Like

I bumped the version to 6.1.20. Plus I tested the out-of-tree LPC module from the reform-tools repository and it works fine. Currently looking into how to best package that for Gentoo.

2 Likes

I bumped the version to 6.4.7.

Since the last post, I’ve also had a chance to test HDMI, which was a success :slight_smile:

1 Like

Bumped to 6.6.8!

Note that I only test the kernel on the stock (i.MX8MQ) SOM.

4 Likes

Thank you for this. I have my Pocket on order, I was planning on running Funtoo and this is very helpful.

1 Like

Thanks so much!

I’m planning to go the full manual kernel config route, but your ebuild (together with the build script in the official repo) is an excellent starting point.

1 Like

By the way, I’ve hacked together a seemingly working ebuild for the lpc-driver:

EAPI=8

DESCRIPTION="MNT Reform 2 LPC driver"
HOMEPAGE="https://mnt.re"

LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~arm64"

DEPEND=""
RDEPEND="${DEPEND}"
BDEPEND=""

EGIT_REPO_URI="https://source.mnt.re/reform/reform-tools.git"
inherit git-r3
inherit linux-mod-r1

S="${WORKDIR}/${P}/lpc"

CONFIG_CHECK="OF POWER_SUPPLY SPI"

src_compile() {
        local modlist=(
                reform2_lpc=misc
        )
        linux-mod-r1_src_compile
}

@vimja, do you think it’s worth adding this ebuild to your overlay?

Oh wow, this is so cool! With your permission, I would love to add this to the overlay, yes.

Any ideas for what category it should go in and what it’s name should be?

Good question…

On my machine I put it under sys-power and named it reform2-lpc-module, but that was just because I couldn’t come up with a better name.

@soulsource I’ve added the ebuild to the overlay.

Haven’t had a chance to test it myself as of yet though. Still struggling to get my customer kernel up and running on the LS1028A :sweat_smile:

I bumped the kernel ebuild to 6.6.16. This one is supposed to work on both the i.MX8MQ and the LS1028A. Note however, that I have only tested on LS1028A.

@soulsource I’ve also tested the ebuild now. It works well, module compiled and can be loaded.

For some reason though, /sys/class/power_supply/ remains empty after loading the module, but that might be an ls1028a thing?

Hmm, I have the /sys/class/power_supply/8xlifepo4 folder on my machine, which is using a custom kernel on the Banana Pi CM4 SoM.

The CONFIG_CHECK line in the ebuild was guesswork, based on the headers that the module includes. I might have missed some runtime dependency (if such things exist in the Linux kernel).

I could also imagine that there is still some hardware waiting for prerequisite modules to get loaded - /sys/kernel/debug/devices_deferred - but that’s guesswork too.

EDIT: I just saw that you got an answer in LPC kernel module on ls1028a - #2 by josch - so it is a device tree issue.