PC framebuffer support

102 views
Skip to first unread message

David Boddie

unread,
Dec 31, 2024, 5:47:35 PM12/31/24
to infer...@googlegroups.com
After a few false starts, I managed to take my existing PC build
instructions
and scripts and add basic PC framebuffer support, automating the build
process
so that there's something people can try out.

https://gitlab.com/dboddie/inferno-pc-test-build/

It uses a few new commits in this branch:

https://github.com/dboddie/inferno-os/tree/2024-12-9load-vbe

The updated version gets 9load to do the work of setting up a
framebuffer,
passing the details to the kernel when it runs it.

The disk image it produces is about 20MB in size:

https://dboddie.gitlab.io/inferno-pc-test-build/

The image also works in v86, so you can try it in your web browser:

https://copy.sh/v86/?profile=custom

I failed to get PS/2 mouse support working reliably. I think bytes get
lost
when interrupts go missing somewhere, though I can't confirm that. If I
get
any time to look into this further, I think I'll try and import USB host
support from other projects.

David

da...@boddie.org.uk

unread,
Dec 31, 2024, 6:55:45 PM12/31/24
to inferno-os
I forgot to mention that it uses the framebuffer code from inferno-rpi/9pi, so the software cursor can be made to work if all the mouse events are received.

da...@boddie.org.uk

unread,
Jan 20, 2025, 6:14:09 PMJan 20
to inferno-os
I threw some of Brian L. Stuart's USB code into the mix and enabled wm in the latest build.

It can be run in qemu with

  qemu-system-i386 -m 512M -drive file=/tmp/inferno-pc.img -net user -net ni
c,model=rtl8139 -usb -device usb-ehci,id=ehci -device usb-mouse,bus=ehci.0,port=2

but it's pretty slow. However, on 32/64-bit Linux, at least, you can use kvm instead and it's a lot quicker.

This "distribution" of Inferno isn't very functional at the moment. Hints and tips about how to get something more complete and robust are welcome. ;-)

David

Charles Forsyth

unread,
Jan 20, 2025, 6:22:06 PMJan 20
to David Boddie, infer...@googlegroups.com
 I think I'll try and import USB host
support from other projects.

Any USB host support in Inferno will be very old now, and that's exactly what I'd do 

--
You received this message because you are subscribed to the Google Groups "inferno-os" group.
To unsubscribe from this group and stop receiving emails from it, send an email to inferno-os+...@googlegroups.com.
To view this discussion, visit https://groups.google.com/d/msgid/inferno-os/b04e7409ddfc58616ce29ba31133f639%40boddie.org.uk.

Timothy Gaskell

unread,
Jan 23, 2025, 11:49:12 PMJan 23
to inferno-os
This is very cool! I got it built and running in qemu and may be interested in trying it on real hardware later as I have appropriate candidates.

One n00b question, though: The network interface appears to be working with ip/ping but not in Charon. I'm thinking maybe the DNS server address in /lib/ndb/local or /lib/ndb/dns needs to be changed to a known-working server like 1.1.1.1, but any attempt to edit those files, even with runas, gets rejected with "access permission denied". Is there a workaround for this, and does anyone else have Charon working?

da...@boddie.org.uk

unread,
Jan 25, 2025, 4:44:12 PMJan 25
to inferno-os
fredag 24. januar 2025 kl. 05:49:12 UTC+1 skrev tnga:
This is very cool! I got it built and running in qemu and may be interested in trying it on real hardware later as I have appropriate candidates.

Running on real hardware is the underlying aim, even if it's only retro-hardware now.

One n00b question, though: The network interface appears to be working with ip/ping but not in Charon. I'm thinking maybe the DNS server address in /lib/ndb/local or /lib/ndb/dns needs to be changed to a known-working server like 1.1.1.1, but any attempt to edit those files, even with runas, gets rejected with "access permission denied". Is there a workaround for this, and does anyone else have Charon working?

I think I've messed up file/directory permissions and/or done something wrong with the way I mount the kfs file system into /tmp then bind that over the / directory.
I'd have to look at the Raspberry Pi port again and see what that looks like when its running.
Reply all
Reply to author
Forward
0 new messages