IRC channel logs
2024-10-21.log
back to list of logs
<damo22>ok there are two known bugs now preventing X from starting on real hardware <damo22>1. acpi translator doesnt handle int 9 properly <damo22>i get intnull(9) during boot and freeze <damo22>i think we need to add interrupt handler registration to acpi <damo22>its currently not implemented but im not sure why im not getting the corresponding error message <almuhs>damo22: maybe this irq is linked to other thing? <youpi>almuhs: just temporary hick-up <damo22>irq handler [4097]: new delivery port f5e10bc0 entry f5547ee0 <damo22>i just implemented irq registration <gnucode>damo22: ok there are two known bugs now preventing X from starting on real hardware...I think you meant to say <gnucode>there are 2 known bugs preventing X from starting on real hardware using coreboot/libreboot <gnucode>I'm using X on real hard ware with a T43 (proprietary BIOS) <damo22>ok i found and solved a chicken/egg problem <damo22>libirqhelp cannot fail when cannot connect to acpi because acpi might need to register an irq <damo22>now i get "start: pci acpi intnull(9) HANG" <zamfofex>Small piece of thought: I wonder what a “minimal” Hurd distro would be like size‐wise. Something like maybe DSL, but for the Hurd. I was able to build a usable Linux kernel weighing about 0.5 MB. <gnucode>damo22: I'm trying to wrap my head around the irc conversation that you all had today. I probably will end up re-reading it a few times to try to figure it out. <gnucode>zamfofex: probably pretty tiny. You could take a look at flavio's cross-hurd project. <damo22>youpi: is gnumach UP built with --enable-apic ? <damo22>i built a UP with --enable-apic and it seems to get further on real hw <damo22>but rumpdisk cannot probe the AHCI <damo22>its difficult to debug without a serial console on hw <damo22>i sent in some patches to the ML to get things closer to working for acpi on actual hardware <etno>What is the pattern for tracking client related resource/session in a mach server ? Is there an event on the ports provided ? Or does the server have to explicitely listen for a client's death ? <damo22>if the mach server exits, you can clean up after the server loop i guess? <damo22>im getting this error from rumpusbdisk: <damo22>something to do with bus_space_map() im guessing <etno>damo22, I mean: how does a server detect when a client dies ? The ports sent to clients have an event, or the server listens for every client life-cycle ? <youpi>etno: you have the dead-name notification <etno>I guess it is MACH_NOTIFY_DEAD_NAME via mach_port_request_notification(). Thanks ! <damo22>"sudo Xorg -logverbose 7 -logfile test.log" can give me info i need when vbe fails on real hw <damo22>it just says No screens detected <damo22>it does not try to probe vbe or int10 sub modules of X <damo22>youpi: #if defined(__i386__) || defined(__amd64__) || defined(__hurd__) <damo22> xf86AddMatchedDriver(md, "vesa"); <damo22>is __hurd__ the correct thing to check for? <youpi>ah, no, it's hurd that would work <youpi>I can commit that directly to xserver <youpi>it's trivial enough, thanks :) <damo22>youpi: i dont understand the versioning, which branch of xorg-server do i use from salsa to build xserver-xorg-* ? <youpi>usually I just apt source, to simply get the current source <damo22>ok there is xorg-xserver in salsa as well as xorg, so i got confused <damo22>i can try hacking the binary to replace fbdev\0 with vesa\0\0 <youpi>but really, recompiling a package is a mere apt source foo ; apt build-dep foo ; dpkg-buildpackage <youpi>that being said, we already have __i386__ defined on gnu/hurd <youpi>so that won't make a difference <youpi>it'll only be for non-x86 hurd <damo22>something is failing very early to probe <damo22>it doesnt get past this line, it fails here <damo22>[2927384.009] (II) VESA: driver for VESA chipsets: vesa <damo22>on qemu, it loads vbe submodule and int10 <damo22>but the log is falling very short on coreboot hw <damo22>which is interesting because vesa is implemented by seavga on qemu <damo22>so it should be very similar code <damo22>on qemu [2927384.029] (II) VESA(0): VESA VBE Version 3.0 <damo22>[2927384.029] (II) VESA(0): VESA VBE Total Mem: 16384 kB <damo22>[2927384.029] (II) VESA(0): VESA VBE OEM: SeaBIOS VBE(C) 2011 <damo22>hw/xfree86/common/xf86Bus.c: 154 <damo22>but on real hw the BusID is different <youpi>you had a hardcoded configuration? <damo22>the VBE 3.0 is detected but no screens are usable because mode 3 is the only mode <damo22>this could be fixed in seavga by exposing more VBE modes but still setting mode 3 <damo22>if coreboot can light up the display only at a single resolution, it should be configured to be the maximum resolution of the attached monitor <damo22>the display could be modeset once by coreboot and any resolution lower could fit inside the old framebuffer <damo22>but it cant be set to mode 3 initially or there isnt enough pixels to display X <damo22>and its just a text console otherwise <azert>damo22: I think that the bios is reporting the old video mode 3 (80x25 16 color text) <azert>If you configure your framebuffer to be graphical, then either you boot directly into X11 or you need to setup a graphical framebuffer console, that I think the Hurd currently doesn’t have. Right? <youpi>azert: it doesn't indeed, but AIUI it's basically only x86 that has a real textmode that the hurd console current supports. <youpi>Adding a graphical support to the hurd console shouldn't be too hard <azert>What I am wondering is if the Hurd console supported such a feature (necessary for x64) then one could also export one of the many frame buffer apis so that X11 can use them <azert>youpi: freetype is gpl3 compatible. Can we use this library to make a frame buffer console? <azert>I’m a bit worried about non-fixed size fonts.. <youpi>sure we can use it rather that reimplement the world. But we can as well for a start just blit the font glyphs that we already have support for <azert>But the better scalability over bitmap fonts seems like a plus <youpi>I'm just saying that the MVP doesn't need that <azert>youpi: in my opinion the quickest refactor would be to split vga-dynafont.c in two files: one that is vga specific and the other backend independent <azert>Then write a fb-dynafont to support the same fonts on a frame buffer <azert>and finally a framebuffer backend that basically uses blitting plus scaling according to the configuration <azert>One can add multiple scaling functions such as the ones implemented by dosbox to add a touch of retro taste <youpi>not even necessary to scale, you can just do like linux' console: just have as many characters that can fit without scaling <youpi>> split vga-dynafont.c in two files: one that is vga specific and the other backend independent <youpi>Indeed, the font loading and the vga-dynamic part should be split <youpi>the vga-dynamic part is what makes it cool on vga, but useless when doing sw blitting <gnucode>This is weird to me to learn that the BIOS (coreboot) has to provide support for the OS <youpi>probably essentially the functions starting from dynafont_lookup_internal are really vga-only <youpi>gnucode: BIOS provides various support for the OS <youpi>it's way simpler to support odd hardware when it's the bios that sets it up