klange changed the topic of #osdev to: Operating System Development || Don't ask to ask---just ask! || For 3+ LoC, use a pastebin (for example https://gist.github.com/) || Stats + Old logs: http://osdev-logs.qzx.com New Logs: https://libera.irclog.whitequark.org/osdev || Visit https://wiki.osdev.org and https://forum.osdev.org || Books: https://wiki.osdev.org/Books
<clever> gog`: just copy and paste this one: ^
<gog`> thanks :d
<gog`> ooh i found it AltGr+æ
<gog`> ^
<heat> what's with the `
<heat> are you j`ey gang now
<gog`> rude
<heat> r`ude
<gog`> i pinged out earlier and haven't fixed it
<gog`> i'm going to bed soon anyway
<gog`> i have a busy day of being hot and incompetent
<heat> being fugly and incompetent is always worse than hot and incompetent
<mrvn> fugly people can have a temp too
<bombuzal> hot and fugly
* bombuzal perspires
<mrvn> so there is ugly and fugly. Is there hot and fot?
<mrvn> fhot?
<bombuzal> %_%
<bombuzal> thot
<gog`> i am not not a thot
<clever> CompanionCube: also, after several months of using flakey ram on zfs, it finaly bit back
<clever> some data in a snapshot got corrupted, and destroying the snapshot caused a null-pointer deref
<CompanionCube> yep
<clever> and a systemd timer tries to destroy the snapshot on boot...
<clever> and in later investigations, i found that object 0 in a few snapshots was toast
<CompanionCube> how did that go, i only read some of the messages
<clever> so there was no way to find the dnodes in that snapshot and manage refcounts
<clever> but, i was able to `zfs send | recv` all but ~5 snapshots
<clever> also, i started that whole ordeal with 15gig free, i came out with 101gig free
<mrvn> i just love send/recv
<clever> because the entire pool was re-run thru zstd-6
<clever> mrvn: the fun part, is that i didnt really have a spare disk, or even a way to access the dead disk
<clever> i had to replace the sas card in my nas, with the desktop nvme
<clever> and then i dd'd the entire pool (corruption and all) into a lvm array
<clever> then send|recv it from lvm, back into the original nvme
k8yun_ has quit [Quit: Leaving]
<clever> CompanionCube: https://gist.github.com/cleverca22/80fbc2912cbca338ac8b0e15693cff71 the final list of lost items
<bslsk05> ​gist.github.com: gist:80fbc2912cbca338ac8b0e15693cff71 · GitHub
<mrvn> clever: first rule of rec0overing a damaged FS: make a copy
<clever> mrvn: yep, and i was operating on that copy in a read-only manner at nearly all steps
<mrvn> clever: I like to make a snapshot (of the copy) and work on the snapshot.
<clever> i did use qemu-img to create a qcow2 snapshot of it
<clever> and then ran a debug build of qemu against that
<clever> so i could modify zfs and attempt to debug the corruption
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<clever> qemu was mainly to limit the state loss every time the kernel null-pointered
<clever> mrvn: i also discovered that my build of memtest is faulty, for the second time
<clever> switching to another build, stops it from hanging hard
<clever> but now all 4 sticks pass memtest fully, even when ran for 4+ hours
<clever> plan b, is to just remove half the ram, and keep using the system
<CompanionCube> faulty memtest is very :(
<clever> the last time memtest was faulty, it was reporting false positives at a fixed addr
<mrvn> memtest rarely detects errors unless your ram is totaly screwed. sequential access without any other load is far less taxing than normal operations.
<clever> at first i trusted it, and moved to another machine
<clever> then it was dead there too
<clever> then things got freaky, when a laptop from a totally different cpu generation, had the same fault....
<clever> it shared nothing in common (other then the memtest build) and had the identical fault, lol
<clever> mrvn: that would imply memtest is defective, and should be doing random access
<clever> and i'm fairly certain i saw random in one of its tests
<mrvn> clever: add a hair dryer to heat the ram and noisy magnetic fields
<heat> sup fuckers
<clever> mrvn: ehh, simpler to just go back to using half the ram for a week, and see if its happy or not
simpl_e has joined #osdev
<mrvn> clever: removing and inserting the ram might remove oxidation from contacts and fix the problem :)
<clever> mrvn: already done that a dozen times, while trying to memtest which stick was causing memtest to hang
<mrvn> memtest hanging sounds like the problem is in the memory region memtest gets loaded into
<clever> switching to a different memtest build entirely got rid of the hanging
<clever> which implies the build was bad, and all of that stick swapping was a waste of time
<mrvn> or now the bad bit is in some code that's not critical or padding.
<clever> but the test should have covered that region
gog` has quit [Ping timeout: 252 seconds]
<clever> which implies that there is no faults that memtest can find
<mrvn> only if the test pattern produces the error
<mrvn> maybe it only flips when you only read the region over and over
<clever> except reads on dram are destructive, and it has to refresh it every time you close the row
<mrvn> How big is memtest nowadays? Does it fit inot L3 cache?
<clever> *looks*
<mrvn> .oO(and does it checksum itself?)
<clever> oh, and one problem with the last build i grabbed, its an efi binary
<clever> and in efi mode, it cant do SMP tests at all
<geist> if it's a very specific line that's failing memtest you can mark it out in grub or whatnot (assuming you're using linux)
<mrvn> 32bit or 64bit?
<clever> but it still teases you by leaving them in the menu :P
smach has joined #osdev
<geist> i have one 64k block on one of my machines marked out and it seems to be okay
<clever> mrvn: BOOTAA64.efi BOOTIA32.efi BOOTX64.efi
<geist> obviously i wont trust it to anything serious but it seems to be a well behaved bad stick
<clever> geist: the efi build of memtest never found any faults, after 4+ hours of searching
<geist> there are multiple ones now, and iirc the old memtset86 just got revived
<clever> mrvn: all of them 1.3 to 1.4mb
<clever> geist: i wound up on the comercial memtest site by accident, and used that one last
<geist> and it found it?
X-Scale` has joined #osdev
<clever> V10 is efi only, and they say to use V5 if you want non-efi support
<clever> V10 of the comercial build found nothing
<geist> and something did eventually?
<clever> the legacy build of memtest that nixos ships, locks up solid
<clever> at the same address, no matter what stick is being tested
X-Scale has quit [Ping timeout: 248 seconds]
X-Scale` is now known as X-Scale
<clever> but i am observing effects like this: {"active":false,"audible":false,"autoDiscardable":tvue
<clever> the 0x04 bit was set in the middle of a json true, in a 5mb blob
<geist> TIL that on bash at least `ctrl-x *` expands the current glob
<clever> oh, neat
<mrvn> in zsh it's just <tab>
<geist> yeah the function is `glob-expand-word`
<geist> so you can find if something is bound to it with `bind -p`
<clever> oh, that leads into something i do with a lot of games
<geist> it had never occurred to me that there was a way to do it and then suddenly came to be that surely there is
<clever> immediately go into the keybind setup, and read it all
<clever> but now i can do the same to bash, lol, just `bind -p`
<geist> heh same, i immediatley go in and find Invert-Y axis
<clever> some games do that for you in the tutorial
<geist> one nice feature playstation has is it saves it per account and most games auto pick that up
<mrvn> "�": self-insert
<mrvn> "�": self-insert
<mrvn> "�": self-insert
<mrvn> that's a lot of strange bindings
<clever> geist: oh, you have a concusion, can you follow my finger
<geist> heh
<mrvn> looks like it reports everything not bound as self-insert
<clever> and then it asks you if you want to invert y, and try again
<geist> mrvn: yeah may be basically 'insert the character into the command line'
<geist> which kinda makes sense
<mrvn> geist: that's how I read it too
<clever> geist: ive also seen one game, that ends the tutorial with an unbeatable mini-boss, and uses how long you last to tune the difficulty level
<geist> so that's an obvious way to screw up someone. unbind enter key or something on bash
<mrvn> geist: bind backspace to return :))
<geist> haha
<clever> rebind all the keys so it acts like dvorak
<mrvn> clever: why would you need to rebind anything for that?
<clever> mrvn: to mess with people
<mrvn> no, I mean the keyboard already is dvorak
<clever> it acts like qwerty in one window, but dvorak in another
<clever> then it will act like an even more scrambled dvorak :P
<geist> yeah could be a way to type dvorak on a qwerty keyboard, at least in the shell
<mrvn> clever: bind every key to something that changes some key
<clever> mrvn: oh, ive done that in teamspeak before, lol
<geist> heh can you build a Enigma out of it
<clever> it supports multiple hotkey profiles, and a hotkey can be bound to change hotkey profiles
<clever> so you can create a kind of menu system with it
<clever> to navigate with fewer buttons
<mrvn> clever: no, too predictable. Make it swap every key with the one before
<clever> but there is no audible feedback, so you need to navigate it blind
<heat> >i immediatley go in and find Invert-Y axis
<heat> are you sure you're a human?
<clever> heat: moving the mouse up should turn the camera up!
<clever> any game that doesnt do that, is just wrong
<heat> amen
<heat> EXCEPT on planes
<geist> invert y for lyfe!
<geist> shooters are just little planes
<clever> heat: ive got a proper flight yoke :P
<mrvn> heat: what about space ships?
<heat> space ships are just alien planes
<geist> do you *not* make little plane sounds when you play doom?
<geist> i thought everyone did
<klys> invertyuop
<mrvn> geist: no, but everyone makes pew pew pew sounds firing lasers in space.
thinkpol has quit [Remote host closed the connection]
<geist> of course
<heat> do you also invert X?
<heat> or is your mind only wired backwards on the Y axis?
<geist> y
<geist> it's just plane stuff. i play enough flight sims, or st least did, that it's all wired the same for me
<klys> aoeuinvert
<geist> if it's fps in any sort of way, then invert y
thinkpol has joined #osdev
<clever> that reminds me of a weird story
<geist> so that there's not a disconnect between fps and flight sims
<clever> i had a joystick hooked up to my pc for some gaming, and when i was done it went on the floor and stayed there for weeks
<geist> since to me fundamentally it's the same neural pathway
<clever> one day the computer crashed in a weird way, and the joystick began jumping around
<clever> i didnt even know it had force feedback, lol
<mrvn> force feedback?
<clever> mrvn: surprise force feedback, i didnt know it even had that
<mrvn> now you have to figure out how do do it again
tacco has quit [Remote host closed the connection]
<geist> i've never heard of anyone reversing X but i could imagine if you reversed both there could be a reasonable mental model that you're basically driving a telescope or whatnot
<geist> ie, you push it left to look to the right, etc
<geist> like it's a little weird, but i could see that making some sort of sense
<clever> geist: or just hold the controller upsidedown
<geist> oh that's true. not sure that's feasuble much with newer controllers, but in the snes era i've heard of folks doing that
<clever> thatll invert both axis
<clever> i meant more the telescope controller
<clever> mine only had 4 working buttons
<mrvn> put the stick in a vice and use the base as a food pedal.
<geist> oh i as tinkign if you wanted to hold the controller upside down legitimately, yo umight tell the game to reverse the axis to correct it
<mrvn> or if you have a heads up display with the image mirrored so everything is x invertged
<geist> i guess the real question which is where it all originates from is precisley when/where did it become standard for airplane control yokes to work the way they do
<geist> ie, pulling back raising the elevator to try to point up, etc
<clever> there is a guy on YT that converted a 2 eye HUD, into a 1 eye HUD
<clever> and it was a major pain in the ass
<geist> i'm sure it's way back because i dont think there's a fundamentl reason for it, except that'st probably just how the control linkages were wired up
<mrvn> geist: because the wires weren't crossed
<clever> its constantly polling temp sensors on both displays, to shut off if it overheats
<clever> because the oled dies permanently at some temp
<mrvn> oh wait, no, they have to be crossed
<clever> but if you unplug one display, it errors, and just turns off entirely
<clever> but he then found, if you just short the i2c bus from both eyes together, it works perfectly fine
<geist> yeah dunno. maybe because you get more strength out of pulling towards you and it's more common in mechanically linked airplaes to pull 'up' like that?
<geist> though i guess that's not necessarily true, pushing away on the stick is also fairly good strength wise, i guess
<mrvn> geist: strength is probably the reason I would say.
<bslsk05> ​www.reddit.com: ELI5 - Why do airplane yokes have inverted control? : explainlikeimfive
<mrvn> the movement of the plane also doesn't increase the push/pull on the stick so it's not feeding itself.
<geist> well, in the aerly days, when this was getting standardized, it might very well
<geist> as in it's mechanical linkage, so the control surfaces would definitely give you direct feedback
<clever> mrvn: that reminds me of an episode of the expanse, when the ship engine was running so hard, the pilot couldnt lift his arm to hit the kill switch
<mrvn> geist: you can connect the wires as an = or X. easy to reverse Y mechanical.
<\Test_User> the feedback on the mechanical linkages will just push it back to center no matter which way you pushed it, nothing to care about how the yoke is held
<mrvn> clever: exactly. You don't want that.
<clever> geist: i think mrvn meant, the g forces of the plane turning, causing you to pull the controls in the reverse direction, and that oscilates out of control
<clever> or worse, pulling in the same direction, amplifying it
<geist> \Test_User: or at least to whatever the most neutral (ie, least amount of pressure on the control surfaces) is for that surface
<\Test_User> yeah
<geist> if you were in a flat spin or something it might end up slamming all over the place
<mrvn> But it really feels natural on a plane. Think of having a little plane model at the top of the stick. When you pull it back the nose of the model airplane goes up. So does the real one.
<geist> yeah thats the first comment in the reddit. makes sense to me
<heat> invert X gang
<geist> so i'm sold. anyway, long story short that's why i invert Y. i think of the mouse as being a little joystick because i used to and still do play flight sims
<geist> and used to fly a lot of model airplanes
<mrvn> In a helicopter you have a bar you have to pull up to change the tilt of the rotor. The more you pull it up the more the lift increases and the helicopter goes up. same thing.
<heat> crazy idea: switch X and Y
<geist> yah the collective. also you twist it
<mrvn> geist: why is that inverting y? Your screen has Y inverted.
<geist> eh?
<heat> make the mouse/joystick Y axis control the X axis, and vice-versa
<mrvn> geist: ask any mathematician which direction Y positive goes
<geist> that's their problem, not mine
<\Test_User> heat: turn the joystick sideways and go back to using it
<geist> coordinate systems of the graphics are an implementation detail
<mrvn> geist: implemting the math goes all screwy if you mix up left and right handed coordinate systems. All the examples will be wrong.
<clever> ive gotten stride mixed up before, the hardware expects it in bytes, but some data structures store it in pixels
<mrvn> clever: does RPi support a paletted or 16bit mode?
<clever> mrvn: yes
<mrvn> both at the same time?
<clever> yes
<bslsk05> ​github.com: lk-overlay/hvs.h at master · librerpi/lk-overlay · GitHub
<clever> it supports 8bit, 16bit, 24bit, and 32bit per pixel formats
<clever> 8bit 332, 16bit 4444, 555, 5551, or 565, 24bit 888 or 6666, and 32bit 8888
<mrvn> clever: I only see one plaette in there, mode 13.
<clever> it also supports pallete formats, with the whole range of 1 to 8 bits per pixel i believe
<clever> the bits per pixel is configured seperately, when you point to a palette
<mrvn> palette_type goes from 1 to 8 bit.
<bslsk05> ​forums.raspberrypi.com: VC4 Driver missing DRM_FORMAT_ARGB4444 & DRM_FORMAT_RGB332 - Raspberry Pi Forums
<clever> bit 31-30: palette size. 0=1bpp. 1=2bpp. 2=4bpp. 3=8bpp
<clever> correction, not the full range
<mrvn> So no 16bpp plaette
<mrvn> palette_table is fixed to 256 entries too
<clever> yeah, 16bit is just 4444, 555, 5551, or 565, no 16bit palette
<clever> palette size limits it to being 1/4/16/256
<clever> bits 11-0: palette base address in context memory
<clever> bit 26: palette order 1= Pixels are ordered left-to-right as LSB to MSB, 0 = Pixels are ordered left to right as MSB to LSB
<clever> i think those limits, are to ensure a pixel doesnt span multiple bytes
<clever> > Yes, context memory (for display list) is embedded SRAM. It can do one pixel per cycle for palettised formats (compared to 4 pixels per cycle for unscaled, and 2 pixels per cycle scaled).
<clever> so, you load a description of every image into the display list sram
<clever> each image has its own xywh and image format
<clever> and you also load the palette itself into that display list sram
<clever> the hardware then dynamically composes it into some internal FIFO ram, racing the (virtual) electron beam
<clever> h-flip just inverts the draw order on the internal FIFO
<clever> v-flip causes it to addr -= stride; rather then +=
<clever> so you must give it the address of the last line in the image
mrvn has quit [Ping timeout: 252 seconds]
nyah has quit [Ping timeout: 272 seconds]
[itchyjunk] has quit [Ping timeout: 248 seconds]
<klys> {`%$#(@)*!90[]^H^T',.pynvcrl/=\aoeuinfkrt-;qjinvwrtz }
<klys> {`xshkgdmb&^[]^H^T',.pinvert/=\aocuinvert-;qjinvertz }
<klys> your keyboard has been remapped.
[itchyjunk] has joined #osdev
GreaseMonkey has quit [Read error: Software caused connection abort]
Gooberpatrol66 has joined #osdev
smach has quit [Remote host closed the connection]
smach has joined #osdev
heat has quit [Remote host closed the connection]
heat has joined #osdev
smach has quit [Quit: No Ping reply in 180 seconds.]
heat has quit [Remote host closed the connection]
heat has joined #osdev
smach has joined #osdev
bslsk05 has quit [Read error: Software caused connection abort]
GreaseMonkey has joined #osdev
srjek|home has quit [Ping timeout: 248 seconds]
xenos1984 has quit [Read error: Connection reset by peer]
[itchyjunk] has quit [Read error: Connection reset by peer]
genpaku has quit [Read error: Connection reset by peer]
genpaku has joined #osdev
xenos1984 has joined #osdev
vdamewood has joined #osdev
heat has quit [Ping timeout: 246 seconds]
<geist> huh my ryzen 5x says it supports INVPCID but not PCID
<geist> i guess that's feasible because you can still use the 'flush everything' feature of the instruction
<geist> would let you invalidate all or all + global without doing any CR3 or CR4 shenanigans i guess
carbonfiber has quit [Quit: Connection closed for inactivity]
Burgundy has joined #osdev
<kazinsal> tonight's beer: okanagan spring brewery
<kazinsal> first up a pale ale that... is really more of an amber
vdamewood has quit [Read error: Connection reset by peer]
vdamewood has joined #osdev
eroux has joined #osdev
hmmmm has joined #osdev
bgs has joined #osdev
bgs has quit [Remote host closed the connection]
smach has quit []
scoobydoo has quit [Read error: Connection reset by peer]
netbsduser` has quit [Remote host closed the connection]
netbsduser` has joined #osdev
scoobydoo has joined #osdev
vdamewood has quit [Read error: Connection reset by peer]
vdamewood has joined #osdev
nyah has joined #osdev
gildasio1 has quit [Remote host closed the connection]
gildasio1 has joined #osdev
scoobydoob has joined #osdev
scoobydoo has quit [Ping timeout: 252 seconds]
scoobydoob is now known as scoobydoo
lkurusa has quit [Quit: I probably fell asleep (or went out). Who will ever know.]
GeDaMo has joined #osdev
wand has quit [Ping timeout: 255 seconds]
wand has joined #osdev
lkurusa has joined #osdev
mrvn has joined #osdev
nyah has quit [Ping timeout: 252 seconds]
zaquest has quit [Remote host closed the connection]
smach has joined #osdev
nyah has joined #osdev
Burgundy has quit [Ping timeout: 246 seconds]
lkurusa has quit [Ping timeout: 252 seconds]
zaquest has joined #osdev
Ali_A has joined #osdev
smach has quit [Read error: Connection reset by peer]
IRChatter8 has joined #osdev
Piraty_ has joined #osdev
IRChatter has quit [Quit: Ping timeout (120 seconds)]
IRChatter8 is now known as IRChatter
dude12312414 has joined #osdev
yuiyukihira has quit [*.net *.split]
kof123 has quit [*.net *.split]
ThinkT510 has quit [*.net *.split]
knusbaum has quit [*.net *.split]
wgrant has quit [*.net *.split]
fluix has quit [*.net *.split]
graphitemaster has quit [*.net *.split]
raggi has quit [*.net *.split]
alexander has quit [*.net *.split]
hl has quit [*.net *.split]
Piraty has quit [*.net *.split]
hl has joined #osdev
srjek|home has joined #osdev
netbsduser` has quit [Quit: Leaving]
kof123 has joined #osdev
wgrant has joined #osdev
knusbaum has joined #osdev
yuiyukihira has joined #osdev
alexander has joined #osdev
graphitemaster has joined #osdev
raggi has joined #osdev
fluix has joined #osdev
ThinkT510 has joined #osdev
zaquest has quit [Ping timeout: 252 seconds]
netbsduser has joined #osdev
zaquest has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
weinholt has quit [Ping timeout: 248 seconds]
wand has quit [Ping timeout: 255 seconds]
gildasio1 has quit [Ping timeout: 255 seconds]
wand has joined #osdev
gildasio1 has joined #osdev
Compy has joined #osdev
catern has quit [Ping timeout: 255 seconds]
eau has quit [Ping timeout: 248 seconds]
mrvn has quit [Ping timeout: 268 seconds]
heat has joined #osdev
wand has quit [Remote host closed the connection]
wand has joined #osdev
orthoplex64 has quit [Ping timeout: 240 seconds]
wand_ has joined #osdev
wand has quit [Ping timeout: 255 seconds]
Jari-- has quit [Remote host closed the connection]
bgs has joined #osdev
orthoplex64 has joined #osdev
Ali_A has quit [Quit: Client closed]
bslsk05 has joined #osdev
wootehfoot has joined #osdev
weinholt has joined #osdev
romzx has quit [Read error: Connection reset by peer]
xenos1984 has quit [Ping timeout: 246 seconds]
dude12312414 has joined #osdev
xenos1984 has joined #osdev
romzx has joined #osdev
<heat> on x86 shl + shr: "[...] all other IA-32 processors (starting with the Intel 286 processor) do mask the shift count to 5 bits, resulting in a maximum count of 31."
<heat> shl %eax, $32 -> shl %rax, $0
<heat> erm, shl %eax, $0
<heat> i probably got the opcode argument ordering wrong, don't care
<zid> which is fine cus C says >32 shifts are UB anyway so how could you possibly find out that information
gog has joined #osdev
<zid> It's so coold today wtf heat
<gog> heat broke
<zid> *prime95*
<zid> CPU barely getting warm shit, forgot I undervolted it
<heat> new cpus should also follow C UB
<heat> null deref? blows up
<GeDaMo> Is your CPU also your heater? :P
<heat> its a xeon so definitely
<zid> it used to be
<zid> then I undervolted it
<heat> now it's a shitty i3
<zid> oh apparently it's still using 180W, just took a while for the cooler to heat p
<zid> by which I mean it's still cold
<heat> you're singlehandedly responsible for hald of the UK's carbon footprint
<heat> half*
<zid> I'm feeling rich
ZombieChicken has joined #osdev
<Griwes> ah yes a Xeon Xeon
<gog> eckseon
<zid> Griwes: You forgot the other 1650 xeons
<zid> xeon1650 is the vim command to repeat xeo 1650 times afterall
<zid> My room smells like hot dust, yummy
<gog> mmm
<zid> want some hot dust? Tough get your own
<heat> z-on
srjek|home has quit [Ping timeout: 246 seconds]
zid has quit [Read error: Connection reset by peer]
Dyskos has joined #osdev
<gog> ope
<gog> zid's computer broke
zid has joined #osdev
<zid> okay maybe it wants another 0.05V
<Ermine> gog: it got resurrected
<gog> aaay
<heat> xid
eck has quit [Quit: PIRCH98:WIN 95/98/WIN NT:1.0 (build 1.0.1.1190)]
<zid> if only I had ecc memory heat
<heat> cry
eck has joined #osdev
<Ermine> is your ecc memory cold?
ZombieChicken has quit [Remote host closed the connection]
<zid> my ecc memory is stll in china
<zid> heat keeps forgetting to pay the bill
crm has joined #osdev
<heat> cry
<heat> boohoo
<heat> who needs stupid ecc anyway
<heat> babies, babies and zfs
xenos1984 has quit [Ping timeout: 246 seconds]
orthoplex64 has quit [Ping timeout: 252 seconds]
* geist yawns
gildasio1 has quit [Remote host closed the connection]
Amanieu has quit [Ping timeout: 268 seconds]
gildasio1 has joined #osdev
Amanieu has joined #osdev
* gog pets geist
<geist> awww
<geist> need some petting. slept with my neck a little crooked last night, feels a bit cricked
<gog> ooof
<zid> The time I did that was the day before an exam
<zid> so that was fun
vai has joined #osdev
<zid> had to kowtow to the desk to read it
<gog> yeh so your neck hurts from the bad sleep AND from huncing over your exam sheets
<vai> yo
vai is now known as Jari--
<zid> https://en.wikipedia.org/wiki/Kowtow Did I flip a bit again or is this image cyan and magneta to you too
<bslsk05> ​en.wikipedia.org: Kowtow - Wikipedia
<gog> it's ink on parchment
<gog> i think you bitflipped
<GeDaMo> The top one looks sepia
<gog> it does not look like that on my display lmao
<GeDaMo> Nor mine :|
<zid> yea mspaint opened it fine
<gog> weird
<zid> survived a browser restart, I think it's.. a bug?
<GeDaMo> Cache?
<zid> I don't think browsers cache shit anymore do they
<zid> they just use 128GB of ram instead, internet is faster than the mech drive they live on
<geist> i wouldn't say that. i thin they cache quite a lot
<GeDaMo> But if they did that then they wouldn't thrash your SSD :P
<geist> what may not happen is the TTL of cached data between sessions may be set pretty low on a lot of sites
xenos1984 has joined #osdev
ss4 has joined #osdev
wootehfoot has quit [Ping timeout: 252 seconds]
ss4 has quit [Quit: Leaving]
fisu has joined #osdev
<fisu> Hi, quick question, is there a way to make grub print out errors etc? (i.e. verbose mode)
<heat> it does print out errors
<heat> what is your problem?
<fisu> My issue is basically that once I choose my OS from the grub menu it instantly reboots the qemu and goes back to grub
<fisu> I probably have some broken code but I'd like to know what grub says about it
<heat> nothing
<heat> grub isn't running at that point
<fisu> I see
<heat> use qemu + -d int + -no-reboot -no-shutdown
<fisu> alright
<heat> -d int gives you the exceptions, no-reboot no-shutdown halt the machine on triple-fault (what you're experiencing)
vdamewood has quit [Quit: My MacBook Pro has gone to sleep. ZZZzzz…]
<fisu> Thanks, I'll check it out
<fisu> Is there some place I can find what these exception codes mean? `check_exception old: 0xffffffff new 0xd` seems
<heat> intel SDM manual
<heat> 0xd is a general protection fault
<heat> if i were to guess, you're loading a bad segment or something
<fisu> I see, `EIP=00100044` but when looking at the disassembly that instruction doesn't exist
<fisu> 100042: e8 fc ff ff ff call 100043 <kernel_main+0x13>
<fisu> 100047: e9 ed ff ff ff jmp 100039 <kernel_main+0x9>
<fisu> so it's probably being loaded incorrectly
<fisu> Yea, seems like it's the call to kernel main that is causing the issue
<fisu> My guess is a linker error
<heat> that's odd
<heat> wait
<heat> what the fuck is going on with your symbols?
<heat> 100042: call 100043
<heat> ???
<geist> yeah i'd say that's the problem
<fisu> it's just the output of objdump -d?
<geist> is that post-linked, or are you looking at an .o file?
<fisu> post linked
<geist> if it's the final binary then you have some sort of offset issue
<geist> the call instruction is basically calling into itself
<geist> see the target address?
<fisu> Oh yeah, you're right
<fisu> hmm, I wonder what could cause that then
<heat> s a u c e
<geist> the target is something like -3 (0xfffffffc) which ends up calling into its own instruction
<geist> heat: RUSUTSTURS RUST RUST SRURSTSTST CARGO
<heat> THIS WOULDN'T HAPPEN IF YOU USED
<heat> RUSUTSTURS RUST RUST SRURSTSTST CARGORUSUTSTURS RUST RUST SRURSTSTST CARGORUSUTSTURS RUST RUST SRURSTSTST CARGOV RUSUTSTURS RUST RUST SRURSTSTST CARGO V RUSUTSTURS RUST RUST SRURSTSTST CARGORUSUTSTURS RUST RUST SRURSTSTST CARGO
<geist> RURURURURURURURSRSSSTT
crm is now known as orthoplex64
<fisu> omegalul
<fisu> Let me just upload the changes, one moment
<bslsk05> ​github.com: MCP: Raise UEFI Targets to Tier-2 · Issue #555 · rust-lang/compiler-team · GitHub
<heat> UEFI UEFI UEFI UEFI RUST RUEFUER UF RUEsT UEFI EIF I EFI ITANIUM ITANIUM RUST
<bslsk05> ​github.com: GitHub - vikke1234/imperatrix at wip
<fisu> here you are
<geist> wait didn't gog get an itanium recently?
<geist> also reminds me..
<heat> no
<geist> kazinsal: vaxvavaxvavaxvavaxvavaxvava vxav vaxvaxv DEC
<heat> they were supposedly going to
<heat> vax rust?
<heat> vax rust when???
<bslsk05> ​github.com: imperatrix/boot.s at wip · vikke1234/imperatrix · GitHub
<fisu> I looked at the multiboot standard and saw that they were there, so decided to add them as false in case I ever need them
<heat> did you know assembly code has 30000x more bugs than rust code?
<heat> this and more facts taken straight from my asshole
<heat> yeah i don't know if that's correct
<fisu> I tried removing that, I guess progress is nice, now I get the error, "unsupported graphical mode 1357220181"
<fisu> >did you know assembly code has 30000x more bugs than rust code?
<heat> ok no that was correct
<heat> RESTORE
<fisu> Yea... It really is terrible to write in assembler
<heat> can you use an actual cross compiler
<heat> also ffreestanding, nostdlib, etc
<heat> if you want to use clang pick a bare metal target
<heat> i.e i686-elf
Rubikoid has quit [Ping timeout: 248 seconds]
<fisu> alright
Rubikoid has joined #osdev
<fisu> I switched to clang in order to use it as a cross compiler
<fisu> I used default gcc but it didn't quite work properly
<fisu> are there any other changes you'd recommend?
<\Test_User> you also have 30000x more lines in assembly so that leaves it even bugs per line :P
<fisu> That's not always the case
GeDaMo has quit [Quit: You are becoming what we French call 'Le Fruitcake'.]
<fisu> At work I implemented a feature in C first, it ended up being roughly 200-300 lines maybe, in pure assembler it ended up being around 100 lines
<fisu> Though to be fair, the it had to be written with a bunch of inline assembler
<heat> ...
<heat> which is why i write it in rust for bugfree supa fast code
<heat> code go vrooooooooooom
<heat> i write code and then import 10 crates and fuck yeah woooooooooooohoooo mission complete rust numba 1
smach has joined #osdev
<heat> its almost as fast as gogogogogogogogo but unfortunately its hard to compete
<fisu> Only difference is that I would've written the inline assembler in rust, it is due to riscv having a different address space for CSRs
<\Test_User> bugs include incorrect behavior, which is pretty hard for a language to ensure doesn't happen
<fisu> the only way to access them is with the CSR specific instructions
<heat> no wtf \Test_User
<heat> borrow checker man
<heat> crates and shit
<heat> no bug
<\Test_User> incorrect behavior, code does something other than what the programmer intended
<\Test_User> if the programmer writes A but intended B, A happens and bugs occur
<heat> no bug rust
<\Test_User> or perhaps more needed B but thought A would work being the much more common one
<fisu> heat: any ideas what could cause the binary to get messed up like that though?
<fisu> it seems to have something to do with the printf call
<fisu> I had issues with my own stdlib a while back, I think it's still messed up somehow
<fisu> 100070: ff b3 04 00 00 00 push 0x4(%ebx)
<fisu> 100076: ff a3 08 00 00 00 jmp *0x8(%ebx)
<fisu> 10007c: 00 00 add %al,(%eax)y
<fisu> seems like printf isn't doing anything really
<heat> idk man your compiling process looks fucked
<fisu> yeah it really is...
<fisu> Maybe I'll move to meson
<fisu> eh fuck it, I got some progress, I'll call it for tonight
<fisu> thanks for your help though, I'll see if I can find the issue tomorrow
<heat> it's not the build system
<heat> it's your arguments and toolchain
<fisu> oh
<heat> you got 0 progress
<fisu> I got progress today, I got it to boot to grub
<heat> we're still stuck looking at spooky executables
<fisu> My guess is the libc is fucked
<heat> please bare bones on the osdev wiki
<heat> or meaty skeleton
<fisu> That's what I followed
<fisu> yea, it's the linking of libc that gets messed up
<fisu> looking at the objdump of it, it doesn't match
<fisu> likely something wrong with the `-lc`
<heat> -lc?
<heat> I bet 10 on how you're linking with libc.so.6 lol
Burgundy has joined #osdev
smach has quit []
zid` has joined #osdev
zid has quit [Ping timeout: 252 seconds]
bauen1 has quit [Ping timeout: 248 seconds]
bauen1 has joined #osdev
<fisu> lmao that would be funny, let's find out
<fisu> ***DING DING DING*** we have a winner.
<fisu> ldd imperatrix
<fisu> linux-gate.so.1 (0xf7fb4000)
<fisu> libc.so.6 => /lib32/libc.so.6 (0xf7d6b000)
<fisu> /lib/ld-linux.so.2 (0xf7fb6000)
<fisu> amazing
<heat> do readelf --relocs imperatrix
<fisu> Relocation section '.rel.dyn' at offset 0x11d4 contains 4 entries:
<fisu> Offset Info Type Sym.Value Sym. Name
<fisu> 0010003b 00000008 R_386_RELATIVE
<fisu> 0010004d 00000008 R_386_RELATIVE
<fisu> 00100043 00000102 R_386_PC32 00000000 printf@GLIBC_2.0
<fisu> 001002d0 00000107 R_386_JUMP_SLOT 00000000 printf@GLIBC_2.0y
<heat> hahahahaha
<fisu> oh my god.
<heat> 100042: e8 fc ff ff ff
<heat> :DDD
<fisu> :D:D:D:D development is fun. totally didn't spend like 2+ hours looking for this...
<fisu> anyway, thanks a bunch, going to bed now though
<heat> np
fisu has quit [Quit: WeeChat 3.5]
<heat> im fixing your build
<heat> ez
<geist> all up in yer base, fixing yer build
<heat> linker scripts are annoying
crm has joined #osdev
<heat> and so are the multiboot header's restrictions
orthoplex64 has quit [Ping timeout: 252 seconds]
<heat> geist, github has a new feature where you can allow project maintainers to add commits to your PR's branch
<heat> I think that's what you wanted?
<heat> idk if you can do a destructive push though
<geist> yeah good question
<geist> i just set a switch i hadn't seen before that lets you more fine grained control who gets to run an action in their branch, etc
<geist> it's i think normally set to very strict
<heat> geist, i added a test pr if you wanna try to edit it
<geist> hmm, you can aedit the PR name at least
<geist> hmm, it didn't change the name of the commit necesarily, but did change the overall PR
<geist> so then the question is if you rebased + merged it would it rename the commit message to match the PR
<bslsk05> ​docs.github.com: Committing changes to a pull request branch created from a fork - GitHub Docs
<geist> ah okay, so yeah guess you can, but only if they give you permission, etc
<heat> i think if you clone and checkout the PR branch it should work
<heat> they say "add commits" which make me wonder if you can ammend a commit or not
<heat> amend*
<heat> but this is very cool nonetheless
<geist> yeah hang on. had that whole 'actually should be working' thing going on
<heat> working? pffft
bgs has quit [Remote host closed the connection]
<geist> yeah seems to work
<geist> added another patch at least
<geist> so guess could do something like add another patch saying 'how about this' and asking someone to flatten it down
<heat> can you not push --force?
<klange> PRs are generally formed from branches on forks, so no.
<heat> well, it seems that you'd be able to
<heat> the maintainer(s) get write access to the PR branch
catern has joined #osdev
<klange> You can submit PRs with other peoples' branches... I would be very curious how any of this works...
<gog> technically a geeky pick-up line is a pull request
isaacwoods has joined #osdev
tacco has joined #osdev
<bslsk05> ​www.theregister.com: New version of Plan 9 fork 9front released • The Register
<Jari--> Too bad Bell Labs is no more supporting it.
<heat> klange, I can't set that option for branches that are not mine, apparently
<heat> this is good shit
<heat> I don't know how well it will fit in an OSS ecosystem but it's nice to have the option
<tacco> 'The arch-lich turns into a titan!' in Sokoban. Okay chameleon, calm down.
eroux has quit [Ping timeout: 246 seconds]
<tacco> Oh and it summoned a Storm Giant as well. Welp.
srjek|home has joined #osdev
tacco has left #osdev [#osdev]
epony has quit [Remote host closed the connection]
epony has joined #osdev
crmur__ has joined #osdev
crmur__ has quit [Remote host closed the connection]
crm has quit [Ping timeout: 252 seconds]
scaleww has joined #osdev
yuu_ has joined #osdev
dutch has quit [Quit: WeeChat 3.7]
Burgundy has quit [Ping timeout: 248 seconds]