8l / fbui

Framebuffer UI (fbui) in-kernel Linux windowing system.
147 stars 18 forks source link

Update for modern kernel and put compile/install/configure instructions in the README #1

Open alazyworkaholic opened 4 years ago

alazyworkaholic commented 4 years ago

I wish I could use this. Please update this so I can install it on a reasonably recent system (e.g. 5.x kernel). I appreciate your views on software bloat, but might you displace the 'bloat' of this manifesto with instructions on how to actually get this thing working?

EchedelleLR commented 4 years ago

I got a bit interested too but I don't know enought about framebuffers itself and software around it.

g4jc commented 4 years ago

I was extremely interested in this as well and discovered that the source code here is not the latest version. A LiveCD demonstrating FBUI was released, as was a newer version 0.11.2, some time around 2005. Photo of LiveCD:

image

The current tree, and newer version, literally expect you to have the Linux kernel 2.9.6 source. You would copy the source tree here, overwriting and merging all the data into /usr/src/linux-2.9.6. This essentially "patches" the kernel by modifying the internal linux framebuffer to support additional colors/features and adds an fbui-input kernel module.

As far as getting it working with newer kernels, there are a number of API changes. I did get it compiling on 5.4.68, but not working yet.

My updated version fails when launching the userspace programs / libfbui with:

Error in FBUIInit_graphicsmode(): cannot create window
FBUI error: (other) (kernel module location -1)

There are several possibilities here. Either my patches were not properly changed for the newer kernal API, or the framebuffer drivers have changed. I'm thinking the later because per the loosely written README-FBUI, a VESA window is expected with a manually set VGA mode. To get this working at all on a modern kernel, you'll have to modify grub to blacklist your graphics driver and use the generic vesafb one. Something like modprobe.blacklist=xxx(intel/nvidia/etc) video=vesafb vga=ask as well as change linux and initd to linux16 and initd16 so that vga=ask works again. (Thanks Stack Overflow for the tip) However, even with the correct mode, the error persists!

Patches: FBUI on 2.6.9.patch

FBUI on 5.4.68.patch You may have to run cp /usr/src/linux/include/uapi/linux/fb.h /usr/include/linux/fb.h after applying on 5.4.68

If anyone wants to try it out further or contribute by sending a PR, feel free to use my fork.

yangkkokk commented 1 year ago

good job