libera/#devuan/ Tuesday, 2024-10-15

rossignolrwp, and golinux - thanks. I think I found a bunch of it in /etc/update-motd.d/00:18
debdogdrizzt: yes, of course. that's implied, isn't it? using any shell without auto-completions would be a horrible experience01:05
drizztnot really01:09
drizztI stopped using it some time ago, when it kept trying to do what I didn't want, and did not do what I wanted01:10
drizztnot to say that when i made the mistake of using "Tab" on a command line for scp I had to wait till the timeout for it trying to ask the remote host for completion ....01:12
drizztI finally chose to use my head to learn the options for the commands, and to use man extensively01:13
debdogone does not exclude the other01:14
XenguySuit yourself, but I'll take my shell's auto completions, and I'll take the reverse search (Ctrl-r) as well.  Now *that's* a civilized command-line experience  : -)02:31
freem<drizzt> not to say that when i made the mistake of using "Tab" on a command line for scp I had to wait till the timeout for it trying to ask the remote host for completion ....03:08
freemat least with zsh you can ctrl+c those. Helps a lot with git...03:08
rwpControl-C did not interrupt that?  It usually does interrupt it for me.  But I never use scp because I always use rsync, which has every possible feature and then three more in addition.05:13
Alverstonefreem, https://paste.debian.net/plain/133235615:10
Alverstonedidn't touch rcS.d's udevd startup script15:11
Alverstoneif i don't start it early console setup doesn't apply and the font tears my eyes out15:11
freemyeah, I didn't modified the rcS.d one neither15:11
Alverstonewouldn't it start twice? i tried playing with no.emulate.sysv.d, but as I said console-setup doesn't work until udevd starts fully15:13
Alverstonedoesn't make sense to hurt eyes, so I added the '[ -S' line to restart it15:13
freemwhat do you mean, start twice?15:13
AlverstonercS.d starts udevd too, at least on my system15:14
Alverstoneso my run script does 'udevadm control --exit' in case control socket exists15:14
freemwhat gives `ls -1 /etc/service /etc/init.d/*udev*`?15:15
freemin theory, if you name the runit service the same way the rc.d udev service is named, then the rc.d one won't be used, and thus you should only have one instance15:16
Alverstonefreem, ah, I get you now15:16
AlverstoneI called my runit script as eudev15:16
freem% upl /etc/runit/1 -k15:17
freemhttps://p.mort.coffee/vxg15:17
freemas you can see, there's some black magic done to handle rcS.d/S* stuff15:17
freemnothing really fancy, but that can still bite you when you're not aware :)15:17
freem(or if you are distracted for some reason... hapened to me more than once)15:18
Alverstoneyes yes I know15:19
Alverstonethe point15:19
Alverstonestage 1 doesn't ignore rcS.d services15:20
freemthe only problem I have about fonts is that it is udev which loads the vesa or whatever thing that increases PTYs resolution, so the early logs are hard to get. I think I could work around that by somehow toying with initrd or something, but I don't know how to do that15:20
Alverstoneonly through no.emulate.sysv.d15:20
freemwhat's this?15:20
Alverstoneso it starts eudev anyway15:20
Alverstone??15:20
Alverstonewait a sec15:20
freemoh, I never noticed that folder!15:20
freemwtf is this now15:20
Alverstonehttps://paste.debian.net/plain/133236015:20
Alverstoneit isn't documented15:21
AlverstoneI'd never know if I didn't read the scripts :D15:21
freemgood catch, that line was not there in prev debian, I'm certain15:21
freemit was the default behavior though :)15:22
Alverstoneare those scripts overridden on updates?15:22
freemyes, by dpkg, but it will show you the diff if you modified something and ask you which version to keep, defaulting on your modified one15:22
Alverstonei wish it was useful though15:23
Alverstonedpkg doesn't allow to save its new version somewhere so I inspect it later myself15:23
freemI suppose I lacked attention when I updated and didn't noticed that line. Or simply ignored it since things defaults to correct things15:23
freemsure it does15:23
freemactually...15:23
freem:/etc/runit% ls -lh15:23
freemtotal 44K15:23
freem-rwxr-xr-x 1 root root  944 27 juil.  2023 115:23
freem-rwxr-xr-x 1 root root  494  2 sept.  2021 1.dpkg-old15:23
Alverstoneyou install new version and old is kept15:23
Alverstoneyeah15:23
freemlooks like I did modified /etc/runit/1 :)15:23
Alverstoneremembered15:23
Alverstonenever touched 115:24
Alverstonemodified 2 though15:24
Alverstonec=/dev/tty1215:25
Alverstoneexec <$c >$c 2>$c15:25
Alverstoneadded these two lines15:25
freemI did, because I'm using runit since many years, and it was not integrated at all initially15:25
Alverstone:)15:25
Alverstonea good thing Devuan supports runit now!15:25
freemhonestly? It helps, sure, but the stuff is so simple to maintain that even if debian and devuan did not, I would still run it15:26
Alverstonefreem, so, is udevd started early for you? if no, it is because you ignore entries in init.d when the same named service exists in /etc/service?15:26
freemdefine early15:26
freemI do have a moment where I have the low resolution of the early 90s15:26
freembut it eventually vanishes away after, perhaps, 2s?15:27
freemit's a bit annoying, but I never tried to fix it15:27
freemI suspect the *real* and *sane* solution would be to load the module through modprobe in /etc/runit/1, before anything else is done15:28
Alverstonewhich module though?15:28
freemonly problem is, what would happen if said module was buggy for one reason or another? I don't know if that'd crash the kernel or not15:28
Alverstonedoes udev load kernel modules? i don't know how it works at all tbh15:29
Alverstonefreem, early is stage 115:29
freemwell, not having udev running around certainly prevents me to use random peripherals, depending on the computer15:29
Alverstonefreem, I tried your script and blacklisted udev from stage 1 and I get crippled console, same thing you describe. Then, in stage 2, when udev eventually starts, I get my console "corrected" to its usual state15:31
freemas for "which module", in my case, it's likely i915, kvm_intel, this kind of stuff15:31
AlverstoneI don't what exactly is done to cause this15:31
freemso we have the same behavior15:31
Alverstonebasically, yes15:31
Alverstone>i91515:32
freemI would have named "early" the initrd though15:32
Alverstonefreem, depends on context :)15:32
freemI don't know if initrd spams logs, but it is likely15:32
freemI wish I could get rid of initrd, really15:32
Alverstoneyou know, I'll reboot now, with udev completely disabled and try loading i915 (i have intel too) to see if it matters15:33
freemyou checked with lsmod that those modules are the ones you need?15:33
Alverstoneno idea15:33
Alverstone:)15:33
Alverstonesec15:33
freemI'll try that quickly as well15:35
freemnope, that does not fix the problem for me, with kvm, kvm_intel, i915, drm_buddy, drm_display_helper and drm_kms_helper added to /etc/modules15:37
freemthat stuff should be done by /etc/init.d/kmod though, which I guess is ran at /etc/runit/115:38
freemhm15:41
* freem could use a tool to make a graph from lsmod's output15:43
freemlsmod | mawk 'BEGIN{ print "digraph kernel_modules { " } END{ print "}" } { numdeps = split( $4, modules, "," ); for( i = 0; i < numdeps; ++i ){ if( modules[i] > 0 ) printf( "%s -> %s\n", $1, modules[i] ); }  }' | dot -Tpdf | zathura -15:57
freemthat one-liner works15:57
freemjust needs lsmod, mawk, graphviz and zathura (or to tweak the line ofc)15:57
freem(and this shows that sound modules are a mess...)15:59
freemcould try to load wmi and video as well I guess16:00
freemTIL: lsmod gives different results when running as root or not... I was not exactly expecting that16:02
freemanyway, I really suspect this modules loading needs to be done in initrd16:06
freemand I was right. The (partial, there are still some text printed in ugly font) solution is to add those modules in /etc/initramfs-tools/modules and then follow instructions in that file16:10
freemthis have nothing to do with runit.16:10
freemand this is exactly why I would like to manage to make my system *not* depend on initrd, it just makes the boot sequence more complicated to understand for those willing to dive in the internals of their systems16:11
freemnow, I wonder... maybe I should just take the output of lsmod and pour it into /etc/initramfs-tools/modules, that would nicely reduce the requirement to have udevd sitting around16:15
Alverstonefreem, you're right16:16
Alverstonemodprobe i91516:16
freemas long as I have nothing plugged in, that is, obviously. But I rarely plug stuff in my desktop, network is more convenient16:16
Alverstonethen16:16
Alverstonesetupcon16:16
Alverstoneand done16:16
freemoh16:16
Alverstonehowever!16:16
Alverstonea lot of scripts break16:16
freemI have another solution16:16
Alverstonebrightness isn't reset16:16
Alverstonefuse isn't loaded16:17
freemhttps://p.mort.coffee/Ekl16:17
freembasically: <freem> and I was right. The (partial, there are still some text printed in ugly font) solution is to add those modules in /etc/initramfs-tools/modules and then follow instructions in that file16:17
Alverstonetook me time because I rewrote getty-tty* services, they're too stupid16:17
freemI used to use a different getty a while ago, but I stopped, it barely provided any benefit16:18
freemit was ngetty I think? A daemon which would create ptys on demand, instead of keeping them all in memory for no reason. Also less features than agetty, notably no support for RS232 which is entirely useless on 99% modern systems16:18
freemrss usage was a lot smaller, as well.16:19
freemrss ram usage, as in `ps -orss,vsz,comm -A`16:19
Alverstonefreem, run file: https://paste.debian.net/plain/133237016:19
Alverstonefinish file: https://paste.debian.net/plain/133237116:19
Alverstoneand just symlink as much as you want16:20
Alverstoneso much more convenient16:20
AlverstoneLorenzo should make it default16:20
freemhehe yeah, i had some similar stuff16:20
freem% cat /etc/runit/common | upl16:21
freemhttps://p.mort.coffee/E6616:21
freemI think that's the origin of this file, even: to avoid duplicating files to modify manually when their configuration is already included in their path16:21
Alverstonefreem, I've saved your scripts, don't worry :)16:21
freemthen I exanded that idea to all daemons, allowing me to have easy to grep messages to scan for executions of run and finish16:21
freemI should probably contribute them somewhere tbh16:22
Alverstone:)16:22
freemjust dunno how, and I feel too lazy to register to a mailing list16:22
freemideally I'd like to have a more complete ecosystem, with more tooling, and probably to toy with cgroups/namepsaces/etc16:23
Alverstoneabout initrd, afaik you have to compile kernel yourself, to make some necessary modules built into vmlinuz16:23
freemthe fact the udev script is so ugly and fragile for example would be a good use case for namespaces16:23
Alverstoneand then /etc/modules.d needs to be updated!16:23
Alverstoneprobably16:23
freemno, no need to recompile anything16:23
Alverstonebut vmlinuz doesn't boot without initrd for some reason16:24
freemthe actual boot sequence of most linux-based computers is: EFI -> grub -> initrd -> /sbin/init16:24
Alverstonedidn't dig too deep16:24
freemon my system, one just replaces grub with syslinux, and add the constraint to run an update script after various updates16:24
Alverstonecan't grub work without initrd?16:25
freemanyway, the role of initrd is to load modules required to continue the boot sequence. If you consider eye-candiness to be required, it have it's place here16:25
Alverstonei remember somebody did no initrd with grub16:25
freemgrub can execute the kernel directly, yes16:25
Alverstonevery easy setup16:25
Alverstonedunno why it didn't work for me16:26
freemsame for syslinux/lilo/whatever actually... but I'm a bit afraid to try that16:26
freemanyway, I remember many, many things are embedded into initrd, including udev's binary16:27
Alverstoneyep it's pretty fat16:27
freemoh, yes it is16:27
freemyou can't even use the default initrd if your system have less than 200 megs of ram, such as virtual machines!16:27
freemand this, despite the fact the booted system only requires less than 100megs with all daemons up :) thankfully there are now packages which address this issue, but I'm still not fond of using this giant black box on my systems16:28
freemI know it have some uses, for example it allows one to encrypt / which would otherwise not be possible, but I think it's over-used, still16:29
Alverstoneas i see it so long as systemd people rule the party nobody's gonna care about your ram. their advice is "it's cheap, just buy more"16:30
freemyeah16:31
freemthat is also what my IT teachers taught to students, 20 years ago. For industry programming. You know, the kind in which changing a computer cost several 10K money...16:31
freemthankfully I was already a coder by then, so I was not infested by this stupidity16:32
freemwhen classmates were learning how to use poiners in C, I was learning to use templates... each one their rythm :) anyway, that is offtopic16:32
freemas for systemd, when I measured how many daemons I'd need to have for runit to use the same memory, it was more than 30. With the bad glibc6 build, because with a saner build (static linking or linking with muslc) it is more thann 100016:33
AlverstoneI'm not a coder at all :) so I don't have anything to add16:33
Alverstoneyou use musl?16:33
freemnot on this system, but I toyed with it16:33
freemand on a system which have memory contraints I can use busybox, which embeds it's own runsv and co16:34
freemif I could use only musl+libc++ I'd be a lot happier, really16:35
freembut their integration in debian is terribly bad, and actually worsened with time16:35
freemit seems those days maintainers love to fuck the FHS16:35
freemanyway, about runit, there are still a few tools I'd love to have, including some kind of monitor, would be handy to get a visual hint that a service is KO16:38
gnarfacei think that's a feature s3 has16:39
gnarfaces6 i mean, sorry16:39
Alverstonei have an important question16:39
Alverstonemake oldconfig16:39
Alverstoneif i just hit enter16:39
Alverstonedoes it select the default?16:39
Alverstonei don't wanna misconfigure my kernel :(16:40
gnarfaceit loads the old config16:40
gnarfacei forget from where, exacxtly16:40
gnarface*exactly16:40
Alverstoneand then prompts for new options16:40
fsmithredthe configs are in /boot16:40
gnarfaceis that where it pulls them from though? for some reason i thought it pulled the old config from "$BUILDROOT/.config.old" or something like that16:42
gnarfacei know you can get the installed configs from /boot16:42
gnarfaceon some distros you can also get the running config from /proc/config.gz but not with stock debian kernels16:43
fsmithredoh, it's been so long since I've compiled a kernel, I'm not sure. Mabye I copied it from /boot.16:44
fsmithredand I'm remembering compiling from debian source, not kernel.org source. That was much longer ago and is lost in the dust.16:45
gnarfacehit might just load it from $BUILDROOT/.config like normal, but treat it differently.... hmm16:48
fsmithred?16:49
gnarfaceah, it does just load it from $BUILDROOT/.config like normal, but treat it differently, i think16:50
gnarfacewell, that's what my google search results say, and that matches at least one of the 3 conflicting memories on the matter16:51
gnarfaceso you would have to manually copy it there from somewhere else16:52
gnarfaceor, i think menuconfig might have a menu option for it too16:52
Alverstonefreem, sv check /etc/service/* :D16:53
fsmithredI gotta go. bbl.16:53
freemgnarface: it likely have a tool for that, yes, but it also feels quite complicated as well. There is no reason to be unable to run (a wrapper above inotify/whatever bsd feature) on the logger's output (to handle file rotation) and to grep for some strings indicating status after all16:53
freemAlverstone: yes, I know, but you need to run this on periodical basis, manually. What I'd love to have is a tool that gives me some icon in i3bar showing when there's a problem, and which service is buggy16:54
Alverstonei3status?16:55
Alverstonedo you use it?16:55
Alverstoneor sth else?16:56
freemnope, I use i3blocks. I don't remember why this one though16:56
Alverstonei3blocks?16:56
Alverstonewhat's it16:56
freeman alternative to i3status :)16:56
Alverstone:)16:56
Alverstonei3status has read_file16:56
Alverstonemake a cron job16:56
freemhighly flexible status line for the i3 window manager16:56
freem    Status line for the i3 window manager and i3bar that handles clicks, signals and language-agnostic user scripts.16:56
Alverstonea script16:57
Alverstoneand a read_file16:57
Alverstone>highly flexible, user scripts, mouse16:57
Alverstonemeh16:57
freemI suppose I use it for my mpd/sound control stuff16:57
Alverstonetoo complex16:57
AlverstoneI figured i3status does everything I want16:57
freemI want my mpd stuff in that bar thuogh :)16:58
Alverstoneehh i don't use mpd though :)16:58
Alverstonedo you launch a front end on a click or what?16:58
freemand IIRC I could not with i3status: https://p.mort.coffee/eYn.png16:59
freemI use ncmpc, a TUI interface, but I also have binds in i3, obviously16:59
Alverstonelooks cool17:00
freemso I can change the track (webradios mostly) without grabbing the mouse, and I always know which song is on air17:00
Alverstonei'd probably just wrap around read_file and maybe i3ipc python module :)17:00
freemwell, my system happens to be mostly python free, and I intend it to stay that way17:01
Alverstoneor a script that reads from i3status and spits without modification, but uses that as an indicator that contents of files should be updated :)17:01
Alverstonecould even get pango markup in there17:03
freemblender, kicad, mesa-vulkan-drivers, and few dev tools are the only stuff requiring python on my system, and it makes me happy. Would be better if I could entirely remove it, ofc, but those tools I use which require it are really useful, except for mesa-vulkan-drivers (plus, how can a damn driver depend on python?!?!) which I'm not even sure I use17:05
freemas for i3status, I used to have a C plugin for mpd I think, but it was too primitive, too limited. i3blocks is simply easier, despite it spawns processes periodically and is thus not optimal17:06
freemboth those tools have their own limitations anyway. and if I'd make myself a monitor for runit, it would certainly not require any direct GUI library, better to just generate an image file, and get a script with inotify watching it for refreshes. Just need to find a proper tool to generate those, gnuplot is quite complicated for such simple matter17:09
Alverstonewhy do you dislike python though17:09
freemwhy would I like it?17:09
Alverstoneit just werk17:09
Alverstoneit just werks17:09
Alverstoneseemingly :D17:10
freemnot really. I no longer count the number of debian packages which have missing python dependences, so you have to go read the damn mess and toy with apt-file to guess which one is missing17:10
gnarfacethe python dependency in mesa-vulkan-drivers is probably because of this: /usr/bin/mesa-overlay-control.py17:10
Alverstone:)17:10
gnarfacei couldn't really tell you what it's for though17:10
freemalso, python is okayish for glue scripts, *not* for applications running all the time. Such applications should be written in native langs to avoid wasting perfs uselessly17:11
freemah, thx, gnarface17:11
freemanother good reason to dislike python: you can NOT trust their API to be stable17:11
freemit will randomly break between 2 versions, apparently17:12
gnarfaceheh, i do now suddenly find myself wondering if this is why the Steam overlay is so damned slow17:12
Alverstonea better scripting language that isn't shell tier miserable?17:12
freemthere are awk, and perl, for thaat17:12
Alverstoneperl :)17:12
Alverstoneno thx17:13
freemI don't get the point to have 4 interpreted langs on my system17:13
freemyou have to install perl on debian, it's a requirement. Unlike python. And I like my systems smaller, so I remove the one which is not required.17:13
freemmesa-overlay-control... might be related to the overlay mechanics in vulkan (a tool to add debugging info at runtime without increase CPU cost too much, from what I have read)17:16
freemI *suppose* this script is about extracting those overlay info from some mesa socket, from the very scarse information (and this does not even have a man-page...)17:17
freemlol17:18
freempython just works, heh?17:18
freem% /usr/bin/mesa-overlay-control.py --info17:18
freem[Errno 111] Connection refused17:18
freem% /usr/bin/mesa-overlay-control.py -info17:18
freemusage: mesa-overlay-control.py [-h] [--info] [--socket SOCKET] {start-capture,stop-capture} ...17:18
freemmesa-overlay-control.py: error: unrecognized arguments: -info17:18
freemthen it's users should learn to use it...17:18
freem /rant17:19
freem(at least I didn't had to find out for a missing module this time)17:19

Generated by irclog2html.py 2.17.0 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!