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> my nas is running low on 128kb sized holes, and fragmentation can double the size of a file
<nikolapdp> but that's only an issue if you approach 100% used space
<clever> so ive been having to reduce the recordsize to prevent that
rpnx_ has joined #osdev
<nikolapdp> makes sense
<mjg> getting yourself fuck with snapshots is partially PEBKAC
hunta987 has joined #osdev
<nikolapdp> it is
<mjg> wow, got a system old enough that 'boot disk' means a literal floppy
<nikolapdp> lol
<clever> nikolar: ah found it, the free space histograms, say my nas has 188gig free, df claims 27gig free
<clever> that 161gig difference, is the slop space
<nikolapdp> yeah one accounts the reserved space
<clever> that both lets things work when "full", and also stops you from making the fragmentation get too bad
<bslsk05> ​github.com: zfs/module/zfs/spa_misc.c at master · openzfs/zfs · GitHub
<clever> ah, its basically just 1 / (1<<spa_slop_shift) percent is reserved
<clever> so at 5 (the default), 3.125% is reserved
<clever> so earlier, when i changed it to 4 and got 0 free, its because i doubled the reservation, to 6.25%
<nikolapdp> yeah checks out
<mjg> clever: what's your biggest zfs pool
<clever> mjg: 3 x 4tb in a raidz1 array
<clever> so 8tb of capacity, with 4tb of parity
<clever> but, those numbers are also fuzzy, because of how raidz1 stores shorter records
goliath has quit [Quit: SIGSEGV]
<mjg> rookie numbers man
<clever> lets say the block size is 4kb, and i write an 8kb record to disk, raidz1 will split into 4k+4kb of data, and 4kb of parity, and spread it over 3 disks
<nikolapdp> we're not rich here mjg
<mjg> not to throw shade!
<clever> but if i write a 4kb record, raidz1 will basically degrade down to a mirror, and store just 2 copies
<clever> so the parity overhead varies, depending on the size of the record
<mjg> what's that, your local nas for storing movies 'n shit?
<mjg> or a backup server
<clever> mjg: i still need to get the 3 x 16tb sas drives going
<mjg> (perhaps both?)
<clever> both and everything, lol
<clever> its got backups of a laptop i had over a decade ago
<nikolapdp> same actually lol
<clever> its got more shows then i could possibly rewatch
<clever> i think it has a corrupt ext4 volume from when lvm ate things
<clever> its also got a chunk of my windows steam library, shared over iscsi
<mjg> lol
<clever> the windows machine was full, the nas wasnt, samba hates steam, so iscsi it was :P
<nikolapdp> neat
rpnx_ has quit [Ping timeout: 256 seconds]
<clever> i also ran talos princicle 2 over iscsi like that for a few days, and ouch, the LOD generation is shit
<kof673> "a most DE-LIGHTful shade" </alchemy land is almost 180 of modern things>
<heat57> clever: ext4 got "fast commit" which is basically just logging ext4 operations instead of block writes
<clever> the low LOD models are auto-generated, and look horrible
<clever> and due to the fragmentation on my nas, it can take minutes to load
<clever> then i freed up space on my nvme, and it loads so fast i cant even catch the low LOD model, lol
<mjg> i have to say the old bsd installers i used to consider shite back in the day (2005-ish)
<mjg> beat the shit out of linux installers in the same timeframe
<mjg> at least ubuntu and slackware
<mjg> erm, debian
<mjg> and salckware
<clever> ive installed LFS before, so gentoo and nixos where easy mode :P
<mjg> it's not about being easy or not, it's about being CUMBERSOME or not
<mjg> fucking xfree86 configuration vibes
<clever> oh, that reminds me, the first time i switched to wpa_supplicant, because i was away from home and was forced to go wpa, lol
<clever> and the problem, is looking up how it works, when you dont have wifi :P
<mjg> clever: there is a funny quote somewhere in freebsd's kernel developer guide
<mjg> clever: they recommend printing the docs because "it is difficult to read online documentation while single-stepping the kernel"
<clever> lol
Matt|home has quit [Quit: Leaving]
<clever> thats why i basically always install a new nixos machine over ssh
<clever> so i have a working env with copy/paste and all of my usual tools
<clever> nixos does allow making a custom iso that has all of your usual tools, but it wont have your state (chrome bookmarks and such)
<clever> and the usual problem of fitting 2 keyboards and mice on one desk :P
<clever> when you can just throw the pc in a random corner, plug in a cat5, and ssh into it
<clever> 8.5G -rw-r--r-- 1 root root 8.3G Apr 17 2017 /nas/backups/dev-server/sda.img.gz
<clever> ah, and here is an example of a fragmented file in zfs
<clever> 8.3gig of data, is taking up 8.5gig of space
<clever> 186M of overhead
<clever> [root@nas:~]# ls -lhsi /nas/backups/dev-server/sda.img.gz
<clever> 596386 8.5G -rw-r--r-- 1 root root 8.3G Apr 17 2017 /nas/backups/dev-server/sda.img.gz
<clever> if i add -i, i can see the inode#
<clever> [root@nas:~]# time zdb -ddddddddbbbbbbbb naspool/nas 596386 > fragmented-files
<clever> and this will then dump all of the metadata for that file
rpnx_ has joined #osdev
<bslsk05> ​gist.github.com: gist:0c93ea2fb28720d60b61894a8e7beda8 · GitHub
<clever> the `gang` flag in that listing, means the block is fragmented
bauen1 has joined #osdev
<clever> the record on line 30 for example, if i take the 2 sizes listed (0x188000 + 0x2000), then i get 1.5mb, but the dblk on line 4 says it should be 1mb
<kof673> the only thing i ever had an issue with on freebsd install, is i believe you need to manually glabel and gmirror ahead of time if you want those, don't know if they ever added that (or zfs now i suppose)
<clever> ah, but because of raidz1, it should be 1.5mb (exactly 50% overhead), but its actually 1.5390625mb
<clever> an extra 40kb wasted, on that record then
<clever> kof673: for zfs, you can upgrade a lone disk into a mirror at any time, and downgrade it back into a lone disk
<clever> converting between single/mirror, and raid i dont think is possible, and removing a disk i dont think is possible (just replacing it with the same type, and same or larger size)
<kof673> you can do that, just you have to create the mirror on one disk first :D
rpnx_ has quit [Ping timeout: 260 seconds]
<kof673> the installer did not do that :D
Arthuria has quit [Ping timeout: 268 seconds]
<clever> ah, for zfs, you dont need that, it can seamlessly turn a single disk into a mirror at any time
<clever> all that really does, is change some top level metadata, and clone all of the data over
<kof673> ^^^ yeah so if you create them ahead of time, then you can just point the installer there
<kof673> or it is all "transparent" the installer is none the wiser
<clever> have you seen the labels in the vdev stuff?
<kof673> i have no idea what vdev stuff is like /dev/label? yes there was that, or something similar
<bslsk05> ​gist.github.com: desktop · GitHub
<clever> basically, a vdev is a disk within the pool
<clever> when doing raid, the entire raid collection is considered a single vdev
<clever> so if you do raidz1 over sda/sdb/sdc, then that whole set is a single raidz1 vdev
<clever> the gist i linked, shows the headers at the start of a single partition
<kof673> oh yeah, i just meant it makes entries like that: > path: '/dev/disk/by-id/wwn-0x50014ee2654606d2-part2'
<kof673> so fstab/whatever can use those IIRC
<clever> on my desktop, you can see the headers define a single disk (no redundancy)
<clever> the path in there, is a performance thing, when mounting the pool, you can look there first
<clever> but if the disk cant be found there, you can take the guid from desktop line 19, and just search every disk in the box
<clever> but when you start to get 100+ disks in a box, that search could become costly
<kof673> what i do know, the geom stuff is all producer/consumer so i believe it is supposed to be entirely transparent to whatever else you do (e.g. what filesystem you create on it), and arbitrary stacking of whatever components
<clever> that sounds like lvm
<kof673> so there is also an encryption thing etc.
<clever> if you look at my nas in the above gist, line 18 says the type is raidz, line 21 says 1 parity disk, and then lines 28-51 define the children, what guid to expect for each member of the raidz1
carbonfiber has quit [Quit: Connection closed for inactivity]
<kof673> yeah, i just use labels for those :D
<clever> zfs uses guid's all over the place
<clever> for my nas, lines 31/39/47 define the guid of each child of the raidz1, line 20 is then the guid of the whole raidz1 vdev, and line 13 is the "top guid", the guid for the root containing all data
<clever> in this case, the raidz1 and top guid match, so the raidz1 is the root
troseman has quit [Quit: troseman]
<clever> but, if you instead did `raidz1(sda,sdb,sdc) + raidz1(sdd,sde,sdf)`, the top guid wouldnt match
<clever> so then you need to search for other things, with the same pool_guid, and assemble the parts
<clever> the pool_guid is the closest thing to an ext4 uuid
carbonfiber has joined #osdev
rpnx_ has joined #osdev
rpnx_ has quit [Ping timeout: 245 seconds]
<kof673> *or, freebsd maybe i didn't even use the installer, just make your label and mirror, put an MBR at some point, make FSses, mount, then untar IIRC lol
<kof673> that is all the base system "sets" were, is tar files
rpnx_ has joined #osdev
netbsduser` has quit [Ping timeout: 256 seconds]
xelxebar has quit [Ping timeout: 240 seconds]
xelxebar has joined #osdev
Arthuria has joined #osdev
xFCFFDFFFFEFFFAF has joined #osdev
Arthuria has quit [Ping timeout: 268 seconds]
Arthuria has joined #osdev
Arthuria has quit [Killed (NickServ (GHOST command used by Guest684531))]
Arthuria has joined #osdev
vaihome- has quit [Remote host closed the connection]
<clever> kof673: gentoo is the same, the stage3 tarball is a complete working userland, but no kernel
<clever> kof673: unpack that to a rootfs, chroot in, build/install a kernel, setup the bootloader
FreeFull has quit []
FreeFull has joined #osdev
heat57 has quit [Quit: Client closed]
heat has joined #osdev
xFCFFDFFFFEFFFAF has quit [Ping timeout: 240 seconds]
edr has quit [Quit: Leaving]
Arthuria has quit [Ping timeout: 240 seconds]
xFCFFDFFFFEFFFAF has joined #osdev
<bslsk05> ​github.com: MS-DOS/v4.0/src/CMD/FDISK/FDISK.C at main · microsoft/MS-DOS · GitHub
<heat> pascal in C
<kazinsal> oh YEAH that's the kind of cursed shit I love to see
<kazinsal> same thing is used in the SELECT.EXE source
<clever> is that just { and } behind a #define??
<kazinsal> you know it
<clever> i'm surprised at how many comments are there, back when disk space was costly, but its nice to see it self-documenting so well
<hunta987> >To whoever winds up maintaining this, I will apoligize in advance. I had just learned 'C'
<clever> 403180: c3 ret
<clever> 403181: 66 2e 0f 1f 84 00 00 cs nopw 0x0(%rax,%rax,1)
<clever> why might gcc be generating such large junk after the ret?
<clever> its just a no-op function, a ret and nothing more
<kazinsal> padding
<clever> why not pad with nop's?
<heat> it's a nop
<clever> and yeah, it is starting each function on 16 byte alignment
<Mutabah> it's a multi-byte nop
<kazinsal> looks cooler
<clever> lol
<heat> it's more efficient
<Mutabah> I assume that it's cheaper for the CPU to decode a long instruciton than to decode lots of small ones
<heat> yep
<clever> but its after a ret, so it shouldnt even be decoding it
<heat> and CPUs recognize certain forms of the nop instructions
<heat> LOL clever you're funny
<heat> in any case yes you could do it with int3's
<clever> i know there is some prefetch and look-ahead, but to blaze right thru an unconditional ret??
<heat> yep
<heat> SLS (straight line speculation) hardening does "ret; int3"
<heat> and there's a performance impact
<clever> another thing, i was wanting to try and optimize the binary for size, but nm claims the function is 1 byte, and the padding adds 15
Arthuria has joined #osdev
dude12312414 has joined #osdev
xFCFFDFFFFEFFFAF is now known as ignoratio
ignoratio is now known as ignorratio
ignorratio is now known as ignORratio
ignORratio is now known as ignORratIo
dude12312414 has quit [Excess Flood]
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
gildasio has quit [Remote host closed the connection]
gildasio has joined #osdev
\Test_User has quit [Quit: \Test_User]
\Test_User has joined #osdev
heat has quit [Ping timeout: 268 seconds]
stolen has joined #osdev
Gooberpatrol66 has quit [Ping timeout: 268 seconds]
Gooberpatrol66 has joined #osdev
volum has joined #osdev
rpnx_ has quit [Ping timeout: 255 seconds]
Arthuria has quit [Ping timeout: 268 seconds]
npc has joined #osdev
rpnx_ has joined #osdev
rpnx_ has quit [Ping timeout: 245 seconds]
npc has quit [Remote host closed the connection]
rpnx_ has joined #osdev
rpnx_ has quit [Ping timeout: 268 seconds]
ThinkT510 has quit [Quit: WeeChat 4.2.2]
ThinkT510 has joined #osdev
rpnx_ has joined #osdev
bliminse has quit [Quit: leaving]
rpnx_ has quit [Ping timeout: 260 seconds]
rpnx_ has joined #osdev
volum has quit [Ping timeout: 250 seconds]
rpnx_ has quit [Ping timeout: 268 seconds]
rpnx_ has joined #osdev
rpnx_ has quit [Ping timeout: 246 seconds]
rpnx_ has joined #osdev
stolen has quit [Quit: Connection closed for inactivity]
rpnx_ has quit [Ping timeout: 272 seconds]
\Test_User has quit [Quit: e]
\Test_User has joined #osdev
zhiayang has quit [Quit: oof.]
zhiayang has joined #osdev
gbowne1 has quit [Quit: Leaving]
rpnx_ has joined #osdev
rpnx_ has quit [Ping timeout: 260 seconds]
rpnx_ has joined #osdev
rpnx_ has quit [Ping timeout: 255 seconds]
rpnx_ has joined #osdev
rpnx_ has quit [Ping timeout: 260 seconds]
rpnx_ has joined #osdev
\Test_User has quit [Quit: \Test_User]
rpnx_ has quit [Ping timeout: 255 seconds]
GeDaMo has joined #osdev
ignORratIo has quit [Read error: Connection reset by peer]
\Test_User has joined #osdev
hunta987 has quit [Quit: Lost terminal]
rpnx_ has joined #osdev
Burgundy has joined #osdev
rpnx_ has quit [Ping timeout: 268 seconds]
rpnx_ has joined #osdev
<GeDaMo> zid: did you know that Balatro was written in Lua using Love2D?
<nikolar> Neat
<nikolar> Does Lua have some kind of type annotation like python
<GeDaMo> I don't think so
<bslsk05> ​gamefromscratch.com: Balatro Made with Love... Love2D That is – GameFromScratch.com
<nikolar> So you have to do everything without any kind of type checking (even fake one) :(
<bslsk05> ​old.reddit.com: Blocked
rpnx_ has quit [Ping timeout: 256 seconds]
<nikolar> Balatro open source?
<GeDaMo> No, but the source is in the executable
<GeDaMo> If you treat the executable as a zip file, you can extract it
<nikolar> It was a joke
<GeDaMo> :P
<bslsk05> ​luals.github.io: Lua Language Server | Wiki
<nikolar> Apparently there is some type annotation
<GeDaMo> I must admit I've not looked at Lua in a while
<nikolar> I just can't imagine a project that big being enjoyable to write with dynamic types
<GeDaMo> "Leaving Rust gamedev after 3 years" https://loglog.games/blog/leaving-rust-gamedev/
<bslsk05> ​loglog.games: LogLog Games
<zid> GeDaMo: I did know it was love2d yes
<zid> people were laughing that cards.lua was a 4000 line if()
<zid> to implement all the behavior
<zid> cus lua doesn't even have switch()
<zid> I said I'd rather a 4000 line switch than a VISITOR PATTERN
<GeDaMo> You can use tables for that but I don't know if there are any disadvantages
gog has quit [Quit: byee]
\Test_User has quit [Quit: e]
\Test_User has joined #osdev
<zid> Problem is with a card game is that you definitely need behavior *per card*
<zid> so either you end up with 4000 subroutines, in 4000 different places
<zid> or you end up with a 4000 line if/switch/whatever in one place
<zid> and tbh I'd prefer the latter
<zid> Unless you made a cool editor, anyway
<zid> that let you click a card and change its code, like gamemaker or whatever
<GeDaMo> I wonder if you can define a Lua table with functions inline
<nikolar> You probably can
<GeDaMo> Yeah, you can
<GeDaMo> t = {a = 3, f=function(a,b) return a+b; end;}
<zid> so you want the 4000 subroutines version, or were just wondering how?
<GeDaMo> Just curious
<ddevault> I must have implemented at least ten ELF loaders at this point
<ddevault> this one is the simplest by far
<zid> well it takes about 40 seconds
<zid> which is nice
<ddevault> yeah
<ddevault> it's pretty straightforward
<zid> find _start, find program header list, walk each header, copy file bytes to address it says to, check for memsize > filesiz
<zid> done
<ddevault> third step varies depending on how you do memory management
<nikolar> ddevault how did you build the c cross tool chain
<zid> yea, 'copy' as in, copy the page with memcpy, or copy the PTE to a different vaddr, etc, I just said copy for lazy
<nikolar> What configure options
<ddevault> my microkernel's ELF loader in userspace has to do some juggling between the loader program's address space and the target address space
<ddevault> nikolapdp: --target=x86_64-elf --disable-nls --without-headers --enable-languages=c,c++
<zid> what *is* nls
<zid> nobody enables it :(
<Mutabah> native language support
<ddevault> localization stuff
<Mutabah> i.e. translated error messages
<zid> ah nobody has heard of serbian so that's fine
<nikolar> You've just said Serbian, check mate
<ddevault> oh and I used whatever random version of gcc I had in ~/sources, I couldn't tell you which one
<ddevault> probably the one with the helios target
<nikolar> Let's see if I can build a working tool chain, whatever I tried yesterday was dying with "try compiling with -fpie"
<nikolar> During linking
<zid> did we all read made in abyss volume 12 yet?
<zid> Faputa is best girl, sosu
<nikolapdp> weeb
<GeDaMo> Up until this point I assumed that nikolar and nikolapdp were the same person :|
<nikolapdp> lol
<zid> nope
<nikolapdp> you were right
<nikolapdp> we aren't
<zid> don't believe his lies
<nikolar> You'll never know our true identities
<GeDaMo> I'm easily confused by reality :P
<nikolapdp> now you have to figure out what the reality is
<GeDaMo> I avoid reality as much as possible :|
<nikolapdp> ):
xenos1984 has quit [Read error: Connection reset by peer]
gildasio has quit [Remote host closed the connection]
rpnx_ has joined #osdev
gildasio has joined #osdev
<nikolapdp> ddevault: can i change the default hare linker
gog has joined #osdev
<zid> Can I change the default nikolar
<nikolapdp> no
<ddevault> nikolapdp: yes, just export the LD variable
<zid> LD=/bin/yes make
<ddevault> LD="yes 'Error: No space left on device'" for maximum damage
rpnx_ has quit [Ping timeout: 268 seconds]
<ddevault> nikolapdp: do you want me to write a readme with build instructions?
<nikolapdp> that would be nice, yes
<nikolapdp> i can't get hare to use the cross linker, it insists on linking with libc
<ddevault> ack
<ddevault> oh I have a patch
<ddevault> you need to apply to hare
<bslsk05> ​lists.sr.ht: hare(1): don't auto-add -lc if freestanding — sourcehut lists
<ddevault> I applied it to master this morning so just pull
<nikolapdp> oh nice
<zid> disregad hare, when terraai
<nikolapdp> whoop, it built
<zid> whoops*
<nikolapdp> btw SYSLINUX should probably be in config
<nikolapdp> ddevault ^
<ddevault> yeah
<ddevault> just did that
<nikolapdp> heh nice
<bslsk05> ​git.sr.ht: ~sircmpwn/bunnix - A simple monolithic Unix-ish kernel - sourcehut git
<nikolapdp> ddevault: main.ha:76:34: error: Unknown object 'mman::new_vmm'
<ddevault> git pull
<nikolapdp> nice
<nikolapdp> huh now it's booting into syslinux and dying with "loading /bunnixboot.mb failed!"
xenos1984 has joined #osdev
<ddevault> weird
<nikolapdp> next line is no files found
<ddevault> screenshot that
<ddevault> use make run, not make nographic
<bslsk05> ​imgur.com: Imgur: The magic of the Internet
<nikolapdp> i did
<ddevault> make clean and make again? and lemme see the make output as well
<bslsk05> ​paste.artixlinux.org: Untitled - Pastebin
<ddevault> LGTM
<ddevault> you'll have to dig
<nikolapdp> huh maybe the syslinux conf is wrong
<nikolapdp> root=sata0b?
<ddevault> yeah that's fine
<ddevault> this failure happens before that's interpreted
<ddevault> this looks like an issue with syslinux loading bunnixboot.mb from the boot iso
<nikolapdp> oh that's the argument to the kernel
<ddevault> yeah
<nikolapdp> what version of syslinux are you using
<nikolapdp> mine is 6.04.pre2.r11.gbf6db5b4-4
<ddevault> same
<nikolapdp> whatever that means
<ddevault> syslinux hasn't had a new release in years
<nikolapdp> i know, maybe it's had some local patches though
<ddevault> nah
<ddevault> you want a copy of my bunnixboot.mb to try?
<nikolapdp> sure
<nikolapdp> or iso
<nikolapdp> yeah, working with your iso
<nikolapdp> lol hare rebuilding bunnixboot.mb on make run isn't helping
<ddevault> haha
<ddevault> it's .PHONY, just remove that
rpnx_ has joined #osdev
<nikolapdp> not working with just your .mb
<nikolapdp> so iso creation issue
<ddevault> yeah, or an issue with your syslinux
<nikolapdp> it's multiboot right
<ddevault> yeah
<ddevault> you could use grub if you want
<ddevault> multiboot 1, not multiboot 2
\Test_User has quit [Quit: e]
<GeDaMo> Is it copying the files to the ISO?
<ddevault> it presumably copies at least the syslinux modules
rpnx_ has quit [Ping timeout: 268 seconds]
<nikolapdp> ls .isodir/
<nikolapdp> bunnix bunnixboot.mb init isolinux.bin ldlinux.c32 libcom32.c32 mboot.c32 syslinux.cfg
<zid> megabun
<GeDaMo> Can you mount the iso on loopback?
\Test_User has joined #osdev
<nikolapdp> BUN
<nikolapdp> apparently, loopback not worky
netbsduser` has joined #osdev
<nikolapdp> dang i updated the kernel
<nikolapdp> let me reboot
<nikolapdp> that was a quick reboo
<GeDaMo> So quick, it didn't even need the 't' :P
<nikolapdp> indee
Burgundy has quit [Ping timeout: 240 seconds]
<nikolapdp> loop mounted: boot.cat bunnix bunnixbo.mb init isolinux.bin ldlinux.c32 libcom32.c32 mboot.c32 syslinux.cfg
<GeDaMo> 8.3!
<nikolapdp> really??
<GeDaMo> bunnixbo.mb
<zid> nikolapdp can't handle more than 8.3 lol
<nikolapdp> oh rindeed
<zid> what did you build this on
<nikolapdp> a pdp11 clearly
<zid> what's it using to make the iso, not mkisofs surely
<nikolapdp> mkisofs -o bunnix.iso -b isolinux.bin -c boot.cat \
<nikolapdp> -no-emul-boot -boot-load-size 4 -boot-info-table .isodir
<zid> -iso-level 3
<zid> or -l
<nikolapdp> -l did it
<nikolapdp> nice zid
<zid> looooongnames
<nikolapdp> lol yeah, very long
<zid> now it won't wor on dos :(
<zid> NON-STANDARD DISC
<nikolapdp> ):
<GeDaMo> The disk still has 8.3 names
<zid> mkisofs says -l stopsit working on dos
<GeDaMo> "Each file written to the iso9660 filesystem must have a filename in the 8.3 format (8 characters, period, 3 characters, all upper case), even if Rock Ridge is in use."
<zid> cus it doesn't understand whatever extension is being used
<bslsk05> ​linux.die.net: Just a moment...
<zid> rockrige?
<GeDaMo> Yeah
<ddevault> is your mkisofs from xorriso
<GeDaMo> That's the long name extension for CDROMs
<ddevault> or some other implementation
<zid> fuz maintains cdrutils now I think
<nikolapdp> oh it's from cdrtools
<zid> cdrtools*
<ddevault> that's probably it
<zid> cdrtools is the correct one
<ddevault> thank you for your input zid
<nikolapdp> ddevault should i send the patch with -l
<zid> np
<ddevault> nikolapdp: sure, if that fixes it on cdrtools
<nikolapdp> probably should check if it doesn't break xorriso
<nikolapdp> lol
<zid> do the xorriso people seriously symlink cdrtools to them?
<zid> or is there two rules
<zid> for whichever exists
<nikolapdp> ddevault i also changed config.mk to that the TRIPLET is a variable
<nikolapdp> so it's easier to change
<nikolapdp> should i send that too
<zid> https://github.com/zid/bootstrap/blob/master/Makefile#L17 I should add -l to this at some point then, but I actually use 8.3 so far just coincidentally
<bslsk05> ​github.com: bootstrap/Makefile at master · zid/bootstrap · GitHub
<nikolapdp> kek
<zid> kernel.bin is 6.3, what other word can I use
<zid> nikolarp.bin
<ddevault> nikolapdp: sure
<nikolapdp> operatingsystemkernel.binary
<ddevault> did it boot
<nikolapdp> yes
<ddevault> nice
<nikolapdp> indeed
<nikolapdp> ddevault you wrote https://git-send-email.io, no?
<bslsk05> ​git-send-email.io: Learn to use email with git!
<ddevault> yeah
<nikolapdp> can you tell me why the same config on two machines makes one machine send an email successfully, and the other fails with Recipient address rejected: User unknown in local recipient table
<zid> nikolapdp: User unknown in local recipient table
<ddevault> postfix issue probably
<zid> in the 2nd machine
<nikolapdp> eh
<zid> you're welcome
<ddevault> you using sendmail?
<nikolapdp> git send-email --to="~sircmpwn/email-test-drive@lists.sr.ht" HEAD
<nikolapdp> the exact command ^
<ddevault> I mean are you configuring git to use /bin/sendmail
<ddevault> rather than SMTP
<zid> last time I did emails it was what.. postfix, sendmail and.. courier-auth or something?
<nikolapdp> oh, whatever is the default
<ddevault> yeah that's the issue
<ddevault> you didn't actually follow the tutorial on git-send-email.io
<ddevault> there are mandatory configuration steps, unless you happen to have a working sendmail set up locally
<zid> courier-imap
<zid> That was it
<zid> I set my own email up, then found out that basically nobody would accept emails from me
rpnx_ has joined #osdev
<zid> because everybody subscribes to whitelists
<nikolapdp> ddevault: oh you might be right, i had the client set up on one machine before trying this
<nikolapdp> and not on the other
<zid> question, can you send email over ipv6
<nikolapdp> guess i completely missed it the first time because i didn't realise i already had a working client lol
<nikolapdp> zid: no clue
<zid> I'm not sure enough of how MX records work, I've only ever seen them have ipv4 addresses in, but idk if they're just fancy A records, or if they can be AAAA records too etc
<ddevault> they are fancy CNAMEs
<ddevault> they can refer to A, AAAA, another CNAME, whatever
<zid> okay cool
<zid> I wasn't sure if they were just aliased A records, or if they were like, pointer records, so they're the latter and ipv6 will work fine then, neat
rpnx_ has quit [Ping timeout: 268 seconds]
<nikolapdp> heat
\Test_User has quit [Quit: e]
\Test_User has joined #osdev
\Test_User has quit [Client Quit]
\Test_User has joined #osdev
<ddevault> ayy I'm in userspace
<Mutabah> noice
<nikolapdp> very nice
<bslsk05> ​'Soft Space' by Soft Machine - Topic (00:08:18)
<nikolapdp> ddevault, ok it was a silly mistake
<nikolapdp> when i first configured my email i mistyped the addres, made the commit, fixed the address
<nikolapdp> but the wrong addess stayed
<ddevault> gotcha
<nikolapdp> it was trying to log in as a non existant user
<nikolapdp> that would fail, yeah
xFCFFDFFFFEFFFAF has joined #osdev
spare has joined #osdev
<nikolapdp> ddevault, do i send patches to your email?
<ddevault> yes
<ddevault> sir@cmpwn.com
<nikolapdp> done
<ddevault> ty
<nikolapdp> you're welcome
rpnx_ has joined #osdev
xFCFFDFFFFEFFFAF has quit [Read error: Connection reset by peer]
<nikolapdp> very ncie
<nikolapdp> now you can write
<nikolapdp> and hello world
rpnx_ has quit [Ping timeout: 255 seconds]
\Test_User has quit [Quit: ee]
<ddevault> nah
<ddevault> some clean up to do with the syscall ABI and such first
<ddevault> need to add a separate kernel and user stack per task, and improve the code a bit elsewise
<nikolapdp> yeah fair enouhg
<nikolapdp> having a hello world is a flex though
<ddevault> I mean I could implement a write-to-the-kernel-console syscall inside of two minutes now
<ddevault> but don't feel the need to flex
<nikolapdp> lol yeah that's what i was talking about
<ddevault> (or rather, it's not impressive because I can do it so easily)
<nikolapdp> yeah got ya
<nikolapdp> rdtsc is a bit silly
\Test_User has joined #osdev
rpnx_ has joined #osdev
rpnx_ has quit [Ping timeout: 260 seconds]
\Test_User has quit [Quit: \Test_User]
zetef has joined #osdev
flom84 has joined #osdev
\Test_User has joined #osdev
Burgundy has joined #osdev
flom84 has quit [Ping timeout: 256 seconds]
rpnx_ has joined #osdev
rpnx_ has quit [Ping timeout: 264 seconds]
\Test_User has quit [Quit: \Test_User]
\Test_User has joined #osdev
warlock has joined #osdev
rpnx_ has joined #osdev
Left_Turn has joined #osdev
rpnx_ has quit [Ping timeout: 246 seconds]
\Test_User has quit [Quit: \Test_User]
volum has joined #osdev
rpnx_ has joined #osdev
<zid> GeDaMo: just found an article about writing games in rust, and it does infact, mention a "game that is entirely weird one-off upgrades" like binding of isaac (or balatro) being damn near impossible to write in it :p
<zid> you have to refactor the entire project after every card you add
<nikolapdp> kek
navi has joined #osdev
rpnx_ has quit [Ping timeout: 260 seconds]
spare has quit [Remote host closed the connection]
<zid> "borrow checker says no"
<ddevault> segmentation makes me sad
<zid> have you considered
<zid> completely ignoring it
<zid> intel told me to tell you that
<nikolapdp> what are you working on
<ddevault> putting per-CPU state in %gs
<nikolapdp> oh you got acpi
<zid> gs and segmentation are thankfully, entirely unrelated
<ddevault> no
<ddevault> just improving my interrupt and syscall entry points in advance of eventually having SMP
<zid> gs is just a base pointer loaded from an MSR
<ddevault> I could just shove it in a global
<zid> rather than an actual segment
<ddevault> I set IA32_KERNEL_GS_BASE (and GS_BASE for good measure) to address foo
<ddevault> I set %gs to zero
<ddevault> %gs:0 does not appear to refer to foo
<ddevault> oh cause I rebound this variable
<ddevault> thanks for the rubber ducking
<nikolapdp> kek
<nikolapdp> you're welcom
spare has joined #osdev
<zid> oh I have fsgsbase now don't I
<zid> I didn't on my previous cpu
<nikolapdp> what do you mean
<bslsk05> ​www.intel.com: Access Denied
<nikolapdp> neato
<zid> It's ooldnow
<nikolapdp> what like 4 yeards
<nikolapdp> years
<zid> no?
<zid> like 10?
<zid> it was ivybridge
<nikolapdp> right yea
rpnx_ has joined #osdev
vai has joined #osdev
heat has joined #osdev
zetef has quit [Ping timeout: 268 seconds]
rpnx_ has quit [Ping timeout: 272 seconds]
goliath has joined #osdev
zetef has joined #osdev
volum has quit [Quit: Client closed]
zetef has quit [Ping timeout: 255 seconds]
\Test_User has joined #osdev
rpnx_ has joined #osdev
<ddevault> there we go, that's a much better syscall handler (and now there are separate kernel and user stacks)
\Test_User has quit [Quit: e]
spare has quit [Remote host closed the connection]
\Test_User has joined #osdev
rpnx_ has quit [Ping timeout: 268 seconds]
spareproject has joined #osdev
<bslsk05> ​git.sr.ht: ~sircmpwn/bunnix (master): arch/+x86_64/entry.s - sourcehut git
<nikolar> Very clean
<ddevault> and in userspace it's identical to System-V ABI except that %rcx is moved to %r10 before the syscall instruction
\Test_User has quit [Quit: \Test_User]
rpnx_ has joined #osdev
warlock has quit [Quit: Lost terminal]
\Test_User has joined #osdev
rpnx_ has quit [Ping timeout: 260 seconds]
<nikolapdp> neat
\Test_User has quit [Quit: e]
\Test_User has joined #osdev
rpnx_ has joined #osdev
rpnx_ has quit [Ping timeout: 264 seconds]
<heat> that handler looks iffy
<heat> you probably want a well defined full structure with all the regs you may want to inspect
rpnx_ has joined #osdev
<heat> you also need to disable interrupts between swapgs and sysret
<heat> you don't want to get into a case where your segment registers say ring0 and your swapgs says ring3 such that it'll confuse your ISR handler
<zid> i'm surprised there's no flag to make syscall disable interrupts
<zid> so that you can use it more like an irq handler
<heat> there is
<zid> oh
rpnx_ has quit [Ping timeout: 260 seconds]
<zid> no wonder I am surprised then
<heat> i have it as IA32_MSR_SFMASK, might have a different SDM name
<heat> basically you give it an EFLAGS mask of crap you want zero'd at syscall entry
<zid> right
\Test_User has quit [Quit: eeee]
rpnx_ has joined #osdev
<ddevault> heat: the syscall handler implements the System-V ABI, it saves callee-saved registers and otherwise passes them along to the syscall handler normally
<ddevault> and interrupts are disabled automatically with the syscall MSRs
<ddevault> (and re-enabled)
<ddevault> but I will make a note to cli there for when I do kernel preemption
<heat> but you need to disable them again around the swapgs + sysret
<zid> why again
<ddevault> or just add it now
<zid> what has suddenly reenabled them
<ddevault> ^
<heat> you'll run the syscalls with interrupts enabled no?
<ddevault> in the future, yes
<ddevault> but right now they're disabled
<zid> mine are also disabled on entry and stay disabled
<heat> yes and i'm telling you there's a gotcha there
<zid> and what is it
<zid> we keep asking
rpnx_ has quit [Ping timeout: 240 seconds]
<heat> you can't run that sysret path with interrupts enabled, that's all
<ddevault> they're not enabled
<ddevault> ¯\_(ツ)_/¯
<zid> what has suddenly reenabled them
<ddevault> but I added a cli so that I don't forget about that when I add kernel preemption in the future
<ddevault> thanks
<heat> this is not about preemption but sure
<heat> the problem really is about getting any sort of IRQ that will get confused on GS_BASE=usergs and cs=ring0
<heat> NMIs are also a problem but those usually take a more paranoid code path
rpnx_ has joined #osdev
FreeFull has quit []
\Test_User has joined #osdev
<ddevault> hm, I start getting triple faults instead of proper interrupts once I jump to userspace
<zid> not too hard to figure out with -d int at least
<ddevault> aye, looking over it now
rpnx_ has quit [Ping timeout: 246 seconds]
Arthuria has joined #osdev
PublicWiFi has joined #osdev
Turn_Left has joined #osdev
Left_Turn has quit [Ping timeout: 256 seconds]
rpnx_ has joined #osdev
rpnx_ has quit [Ping timeout: 255 seconds]
Arthuria has quit [Ping timeout: 256 seconds]
<ddevault> turns out I just had a dumb interrupt handler, fixed
Arthuria has joined #osdev
heat has quit [Read error: Connection reset by peer]
heat has joined #osdev
<heat> apparently my console code was so bad it freezed the host too
<zid> frozzened
<heat> froze my bad
<nikolapdp> kek
rpnx_ has joined #osdev
<zid> heat never accepts my patches :(
<nikolapdp> what patches did you send him
<zid> frozzened
<nikolapdp> ):
<heat> i only take email patchen sorry
<mjg> boomer
<heat> fuck you mofer
rpnx_ has quit [Ping timeout: 260 seconds]
<nikolapdp> i've sent email patchen to two people in the last 24h
<nikolapdp> and i am a zoomer
heat_ has joined #osdev
<heat_> hah here's a fun bug
heat has quit [Read error: Connection reset by peer]
<heat_> i had a mysterious ~10s hang with the new printing code
<heat_> before this, printf didn't log to the console
Arthuria has quit [Killed (NickServ (GHOST command used by Guest684531))]
Arthuria has joined #osdev
<heat_> it turns out i was doing printf in the middle of PCI bar enumeration, which involves turning off the device's mem and IO decoding
<heat_> :^)
<nikolapdp> :)
<heat_> it's only surprising qemu didn't throw an error
<heat_> though i guess bad MMIO accesses on the PC don't necessarily do that
rpnx_ has joined #osdev
<zid> I'd expect "nothing" and "reads 0xFF" or "stalls" but not errors
Arthuria has quit [Killed (NickServ (GHOST command used by Guest684531))]
Arthuria has joined #osdev
joe9 has joined #osdev
rpnx_ has quit [Ping timeout: 268 seconds]
<mjg> well still, looks like you managed to accidentally fuzz out a bug in kvm?
<heat_> not sure where the bug is
<heat_> i'm only touching the framebuffer so i wouldn't expect it to be a hang on my end
Arthuria has quit [Read error: Connection reset by peer]
Arthuria has joined #osdev
rpnx_ has joined #osdev
foudfou has quit [Remote host closed the connection]
chiselfuse has quit [Remote host closed the connection]
gildasio has quit [Read error: Connection reset by peer]
foudfou has joined #osdev
gildasio has joined #osdev
chiselfuse has joined #osdev
rpnx_ has quit [Ping timeout: 264 seconds]
xenos1984 has quit [Ping timeout: 260 seconds]
xenos1984 has joined #osdev
rpnx_ has joined #osdev
rpnx_ has quit [Ping timeout: 264 seconds]
xenos1984 has quit [Ping timeout: 256 seconds]
\Test_User has quit [Quit: \Test_User]
joe9 has quit [Quit: leaving]
\Test_User has joined #osdev
zy has joined #osdev
rpnx_ has joined #osdev
xenos1984 has joined #osdev
chiselfuse has quit [Remote host closed the connection]
rpnx_ has quit [Ping timeout: 260 seconds]
chiselfuse has joined #osdev
\Test_User has quit [Quit: \Test_User]
gildasio1 has joined #osdev
gildasio has quit [Ping timeout: 260 seconds]
\Test_User has joined #osdev
rpnx_ has joined #osdev
mmohammadi9812 has joined #osdev
rpnx_ has quit [Ping timeout: 255 seconds]
vai has quit [Ping timeout: 255 seconds]
Arthuria 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
mmohammadi9812 has quit [Ping timeout: 260 seconds]
mmohammadi9812 has joined #osdev
rpnx_ has joined #osdev
rpnx_ has quit [Ping timeout: 245 seconds]
Arthuria has quit [Ping timeout: 245 seconds]
rpnx_ has joined #osdev
mmohammadi9812 has quit [Ping timeout: 245 seconds]
mmohammadi9812 has joined #osdev
rpnx_ has quit [Ping timeout: 245 seconds]
spareproject has quit [Remote host closed the connection]
mmohammadi9812 has quit [Ping timeout: 272 seconds]
mmohammadi9812 has joined #osdev
vai has joined #osdev
<vai> hi
<GeDaMo> Hi vai :)
<nikolapdp> hello
vai has quit [Ping timeout: 252 seconds]
<Ermine> henlo
<Ermine> I wonder how can you sneak code into SMM
<heat_> wdym
stolen has joined #osdev
<zid> break the rsa keys for intel, upload your own ME firmware?
<zid> or exploit it at runtime
mmohammadi9812 has quit [Remote host closed the connection]
<heat_> SMM != ME
<heat_> but yes basically hope that bootguard isn't activated, or use a leaked RSA key or something, or use an exploit to write into SMRAM
<heat_> bootguard not being enabled is actually pretty likely
<zid> who said SMM == ME?
<heat_> me firmware has nothing to do with this
<zid> I thought the ME firmware is what held the SMM code blobs
<Ermine> I can't stop thinking of that hp laptop which have overriden windows boot screen
<zid> the calendar?
<heat_> nope, SMM is in a regular firmware volume, such as the rest of the firmware modules *and* ME
<heat_> HP DAYSTARTER BABY WOOOOOOOOOOOOOOOOOOOO
<nikolapdp> lol
<zid> SMI SMM SMD SMP, I vote we stop using SM*
<zid> SMT
<zid> SMS, SMD
<zid> what's next, sega management interrupts?
<heat_> SMH
mmohammadi9812 has joined #osdev
<kof673> maybe not what you mean, 95/98/me at least, boot screen was just a bmp. some bios used to let you flash the bios screen as well
<mjg> i don't remember if it was a bmp
<kof673> well, something, pcx or similar
<kof673> some easy to replace format
<mjg> i do remember there was a funky named file you could place
<mjg> to use it intead of the default
<mjg> also the "shutdown" screen was in fact a dos prompt
<CompanionCube> kof673: this isn't that, that's normal
<bslsk05> ​superuser.com: Change bios splash screen - Super User
<zid> Yea there's just a builtin for showing logos in windows' efi as well I think
<zid> as well as the one built into the efi firmware
<kof673> sure but now i am dying to know what is the boot screen referred to? boot menu? login prompt?
<zid> cus it's all toolkitted with agesa and whatever on amd, you provide the customizations yourself afaik?
<zid> like your asus logo or whatever
<bslsk05> ​'Quick Start, Episode 7: Crimes... And Felonies.' by Cathode Ray Dude [CRD] (00:59:23)
<kof673> thx
<heat_> the efi functionality for switching boot splashes actually pwned it a few months ago
<heat_> who knew cheap crappy image parsers written with little skill or care would bite someone in the end
<nikolar> Shocker
<zid> oh yea forgor about the exploit
<zid> wasn't in all bioses, wasn't in mine
<zid> nor do I care
<heat_> yes because all vendors had their own image parsing libraries
<heat_> cuz ofc this is what they call "value-add"
<zid> if you have permissions to change my boot splash, you have permissions to encrypt my files and shit
<zid> so idgaf what you can do to my efi, as long as you forget I have a web browser installed
<zid> You may be able to drain my bank account, impersonate me to my friends and scam them etc, but I will *never* allow you to install an unsigned printer driver damnit!
<heat_> with that exploit i could defeat secure boot and rootkit you for months
<heat_> well, you'd probably never notice
mmohammadi9812 has quit [Remote host closed the connection]
<zid> I'd never notice because I never reboot
<zid> It's basically like threatening me by saying you'll make it so I never get any sex
rpnx has joined #osdev
<zid> (except with nikolapdp)
<kof673> there...were old phones with ringtone (midi i believe) exploits :D
<nikolapdp> midi jailbreaking
<zid> that's a real thing nikolapdp
<nikolapdp> i assume so
<zid> except in the modern era
<zid> people distribute ripped gameboy/snes/etc music as just a rom that twiddles the sound chip the same way the game would have
<nikolapdp> because no one uses midi anymore
<zid> so the 'player' for those is just a gameboy emulator
<zid> and emulators love exploits
<zid> vlc had a couple I think, cus it linked to a sound lib that supported nsf or whatever
<nikolapdp> oh meta
<nikolapdp> neat
rpnx has quit [Ping timeout: 245 seconds]
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
rpnx has joined #osdev
Arthuria has joined #osdev
vdamewood has quit [Quit: My Mac has gone to sleep. ZZZzzz…]
<bslsk05> ​'Corporate Open Source is Dead' by Jeff Geerling (00:06:55)
zetef has joined #osdev
<nikolapdp> rip
<nikolapdp> that's why gpl exists
<heat_> thats a blistering hot take
<heat_> the vast majority of contributors on large FOSS projects are corporate
mmohammadi9812 has joined #osdev
mmohammadi9812 has quit [Remote host closed the connection]
<nikolar> Until it's not
<Ermine> Don't you like it when people discuss open source stuff while recording macos
<nikolar> Lol yeah
<Ermine> But anyway, corporate foss is more than alive
<zy> osdev on Freenode is dead right?
<nikolar> I'm not saying it's not, I'm saying that exists to prevent what he was talking about
<nikolar> *that GPL exists
<heat_> zy, probably
<Ermine> Looking at BSP stuff, I want to say that GPL prevents basically nothing
<Ermine> Oh, and grsecurity
<zy> i see geist is still around. He helped me so much on freenode's osdev nearly 20 years ago lmao... time flies
<nikolar> Yup he's pretty active
<zy> amazing
<Ermine> oh, and a bunch of Chinese and Russian companies that just don't give a shit about GPL
stolen has quit [Quit: Connection closed for inactivity]
rpnx has quit [Ping timeout: 245 seconds]
xFCFFDFFFFEFFFAF has joined #osdev
xenos1984 has quit [Read error: Connection reset by peer]
gbowne1 has joined #osdev
<geist> oh hi zy
<geist> what was your nick then? I dont recognize zy
<geist> and yeah there was a big split between freenode and libera. the bulk of us moved over here
<geist> also yay my clock chips came in from ebay and have restored nvram to my sun machines
<geist> at least for now, the chuips themselves are from the late 90s, so who knows how much life is left in the internal battery. presumably it's wired up sucht hat they dont draw power when not plugged into anything
<geist> but at least now i have some old ones i can try to dremel into and see if i can manually fix without any fear of messing things up more
rpnx has joined #osdev
xenos1984 has joined #osdev
<nikolapdp> you can probably remove the epoxy and just attach a replacement battery kik
<nikolapdp> btw geist, you've received some patchen in your inbox
<geist> yep, will extract that in a bit
<zid> are those the beeg rtc modules
<geist> been doing some retro computer maintenance for the last few hours
<heat_> git am git am git am git am
<zid> like inchhalf long
<heat_> nikolapdp, how about you send ME some patches
<nikolapdp> what do you need heat_
<geist> nikolapdp: well, it's part of a full chip, so basically yeah you can dremel into the end of it and if you're careful, find the terminal where the battery that's piggybacked goes into the underlying chip
<nikolapdp> yeah that's what i meant
<geist> you have to be careful and go in from the right end and not too deep, to keep getting into the battery itself
<bslsk05> ​github.com: Issues · heatd/Onyx · GitHub
<zid> like that?
<geist> yah these dont work precisely like that
<zid> those are the PC ones
<geist> the battery terminal is apparently entirely 'within' the chip, doesn't come in via pins like that
<zid> back when RTC modules were a dip package with a humpback whale socketed in
<zid> that's soldered on geist
<zid> after having been dremeled through
<nikolapdp> geist maybe someone's reverse engineered it so you can lookup how to fix/rebuild it
<geist> hang on, lemme find pics. for these you go in via one of the two ends
<zid> [23:16] <geist> nikolapdp: well, it's part of a full chip, so basically yeah you can dremel into the end of it and if you're careful, find the terminal where the battery that's piggybacked goes into the underlying chip
<geist> yes i know how to do it!
<zid> I was replying to this
<geist> but if i fuck it up i have *no* nvram and the system wont even boot
<geist> so now that i have new chips, i can try to fix one of the old ones
<zid> People make little arduino ones at least for pc
<zid> or whatever micro
<zid> to replace the DS1307 at least
<geist> well, https://youtu.be/k4QPBCS7BL8 is a vid for it
<bslsk05> ​'Sun NVRAM Repair - EP 6' by The Network Lab (00:32:04)
<geist> they're 48MT... series
<geist> ah actually this guy seems to have done it a lot easier than the other one i had watched before
<geist> which went in from the top, and basically carved off about 20% of the end of it to get to the terminals as they come out of the battery and go 'down' into the chip
<zid> but yea, the repros are like £2 on ebay etc, probably one of them is correct, but idk which
<zid> if your battery is dead
<zid> or you hack it to non-functional
<geist> i dont think anyone has reproed one of these
<geist> they're not the same series
<zid> I've seen like 5 different dallas ones reprod just searching for pics
<geist> it's a nice little chip, FWIW. the datasheet shows them as being 8kx8, full sram
<geist> yes i know but these aren't Dallas chips!
<zid> yes, fine
<geist> there's not nearly as much of a market for these, so no there aren't cheapass repros
<zid> I said I've seen *lots of types*
<zid> so it may have been done
<geist> nah i grepped the interwebs a bunch
<zid> you may need to use your own arduino fw or whatever though
<geist> yah there's a clearance issue too, they're just under another board, at least on the ultra 2
<nikolapdp> what sparc machines do you have geist
<zid> The one in your vid visually looks dimilar size to the old dallas ones, and this arduinoey ones are way smaller
<zid> because they're not resin'd
<geist> nikolapdp: a medly. a few sparcstation lxs (one has a bum power supply). a sparcstation 20, just ordered some more ram for it so i could max it out
<geist> and a sun ultra 2
<geist> all have dead nvrams (until today)
<nikolapdp> oh well
<nikolapdp> nice collection though
<zid> now they have melted nvrams not just dead!
<nikolapdp> ):
<zid> nikolapdp your head is on upside down btw
<geist> so the key is if the battery is dead they just reset back to scratch when you power it up, and then it takes like 15 minutes to run through an exhaustive diags
<geist> but once you boot, until you power it off it holds the state
<geist> and you can reboot all you want
<geist> but since the ethernet address is saved in the nvram, you basically need to configure it every time you power it on
<geist> after you wait 15 minutes
<nikolapdp> zid :) (:
<zid> now you're.. a musical score?
* xFCFFDFFFFEFFFAF WARNING NO BANS DETECTED WARNING
<nikolapdp> ): (: :( :)
<zid> forkbomb
<nikolapdp> :(){:|:&};:
<zid> ah now that's a normal looking face
<xFCFFDFFFFEFFFAF> щ(゜ロ゜щ)
<nikolapdp> wonder if that forkbomb works on this bsd2.11
* xFCFFDFFFFEFFFAF error detected
<heat_> isn't that bash specific?
<heat_> so probably not
<nikolapdp> not really
<nikolapdp> it's actually posix
<geist> anyway, yeah just running the ss20 through it's paces
<heat_> oh yeah?
<geist> now i can actually put these on a shelf or rack or whatnot and use them because it doesn't require i fuck with them on the console every time i boot it
heat_ has quit [Remote host closed the connection]
<nikolapdp> yeah it's defining a function that spawns two copies of itself in the background
<nikolapdp> and then it's calling it
* xFCFFDFFFFEFFFAF is running BidenSD up and running
<geist> though i should probably put the top on, i think the ss20 kinda needs it to run air across the two cpus, which are stacked on top of each other just to the left of the powersupply in the back
<geist> basically requires it sucks air across them
<geist> they get hoooot
<zid> ah the classic hoover design rack case
<geist> yah these are called pizza box cases back in the day
<zid> If your machine doesn't sound like a jet taking off, is it even running
<nikolapdp> we'll never know
<geist> it's not that bad. but part of this era (about 1994) cpus is it pulls constant current all the time
<geist> so the whole thing is iirc about 85W, but probably 50 of it or so is being dissapated across both of those cpu heat sinks, which are like half an inch tall
<geist> and one of them is sandwiched under the other
<zid> https://www.youtube.com/watch?v=0GSBomNmZxI when he takes the case off and the fans spin up <3
<bslsk05> ​'Dell Server sounds like Jet taking off' by jg1683 (00:00:48)
<geist> the crazy thing is this case actually supported *4* cpus. but i think there was thermal issues there
<zid> Those fans probably draw more power than my cpu
<nikolapdp> lol
<geist> these are a pair of SM81s i think, 85Mhz supersparc IIs
<zid> delta PFB0812EE-E fan uses.. 48W
<zid> 73dBA
<nikolapdp> those were still sparc8 right
<geist> yep. sparc8m
<zid> 130CFM though on an 80mm fan :D
<geist> the ultra 2 under it is a ultrasparc II
<zid> 16800 rpm
<geist> but both of these cases are pretty silent. by far the most noise is the spindle on the hard drive
<geist> since it's a 10k rpm drive it hink
<nikolapdp> heh
<geist> i might pull it out and put in a scsi2sd some day
<nikolapdp> it's not ide is it
<geist> nah. later ultra workstations sun moved towards more comodity stuff to save price
<geist> cost. but this gen was still hard core solid scsi all the way
<nikolapdp> heh nice
<geist> honestly one of the best things about scsi being so ubiquitous on everything but PCs back in the 80s through 90s is it's so easy to emulate it nowadays
<geist> i can take exactly the same scsi2sd card and move it between PDP11s, vaxen, sun machines, macs, PCs and it just works
<zid> until nvme everything was just.. pretending to be scsi anyway, which was kind of funny
<zid> ide? nah that's scsi. sd card? also scsi. Sata ssd? also ssi.
<geist> well, not particularly
<nikolapdp> sata ssd is still sata lol
<geist> yah and that's just ATA over a thing (unless it's SAS, which is a different thing using the same physical)
<geist> and ATA itself is totally hacked together extension of some early drive
<geist> SD is SD/MMC which is also completely unrelated
<nikolapdp> extension of scsi no?
<geist> no. but usb mass storage has scsi in it
<zid> They're all just "imagine scsi but we don't wanna actually pay money"
<nikolapdp> sd does support some ide more or something doesn0t it
<geist> that's compactflash
<geist> that's just IDE
<zid> CF adapters suuper common in retro machines
<nikolapdp> yeah i know that, i meant that sd had some super slow ide like mode
<zid> SD has a bitbang mode
<nikolapdp> oh that too
<zid> and a proper ide mode
<zid> afaik
<geist> yah, that's just SPI mode but it's the same control messages that SD/MMC has
<geist> no, no IDE in SD/MMC
<zid> my Wii has a broken sd slot in some respect, and one of them is broken
<zid> idk which though!
<zid> but some things work and some things don't see the SD
<nikolapdp> ):
<geist> i say SD/MMC because SD and MMC are basically the same spec, derived from SDIO, which was basiclaly originally just a SPI bus with some command protocol on top of it, that got extended in two different directions
<zid> Thankfully the thing that can't see it is the thing I don't careabout
<zid> and the thing that can is the thing I do
<geist> but SD/MMC is close enough that a single software stack can detect and handle the difference
* CompanionCube associates sdio more with being the thing the wifi is attached to on the rpi
<geist> think of SD as being a single bidirectional SPI bus with say a 40 bit command to read something, then read response, etc.
<geist> but then externded to add more lines. first you add say 4 data lines that are different from the command line
<geist> then you start cranking up the clock, doing DDR, running faster and faster
<geist> then switching to 8 data lines, etc
<geist> all over the last 20 years, the spec just adds more and more modes
<geist> now the current mode is something like 200Mhz DDR 8 bit wide
rorx has joined #osdev
<geist> note there's some new SD express thing that switches to a different model. it's just PCIe with some new protocol on top (but not NVME i think)
<CompanionCube> e.g. 'new ultra high speed DDR50 SDHC card at address 5048'
<nikolapdp> PCIE PCIE PCIE
<geist> CompanionCube: and yes, SDIO is still around. was for the longest time used to talk to wifi chips. it uses the SD/MMC/SDIO command set that isn't concerned with moving blocks of data
<geist> and gives you some sort of register level protocol with some bulk transfer mechanisms
Turn_Left has quit [Read error: Connection reset by peer]
<geist> iirc the first SDIO started with something like a palm pilot to talk to external modems
<geist> then it just got picke dup and extended by everyone
<geist> i've written a SD/MMC/SDIO embedded stack at least once for a few companies, but haven't touched it much in the last 15 years, but been following along with the subsequent extensions
<nikolapdp> cool
Arthuria has quit [Killed (NickServ (GHOST command used by Guest684531))]
Arthuria has joined #osdev
<geist> wikipedia doesn't have a good history of this stuff. the way it's written it sort of implies that SD came out of nowhere, but i know for a fact that there was a longer history that goes farther back
<geist> but it's sort of written from the point of view of the victors
<geist> since SD and MMC competed for a while, and MMC basically lost, except in embedded contexts
<geist> lots of phone flash and whatnot is emmc
<nikolapdp> yeah
<nikolapdp> not just phones, some laptops and sbcs too
[Kalisto] has quit [Ping timeout: 264 seconds]
rpnx has quit [Ping timeout: 272 seconds]
[Kalisto] has joined #osdev
Arthuria has quit [Killed (NickServ (GHOST command used by Guest684531))]
Arthuria has joined #osdev
[Kalisto] has quit [Ping timeout: 256 seconds]
Arthuria has quit [Ping timeout: 255 seconds]
Arthuria has joined #osdev
rpnx has joined #osdev
xFCFFDFFFFEFFFAF has quit [Quit: bye]
[Kalisto] has joined #osdev
skipwich has quit [Ping timeout: 268 seconds]
rpnx has quit [Ping timeout: 260 seconds]
skipwich has joined #osdev
navi has quit [Ping timeout: 260 seconds]
Gooberpatrol66 has quit [Remote host closed the connection]
Arthuria has quit [Ping timeout: 245 seconds]
heat has joined #osdev
<heat> apparently windbg supports ELF dumps and linux kdumps now