#Astral
1 messages · Page 18 of 1
how difficult would it be to reimplement gnu/mach api? 
true lol
if keyronex had a mesa port id do that probably
or if mintia had an x86 port
although that uses a weird lang
yeah idk which kernel to pick
I love how astral kinda just turned into the sandbox os for other projects (e.g. uacpi) 
If only
meson --cross-file ${base_dir}/util/crossfile --prefix=${prefix} --buildtype=release -Dplatforms=x11 -Dglx=xlib -Dgallium-drivers=swrast -Dvulkan-drivers= -Dllvm=enabled -Dvalgrind=disabled -Dlibunwind=disabled ..
This is how u currently build mesa right
Do u know how to enable all the drm shit?
I dont but you can probably look at the blfs page for mesa
thanks
yeah, found it and mint fixed it last week
https://github.com/mintsuki/flanterm/commit/b16d2649c02af0104392ff47263626e5ea6ca8a5
Astralbros undefeated once more
If only obos were stable
And would boot on 90% of hardware
got another issue which might be in mlibc but i couldnt be bothered to debug it
box drawing characters in ncursesw get fucked with TERM=linux somehow
When I get motivation to work on this project again its over for everyone else
i eat cement does that help?
How does cement taste like
very tasty and crunchy
Hint: killall -9 cogmind
Does wine need siginfo bs
@carmine swallow
I think you were the one who ported wine to managarm
I don't remember for sure, I think it needs ucontext at least
did you try it btw?
I was thinking of trying it for the memes
from what I remember managarm already had siginfo and was just missing ucontext but idk if it needs siginfo
I mean its not that hard to try and see if it works or not lol
Yeah true
ucontext is like 30 lines of assembly?
its not really even any extra asm, you just have to save the registers from the point in the thread where the signal was raised (a pagefault frame or whatever) to the user stack before jumping to the signal handler and then when the signal handler returns you modify the syscall frame using registers loaded from the user stack (where the ucontext is)
or well ig that depends on how exactly you implement it but at least that's one way on a monolithic kernel
yeah I guess in that case, but you already need to restore the regs so its not really any extra asm?
like for sigreturn
Yeah
you just have to make sure that the saved stuff matches the ucontext layout
But anyway, it's just 3 functions which save and restore registers, it should be quick to implement
Also does wine need ldt bullshit for 32 bits windows apps?
pretty sure yeah as it has to change the cpu mode
I didn't do that on managarm so I don't really know that much about it other than what I saw in the source
Wonder how bad it is to implement
I wouldn't think its that bad, you do need some kind of syscall for the ldt stuff
I can probably shove it in the astral archctl syscall
and I think it needs two builds of wine and you point the second build to the first while configuring or something like that to actually build wow64 support (if you don't want to have 32-bit system libs)
Wtf
Help
Got 400k robots on Nauvis and I forgot to run a green wire so after a day over 1M solid fuel was produced and I had to place more yellow chests and that turned into pixel soup very quickly
In real life?
There's a fake one??
what the fuck
wsl?
yeah that's kinda weird, ig you have to explicitly specify it using --build or whatever
it doesnt let you use --build 💀
wsl2 is just ubuntu in hyperv vm
(or other distro)
why does it even need a wsl target?
what does it give
legacy cross-compilation flags is not supported.
You specified: --openjdk-target=x86_64-astral and --build.
The recommended use is just --openjdk-target.```
bruh
I wonder if you can just hack it somehow so it thinks the build machine is linux
thats what I'll probably try to do
you could probably add ```
-wsl*)
os=echo $os | sed -e 's|wsl|linux-gnu|'
;;
copying config.guess alongside config.sub fixed it
ah, nice
reminds me that I should get back to uhda and try to fix the astral integration (and figure out how you are actually supposed to associate (or just figure out which ones of them are ones that should be exposed as individual things to the user) the billion speakers in the laptop that I have to the actual physical speakers, though I am not completely sure if that's handled by the hda driver or is that some sst bs that's passed in some config fw file)
and fix the volume computation lol, rn I divide the max value (which is at max like 127) by 100 and multiply that by the percent which is pretty inaccurate (and if the max happens to be less than 100 then I just set one percent to equal 1 and clamp the range so it stays in the supported range)
well the one issue I already kinda figured out and told you (that it was just having a too small buffer size)
then I think the another one was that the reset is broken or something (as in when you stop the playback in the middle using ctrl c and restart)
I started implementing a new feature today maybe were so back?
I still cannot for the life of me find whats the relation between shutdown() and poll() in posix like what a poll would return after shutdown
POLLHUP/POLLNVAL?
What does poll() do when end of file is detected? What
should it do?
it's highly debatable
it's not supposed to make sense
it's supposed to be spec compliant
whatever that means
the spec doesn't define it
too bad
it does for epoll
switch to the better alternative (jk)
only if epoll wasn't linux specific
linux favours pollhup in a lot of cases but a lot of other kernels favour both POLLIN|POLLHUP or just POLLIN
POLLIN makes more sense imo
just implement it lol
astral dead real?
i eat cement
prove it
that's no proof
how do you withstand the pain
crunchy
exactly
it was dead before it even began
alright so
the reason why uacpi init seems to be so damn slow is the allocator
my mutex is fine, avg 41 per acquire and 39 per release
average alloc() is giving 1139
a lot of time seems to be inside alloc() itself
as slab_allocate is at 844
mapping is also horrible, 50k avg
free is also a big culprit, 2k per free
yeah this is super slow
doing this on wsl sucks, its so inconsistent
I think the final push I am missing is lto
atm on my craptop its 1.75mil
I should probably update uacpi
oh the pci api changed
@analog berry did any other apis change
alr ty
yeah I'm this close to just rewriting the entire allocator
yeah this is the best I can do today, if anyone with a good computer wants to try out and get the score
qemu-system-x86_64 -cdrom astral.iso -M q35 -enable-kvm -cpu host,migratable=off
4.5M
holy
my computer is a nuclear powerplant
ill pass you the bill
but fair warning, we do financing too
🪙 🪙
like the acpi aml blob load?
if yes then got: 3.3M
Damn theres such a big disparity based on cpu speed
i have this (3.3M)

vmm: no range
yeah I print that whenever I have to send a SIGSEGV
ah
this is what it says within the bash window
damn yeah its the segfault
if you add PRINT_CTX(ctx) in the mmu page fault handler after it raises the sigsegv what does it say
also idk where have all the library dependencies gone in factorio 2, I took a look at it and it only has the libc dependencies whereas factorio 1 has all the deps on eg. pulseaudio and whatever
inb4 statically linked
so true
i wouldn't be surprised
"hey guys I need help it crashes on this os I'm trying out what does this mean"
"oh yeah guys im using this shim to run glibc software on a different libc"
Ill try
how large of a stack are you giving it?
I give like 2mb I think?
I give 4mb actually
yeah true
@carmine swallow go to elf.c and increase the stack size
still strange that it uses that much stack space
yeah
it's probably an infinite recursion or OOB
that looks like its using more than 1 gb
its still the same
also re the libs maybe it dynamically loads them because the names for them are still in the executable
I wonder if my ucontext is different from the linux one in some way and thats causing it to write a 32 bit int in the bottom dword of rbp
no it seems to be the same
ask them to compile it with mlibc
ok yeah it seems to be different?
sizeof(ucontext) in the host is 968 but in astral its 424
wait, you can play factorio in this os???????? was ported/supported?????
omg
that is gigachad
well no it doesn't work lol, the attempt to run it in wine got further than this
I think it crashed at the same point?
what the cogs do to a man
well it did create a window and print some version info + gl info no?
yeah
yeah its likely not the same place
its the same as the mlibc one, let me see if the mlibc one is the same size as astral's
yeah astral's is the same
also this seems to be from a library
(unless factorio gets loaded there)
wtf
it tries to create the file and then complains that it doesnt exist???
NtCreateFile can also be used to open file
is the kernel32 file in the wineprefix
the wineprefix doesnt even get made yet
it crashes before it even makes the wineprefix
ah
the reason is baffling me
^[[0m0024:warn:file:NtCreateFile L"\\??\\Z:\\root\\kernel32.dll" not found (c0000034)
it tries to get kernel32.dll in the cwd
but didn't it work before
yeah but adding the i386 arch borked it ig
is this for the 64-bit one or the 32-bit one?
weirdly enough it does find it in the /lib/wine folder before that but after it dies
64bit I think
like if you look in the logs it does successfully open it at an earlier time but then it forgets that it exists and checks a weird dir
so weird
its in loader-init in the load_dll(NULL, L"kernel32.dll", ...)
I suppose the library search path is borked somehow?
so the wine it starts has the right default_load_path but the wine I start doesnt
hmmmm
wonder if I'm missing an env or something
yeah, if I set WINEPATH it doesnt die there
by moving my general allocator code into the same file as the slab allocator I got 100k for uacpi on my laptop
build with -flto lol
it dies if I do and I really dont feel like debugging that💀
that means you have UB somewhere
for me it was because of pointer provenance issues
yes, if you let the compiler optimize more it will optimize out incorrect code more often
lto breaks the printf I use when running on tcg
wtf
printf("response: %d\n", 1); triple faults
maybe I need to pick another printf
Whats your printf
Hijack the one shipped with uacpi 💀
mpaland
so true
Lol
The what
I guess its actually shit
strange that it has so many stars but dies under lto
i like nanoprintf
they do it the right way with functions that accept putchar callbacks
Tiny, fast(ish), self-contained, fully loaded printf, sprinf etc. implementation; particularly useful in embedded systems. - eyalroz/printf
I have this
works fine with lto
and is actively maintained
its a fork lol
yep
I'll take a look at it at some point
whatever u do dont use stb printf
it doesnt implement precision correctly
if your uacpi segfaults im not responsible 
is this expected?
giving it 8g instead of 4g solved it
how is astral so big lmao
whats strange is this is the defaults for astral
yay new uacpi on astral
Mang porta
How did I fuck the spelling up so badly
"g" right below "y" and "a" right next to "s"
You can probably build it with DISTROTYPE=minimal if youre just uacping

You can also just make a disk image with make disk and do make run-disk-kvm
Saves inittd loading time
Or one day I could take the 9pill and just have a 9pfs run directly from the sysroot folder.....
i should've probably asked u...
I mean I wasnt awake 5 hours ago
https://github.com/Mathewnd/Astral/blob/rewrite/kernel-src%2Fio%2Fnet%2Floopback.c#L59
@grand shadow this line is technically invalid since loopback IP addresses are 127.0.0.0/8 and not just 127.0.0.1
although I don't think anything really uses other IPs in that subnet as loopback
hm it could be an issue
in the routing table its correct but this probably breaks in the ipv4 receive
wait why would the IP even be stored in the NIC data structure
I would expect that to only be in the routing table...
I forgor
3.9M
Sorry I didn’t know the thread was that old 😭😭
no astral updates in a week, dead os
/j
chat it's been an hour and it's still compiling the project (i'm using -j8)
you clearly need to upgrade to a 128 core cpu and a terabyte of ram
Also directory's like 14gib rn
uhmm it reached 90°C
it's fine
the point where you should be getting worried about it is when it gets above 100c or something like that
oke
if it does, it'll just thermal throttle
and even then it will just throttle itself so its fine unless you have no cooler at all in which case its just going to do a thermal shutdown at some point
yeah
no damage will be done
make in italian is being the single most scariest thing ive ever seen
what the fuck
theres definitely some resource leak or maybe you are compiling ALL of astral's ports
Why 
I can't imagine using Linux in any other language than English
imagine googling errors
Idk if you know how to translate them then you're good
Also
Most of program errors are in english
Just like make right here (ish)
Me after compiling managarm
I had 500mb free
Just download more disk space
wherefrom
I've recently seen a video about swapping to google drive
@grand shadow do you use the tsc as your main timer?
for timekeeping yes
because i think your calibration without hpet is a bit weird
you do ecx * ebx / eax, but wikipedia says you have to do ecx * (ebx / eax)

isnt that literally the same thing
you loose precision (?)
which results in the same thing but less precise lol
in the sdm it says “TSC frequency” = “core crystal clock frequency” * EBX/EAX.
idk i just read this
I mean if you use floats it would give the same result in both cases, but I think that in the ebx/eax one it'd be less precise if you dont
i'm confuzzled
whatever i'm computing is not in Hz
@grand shadow what's a normal value to come out of this calculation
idk none of my computers support it
qemu?
I have it and it's not supported on qemu
at least not enabled by default, there might be some flag to turn it on
yea what about it
^
super weird
use kvm pvclock to get the frequency
... i may have omitted the leaf presence check lol
lol
1000 mhz
iirc that's what my VM gave me
fun
mul is more precise but when doing mul with floating it is not precise
2 float operation vs 1
2 less precise then 1
?
am i correct?
no (?)
probably due to all that cement you have been eating
no way, it is super helthy that is what my cat told me
nixstrap shill == cat confirmed
we eat cement
prove it
i dont know him
alt?
no?
i am telling you they are blaming me
that's what an alt would say
; -;
i am going to eat your walls
no house?
beboop
dead chat
ded
no i ate the walls
dead os
real
the os is 
Dead body reported
I have been super busy with many things
Which then leave me with no energy for programming
pro tip: give up on real life
(don't)
(do)
Who needs a life when you can do osdev
(don't)
there's no don't without do 
GregTech?
greg
astral is alive
You gotta crawl before you can walk
Astral running Minecraft when
going to install this on a laptop and attempt to daily drive it
why not?
lynx :^)
this is a good point tho
I thought this was nyaux thread lmfao
Managarm is somewhat daily-drivable 
gaming tho 
We have qemu
You could just finish up czapek's KVM work
And wire up vfio ioctls for good perf
Ps2 doesn't work
Why
me watching my past self play factorio
ah yes, very easy
playstation 2 no worki qwq
👀
I'm working on redoing the kernel initialization
no more infinite _init() calls
just gotta redo the dependency lists I made because I nuked some useless init calls
are you planning to do a rewrite or extending astral
yeah dont
imagine not rewriting your kernel every time you touch it
couldn't be me
didnt do anything today because gregtech
which tier
hv
lmao yeah
cant wait for AE2 so I can actually start playing factorio in minecraft
I already have some simple stuff automated like benzene (for power), ingot cooling, polyethylene, oxygen, hydrogen, nitrogen, rubber and stone + sand + gravel + obsidian
and gold/redstone
because I'm not fucking mining for gold
but I desire more automation
Setting that up is certainly fun
yeah my bf did a bunch of crop breeding to try to get useful crops
so I just made a glowshroom farm to get glowstone to get redstone/gold
Ah
oh and a SiO2 -> Si + O2 line and a solar grade silicon line
Yeah
okok I cannot let this die
tomorrow I will finish what I am doing and then start looking into reworking my device driver stuff since it kinda goes hand to hand with what I am doing
I made a ptfe line and yeah I can see that now
Astral ftw

i can see this reviving frfr
tmrw btw
so where astral work

Im currentlly busy being gay sorry
crazy
I recently went to a gay club for the first time and it was something else
I’ve always been told that gay bars and other LGBTQIA+ establishments are loads of fun even for straight people. Never went to one tho
It was also the first time I went to a club in general
That’s an interesting first club experience then
But somehow I went to a straight club a week later and perhaps it was because it was overcrowded, but I felt like the energy was not it
My best friend (from Russia) came to visit me (and after having enough homophobia there) had (finally) made me leave the house and took me to a bunch of queer places
Yeah they are a different energy
If you’ve tried clubs, but not your thing, a bar is different from a club and there are many types of bars. I’m more a bar person
Sounds fun! Glad you enjoyed it
I feel like it's just difficult for me to socialize in general
(like I haven't been to bars a lot either)
The clubs seem fine, but I feel like it's not the place where you could go often
Relatable
Go with friends, that’s probably easier especially for a first time
Oh yeah I couldn’t do that 2 times a week every week. And I know people that do more
cooking something (assert expected)
only these two are hooked for now but I think I got the logic done and can start hooking up the rest to it
#define INIT_ROUTINE_DEFINE(name_, flags_, fn_, ...) \
its pretty simple
name is name, flags is flags, fn is function and ... is deps
works with stuff on other files and all
and then you call one of these and it will do its job
void init_run_routine(init_routine_t *routine);
void init_run_all_routines(void)
I think I'm not gonna keep the print though, seems to really clutter the logs
hooked enough to get the scheduler running
I will finish the rest tomorrow
balling
BALLIN
what does init_routine_t entail?
is it like a dependency tree?

Yeah
Btw, maybe instead of building a hashtable you should implement something like I did (which I stole from Linux) where u just do int x; parameter(x); and that creates a struct in a special section of such structs that u can just iterate and match parameters
Hm true that way I could have it parsed before any allocator is initialized
I do it specifically because it allows me to define early_parameter()
Which is how I set the early console
do you also have a macro for early consoles
i have this
not anymore
why
how do you know which earlycons are available
do u mean on the userside or on the kernel side?
kernel i guess
for e9 it checks that it's in a hypervisor and that in(0xE9) == 0xE9
for serial u have to trust the user that they know a com1 exists for example
can't you check it with acpi
it's an early console
oh yeah lol
it's set up way before anything else
no like
how does the kernel know about the console
it needs to somehow resolve earlycon=serial for example
earlycon_set will be called automatically here
which will call register_console()
or do u mean how it finds the parameter?
what i do is i just have an earlycon_setup which scans all early console names and tries to find the one specified by the command line
static error_t earlycon_set(struct string mode, struct param *p)
{
error_t ret;
struct string *cur = p->value;
ret = earlycon_destroy();
if (is_error(ret))
return ret;
if (str_equals_caseless(mode, EARLYCON_MODE_NONE)) {
*cur = EARLYCON_MODE_NONE;
return EOK;
}
if (str_equals_caseless(mode, EARLYCON_MODE_E9)) {
ret = e9_console_init();
if (is_error(ret))
return ret;
*cur = EARLYCON_MODE_E9;
goto out_ok;
}
if (str_equals_caseless(mode, EARLYCON_MODE_VGA)) {
ret = vga_text_console_init();
if (is_error(ret))
return ret;
*cur = EARLYCON_MODE_VGA;
goto out_ok;
}
return EINVAL;
out_ok:
pr_info("using '%pS' as the early console\n", cur);
return EOK;
}
Does this help?
yeah so you just hardcode the earlycons
yeah, all early consoles live in earlycon.c
right, i do that dynamically
i also stole that from linux
i thought if it works for them it will work for me as well
ohh ok so u have like a deeper layer
i thought it was overkill honestly
but its fine ig
like imo all early consoles you will have will be tiny
and they will be arch specific
btw i see that u pass a null terminated string, do u destroy the command line in-place?
yes
ah
do u have any way to diffirentiate between early vs late options?
or e.g. set an integer option
i did that before, but now i leave the parsing up to the option
i do have atoi and the sort though
because im now doing a microkernel, most will be propagated to the user space processes anyways
fair
and those can just be argv and such
i'm still thinking about what to do. my idea was to propagate all options with a prefix to the respective server
that makes sense
like posix.dev_automount would go to posix as dev_automount
my plan is for menix to be completely freestanding, despite being a microkernel system
so you can build it without a real cross compiler
I kinda want to try doing kotlin servers for my ukernel
thats cool
it's annoying because i ended up spending 90% of my time thinking about how to approach things instead of just writing code
u just needed to write 999999999 more loc
which (as you've already seen) is not the case in C
then you would see solutions in your mind
i literally pushed out like 120 files in one commit
one thing i don't really know yet is how i want to approach cross server IPC
thats something no one knows probably
yeah
atm i'm thinking of doing a msglink and datalink which is for sending messages/objects and bytes respectively
also I already did start making that, I basically just copied what I had for my new crescent2 c rewrite removing all nt stuff and I made an ipc generator similar to mach mig where you write stuff like this ```c
msg_id_start 0
#include <bruh.h>
proc create_window(server: ipc_port_t, window: out ipc_port_t, width: i32, height: i32)
proc set_window_pos(window: ipc_port_t, x: i32, y: i32)
proc destroy_window(window: ipc_port_t)
cool
yeah
what's an ipc_port here? just a message channel?
also for my ipc i'm just going to use regular headers
no fancy dpl
thats gonna get annoying quickly
hand writing the same code in different permutations in different places etc
basically yeah, though I haven't actually implemented any of that stuff yet lol
same 
My roadmap is kinda finish init rework -> redo device drivers -> rewrite scheduler
With an openrc port somewhere inbetween
Maybe after I finish the init rework
you can borrow steal me and marvins recipes for openrc


Menix more like minex

alright I think everything is hooked up
boots into fvwm and all
was wondering why networking was borked but then noticed I forgot to hook arp up
saw people talking about porting lua in nyaux thread so I decided to try to see if astral could download and compile it and it works
too lazy to make it a real recipe, if you need lua just wget it
(once I update the certs)
Daamn nice
Based
Why is uwu printed in the middle?
that happens with python too
I think its just an xterm thing yah I remember python being normal in flanterm
python built with readline?
if so then that's weird
unless you/xterm doesn't set the TERM env properly
accidentally ran make clean and have to rebuild everything we do not speak of this again
dammmmmn
Nice! I should try that too
ballinggg
Now I am actually debating whether I should do device rework or scheduler rewrite next
I think a better scheduler would be a priority
~~fix PS/2 kbds
~~
never
Im writing a very barebones and questionable serial driver because I have mostly been developing astral over ssh lately and I would rather just be able to run commands on the terminal
Its just gonna be something to set up the serial port, set up irqs for it, create a tty device and have agetty or something on userspace take over it
U could virtio console if you wanted it to be fast
Ehh might as well have a basic serial driver I can expand later on
Plus Im using uacpi to find them to make you proud :3
I do
The only thing I dont do is enumerate the entire namespace recursivelt etc etc thats for the device rework
alright its all hooked up to the kernel, just gotta configure the actual serial controller
and write tx/rx
Reading the ule paper again
epic
I have been playing so much rainworld I instinctively have been writing "iterator" instead of "iteration"
well good news and bad news!
good news: I get to a shell
bad news: everything is horrendously slow
system wide
so there is 100% some irq funkiness happening
ohhhh
it was not irq funkiness
it was something so much stupider
and slightly funny
I had two inits running 
forgot to remove a fork after I changed another function in init
so it kinda just started xorg twice
along with fvwm and all that crap
there we go
qemu does capture ^C and similar which is annoying
as in, ^C affects qemu
finally something in astral that uses uacpi for something other than power and tables
dont have anything I can use serial on :p
inb4 ps/2 curse but for serial
😭
x86-64?
yeah
Dell Optiplex 755 (Core 2 Duo E8400)
Dell Precision T1650 (Xeon E3-1240 v2)
do you remember if astral actually boots on these at all
I remember you trying it out
iirc it failed with some issue on the Optiplex
it booted on the Precision but no keyboard
could be wrong though, my memory is ass
wasnt the optiplex issue some ventoy stuff
nah even once it was past that it failed iirc
anyways if you can toss me an image I'll try it
all of my good hardware is currently busy so it'd take eons to compile from source
will do once I finish this
@fleet osprey what do you usually run the serial ports on, like baud rate parity etc
usually 115200 8n1
though I can do anything
if you want to set it to 9600 or whatever that's fine
got that image yet? gtg in a few min, and I'd need to test it after I'm back
👍
alright, just ping me w/ it whenever it's ready and I'll get to it when I get a chance
astral default is 38400 8n1, pick the initrd option
alright the serial port is pushed time to do irl stuff
if this works in real hardware I will be amazed I dont think I did a very good implementation considering its the first time I wrote a serial driver
if it works the only two theoretical ways to interact with astral that works would be ssh and serial 
(real nic driver not included)
Dw I vibe coded my serial driver back in the day of TFOS (iirc 2021?) using whatever godawful model OpenAI was shipping back then and it still worked
It'll be fine
it doesnt print anything wrt init to serial, so the only thing you should be seeing is a login prompt
Ok testing in a few min
flashing to a USB rn
it just hangs
no limine
wasn't there a consensus ages ago that you were making the image wrong or something
yeah
(damn almost a year ago)
@grand shadow
Damn
On both computers?
haven't checked on the Precision
that one might actually work since it has UEFI
one sec
lmao
lmao yeah the Precision says it outright when I try to legacy boot it
let me try UEFI
hey mathewnd did you know that PS/2 doesn't work on here 
anyways I am big dumb and forgot to move the serial cable over to the new machine
lmao
so I get loopback from Astral
but no login prompt
at least after hotplugging it
hotplug is not really gonna work I dont think
lmfao I pressed the power button and got a div by 0
ok a ringbuffer somewhere is not being initialized at all during init 
assuming somewhere in the depths of acpi

lol
probably a better idea to just put it to init in acpi_init
did you get anything now
wtf
it should be 38400 baud
maybe the way I do it is just too slow in real hw
might be it
actually yeah its defo that
I dont do fifo buffering yet
so it has to wait for the interrupt to send the next char
amazing
hey at least its running in real hardware
I'll implement the fifo buffering stuff if not today then tomorrow and annoy you to see if it got any faster
oh yeah
I gotta give you the usb image
so you can watch it crash and burn on 2007 hardware 
it has a known bad PS/2 emulation btw
even DOS fails at using it
crazy
idk why they even bothered shipping it
it literally doesn't work 
it sometimes just doesn't fire an interrupt for keypresses, so the buffer gradually becomes more and more full, and the OS gets less and less up-to-date presses
Dell was wild in 2007 apparently
@fleet osprey go crazy
if anything it will probably be slow like that but still work
gotta wait for it to download over my crappy DSL first 
might as well look into implementing that fifo stuff in the meantime
from what I read it was just like
get interrupt when empty
fill it up
repeat
iirc mine just didn't care if it was full and sent data as fast as possible lol
though it has been eons since I touched that code so I could be entirely wrong
me when I send fifty billion bytes in a 50 baud line
yeah I fixed that in the new img
yeah, was just confirming that it indeed does work
also serial doesn't work here
though that might be a skill issue?
idk if it's even enabled in the BIOS
I've done weird shit to this box
yeah then its probably just not having serial
actually I dont think the way I am doing the transmit is even the way I should be doing it in my own tty design hold on 
beeen a while since I last did anything with the tty subsystem
yeah no the way I intended it was for it to just be a simply wait until empty transmit repeat
serial works in Astral on here too 👍
no interrupt async bs
still slow as hell, as expected
yippeee
I'm going to do a change and then I will send you another usb image to test
alright
btw I also have tons of hardware to test it on if you ever want to do a PowerPC port, just saying 
bet
👀
@fleet osprey is this faster
downloading
btw my current collection:
- Apple
- PowerMac G5, 2x 2.0GHz PPC970FX, 4GB RAM, GeForce FX 5200 Ultra
- PowerBook G4 15", 1.67GHz PPC7447, 2GB RAM, Radeon Mobility 9700
- [dying RAM] iBook G4 12", 1.33GHz PPC7447, 512MB RAM, Radeon Mobility 9550
- [dead backlight] iBook G3 12", 600MHz PPC755, 640MB RAM, Rage Mobility 128
- Nintendo
- Wii U
- Wii (BootMii-as-boot2 compatible, unpatched DVD drive)
- 2x Wii (BootMii-as-boot2 patched, patched DVD drive)
- Sony
- [YLOD] PlayStation 3 CECH-2001A
- Microsoft
- [arriving in 4 days] Xbox 360 Slim (Corona motherboard)
damn that is a lot of computers
I should try it on my T14 Gen 1 AMD again
do neofetch to see if its stable
I remember that failed some time in the past iirc
np
just gotta find someone with a vt100 now 
woah holy shit
PS/2 keyboard kinda works on my laptop
it's insanely slow
but it somehow works?
..... kinda, it's weird
it has the same problem that I described w/ my Optiplex lmao 
it sometimes just doesn't fire an interrupt for keypresses, so the buffer gradually becomes more and more full, and the OS gets less and less up-to-date presses
at least, the same visible effect
no clue if that's the real cause or not
oh actually no
me when I fuckin lie
it's just slow as balls
I was confused by the timing
I press a key and it happens like 10s later
wtf
also only 1 key gets processed every ~10s
so if I keysmash it doesn't wait 10s then keysmash at the same rate
it waits 10s then detects the first key, then 10s later the next, etc...
Average Consumer Hardware™ 👍
uploading a vid now
btw it seems to be running really hot, possibly related (something hogging all the CPU time?)
I'm starting to think the only two machiens with actually working ps2 are my desktop and laptop 
since on both the mouse and keyboard work just fine
lol
this is normal hardware too
just a basic ThinkPad
specifically it's a T14 Gen 1 AMD
Ryzen 4750U
16GB DDR4
basic PS/2 keyboard, Synaptics touchpad
lol yeah I'm 90% sure something in Astral was spinning on at least 1 CPU core
I lost like 7% battery doing this
(that's extremely abnormally high for this machine)
I mean in the image I passed nosmp which just tells the cores to
asm("cli");
for (;;) CPU_HALT();
so that cant be it right
weird
maybe something was pegging the 1 core that it was using
no clue
I just know that the CPU was running abnormally hot (as if it was doing a ton of work), and that it drained a ton of battery
its the ps/2 microcontroller 
lmao
new trendy hardware issue caused by software
"Linux Mint erased my EC" gets out of here
"Astral burned up my PS/2 microcontroller" is the new issue of the day

I once had the idea of having something like an ssh that could spin up an astral vm and drop you into a shell and with this its probably possible now
ooh, neat
so kinda like what Managarm is doing on Pis?
#1091278035686268928 message
my framework laptop has ps2 emulation for the keyboard and trackpad
well this is setting up dhcp netboot with tftp and powering on a real pi + sending uart data over the network
very epic shit mathew
@grand shadow btw do u still want astral off the uACPI board
Eh you can keep it there
letsgo
Didnt do anything this weekend cuz was spending time with bf, will start doing ule soon™
I've gotten the interactivity calculation done I think, gonna start on the queues tomorrow
epic
I've gotten it to boot to xorg with the new scheduler queues and stuff but there is still something wrong since it is super slow
very fast, so fast

