In gentoo-sources-2.6.23, vesafb-tng will be replaced by uvesafb, which requires a userspace helper v86d (provided by sys-apps/v86d) to be present in the initramfs. The following patch adds v86d support for genkernel.
Created attachment 131688 [details, diff] add support for v86d in genkernel
We cannot accept this patch. If there is anything that needs to be included in the initramfs, it must be built/provided by genkernel itself instead of being pulled from the live system.
Also, will the old tried 'n true vesafb still be hanging around?
It will. If you cannot accept this patch, why does genkernel have built-in support for fbsplash? It uses splash_geninitramfs (from the live system), which in turn uses fbsplash themes (also from the live system).
The current support in genkernel doesn't have any bearing here, since we want to change it. The reason we will not accept any patches which rely on the host file system is that we do not want to add more problems to be fixed later. We are planning on changing *every* current option to being self-contained within genkernel and taking nothing *binary* from the running system. Files/themes/etc are alright, so long as they're not arch-specific. You'll also want to do the CMD_VD86 -> VD86 stuff in gen_determineargs.sh since we are also moving towards allowing all options to be set in the config file, and the CMD_* variables will be reserved for options specified on the command line. I definitely want to get this support into genkernel ASAP, so if you need any help with this, let me know.
*** Bug 195377 has been marked as a duplicate of this bug. ***
Comment on attachment 131688 [details, diff] add support for v86d in genkernel Well, this patch didn't quite work for me anyway - thanks to spock for debugging help ;) So, a working way to get uvesafb working with current genkernel, without any patching: genkernel initrd --install --initramfs-overlay=/usr/share/v86d --splash=<theme> --splash-res=<resolution>
I suggest we close this bug as WONTFIX, if that's OK with everyone.
Well, I do plan on adding proper support (without the use of an overlay) into genkernel.
I have created patches to genkernel-3.4.10 to properly support v86d. It compiles klibc, than compiles v86d against it. The compilation process and klibc patches are based on the ebuilds in portage. Unlike the klibc in portage, it is not compiled againt a bundled kernel patched with uvesafb, but agains the current kernel (which must be uvesafb patched anyway to make use of v86d) to reduce download size. I'm attaching the patches.
Created attachment 159251 [details, diff] genkernel v86d patch
Created attachment 159253 [details, diff] ebuild v86d patch
Created attachment 159255 [details, diff] genkernel v86d patch fixed two typos
Created attachment 160140 [details, diff] genkernel v86d patch extract klibc into temp, not user's current working directory
Created attachment 160151 [details, diff] genkernel v86d patch add v86d patch to work with 2.6.26 kernels
Created attachment 175271 [details, diff] genkernel-v86d-3.4.10.902.patch Changes: Fixed compilation on amd64 arch Updated to use: klibc-1.5.12 and v86d-0.1.9 Patch cleanup Added --with-x86emu option for v86d Adapted to genkernel-3.4.10.902
Created attachment 175274 [details] genkernel-3.4.10.902-r1.ebuild Ebuld to use with genkernel-v86d-3.4.10.902.patch
(In reply to comment #17) > Ebuld to use with genkernel-v86d-3.4.10.902.patch I think the ebuild is missing the line to install klibc to /var/cache/genkernel.
Created attachment 180833 [details, diff] Version bump
Created attachment 180834 [details] With fixed klibc string
Using the latest ebuild, I'm having trouble with klibc: * Gentoo Linux Genkernel; Version 3.4.10.903 * Running with options: --mdadm --luks --splash=natural_gentoo --v86d initramfs * Linux Kernel 2.6.29-gentoo-r4 for x86_64... * v86d: >> Unpacking klibc... * v86d: >> Compiling klibc... GEN klcc/klibc.config GEN klcc/klcc HOSTCC scripts/basic/fixdep KLIBCCC usr/klibc/__static_init.o KLIBCCC usr/klibc/vsnprintf.o In file included from usr/klibc/../include/sys/types.h:15, from usr/klibc/../include/unistd.h:11, from usr/klibc/../include/stdio.h:11, from usr/klibc/vsnprintf.c:13: linux/include/linux/posix_types.h:47:29: error: asm/posix_types.h: No such file or directory In file included from usr/klibc/../include/unistd.h:11, from usr/klibc/../include/stdio.h:11, from usr/klibc/vsnprintf.c:13: usr/klibc/../include/sys/types.h:16:23: error: asm/types.h: No such file or directory What am I missing?
I think it is quite ironic that the Official Gentoo Handbook recommends uvesafb, but genkernel (also recommended in the handbook) still has no support for it.
Oh God, make it stop hurting.
PS: Adding keyword "Inclusion" and "[patch] " prefix to better show this bugs nature in searches...
(In reply to comment #19) > Created attachment 180833 [details, diff] > Version bump Is there anyone still working on this patch? I took a look into it, and there are some things that needs to be addressed: 1, klibc: This should have its own compile_klibc, and get its own bincache tarball. v86d should then be built against this tarball. This will make both the patch and functions cleaner (every function should do as little as possible, but do those things very good). 2, v86d: append_v86d should only build v86d if it is not already present a static version of it on the host system, else this relly does not need to be built again. 3, sources: please base patches on upstream git and its experimental branch[1]. Here is where the action happens, that may later be backported into master. Is there anyone working on this patch and that may address this? [1] http://git.overlays.gentoo.org/gitweb/?p=proj/genkernel.git
*** Bug 398473 has been marked as a duplicate of this bug. ***
Note that v86d was removed: commit 30c31bfe86f048a443baa523e9f487c38d950f24 Author: Michał Górny <mgorny@gentoo.org> AuthorDate: Mon Aug 14 09:56:21 2017 Commit: Michał Górny <mgorny@gentoo.org> CommitDate: Mon Aug 14 10:02:53 2017 sys-apps/v86d: Remove last-rited pkg, #606154 profiles/arch/amd64/package.use.force | 4 --- profiles/package.mask | 5 ---- sys-apps/v86d/Manifest | 1 - sys-apps/v86d/metadata.xml | 8 ----- sys-apps/v86d/v86d-0.1.10.ebuild | 56 ----------------------------------- 5 files changed, 74 deletions(-)