<the_oz>
175s with -j 24 and clean step first to as well.
<heat_>
i mean yeah
<heat_>
ofc it defaults to -j1
<the_oz>
it just likes telling you how many cores you COULD have saves time with
<heat_>
KERNFAST=1 was to avoid rebuilding the whole thing
<the_oz>
"ofc it etc" when I develop my own theme park
<the_oz>
with blackjack and hookers
Ermine is now known as systemdfanboy
<the_oz>
:|
<the_oz>
>it's only a halloween costume. Must be.
<systemdfanboy>
yes
<systemdfanboy>
trick or treat
<the_oz>
you get nothing!
<the_oz>
you lose!
<the_oz>
good DAY sir!
<systemdfanboy>
you get systemd on your freebsd. enjoy
<the_oz>
AHHHHHHHHH
eddof13 has quit [Quit: eddof13]
eddof13 has joined #osdev
systemdfanboy is now known as pessimal
heat_ has quit [Ping timeout: 252 seconds]
Dead_Bush_Sanpai has joined #osdev
steelswords94 has quit [Quit: Ping timeout (120 seconds)]
steelswords94 has joined #osdev
rb has quit [Remote host closed the connection]
rb has joined #osdev
dormito has quit [Ping timeout: 244 seconds]
alice has quit [Ping timeout: 276 seconds]
dormito has joined #osdev
alice has joined #osdev
goliath has quit [Quit: SIGSEGV]
eddof13 has quit [Quit: eddof13]
Arthuria has joined #osdev
archa has quit [Ping timeout: 276 seconds]
youcai has quit [Quit: No Ping reply in 180 seconds.]
youcai has joined #osdev
_nater_ has quit [Read error: Connection reset by peer]
FreeFull has quit [Ping timeout: 252 seconds]
FreeFull has joined #osdev
karenw_ has joined #osdev
karenw has quit [Ping timeout: 272 seconds]
Fingel has quit [Read error: Connection reset by peer]
gog has quit [Quit: byee]
vai_ has joined #osdev
karenw_ has quit [Ping timeout: 272 seconds]
frkzoid has joined #osdev
the_oz has quit [Remote host closed the connection]
the_oz has joined #osdev
aethlas has joined #osdev
aethlas_ has quit [Ping timeout: 252 seconds]
Arthuria has quit [Ping timeout: 260 seconds]
karenw has joined #osdev
vai_ has quit [Ping timeout: 265 seconds]
griddle has joined #osdev
griddle has left #osdev [#osdev]
benlyn has quit [Remote host closed the connection]
griddle has joined #osdev
griddle has quit [Client Quit]
griddle has joined #osdev
kof673 has joined #osdev
vdamewood has joined #osdev
vdamewood is now known as vampiredamewood
vai_ has joined #osdev
griddle has quit [Quit: griddle]
vai has quit [Read error: Connection reset by peer]
kaidezee has joined #osdev
jedesa has quit [Remote host closed the connection]
craigo has joined #osdev
<kaidezee>
Hello everyone. I don't know if this is the right place to ask, but here's the thing: I wanted to look at (disassembled) code of UEFI implementation on my machine. I got dumps of flash (maybe it's nand? I don't know) from my motherboard via internal programmer and analyzed them with UEFITool. But when I tried to look at IME kernel, I figured that it was probably compressed, since there were no
<kaidezee>
actual instructions when I opened up ghidra. UEFITool confirmed that theory by showing attribure "Huffman compressed: yes" under "ME/Boot partition/Bring Up/kernel" node (which is the one I want to work with). So my question is: is there a decompression utility that can help me with that?
<zid`>
it should tell you a bunch of info and is capable of dumping all the files out of a bios update in a nice way
bauen1 has quit [Ping timeout: 276 seconds]
<kaidezee>
zid`: Not really. Binwalk didn't find any files in ME.
<kaidezee>
Or coundn't extract them perhaps
Left_Turn has joined #osdev
<kaidezee>
Binwalk only found one... err "thing" and it has description that states "JBOOT STAG header" and some other data that I have no idea how to use (timestamp, image id, header checksum, etc.)
MiningMarsh has quit [Read error: Connection reset by peer]
<zid`>
so what is the file you have, an ME firmware blob?
<kaidezee>
Yes
MiningMarsh has joined #osdev
<kaidezee>
I actually have the entire rom, but want to work on ME
<zid`>
is what you get if you run it over the actual bios file
<kaidezee>
Very close
<kaidezee>
let me diff it
<kaidezee>
It appears they are not
<zid`>
how annoying, the files seem byte swapped
<zid`>
or they have a length header? lemme chop off 4 bytes
<zid`>
yea, 4 byte header on them all, okay fair enough
<zid`>
so the lzma data at 0x3901D4 in my E77B1IMS.1F0 ends up being PE32+ executable (DLL) (EFI boot service driver) x86-64, for MS Windows, 5 sections
eau has joined #osdev
<zid`>
(and appears to be related to training ddr4)
<kaidezee>
There's a similar line when I run catwalk on bios: 3683888 0x383630 JBOOT STAG header, image id: 12, timestamp 0x1731BF96, image size: 1135794469 bytes, image JBOOT checksum: 0x8332, header JBOOT checksum: 0xC9AE
<kaidezee>
binwalk
<kaidezee>
BINWALK
<zid`>
so we subtract 2440952
Left_Turn has quit [Ping timeout: 265 seconds]
<kaidezee>
What do you mean subtract?
<zid`>
what version of the bios did you grab btw
<kaidezee>
I have no idea
pabs3 has quit [Ping timeout: 244 seconds]
<zid`>
I went with 7B51v1F because it was the latest
Left_Turn has joined #osdev
<kaidezee>
I just read internal flash
<zid`>
oh so whatever was flashed to your board then
<kaidezee>
yes
<kaidezee>
Alsa
<kaidezee>
oops
<kaidezee>
Also I swiched the hap bit on that image i dumped
<nikolar>
i think you can see the version your motherboard is running if you just boot it u
<nikolar>
*up
<kaidezee>
yes, but then i will have to leave this chat for awhile
<sortie>
I wasn't the only one, it was a whole bunch of people :(
<bslsk05>
www.roscommonherald.ie: Musk's X ordered to pay Irish worker record €550,000 unfair dismissal award - Homepage - Roscommon Herald
<nikolar>
:(
<nikolar>
well i hope you enjoyed your 6 months of free money
<kof673>
> America where it's at-will employment in theory, but that is a mirage, because you cannot get non "on the hook" id nowadays lol
<sortie>
I was entitled to 5 months of full pay but if I signed some reasonable papers I got another month plus a bonus equivalent to 6 months pay
<sortie>
So with 12 months pay to do nothing I'm laughing all the way to the bank
<kof673>
"human capital" is what is used
<zid`>
sortie: And yet, 0 ponies
<nikolar>
What was in the "reasonable papers"
<zid`>
"promise not to go postal"
<kof673>
this is why i say also don't make an osdev u.s. organization...that will be on the hook
<sortie>
nikolar: Basically they spelled out what the law already said, clarified a few gray zones (such as whether I am allowed to be at the office, since contractually I am still an employee), released me from some requirements, various things, no nda or nothing of that sort, and then gave me another month of employment and 6 months pay on top extra
<nikolar>
So basically some basic paperwork to clarify stuff
<zid`>
I liked the old article I read about early apple, where they.. mislaid some employees
<nikolar>
And you got 6 extra months
<zid`>
kept paying them but didn't give them any work
<zid`>
so they just came to work and started a studio or something
<sortie>
As much as I think they fucked up by laying me off, I very much appreciate the process and it was all very above board. My VP literally took the time to tell me personally and explained to me that it was so they could save money by outsourcing to India and Mexico City. I mean, at least they're being honest.
<zid`>
They need the 6 months to install all the "SORTIE >" signs in the corridors
<zid`>
to get rid of you
<sortie>
I would very much appreciate such a sign
<sortie>
I'll hang such a sortie sign over my next desk
<sortie>
I bet the facilities will be read mad if it has fire code implications
<zid`>
You will see lots of references to putting the kernel at -2GB also
<zid`>
because it's a lot easier to type than 0xFFFFFFFF80000000 :p
<nikolar>
Lol
X-Scale has quit [Ping timeout: 256 seconds]
<chiselfuse>
is the PhysAddr of segments in ELF for when paging is disabled (real mode) or what?
\Test_User has quit [Quit: \Test_User]
<zid`>
I think it's so that you could technically control where the loader both puts it into physical memory, and then maps it into logical
<zid`>
but linux and windows etc don't actually support you doing the former
<zid`>
but maybe some embedded systems do
<kof673>
just answering the q > Equuleus the Little Horse is a diminutive constellation that lies south of the Summer Triangle. i would guess a pale horse, then red trojans eventually pop out perhaps lol
<chiselfuse>
zid`: logical is translated to virtual through segmentation, and virtual is then mapped through physical through paging. you're saying that it would allow me to specify where to put it on physical memory after which i'd be able to read it through however it was mapped back to virtual and logical?
<sortie>
You ever have one of those days where your resume ends up on imgur
<heat_>
lol
<heat_>
you're making me want to rewrite my resume, but inside my own OS
<sortie>
I was gonna do that but porting latex seemed like a rabbit hole
<heat_>
it might be more palatable than it seems from the arch package thingy i linked
<nikolar>
sortie: porting latex seems like a pain and a half
<heat_>
in any case one can also write their resume in GROFF
<nikolar>
true dat
<sortie>
nikolar: porting latex seems like an underfull \hbox (badness 10000) in paragraph at lines 140--164
<nikolar>
lol something like that
<pessimal>
heat_: it's my buddy allocator
<heat_>
rendered as a man page, and as a pdf, and printed, groff is perfect
<nikolar>
groff is love, groff is life
<kof673>
for a split second i thought mjg had returned, srange
<kof673>
*strange
<heat_>
until recently the C standard was written in nroff
<sortie>
heat_: (Beself) I added some bold text on the verbs for structure. I didn't feel that more indention would work, would narrow the text too much and overflow the first page
<heat_>
i think they switched to latex for C23
<heat_>
OVERFULL H
<kof673>
> roff is a descendant of the RUNOFF program by Jerry Saltzer, which ran on CTSS. Douglas McIlroy and Robert Morris wrote runoff for Multics in BCPL based on Saltzer's program written in MAD assembler. Their program in turn was "transliterated" by Ken Thompson into PDP-7
<kof673>
scary, it predates unix
<sortie>
heat_: Hope you like the updated version better, at least I do
<pessimal>
I guess I could dress as muslmalloc, but #musl wouldn't like it
jedesa has joined #osdev
<heat_>
sortie, that does look nicer and you might want to bold up the rest of your resume too
<sortie>
Well I didn't want to overdo it
<heat_>
pessimal, bugtracker
<pessimal>
only #musl would get it
<heat_>
threadedallocatingworkload
<pessimal>
same
chiselfuse has quit [Remote host closed the connection]
xenos1984 has quit [Read error: Connection reset by peer]
<sortie>
heat_: OK added a bit more bold in the skills section where it made sense
chiselfuse has joined #osdev
<heat_>
ok heat_@
<sortie>
heat_: Beself
heat_ is now known as heat
<heat>
linux kernal
<sortie>
mv heat temp
<sortie>
mv heat_ heat
<sortie>
mv temp heat
<sortie>
_
<sortie>
k I just failed the job interview there lol
<nikolar>
heat ^= heat_
<heat>
mv heat_ heat
<sortie>
meanwhile heat is yelling at me about using rename5(2) to do it
<heat>
atomic renames mon
<heat>
AMEN
<sortie>
I INB4'D YOU
<heat>
what's rename5?
<sortie>
Sorry I don't follow pokemon
<heat>
linux has renameat2
<sortie>
reman meat?
<sortie>
ramen
<sortie>
absolute fools for us they have played
<heat>
because obviously rename(oldpath, newpath) -> oh this dirfd thing is a good idea, renameat(olddirfd, oldpath, newdirfd, newpath) -> hmmm we need some flags here, renameat2(olddirfd, oldpath, newdirfd, newpath, flags)
<sortie>
Basically always a good idea to add flags to a syscall
<heat>
openbsd still hasn't learned the flags argument lesson so a bunch of syscalls do not have them
<heat>
it was the main problem behind adding literally mimmutable()
<nikolar>
maybe they didn't want to change old syscalls or something
<nikolar>
i don't know
<heat>
mimmutable() is pretty new
<heat>
like.... 2 years old
<nikolar>
right
<heat>
so no excuse for not learning the fucking lesson
<chiselfuse>
heat: sorry i know it's getting boring but the chromium binary leaves an empty page between every load segment in memory, do you happen to know why? some kind of safety thing?
<heat>
i don't know
urandom_ has joined #osdev
levitating has joined #osdev
<zid`>
sounds reasonable at least
<zid`>
chrome is mega hardened generally, and that'd stop like, rodata oob ending up writable or whatever
<heat>
that will never happen
<heat>
it might be a mitigation of some sort, but i can't mindread lld
bauen1 has joined #osdev
eddof13 has joined #osdev
_ngn has quit [Remote host closed the connection]
_ngn has joined #osdev
<chiselfuse>
i thought the compiler generated them
Left_Turn has quit [Remote host closed the connection]
Left_Turn has joined #osdev
levitating has quit [Ping timeout: 252 seconds]
Left_Turn has quit [Remote host closed the connection]
<zid`>
linker places things
<zid`>
that's what it do
Left_Turn has joined #osdev
<zid`>
take lots of symbols, place them and lay them out in memory, resolve all the labels to addresses
<zid`>
compiler doesn't know about other .o files so it can't know what addresses things will have, and thus can't resolve anything
<pessimal>
linker links stuff
levitating has joined #osdev
<chiselfuse>
i can't find formal info on how an elf is supposed to be loaded (shared objects with and without interpreter, and executables)
<chiselfuse>
all those documents say to go to processor supplement which i can't find
levitating has quit [Client Quit]
<chiselfuse>
am i supposed to just read the source of execve now
<bslsk05>
github.com: Onyx/kernel/kernel/binfmt/elf.cpp at master · heatd/Onyx · GitHub
<chiselfuse>
is this yours?
<heat>
yes
<chiselfuse>
heat: what do you mean there are no docs? do you just guess that you're supposed to mmap load segments and somehow figure what rip should be set to etc?
<heat>
yes
<heat>
i mean rip is pretty obvious, should be set to e_entry
op has left #osdev [#osdev]
<chiselfuse>
how about all other things like whether you have to load it at the actual virt addresses or if it's position independent
<chiselfuse>
how you load the interpreter along with it if it has one
<chiselfuse>
how you pass arguments and envs
<heat>
gotta guess and read code
<heat>
arguments and environment is well defined by the sysv abi though, i believe
<chiselfuse>
so the standard is set by code in the linux/bsd/etc kernels?
<heat>
yep, welcome to unix
<heat>
you're lucky someone even wrote things down!
<heat>
linux loads all sorts of non-compliant ELFs for legacy reasons
<heat>
there are all sorts of fun technically-compliant ELF executables you can craft that will _never_ be loaded by any UNIX kernel because they're simply insane and bad
<chiselfuse>
do you think it's doable to get a somewhat accurate idea by reading execve source in linux or is it haywire?
<kof674>
https://github.com/GregorR/gelfload there is or was that but likely incomplete, and guessing a bit old. i can confirm mingw32 gcc4 can compile it and works under wine with winelf toolchain :D anyways, that page says gnu/linux and os x at least
<bslsk05>
GregorR/gelfload - gelfload is Gregor's ELF loader. It is a usermode loader for ELF executables, used for two purposes: 1) Creating ELF environments on otherwise ELF-hostile platforms (e.g. Mac OS X and Windows) 2) Cross-loading ELF binaries intended for different platforms. (4 forks/34 stargazers/NOASSERTION)
<kof674>
*with binaries from winelf toolchain lol
<heat>
chiselfuse, you should read mine because it does exactly what you want it to do, and it's probably a good bit simpler
<chiselfuse>
maybe i just manually craft ELFs to experiment and pause and look at memory with gdb to answer questions
<chiselfuse>
heat: what features of cpp do you use in that codebase?
<heat>
i don't see how that gains you anything
<heat>
dude, it's the C-est C++ you'll ever see
<chiselfuse>
okay i'll look
<heat>
with C23 it's probably almost straight C given they have auto and nullptr lol
<chiselfuse>
heat: so far i've answered questions i had by compiling with different settings and looking at /proc/pid/maps and guessing how it handled different things
<heat>
i don't know why you have so many questions about ELF, nor do I understand what you're trying to do
Matt|home has quit [Read error: Connection reset by peer]
<heat>
ELF is one of those formats where the more you think about it, the more questions you get, and those questions are generally stupid (the answer is always the obvious one)
<chiselfuse>
i'm just bothered because i don't know how the program's initial state is reached (before we can say that it just executes at rip) along with how dynamic linking etc works
<chiselfuse>
idk there's no reason, i just feel uneasy when i see a linker error or a segfault
<chiselfuse>
because i don't have the full picture
<heat>
kernel reads ELF header, kernel reads program headers, kernel mmaps, kernel sets up ELF auxv, kernel jumps to e_entry
eddof13 has quit [Quit: eddof13]
<chiselfuse>
woah this cleared everything up now i am at peace
<chiselfuse>
:p
<heat>
not sure what else you want to know?
<heat>
the other details aren't interesting if you're not implementing an ELF loader
<bslsk05>
taviso/loadlibrary - Porting Windows Dynamic Link Libraries to Linux (379 forks/4340 stargazers/GPL-2.0)
eddof13 has joined #osdev
<chiselfuse>
i don't know what i want either, just let me on about it until i feel bored lol
<heat>
ELF (to the kernel) is basically a format that lists a bunch of mmap()'s it wants done (program headers), and where you want to start (e_entry)
<heat>
the program header offset and vaddr restrictions are _literally_ designed for mmap, because of course, this thing was designed in a very adhoc fashion
<heat>
when a dynamically linked executable is involved, it just tells you where to find the interpreter, and you do it. boom, you loaded two executables instead of one. the interpreter will do the hard bit of dynamic linking for you
<chiselfuse>
kof674: that gelfload looks pretty small, you say it's likely incomplete?
<kof674>
no idea, just needed it to test winelf toolchain. i can confirm helloworld from mingw32 works running gelfload with wine lol
<kof674>
"needed" is a strong word
eddof13 has quit [Quit: eddof13]
<kof674>
it was sitting in my pile of toolchains from a few years back
Patater has quit [Quit: Explodes into a thousand pieces]
eddof13 has joined #osdev
Patater has joined #osdev
alice has quit [Read error: Connection reset by peer]
Irvise has quit [Ping timeout: 244 seconds]
Irvise has joined #osdev
ad__ has quit [Read error: Connection reset by peer]
dostoyevsky2 has quit [Ping timeout: 244 seconds]
ad__ has joined #osdev
dostoyevsky2 has joined #osdev
puck has quit [Ping timeout: 244 seconds]
puck has joined #osdev
alice has joined #osdev
xvmt has quit [Ping timeout: 252 seconds]
griddle has joined #osdev
netbsduser has quit [Ping timeout: 255 seconds]
bauen1 has quit [Ping timeout: 276 seconds]
griddle has quit [Quit: griddle]
netbsduser has joined #osdev
Turn_Left has joined #osdev
archa has quit [Ping timeout: 276 seconds]
Matt|home has joined #osdev
Left_Turn has quit [Ping timeout: 244 seconds]
<kof674>
*hello world built using winelf, mingw-built gelfload, run gelfload with wine to load the hello.elf. think that is right