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
navi has quit [Quit: WeeChat 4.0.4]
Arthuria has quit [Ping timeout: 245 seconds]
valshaped7424880 has quit [Read error: Connection reset by peer]
valshaped7424880 has joined #osdev
adder has quit [Remote host closed the connection]
adder has joined #osdev
Matt|home has quit [Quit: Leaving]
rpnx has joined #osdev
xenos1984 has quit [Read error: Connection reset by peer]
Arthuria has joined #osdev
Arthuria has quit [Killed (NickServ (GHOST command used by Guest684531))]
Arthuria has joined #osdev
agent314 has joined #osdev
rpnx has quit [Quit: My laptop has gone to sleep.]
rpnx has joined #osdev
rpnx has quit [Client Quit]
joe9 has joined #osdev
agent314 has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
agent314 has joined #osdev
xenos1984 has joined #osdev
gog has quit [Quit: byee]
dodoma has quit [Ping timeout: 250 seconds]
geistvax has joined #osdev
<geistvax> woo, this is a bit more permanent login
<geistvax> at least until i shut down the server
<heat> VAX
heat has quit [Ping timeout: 260 seconds]
<mjg> :O
* mjg happy to be in the room
<bslsk05> ​home.agh.edu.pl: kremvax
masoudd has joined #osdev
joe9 has quit [Quit: leaving]
dude12312414 has joined #osdev
dude12312414 has quit [Client Quit]
gbowne1 has quit [Remote host closed the connection]
gbowne1 has joined #osdev
epony has quit [Remote host closed the connection]
edr has quit [Quit: Leaving]
solaare has quit [Ping timeout: 260 seconds]
solaare has joined #osdev
rustyy has quit [Quit: leaving]
rustyy has joined #osdev
Arthuria has quit [Ping timeout: 268 seconds]
agent314 has quit [Remote host closed the connection]
pm123123123 has joined #osdev
<pm123123123> is this the right way to change display resolution before handing control over to a kernel in grub2?
<bslsk05> ​pastebin.com: menuentry "my os" { multiboot2 /boot/kernel.bin insmod all_video - Pastebin.com
<pm123123123> 80x25 is still the mode after kernel boots.
<geist> good question
gbowne1 has quit [Quit: Leaving]
<Mutabah> Your kernel should also include the multiboot tags to request the framebuffer
<Mutabah> and maybe that mode isn't supported by your hardware?
<Mutabah> 1024x768x32 is far more common
<pm123123123> it's qemu. default settings. i manually run the lines and it works.
<pm123123123> my kernel first tries to write "ok" to 0xb80000 and it works
<pm123123123> then try to write to 0xa0000 and there's nothing
<Mutabah> do you have the multiboot2 headers to request/recieve a graphics mode?
sbalmos has quit [Ping timeout: 256 seconds]
sbalmos has joined #osdev
<pm123123123> no. just minimal multiboot2 header
<Mutabah> That's a good idea to include, as it allows grub to inform your kernel of what mode was selected (and where the framebuffer is)
<pm123123123> or can i use vesa bios call in my kernel?
<pm123123123> i check here https://en.wikipedia.org/wiki/VESA_BIOS_Extensions and cannot find 320x200x8 only 320x200x16 or higher
<Mutabah> Once you're in protected mode, assume the firmware is unusable
<Mutabah> Although, you _can_ use vm8086 mode (or an emulator) to call back into the BIOS...
<Mutabah> But best option is to ask grub to set a sensible graphics mode and use that
agent314 has joined #osdev
<pm123123123> is it 32bit or 32bit protected when kernel takes over?
<Mutabah> 32-bit mode is protected mode
<Mutabah> (but not all protected modes are 32-bit)
<pm123123123> the back story is this: i'm reading a book which has assembly code for bootloader in the first few chapters. (one of the code repo is this: https://github.com/imangoa/os)
<bslsk05> ​imangoa/os - 30天自制操作系统光盘文件 (5 forks/13 stargazers)
<pm123123123> then i run into https://os.phil-opp.com/multiboot-kernel/ today and learn about multiboot
<bslsk05> ​os.phil-opp.com: A minimal Multiboot Kernel | Writing an OS in Rust (First Edition)
<pm123123123> and want to just skip the bootloader part and get into c directly
<pm123123123> hence these `weird` questions
<bslsk05> ​github.com: rust_os/Kernel/Core/arch/amd64/start.asm at master · thepowersgang/rust_os · GitHub
beomus has joined #osdev
<pm123123123> "mov ax, 0x13; int 0x10" what would be the equivalent of kernel code?
<pm123123123> in 32bit protected mode
<Mutabah> In 32-bit pmode you cannot call into the BIOS
<pm123123123> exactly.
<pm123123123> i thought VESA_BIOS_Extensions is the way to go but cannot find the 320x200x8 mode
<Mutabah> why are you looking for such a small mode?
<pm123123123> https://www.gnu.org/software/grub/manual/multiboot2/multiboot.html#VBE-info i think i can try your way and adapt it for multiboot2
<bslsk05> ​www.gnu.org: Multiboot2 Specification version 2.0
beomus has left #osdev [Leaving]
<bslsk05> ​www.gnu.org: Multiboot2 Specification version 2.0
<GreaseMonkey> welp, that was fun, managed to make a filesystem and a bootloader for it in a single day, it is not fast by any means but it's simple enough for making a bootloader and you can get free deduplication with it
dodoma has joined #osdev
* kof123 .oO( beetlejuiceos that just consists of grub modules )
<GreaseMonkey> if you're looking for mode 13h you can either set up a V8086 monitor or you can look up how one fills in the registers, there's some cheeky stuff you can do with some mode-setting tables provided by the BIOS
xenos1984 has quit [Read error: Connection reset by peer]
<geistvax> oh woot, sounds great
<GreaseMonkey> or maybe jumping out of pmode and back in
<GreaseMonkey> also if you're wondering where those tables are, look up M004000A8 (0040:00A8) in Ralf Brown's Interrupt List, file MEMORY.LST
<pm123123123> i add the frambuffer tag https://pastebin.com/j8xdy2Lv but now get this error "need to load kernel first. unknown tag 8"
<bslsk05> ​pastebin.com: section .multiboot_headerheader_start: dd 0xe85250d6 ; mag - Pastebin.com
<GreaseMonkey> the Video Parameter Table is the main thing you'd want to use, just be aware that in order to write most of the bits in CRTC registers 0x00 through 0x07 both inclusive, you need to clear i think the msbit of CRTC register 0x11
Yoofie has quit [Ping timeout: 260 seconds]
<pm123123123> 2nd try with this https://forum.osdev.org/viewtopic.php?f=2&t=30186 vesa call also fails. my kernel just keep rebooting.
<bslsk05> ​forum.osdev.org: OSDev.org • View topic - VESA Tutorial
<bslsk05> ​pastebin.com: graphics_mode: mov ax, 0x4f02 mov bx, 0x146 int 0x10 ret - Pastebin.com
<pm123123123> 0x146 is the mode shown in grub2 vbeinfo output
Yoofie has joined #osdev
<pm123123123> for 320x200x8
xenos1984 has joined #osdev
<pm123123123> so i feel like my kernel cannot use vesa int 0x10
<pm123123123> err... real mode only 0x10
stefanct has quit [Read error: Connection reset by peer]
netbsduser has joined #osdev
stefanct has joined #osdev
zetef has joined #osdev
pm123123123 has quit [Remote host closed the connection]
pm123123123 has joined #osdev
pm123123123 has quit [Client Quit]
netbsduser has quit [Ping timeout: 264 seconds]
goliath has joined #osdev
<klys> today i learned systemd-boot is a bootloader
<goliath> IIRC it used to be gummiboot
<klys> I have a vaio laptop which may need gummiboot, as it doesn't appear to boot bios mode. iirc it came with w7 installed.
<geist> for shits n giggles i'm gonna try to build the last release of bitchx (2014 era) on the vax
<geist> see what fails
<geist> irssi needs ninja for starters which isn't even remotely ported to that
<klys> I was interested in mame for decmate2 except it still doesn't run for the lack of a floppy controller bios dump.
<geist> oh hrm, that's lame
<GreaseMonkey> come to think of it, if you're not interested in a bootloader at this stage, you could consider building on top of DOS
<geist> eh. yeah, but then you have to deal with DOS, which is kinda more or less like dealing with a bootloader
<geist> multiboot is about as straightforward as it gets for 32bit stuff honestly
<geist> it's a little wonky but there are worse
<GreaseMonkey> for 32-bit yeah i'd rather use multiboot than DPMI
<GreaseMonkey> also if you're using QEMU's -kernel parameter for testing then last time i checked that only does multiboot version 1, not version 2
<klys> even dumping that old thing https://www.ebay.com/itm/296102827554 could have helped, alas it sold.
<bslsk05> ​www.ebay.com: DEC Digital DECmate II PC27X-BA RX01/RX02 interface board 8" floppy 54-15436 | eBay
<geist> GreaseMonkey: yeah
<kazinsal> reminds me, I saw a PDP-11 for sale in Quebec for $2500 CAD
<kazinsal> local pick-up only though
<geist> hmm, which model?
<geist> that's pricy for a late model, like a pdp-11/*3
<geist> 23/53/73/83
<kazinsal> I think it was a /24
<geist> but something early ike a pdp-11/30 or even a 11/70 that's a serious mmachine
<geist> hmmm, dunno the 24
<kazinsal> but the listing appears to no longer be there sadly
<bslsk05> ​www.ebay.ca: DEC PDP-11/24 computer + RL02 drive + VT-101 terminal | eBay
epony has joined #osdev
<klys> considering trying to reproduce a floppy drive with 3d printing
<klys> treatstock did a pretty good job with that cyrillic cryptex thing I gave to my niece
<bslsk05> ​www.zoro.com: Zoro Select Clear Polyester Film Stock 10 ft. L x 36" W x 0.003" Thick BULK-PF-PET-25 | Zoro
heat has joined #osdev
<bslsk05> ​simonsapin.github.io: The WTF-8 encoding
zetef has quit [Ping timeout: 276 seconds]
muffin has joined #osdev
lzrd has joined #osdev
heat has quit [Ping timeout: 246 seconds]
osmten has joined #osdev
Gooberpatrol66 has quit [Ping timeout: 268 seconds]
gog has joined #osdev
GeDaMo has joined #osdev
muffin has quit [Ping timeout: 264 seconds]
Cindy has quit [Ping timeout: 276 seconds]
Cindy has joined #osdev
Left_Turn has joined #osdev
epony has quit [Remote host closed the connection]
yuiyukihira has joined #osdev
alecjonathon has joined #osdev
patwid has joined #osdev
whereiseveryone has joined #osdev
asymptotically has joined #osdev
lh has joined #osdev
noeontheend has joined #osdev
exec64 has joined #osdev
ddevault_ has joined #osdev
tommybomb has joined #osdev
listentolist has joined #osdev
vismie has joined #osdev
tom5760 has joined #osdev
jleightcap has joined #osdev
sm2n has joined #osdev
gjn has joined #osdev
pitust has joined #osdev
staceee has joined #osdev
rselim has joined #osdev
hanemile has joined #osdev
alethkit has joined #osdev
agent314 has quit [Ping timeout: 264 seconds]
ddevault has joined #osdev
ddevault_ has quit [Remote host closed the connection]
masoudd has quit [Remote host closed the connection]
yoo has joined #osdev
Nixkernal has quit [Quit: No Ping reply in 180 seconds.]
Nixkernal has joined #osdev
Nixkernal has quit [Read error: Connection reset by peer]
Nixkernal has joined #osdev
Nixkernal has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
Nixkernal has joined #osdev
GeDaMo has quit [Ping timeout: 276 seconds]
Nixkernal has quit [Ping timeout: 260 seconds]
Nixkernal_ has joined #osdev
GeDaMo has joined #osdev
dutch has quit [Ping timeout: 268 seconds]
Nixkernal_ has quit [Read error: Connection reset by peer]
Nixkernal has joined #osdev
heat has joined #osdev
dodoma has quit [Quit: Client closed]
yoo has quit [Remote host closed the connection]
yoo has joined #osdev
yoo has quit [Ping timeout: 276 seconds]
osmten has quit [Quit: Client closed]
yoo has joined #osdev
Nixkernal_ has joined #osdev
lzrd has quit [Ping timeout: 252 seconds]
lzrd has joined #osdev
Nixkernal has quit [Ping timeout: 252 seconds]
xenos1984 has quit [Ping timeout: 264 seconds]
bitoff__ has quit [Remote host closed the connection]
xenos1984 has joined #osdev
navi has joined #osdev
lzrd has quit [Quit: leaving]
[itchyjunk] has joined #osdev
lzrd has joined #osdev
zetef has joined #osdev
Nixkernal_ has quit [Read error: Connection reset by peer]
lzrd is now known as senku
Nixkernal has joined #osdev
epony has joined #osdev
nikolar has quit [Quit: ZNC - https://znc.in]
edr has joined #osdev
Nixkernal has quit [Ping timeout: 264 seconds]
Nixkernal has joined #osdev
gmodena has joined #osdev
Nixkernal has quit [Excess Flood]
Nixkernal has joined #osdev
bauen1 has quit [Ping timeout: 245 seconds]
Arthuria has joined #osdev
Arthuria has quit [Ping timeout: 264 seconds]
nikolar has joined #osdev
CryptoDavid has quit [Quit: Connection closed for inactivity]
Left_Turn has quit [Read error: Connection reset by peer]
Left_Turn has joined #osdev
zetef has quit [Ping timeout: 264 seconds]
goliath has quit [Quit: SIGSEGV]
Matt|home has joined #osdev
bauen1 has joined #osdev
Gooberpatrol66 has joined #osdev
bauen1 has quit [Ping timeout: 245 seconds]
bauen1 has joined #osdev
Nixkernal has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
yoo has quit [Ping timeout: 260 seconds]
pm123123123 has joined #osdev
<pm123123123> i follow that tutorial and use grub-mkrescue than qemu -kernel to boot. multiboot2 is fine.
<zid> grats?
stolen has joined #osdev
<pm123123123> qemu -kernel boot does not work it gives me 'error loading uncompressed kernel without PVH ELF note'
gog has quit [Quit: Konversation terminated!]
<zid> yea, qemu doesn't support multiboot2
<zid> the error message is weird, it's because it checks for multiboot, and if it doesn't find it it checks for pvh, then errors
bauen1 has quit [Ping timeout: 264 seconds]
bauen1 has joined #osdev
xenos1984 has quit [Ping timeout: 264 seconds]
xenos1984 has joined #osdev
<pm123123123> i followed this: an iso made by grub-mkrescue of multiboot2 kernel and grub.cfg. qemu has no trouble booting it. https://os.phil-opp.com/multiboot-kernel/
<bslsk05> ​os.phil-opp.com: A minimal Multiboot Kernel | Writing an OS in Rust (First Edition)
mahk has quit [Ping timeout: 260 seconds]
mantahydra1 has joined #osdev
gog has joined #osdev
zxrom has quit [Quit: Leaving]
bauen1 has quit [Ping timeout: 260 seconds]
goliath has joined #osdev
xenos1984 has quit [Ping timeout: 264 seconds]
xenos1984 has joined #osdev
zxrom has joined #osdev
heat_ has joined #osdev
heat has quit [Read error: Connection reset by peer]
yoo has joined #osdev
netbsduser has joined #osdev
stolen has quit [Quit: Connection closed for inactivity]
<Ermine> what's the difference between arm-none-eabi and arm-arm-none-eabi ?
<GeDaMo> arm / aarch64?
<clever> GeDaMo: both appear to be 32bit
<Ermine> no, both are 32bit arms
<Ermine> first is also apparently known as arm-none-unknown-eabi
solaare has quit [Ping timeout: 245 seconds]
<bslsk05> ​web.archive.org: What's the difference between arm-linux- / arm-... | NXP Community
solaare has joined #osdev
<Ermine> so, arm-arm- is for cores made by arm (cortex), and arm- is for everyone else?
gxt has quit [Remote host closed the connection]
gxt has joined #osdev
<gog> hi
<gog> arm-arm-arm-
aejsmith has quit [Remote host closed the connection]
aejsmith has joined #osdev
stolen has joined #osdev
gbowne1 has joined #osdev
gog has quit [Ping timeout: 252 seconds]
solaare has quit [Remote host closed the connection]
solaare has joined #osdev
<sbalmos> arm-leg-none-abba
bauen1 has joined #osdev
rpnx has joined #osdev
yoo has quit [Ping timeout: 252 seconds]
rpnx has quit [Ping timeout: 245 seconds]
<epony> the floppy head arm will break in minutes if you use 3D printed weak plastic designed to model grandma dentures
<epony> get realistic
<epony> you can forget about 3D printed floppytron and you're never going to achieve the floppinator either that way
<epony> the special kids corner of computing ;-)
<epony> what you can do is, use the printed plastic as a crude prototype to cast ceramics around it, and evaporate your fake plastic then, so you can pour malten metal into it and see how far you go
<epony> into milling it later with precision high RPM drill bits
* epony throughs your 3D printer in the garbage
<epony> this is the magnetopic head, and this is the programming manual for the drive
<bslsk05> ​queue.acm.org: How to Design an ISA - ACM Queue
<Ermine> nortti: time for leg architecture?
* epony facepalms nortti "well done", now bring me a reconfigurable computing FPGA lattice
* geist yawns
* sham1 pitches
gog has joined #osdev
* Mondenkind rolls
senku has quit [Quit: leaving]
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
gabi-250_ has quit [Remote host closed the connection]
gabi-250_ has joined #osdev
<GreaseMonkey> "'error loading uncompressed kernel without PVH ELF note" <-- this is a known problem, you basically have to tell QEMU to use a machine type where it doesn't make that complaint
<GreaseMonkey> ...wait, for some reason the default's working on my multiboot 1 kernel
<heat_> "'error loading uncompressed kernel without PVH ELF note"
<heat_> this means your kernel isn't a valid multiboot image
<GreaseMonkey> i was getting that error mixed up with a different error
<GreaseMonkey> and yeah usually it means that you're using multiboot 2 instead of using multiboot 1
<heat_> also I vaguely recall qemu got multiboot2 support
<GreaseMonkey> huh, when abouts?
<heat_> i don't know, i could be wrong though
<gog> hi
<klange> qemu does not have multiboot2 support
<heat_> GOG
<gog> heat
<heat_> thanks klange
<heat_> i am a dirty liar
<heat_> funnily enough kexec has multiboot 1 and 2 support
<klange> I had a partially working demo, but it would not have been suitable for upstreaming
<heat_> partially working is around as much QA GRUB gets
<heat_> so ship it
<heat_> i need to implement the linux x86 boot protocol one of these days
<heat_> partly because i don't trust multiboot 2, partly because i don't trust GRUB, and partly because linux's x86 boot protocol has more features (and cruft)
<pm123123123> qemu supports multiboot2 just fine per the tutorial and my testing
<heat_> what tutorial?
<bslsk05> ​os.phil-opp.com: A minimal Multiboot Kernel | Writing an OS in Rust (First Edition)
<heat_> oh, to be clear, we're talking about doing stuff like "qemu-system-x86_64 -kernel <multiboot2 img>"
<heat_> anything else is /mostly/ irrelevant
<klange> that is not at all qemu supporting multiboot 2, that is grub supporting multiboot 2
<pm123123123> yeah i gotcha now
<epony> clean lies are still incorrect
<pm123123123> any advice on how to change diisplay to 320x200x8 when kernel loads?
<geist> oh speaking of partially working qemu, if any of you is doing work with riscv on qemu you'll want to upgrade to 8.2.0
<epony> machine independent separation with machne dependet allows for more efficent programming
<geist> it fixes a fairly major bug that we were seeing on fuchsia a lot
<geist> and ended up being some subtle coherency issue
<geist> i dont have the fix link, but was some sort of memory barrier like issue
<geist> between the TCG threads i think
<epony> applies to compilers and language / libraries, architectures and machine programming, boot and initialisation in general, and emulators and simulations in general
<heat_> pm123123123, why that specific resolution?
<epony> clean machine and boot programming separation is replicating the machine physics, not "what I want to mix and match"
<chibill> Change log for qemu 8.2.0 https://wiki.qemu.org/ChangeLog/8.2#RISC-V
<bslsk05> ​wiki.qemu.org: ChangeLog/8.2 - QEMU
<pm123123123> heat_: i'm just following a book. code is here https://github.com/imangoa/os. any resolution is fine.
<bslsk05> ​imangoa/os - 30天自制操作系统光盘文件 (5 forks/13 stargazers)
<pm123123123> 320x200x8 is the one the book uses
<Ermine> heat_: funnily enough kexec has multiboot 1 and 2 support <-- kexec("vmonyx")
<heat_> 320x200x8 is a horrible tiny res
<heat_> anyway don't bother with changing resolutions for now
<Ermine> 320x240 was one of my pre-android phones
<heat_> Ermine, yeah it's possible that works, IIRC I tried it and it crashed on my end (but maybe PEBKAC)
<pm123123123> just need to know how to change. which api/interrupt call to use etc....
<heat_> you don't have one
<klange> Mode setting is a ridiculously complicated subject.
<heat_> the best bet is to ask whatever is loading you to do it first
<Ermine> multiboot bootloader gets you to the protected mode iirc
<pm123123123> in this case grub. i try adding a framebuffer tag to multiboot2. didnt help
<epony> it should have been simplified but graphics proprieatary chipsets are a punishment to all
<heat_> then you did it wrong
<pm123123123> qemu's gpu should be open, right?
<heat_> because it certainly works here
<heat_> yeah that'll work
<Ermine> Protected mode disables the easiest way to set mode, namely VESA interrupts
<heat_> see bochsvga
<klange> qemu does not emulate a gpu by default, but that's a pedantic note
<Ermine> -graphics qxl
<heat_> aktshually it's called a display adapter🤓
<pm123123123> ok.. display adapter...
<pm123123123> right way to change resolution, how? multiboot2 tag?
<Ermine> yes
<klange> modesetting the bochs virtual display adapter is fairly straightforward, but relying on the ability to modeset yourself at runtime (after boot) will lead to issues
<bslsk05> ​github.com: Onyx/kernel/arch/x86_64/boot.S at master · heatd/Onyx · GitHub
<heat_> something like this
<pm123123123> https://pastebin.com/LTRqiwbi here's my mb2 code
<bslsk05> ​pastebin.com: section .multiboot_headerheader_start: dd 0xe85250d6 ; mag - Pastebin.com
<klange> I am reasonably certain grub just won't give you any 8-bit modes like this.
<klange> You _really_ don't want to be using an 8-bit mode, no matter what some book might say.
deckard has quit [Ping timeout: 256 seconds]
<heat_> https://github.com/heatd/Onyx/blob/master/scripts/iso.sh#L29-L33 fwiw i cargo-culted these modules by try-and-error a few years ago
<bslsk05> ​github.com: Onyx/scripts/iso.sh at master · heatd/Onyx · GitHub
<heat_> (ignore insmod xzio, that's unrelated)
<pm123123123> so i up the resolution to 1024x768x32 as the one heat_ points
<pm123123123> got error "unsupported tag: 0x8"
<klange> Your tags are misaligned.
<klange> Note how heat_'s link a few minutes ago has those ".align 8" directives before each multiboot tag.
<geist> hmm, i dont see on the qemu 8.2 release page the fix
<geist> though there are lots of little riscv bugfixes
yoo has joined #osdev
<pm123123123> klange: so i combine two dw into one dd and still same error. note if i take out the framebuffer tag then it's fine
<pm123123123> can this still be an alignment issue?
<pm123123123> i tried grub.cfg as well. no luck.
<pm123123123> let me try again. perhaps it's the order of statements
<klange> every tag needs to start on an 8 byte alignment; the framebuffer tag is not a multiple of 8 bytes long, so when you have it there without forcing alignment of your end tag, grub skips right past the 4 bytes of zeros in the end tag and arrives at the 8 from its size and thinks that's the type of a new tag
<heat_> combining two dw into one dd makes no difference
<pm123123123> i read somewhere it's gfxmode not gfxpayload
<zid> I like how heat, 20 mins after I said it, repeated everything I said, but wrong :P
<Ermine> btw, as we are speaking of assembly
<klange> > 20 mins
<klange> you mean 4 hours?
<Ermine> gas doesn't like ".section .stack, " wa", @nobits
<klange> gfxmode tells grub what resolution _it_ should use
<Ermine> Namely it complains at ", @nobits" part
<klange> gfxpayload tells grub what mode it should for the thing its loading
<klange> you can set gfxpayload=keep to use whatever mode grub itself was running in
<heat_> Ermine, works here
<heat_> Ermine, oh, i know what's wrong, you have an extra space in the "wa" string
<Ermine> it's in message
<Ermine> its ok in file
<klange> Just to check, are you building an ELF? gas may not support that stuff for other formats
<pm123123123> klange: yes ELF. i'm basically trying to combine two projects as i study.
<klange> not you
deckard has joined #osdev
<pm123123123> osdev is so hard!!!
<sham1> hi
<nikolar> hello sham1
netbsduser has quit [Ping timeout: 252 seconds]
<pm123123123> uploaded everything here. https://gitlab.com/toyosdev/osdev
<bslsk05> ​gitlab.com: osdev / osdev · GitLab
stolen has quit [Quit: Connection closed for inactivity]
netbsduser has joined #osdev
<pm123123123> i use win11 host and archlinux guest. the guest vm can resize almost at will. seemingly so easy. i expected easy code to change resolution
netbsduser has quit [Ping timeout: 252 seconds]
<Ermine> klange: yes, this is elf
<heat_> Ermine, link the whole file
<Ermine> pm123123123: the way linux changes mode is extremely nontrivial
<klange> vms are special; if you only care about changing resolutions in a vm, then modesetting is very easy
<heat_> mjg, mcrod just found out about zero cost logging
<heat_> funniest shit of my life
Neo has joined #osdev
heat_ is now known as heat
<pm123123123> klange: how? i'm only doing vm
<mcrod> heat: pessimal
<klange> For VMs implementing the bochs virtual display adapter, you can read this: https://wiki.osdev.org/Bochs_VBE_Extensions
<bslsk05> ​wiki.osdev.org: Bochs VBE Extensions - OSDev Wiki
<klange> vmware has its own thing that is different but similarly easy https://wiki.osdev.org/VMWare_SVGA-II
<bslsk05> ​wiki.osdev.org: VMWare SVGA-II - OSDev Wiki
<heat> mcrod, i have a really fun hack you could try out for the shits and giggles
<heat> for near-zero-cost logging
<klange> virtualbox and bochs implementing the io port interfaces for the bochs "card", qemu implements an mmio-mapped version
<klange> what these all have in common that is absolutely nothing like how real modesetting works is that you just say "I want this width and height and bit depth" and the VM says "you betcha, have fun"
<heat> hey google, what's a phase-locked-loop
<sortie> heat, hi heat, please ask during biznizz ours
<sortie> klange, yeah those BGA modesettings are so easy and fun. A bit of a shame qemu doesn't implement the auto scaling as well as virtualbox. Hey did you ever play with virtio graphics?
<bslsk05> ​github.com: x86: Add jump_label support · heatd/Onyx@90c9dfb · GitHub
<bslsk05> ​github.com: static_key: Add static_key support · heatd/Onyx@4a842b4 · GitHub
<heat> ZERO COST!
<heat> except for the decoder but who cares about that
<klange> sortie: no framebuffers on virtio-gpu so haven't looked at it much
<heat> you can definitely create a framebuffer with virtio-gpu
<klange> you definitely can not, it requires push events to update the display
<heat> https://docs.oasis-open.org/virtio/virtio/v1.1/csprd01/virtio-v1.1-csprd01.html see "5.7.6.1 Device Operation: Create a framebuffer and configure scanout"
<bslsk05> ​docs.oasis-open.org: Virtual I/O Device (VIRTIO) Version 1.1
<heat> hrm
<heat> i guess so
<heat> that's annoying
gbowne1 has quit [Remote host closed the connection]
gbowne1 has joined #osdev
<geist> yeah, neat thing is you can create multiple ones, though i dunno if qmeu has the ability to open more windows
<geist> the simplest thing to make a pseudo framebuffer is to run a timer that sends the update message
<geist> but then the update message is non trivial (ie, more than just whacking a register)
<klange> yeah I'm oversimplifying by calling it an "update" event - you have to tell the device to _copy out_
<klange> so not doing it constantly is probably a good idea
<geist> yah, seems like setting up some sort of repeating copy out would be a trivial ask to virtio, but i guess no one asked
<geist> and/or it's actually more than trivial because of all the possible combinations i'd have to deal with
zetef has joined #osdev
pm123123123 has quit [Quit: Client closed]
Left_Turn has quit [Read error: Connection reset by peer]
<bslsk05> ​pastesite.org: Untitled - Paste Site :: pastesite.org
<heat> oh, that's arm
<heat> the syntax is probably different there
<heat> cc geist
zetef has quit [Ping timeout: 252 seconds]
<heat> (fwiw, that's valid aarch64 syntax)