#Astral
1 messages ยท Page 12 of 1
lol
bruh
shitty camera, why does it always apply stupid post processing
hang on
there
like i dont get it
want me to transplant that bin into an ISO and try booting it with ventoy and see if it's any different?
yeah
ventoy is just the thing that flashes the usb right
no
how can it even affect this
i mean sort of
no, it's a bootloader
oh?
it does things that are more pervasive
it's a heavily modified GRUB that loads ISOs from exfat / FAT32 at runtime
it's not a nice project
ventoy does chainloading I think?
thats very weird
i vented my frustration at ventoy many times in the past
for fucks sake
i will see myself out
yes
it will likely be different
i predict the fb will be marked as usable memory
if not, there's still gonna be signficant changes to the memory map
it's ventoy, i honestly do expect them to be capable of that
like linux would crash with that as well
I actually haven't tried anything else on that specific machine, in UEFI mode, from Ventoy
I can verify if Linux and Windows will crash
lets see the map first
yeah i was about to say
i may be wrong in my assumption
which is why we need to see the map
sorry, I have ADHD lol, I have trouble staying focussed on one specific thing when new things come up
one sec
if the fb isn't marked as usable then the only other option is that the Limine allocator allocated over fb memory but like
i see that as highly unlikely
yeah probably not
unless the memory map has some edge case
that limine is not handling well enough
we'll see
inb4 its random garbage
swapping BOOTX64.EFI in the limine-c-template and rebuilding should be a good enough test I assume?
huh, it's not working in QEMU, despite the sha256 of the BOOTX64.EFI in the ISO matching the one that I downloaded from your message
ah
you can mount that
aight ty
i mean in regards to reserved/usable
as do I, there's an extra reserved and an extra usable at the end
or not
I'm just blind
nvm
:P
yeah
@craggy tide limine bug ig?
At least u have the entire map should be easy to repro
so it wasnt oberrow curse
welp, anyways, now that that's been noted, back to the curse of the spreadsheet
ehh
i need to look into this
@fleet osprey could you try this? you only have to post the last screen really
alright, one sec
on Ventoy or direct, or both?
I'll just try both
doesn't print anything when booted direct (intentional?)
yea, just tested it and it doesn't print anything in ventoy either
remember to also update the .bin file
I did
alright try the second one
wait was I supposed to let it boot, I thought it was gonna pop up before the menu again
but accidentally let it boot this time and it prints the mem map (half of it scrolls offscreen though) and then hangs
yeah
you're supposed to let it scroll like that and hang
that's intended behaviour
ah, my bad, I figured it would be the same where it pops up in the EFI console before the limine menu
but anyways, you need the end of the map it printed?
ty
no this is fine
this is weird
especially given the above premise that the memmap is the same with ventoy and otherwise
that has to not be the case else it wouldn't explain why it works fine without ventoy
maybe I could test directly chainloading with GRUB?
if it breaks there, that would rule out Ventoy garbage, and mean that it just explodes (somehow?) when chainloading
i wouldn't do random tests without having a clear idea of what we're testing
just not to waste time
fair
@fleet osprey
one sec
no probs
new ss? looks the same
yeah
this one actually has the fb entry
i made a mistake in the previous one that wouldn't show the fb entry because it was skipped over
ah
whats important is that it seems fine there
interesting, that's from Ventoy
I wonder why it wasn't page aligned when booting Astral then
try running it again, but edit the config on the fly to pass the kernel as a module or 2
k
so just to verify your wording: add a line or 2 of module_path: boot():/boot/kernel?
yeah
try this iso as a whole please
the memory map looks fine
it looks like what Astral was using as the base of that bad entry, is actually shown as the end address of the fb there?
it doesn't look anything like the astral one
do you think there's a chance you could extract the kernel out of this ISO and inject it into an astral image without changing anything else?
replacing the Astral kernel
the kernel is this
yeah, hang on, I can do that
yeah it looks almost the same (less reserved space tho?), and Astral still fails
so then I guess it must be a weird bug with Astral's VMM that somehow only has ever cropped up on one machine, in one boot method, and only when using Ventoy to load an ISO.....
wtf????
I dont change anything from the map entries which wtf?
wait its still not aligned to 4096
oh wait what I didn't notice that
this entry is wrong
the question is more so why it's only wrong on the Astral ISO
well it's just Limine 8.0.9, pulled from GH
also the EFI cursor showing up there is weird
or at least what i assume is the EFI cursor
how old is this machine?
anyways
right
bruh
true
interesting
did you run into this when porting qemu
\n vs \r\n?
it's flanterm
oh ok
it's supposed to own the framebuffer fully
i don't remember any mutex functions failing
hm i don't see how a mutex can be uninitialized
unless it's locked after being destroyed
maybe add prints to the mutex functions that print the function name and mutex pointer?
added the prints now its compiling again
@carmine swallow @robust geyser @analog berry @fleet osprey btw you probably should do a clean build, I changed the deps of pretty much all packages
(ping spam) Possible spam detected for user: Mathewnd. Please contact a moderator to be unmuted.
.!unmute @grand shadow
Unmuted @grand shadow
are mods actually affected by the timout
yeah
couldnt even remove it from myself
seems like it never does anything with that mutex before this
time to peek in monitor.c
{
Monitor *mon;
qemu_mutex_lock(&monitor_lock);
mon = g_hash_table_lookup(coroutine_mon, qemu_coroutine_self());
qemu_mutex_unlock(&monitor_lock);
return mon;
}```
i guess it got called before monitor_init_globals?
qemu is compiling rn what is vreport
info/warning/error reporting function that takes a va_list (and there's are corresponding report functions that take var args)
i guess you could just replace !monitor_cur() with true there?
but that's just a guess
oh and apparently print_loc also calls monitor_cur
so I assume it hit some error and is just dying super early to the point it cant even call cur_monitor?
I'll do that to see what it says
that'd be my guess yeah
I removed it from error-report.c but it still seems to happen?
I think I will just build qemu with debug symbols, printf(__builtin_return_address(0) and addr2line

monitor_cur is also called in qemu_vprintf 
i fail to see where it'd call it though at a glance
astral so good qemu doenst know how to react
trolled
time to see what it wants to say
(probably wont be pretty)
oh bruh it just wanted to print a warning
lmfao
though it still didn't keep going
do I need pthread_kill?
seems like so
well
I will implement sigpending since its easy and I already have everything needed and then tomorrow I implement the thread signaling
it was not oberrow curse after all :')
pthread_kill should be easy enough no?
once again astral proven to not be shit
assuming your threads behave more like processes that are in one thread group (aka what it's like on lunix
)
tgkill would literally just be loop through the thread list of a process and call signal_signalthread on it if it finds it
I can probably do it today
(citation needed)
i wonder if qemu is gonna also be borked on astral or if that's managarm specific and not mlibc specific
qemu seems to struggle with disk io sometimes from what i can tell
a simple test bootsector can't reproduce it ofc but iirc grub fails to load when i tried booting the debian gnu/hurd disk image
Arhffhfdjdjcndks I think Im doing sigsuspend wrong? Apparently it wants the old signal mask to be restored after the signal returns
Jfc I hate signals
Ill deal with this tomorrow
btw @analog berry got some ACPI errors for ya, since you were curious about any on my Optiplex
here's some from an HP ProBook 4540s
Could be normal, did you look at dmesg for this laptop on Linux?
I can, one sec
Acpi dump + dmesg output would be very nice to have
also I need to swap BIOS -> UEFI for that
Limine has bugged video output in UEFI on this laptop, so that boot I sent there is BIOS
but Linux is installed as UEFI
would that be an issue?
if it is I can probably go install GRUB for BIOS on it
Could potentially taint the results since its the firmware that does aml patching, but we can try
alright then I'll go install GRUB to the drive as an MBR then
just will take a little bit more time
Nice, thanks!
Its very possible that its just a firmware bug because its relatively harmless, but again could be a sign of some other uacpi problem
holy shit how many machines where Limine is randomly bugged on do you have?
@analog berry btw i fixed the issue from yesterday
Ikr, its a gold mine of bugs
What was the problem?
that's the ProBook, it's the one with the weird pitch that you've known about for a bit
GCC
Huh?
basically a symbol (the image size) from the linker script had a bogus size compared to when using clang
i worked around the issue
Why did that only manifest itself on that pc?
by not importing linker symbols that had difference operation in them
well for one it needed GCC
and UEFI
so that already narrows it down in terms of how many people tested it
and then it basIcally manifests as Limine trying to allocate itself in the memory map but the size is really large
Is the default limine release built with clang or?
Why was astral even using gcc there
so i guess depending on the memory map layout and depending on the location of the loaded image in memory, it may not have any effect
the binary release is compiled with LLVM yes
Astral is using GCC because that is what the Limine Jinx recipe in Astral does
it uses the Astral cross compiler
so basically you had to be quite unlucky (or luckly if you ask me lol) to hit the bug in such way that it would cause issues
also in the meantime i noticed and fixed another bug but that wasn't this bug
in any case
yeah
software be like
Nice
actually hang on. I have a dmesg with more in it, because i skill issued the grep
Thanks ill take a look
ah i see
uACPI tries to _REG it very early, during namespace load, but it references a symbol thats added later on
This _REG is re-executed again after namespace init anyways
ill see why ACPICA doesnt try to do that, but its not really an issue other than the log spam
๐ just figured I would let you know since you were looking for error logs
yeah definitely
its important to investigate any warning/error for uacpi at this point
i lobe uacpi
love
still waiting for qwinci to work on the uacpi-rs bindings for tables so i can stop using this crappy acpi crate ๐ญ
qwinci great work btw
but he did yesterday lol
thanks
he did?
he literally sent it in your channel
he didnt?
#1230349543623757845 message
How many machines do you have holy shit
And ps2 works on none going to cry
u8042
Astral is gonna be running webkitgtk on real hardware before ps2 works
uHID
ps2+usb hid+i2c keyboard/touchpad+applespi
you need to do everything at once :^)
okay tbf you dont need usb hid in one package
but the rest are pretty much just keyboard and mouse
like if i just do HID i need the host of the library to implement usb on their own
and for PS/2 i can just implement an i8042 driver myself
so it kinda idk
makes it a bit chaotic as to what needs to be implemented where
and usb isn't that bad to implement yourself either, at least its not so annoying as ps2
although a separate hid parser library like uHID could be done
it is just another bytecode afterall
maybe i2c could go into uPS2 as well somehow idk
release ups2 first
ill start with i8042 ofc
it will have optional uacpi integration as well
for finding port numbers and device presence
u wish
that's not the annoying part, the annoying part is the quirks and initialization + mixed scan data and responses
nah you guys are cooked for this take
I have no idea about multiplexing because I just dont, but the rest is trivial even
its bad that I do but I seriously doubt the osdev mettle of someone telling me PS2 keyboards are hard
mice have a bit of silly to them with the different modes of scan for 3 and 4 buttons and touchpads
if you want it to work on the quirkiest hardware possible then it is hard iirc
well mathewnd has ported tons of software and has a relatively advanced stable kernel
yet his ps2 doesnt work on real hw after 3 rewrites
so no its not as trivial as you think
I cannot speak as to his project, because I just dont know, there could be complications from a lot of stuff that are project specific, but seriously, I dont get the difficulty
look at the ps2 driver in infy's old OS
the difficulty is you have two ports that have overloaded meaning, the sequence to resetting and detecting devices is also racey, has unspecified timeouts, may reply with random garbage, may not reply at all, may need a different way of resetting, may die because of attempting to detect extensions
basically its just quirky to death
yeah but thats standard device fuckery, all devices have their issues like that
and its a lot of legacy
never attempt a SATA driver
and its a device that is implemented by different people in different ways for the past 40 years
u have to know which commands are allowed to timeout, which need retries, which need garbage byte discarding, which bytes are not actually garbage, which may hang the controller etc
its a giant mess basically
but nothing of that is hard, its just tedious
ahci is really really bad yeah
but for the most parts its setting specific registers and waiting the right amount of time
for ps2 its way more mental gymnastics
It doesnt work on real hardware anywhere other than the 2 fucking machines I have available to testing which is crazy
I probably couldve gotten it to work if I could at least test it
yeah
I dont know what you have
Its likely some very specific step in initializing ps2 that I missed
Even nvme works on real hardware lol
the point im trying to make is its not that trivial even tho "looool its just 2 ports
"
i kinda notice that the older the hardware usually the harder/trickier/quirkier it is to drive
yeah i mean
its because of all the crust and implementations it has accumulated over the years, as well as extensions and not very good initial design
people develop less PS2 controllers nowadays
especially with those starting to be baked in CPUs and stuff
so less variance
sorta, nobody uses real 8042s anymore ofc, but a lot of laptops still ship builtin keyboard/mouse over ps/2, as well as some modern mobos that still have ps/2 ports
yeah but back in the day you would have so many manufacturers, nowadays all of those usually live in the super io chip in the mobo which is made by like 3 companies, 1 of them, nuovoton, has like 80% market share
probably fair yeah, id like to hope they reuse that code on all new things
ok yeah i cross checked with ACPICA, it doesnt run _REG that early unless the namespace has already been loaded (aka we're in a method call or very late host-invoked table load), so ill add that condition as well
thanks for testing
it's a very cranky grub + memdisk setup that injects custom proprietary binary blobs into the kernel (not even kernel modules, it patches the kernel) so that you can run a live linux system from the iso file on fat32
and it's chinese and quite shady (developers block all discussion of non-shit solutions for booting without injecting a potential rootkit)
i think some of them are modules and oss
tbf
the repo is full of prebuilt binaries for god knows what
yeah but even if they do they're wildly outdated
iirc the sources ARE there
ah
fucking great
i mean tbf
i have no idea how to do what they do without doing weird shit
hmm
okay now i have one idea
kinda
i have one good idea and it requires you to have an amd cpu and a bios that isnt patched for the smm memes
and i have another idea of just running a vm
and faking a disk that way
and another idea of stealing an AP to run a virtio
i have no idea if there is actually any non awful way to do it though
you basically need to convince a distro to mount a volume, losetup a file in that volume, and use that as the root
not sure if there's a way to magic that together even with linux
let alone the bsds
ok well with linux just patch the kernel ig :^)
or patch the initial ramdisk to do the magic
and then stage into the real ramdisk
for windows isos, fake up netboot
on linux maybe use the ramdisk stuff to copy the iso to there
or just inject a driver that autoprobes itself and always declares there to be the right iso in memory
and claims to be a block device
or fake some sort of device
somehow, ideally with aml
ok cursed idea
choose a device with a doorbell
point doorbell at lapic self-ipi
to the acpi event vector
simulate a disk in aml
to quote my notes from testing Limine USB boot (where I tested Astral as well as the C template across various boot methods), mostly because I'm too lazy to retype it 
[2] - I have the tested all cases possible based on following list of hardware: - HP ProBook 4540s [UEFI (known buggy), UEFI CSM) - Dell OptiPlex 755 [Legacy BIOS] - Lenovo ThinkPad T14 Gen 1 (AMD) [UEFI only] - Custom PC, ASUS PRIME H610M-E D4, Intel Core i3-12100f [UEFI] - Dell Precision T1650 [UEFI, UEFI CSM] - QEMU, see note 3! [UEFI, Legacy BIOS] I planned to also test on the following, but couldn't due to one reason or another, unrelated to Limine - Dell Latitude E5250 [UEFI, UEFI CSM]
oh and if you would've asked that a month ago, I would also add a ThinkPad T480, and a Latitude 5491
I sold those 2 sadly
Damn
I think after I get qemu working I will go and do some more general improvements along the kernel
Like making pci check for drivers in a section
Same thing for other things which need 192829378 blahblah_init
To clean up the code
Goal is to have as little driver init code in main as possible
good goal
techflash you can ever try nyaux on ur optimux prime pc
?
mayybeeee
i mean do in ur own time but it would be quite helpful when i get to writing drivers for the OS, currently trying to fix uacpi atm
just a note on this though - I would probably have a global driver_init or similar, rather doing it in PCI init
that way it's set up to handle non-PCI backed devices when support for those are ready
like probe for devices on all available devices, like PCI, USB, (maybe weird shit like i2c or whatever?), then based on that list of all devices found, init some drivers
like i plan to support things like smp and multiple ioapics in this rewrite
yea, when I get home
sure
if you would've asked an hour ago I could've done it immediately
but now you gotta wait until I get out of school :(
no need i still need to fix uacpi
ah
k
Ikik I meant like pci_init automatically calling the drivers for any pci devices it finds
Same thing for acpi and usb and etc
ah
why did init die 
the qemu window did open though
so thats progress
signaled so hard I killed init
ok so
does seem like some thread is stuck in kernel mode
nvm?
I think something is racey
oh defo
uh oh
seems like something deadlocks the vmm
the kernel vmm space lock in particular
pulled out gdb and looking into this rn
the mutex has several threads waiting on it without a thread holding it which wtf
either my wakeup is broken or my semaphores are broken
seems like the thread just doesnt get woken up?
welp that was fucking stupid
oh?
it was an issue in my yield -> sleep -> get interrupted by a signal instantly instead of sleeping path
thread_t *next = runqueuenext(sleeping ? 0x0fffffff : thread->priority);
bool gotsignal = false;
for (int i = 0; i < NSIG && thread->proc; ++i) {
void *action = thread->proc->signals.actions[i].address;
if (SIGNAL_GET(&thread->signals.urgent, i)) {
gotsignal = true;
break;
}
if (action == SIG_IGN || (action == SIG_DFL && signal_defaultactions[i] == SIG_ACTION_IGN) || SIGNAL_GET(&thread->signals.mask, i))
continue;
if (SIGNAL_GET(&thread->signals.pending, i) || SIGNAL_GET(&thread->proc->signals.pending, i)) {
gotsignal = true;
break;
}
}
if (sleeping && (thread->shouldexit || gotsignal) && (thread->flags & SCHED_THREAD_FLAGS_INTERRUPTIBLE)) {
sleeping = false;
next = NULL;
thread->flags &= ~(SCHED_THREAD_FLAGS_SLEEP | SCHED_THREAD_FLAGS_INTERRUPTIBLE);
thread->wakeupreason = SCHED_WAKEUP_REASON_INTERRUPTED;
spinlock_release(&thread->sleeplock);
}
it gets the thread at runqueuenext but if it gets interrupted it doesnt put it back there
which means the thread gets lost in the limbos of the kernel
ah
only happened now because the way qemu does coroutines forces this to happen
you may want to implement some form of locked up thread detection
I've found that immensely useful when poking at Linux drivers
and that would've caught this
this is the thread effectively being lost by the scheduler and never found again ๐
2 line fix anyway
ah... yeah may not have solved that, I misunderstood what you meant ig
I thought you meant that the thread technically still existed, but the scheduler just didn't actually give it any time
anyways
still has some rough edges (wtf is causing it to segfault? and only one thread?)
but it does work
gonna see if some more complex iso works
what should I try
not too big so I dont have to wait for the download too much
boot Astral in Astral 
hmmmm
I think I have a minimal iso in my server
100 mb
damn
I'll just toss it into the hard disk image
I wonder how many layers deep you could theoretically get before something blows up
maybe you could get Astral in Astral in Astral before any of the QEMU processes segfault, if you're fast enough
oh yeah that doesn't work with how you make your ISO for some reason
that's an issue I was looking at investigating eventually, because other Limine ISOs (particularly, I tested with the C Template) do work with that setup
yeah qemu is super unstable
I need to see what it complains about
also I wonder what 75 is
yeah I need to see WTF its trying to do with memory
but thats something for tomorrow
oop almost got to the limine screen
signal stack keeps being bad
which idk if is my sigaltstack issue or qemu's
I think it trying to load from disk is causing it to be slow
ohhh yeah the background
almost there
damn
even if it can't do it yet, it's still impressive as hell that it's even to the point of trying
I just need to unfuck whatever qemu is trying to do with memory and make it faster
yeah its too unstable
it didnt load the kernel
tbf, QEMU w/ TCG is just slow :P
hmmm, wonder why
does it suck trying to load from disk perhaps?
like you're thinking?
that is probably one of the things
its still very slow regardless
but yeah it taking really long to load the disk is probably just astral's disk drivers sucking
I can just run qemuprof.sh from mint too
tomorrow tho jesus christ thats enough osdev for me today
@craggy tide look recursive limine
alright tomorrow I will make qemu stable and then make it fast (as fast as I can anyways)
congrats ๐
also, any Limine is recursive Limine if it is running on my machine :^)
true
something is telling me my signal alternative stack is not right
addr2line says the } after return ret segfaults
which is more like the stack is bad
and its not a protection issue, there is just no range
I should log to see what signal stack it wants to set
I hate posix signals
I wonder how that'd even happen 
well that was idiotic
I think I fixed it
time to see if I can load astral for real this time
So far so good
Go into limine promot
Aaand pressing enter made it kill itself
Nice
sounds like something my ps/2 driver would do (if I had one)
you click enter and it triple faults
bcuz curse
Qemu passed an invalid sigstack when I pressed enter for some reason
but ofc having qemu is a big W
Hey thats the mathewnd curse
no it's the triple fault part
since I got an astral iso I'm going to test it
on my hw
it wasn't even like memory that wasn't mapped it was just mapped read only????
currently at af92e8eb871e3e6317e02b55637bc24a64eeed07
do it
sadly it doesnt
which reminds me I have my disk controller on ide emu
because I was tryna run DOS
and thought that would matter for some reason
Was that vmm bug from techflash fixed
and doing it wrong I think
wasnt a vmm bug it was firmware being fucky I think
Guess my firmware is fucky then
OBOS almost boots fine on my hw
It only gpfs sometime during kernel init
did it happen
Yes
do you have it built
Yes
can you do this
Sure
this time it'll be fr
oh god its gonna take so long to load
I think I'm just loading the kernel for now ๐
actually waitttt
I might just run from tmpfs this one time
my camera is dogshit
But
It had an unaligned address before crashing
E057e400
Type 5
type 5 is bootloader reclaimable I think
which needs to be 4096 aligned
bruh
@fleet osprey what ended up being the issue with the unaligned bootloader reclaimable
compiler issues with Limine
This length looks sus
official builds use clang, Astral's uses GCC, which had a bug, it was fixed now tho
0xA5433cc00bytes of reclaimable bootloader ram?
if you want to bump to 8.0.10, it's fixed there
specifically, this commit fixed it https://github.com/limine-bootloader/limine/commit/8382cd1794b32224f9f37f3571672cc651bf938a
ohhhhh
yeah that sounds like a good idea
@obsidian pivot it wasnt astral vmm bug nor firmware bug it was gcc bug

it was a GCC bug that created a Limine bug that makes Astral explode
Ignore thatmsg
such a chain of events lol
so how exactly
do I bump limine
I have no idea how astral's code structure works
Look at what I did in my pr
Just don't touch the config like I did (was only necessary due to major revision bump, 7.x.y to 8.x.y)
Only do the version bump
Hell I might just do it from the GitHub web editor on my phone
you still need the checksum of the package
Bold of you to assume I can't obtain a sha512 on Android
it'd be funny if astral crashes on my hw because of an allocator bug
anyways time for the truth
during uacpi init
astral is secretly a fork of vinix?
theres a chance I dont have a slab of big enough size in alloc() for uacpi memes
no if qemu will work
oh god its still slow
a bit faster though
bruh all I did was do the thing
git pull
why is it doing all this
and what does libotolize do
and why is it taking so logn
poor oberrow
I did a fuckton of changes to packages youre gonna be in there for a while
do a make clean and change DISTROTYPE to minimal

Anything is possible if you can get a shell :)
just ssh into astral 5head

it's building GCC again
I've had enough of building GCC
(ptsd from m68k port)
((and slightly cursed gcc))
(((and binutils)))
((((it didn't like my ld script))))
(((((only compiling with gcc though)))))
((((((clang worked fine))))))
(((((((common GCC L)))))))
sounds about right
they gave me free storage for my computer backup
(they don't know it)
((hehe))
dam that was fast
already on mlibc build
b r u h
t h a t
w a s
b i n u t i l s
There we go
Created, committed, and made a PR, all from my phone, sitting on the toilet
Quite possibly the funniest thing I have done in my entire life
@grand shadow you should merge it, for the funnies, lol
good
@fleet osprey if it doesnt work I will come out of the toilet and get you
cant test atm cuz qemu is busy waiting for qemu waiting for limine to load an initird
No reason it should break tho, it's a simple version bump
well guess I'm testing it then
๐ whar
ban him
pushed the fix
I missed the quote?
Bruh, GitHub default editor moment
no you missed the tarball_sha512="
Oh shit it nuked the entire var?
Wtf??? I'm ashamed in GitHub now
damn limine is still loading the initrd
its gonna be beuatiful when it works
or I could have just
passed a minimal nvme disk to it
oh
well too late now sunken cost time
ah fuck it
btw do git pull again when youre done I removed a funny debug print I forgor about
(itll just rebuild the kernel if you run make)
aaaaa more sigaltstack memes I think
nvm
WHY
TH
FUCK
IS IT
is that
coreutils
or the other thing
gcc
probably coreutils since thats in the minimal iso
if you remembered to change it to DISTROTYPE=minimal in the makefile lol
I did
ye its coreutils
nope I think its actually just my vmm complaining during a safe user op
damn rip
Don't wanna deal with this shit
did it run with the new limine
@wild marsh trying to run with an nvme disk in qemu results in this
Was that what yall had run into?
gonna try this in real hardware then go to sleep
Cool probably some mprotect memes?
Too lazy to find out
(note the kernel didnt panic I just printed the context of the segfault)
i3 my beloved :)
I like how fvwm looks but maybe I can add another option other than twm and fvwm
รง is right next to l on the keyboard and I didnt notice it for a while and now itll stay there until I eventually remove the printf
I thought it was some kind of corruption lmao
Nah its just my brazilian ass doing a typo
i don't recall seeing any mlibc errors, just grub failing to load itself
but i can check again in a sec https://uwu.foundation/5JSBxyG.png
I mean its just a missing sysdep its not that hard
Its like a pread but readv
Though yeah checking it again would be nice, I assume it mightve been fixed already
(since limine loads the kernel just fine)
Or maybe its a grub only issue
link to astral iso?
qookie will i use xbstrap this time for nyaux 
or nah
Theres one at https://avalios.dev/bootdisk.iso
Its a bit old but should work
lemme try that then
seabios fails to even boot into the cd'
Boot failed: Could not read from CDROM (code 0005)
and i don't see it calling preadv
only some warnings about mincore
Preadv was nvme
Wtf
but i don't think those are from qemu (maybe mesa? idr)
i have absolutely no idea why the reads seem to fail
Maybe managarm memes
qemu-system-x86_64 -cdrom bootdisk.iso boots into limine
probably
or maybe old qemu/seabios
maybe a bugged seabios version
qemu 8.1.4 with seabios 1.16.2
1.16.3 here
and qemu 9.0.2 or whatever
so yeah i doubt
what command line did you use?
can you sha256sum the bootdisk?
793f17469b0518fd92dcfb4ccd1dc6abcb7374cf735cab383f59582fe3192126
https://uwu.foundation/2qJMEEo.png seems to match
also try qemu-img info bootdisk.iso
maybe qemu is fucking something up
image: bootdisk.iso
file format: raw
virtual size: 101 MiB (105549824 bytes)
disk size: 101 MiB
Child node '/file':
filename: bootdisk.iso
protocol type: file
file length: 101 MiB (105549824 bytes)
disk size: 101 MiB```
thats the result for me
prints the same thing
i mean it reads fine for a bit and then fails later on
odd
from seabios code (return value is the code that's shown) ```
// Validity checks
if (buffer[0])
return 4;
if (strcmp((char*)&buffer[1], "CD001\001EL TORITO SPECIFICATION") != 0)
return 5;
inb4 off by one error in pread or something
hm i wonder if it behaves any better if i put the iso on tmpfs
okay it works better if i put the iso in /tmp
so it's a bug in libblockfs
now the kernel panics
Damn assertos moment
lmfao
Also wtf does sdl on managarm not have window decorations?
thats a wayland and weston thing
weston doesn't draw any server side decorations
sdl supports libdecor though which provides client side decorations for it so we could get that
to be clear, if you have sdl without libdecor on linux it'd have no window decorations on weston as well
Just run it on xwayland ez
i don't think it makes a difference for sdl?
btw @grand shadow what is the codec model on either one of the pc's/laptop that you tested the hda driver on? iirc you can find that in device manager when going to the properties of the soundcard (or alternatively you could just send the string in the bios path property or whatever its called that contains the pci vendor/device id)
thanks, the reason that I wanted them was that I want to make sure that there is not some random weird gpio stuff that would have to be done for those specific cards because if its something like that then there is no way I can fix the issue by just guessing what the problem is
HDAUDIO\FUNC_01&VEN_10EC&DEV_0887&SUBSYS_104386C7&REV_1003\4&2000AE52&0&0001 something like this?
this is my desktop
my desktop has the nvidia gpu one too but I sent the mobo one
INTELAUDIO\FUNC_01&VEN_10EC&DEV_0295&SUBSYS_1025143F&REV_1000\5&42ED54C&0&0001
my laptop
looks like they are alc887 for the desktop and alc1220 for the laptop
or maybe alc295 for the laptop, idk there seems to be some conflicting info but its good enough anyway
Hopefully you can figure out whats wrong that makes them not work
at least for the desktop one doesn't look like there are any other quirks than some pll hw bug (I highly doubt that it would cause the issue you are having tho)
but ig I can add the fix for it
What is this pll bug
idk it doesn't explain what it causes ```c
/*
- Fix hardware PLL issue
- On some codecs, the analog PLL gating control must be off while
- the default value is 1.
*/
https://en.wikipedia.org/wiki/Phase-locked_loop this thing?
A phase-locked loop or phase lock loop (PLL) is a control system that generates an output signal whose phase is fixed relative to the phase of an input signal. Keeping the input and output phase in lockstep also implies keeping the input and output frequencies the same, thus a phase-locked loop can also track an input frequency. And by incorpora...
yes
though the thing with hda in general is that there are a lot of quirks (there is a 10k line file in linux for the quirks in realtek codecs, though tbh that's like the majority of all of them anyway)
idk how likely do you run into them tho
especially with a playback only driver that doesn't do any jack detection or anything more advanced like that
lmao
what a pile of crap
i remember having to hand craft them to get reliable audio on very new laptops with netbsd or freebsd
horrible
yeah that's bad
I added the quirk, idk if its worth testing again yet tho (and not rn anyway because I am rebuilding astral)
if only I would have more machines myself that I could test this stuff on
I only basically have the tigerlake laptop and then my desktop that has alc897
- qemu and vbox ofc but pmuch any driver will work on them no matter how garbage it is
@grand shadow
I have pulled
Astral
and my limine is a version behind
I run the jinx rebuild command twice for limine
hmmm
can you ls host-pkgs/limine?
yeah, if Limine isn't built, how do you expect to be able to build an image using it's files ๐
that probably should've rebuilt Limine, but just run that command for me
just to verify
because if it doesn't exist or is empty, well there's your problem
I mean you could add a debunch of debug prints and ask me to test it
I'm already trying it from a clean build just in case
but I don't see any reason it wouldn't work unless host-pkgs/limine just flat out doesn't exist, or is empty

PS2 bugged
the mathewnd curse
do you have anything in that port/emulation turned on?
and does power button work? (for infy)
Power button works
based
But never shuts down
It said powering off
oh bruh
well its still safe to turn off your machine 
@analog berry
bruh
@obsidian pivot
I'll check
Doesn't look like anything with ps2 in bios settings was touched
And my older obos rewrites worked with ps2 emulation on that machine
Tbf they didn't support multiple ports
did they do the whole ps2 reset stuff
hm
thank god
astral skill issue then
i doubt it even reached uacpi there
that's a bashism
but u can try with a different log level
yeah I figured
I mean after that last print all it does is write a letter to /dev/acpi which literally just has a swtich() in the device write lol
but he can see
add printfs to kernel i guess
pls
Soonโข๏ธ
my guess would be obos does some more initialization or smth I dont do
For what
acpi
Well I just initialize uacpi as I did in my 3rd kernel
Which was taken from the test runner
In February
Or January maybe
And I also added the gpe finalization thing
I need to fix gpes in obos
I made the hdaprints go to the screen and added a print to the stream irq handler that it prints at max 6 times, I am not really sure where else could I add prints that would be useful without them being spammed all over the place (and the test file is now a lot shorter and called test.wav, I just dd'd a part of it)
wait i dont think i even initialize GPEs in astral lol
not that it should matter
but maybe it does on that hw
anyway we need logs to see what happens
by logs i mean in astral kernel
perhaps new printf statements in the write handler for /dev/acpi
i know its not because i never call uacpi_finalize_gpe_initialization in astral
lmao
i forgor to do that ๐
My panic has no stack trace
So I have no clue how this could've happened
All I get is an rip
TODO: This
btw, just did a fully clean build and have no issues with installing Limine like this
sounds like you did something wrong on your end
his /bin/sh is not bash, that's why he had the issue
it was fixed anyways in latest Astral commit
ah, alright
doesnt bash when ran on /bin/sh do a compat mode of sorts or smth
I could've sworn it did
but maybe not
on my system it seems like /bin/sh is dash
yes-ish iirc
it does run with some compatibility stuff, but not all
you have to do extra steps within the script itself to ensure that you're running 100% compliant to POSIX with no extra extensions
which is stupid, but iirc is just how it is
downloading qwinci's iso to test
@carmine swallow WTF
It bugs out for a few seconds then just works????
wonder if it could be playing unitialized memory for a bit until it starts running the actual song?
dont forget theres also the header for this file format
ohhhh true