00:01:27 It boots from disk again, after a... zpool destroy; zpool create ... ; all to carve out some space... 00:17:07 Wait is the slog for a second pool on other disks 01:31:09 yes 01:32:20 Boot, rpool, zil, are all on the NVMe device (small-ish SSD) 01:33:10 Spinning rust for (mostly) backups etc. Favoring low power and cost over perforance. 01:40:37 Fair enough 02:15:53 Builds of illumos gate on the NVMe SSD are faster than my old system (down from about 1h30m to about 35m). And at less than half the power and in nearly complete silence. 03:00:38 That's neat. What kind of CPU does it have? 03:06:53 The setup I wrote about on developers. 03:08:09 I think I figured out SoL. Looks like it's just the baud rate. needs to be 115200 starting in loader, staying that way into the OS ec. 03:08:15 I think I figured out SoL. Looks like it's just the baud rate. needs to be 115200 starting in loader, staying that way into the OS etc. 03:08:33 (Oh yeah, no typo corrections here:) 03:13:55 Could someone please write up how to arrange for a getty to run on all of: wscons, ttya, ttyb (regardless of which is the "console"). I think SmartOS did that. 03:14:28 Would be nice to have the service instances defined (at least) even if disabled by default. 03:17:58 emailed that. 03:53:07 I replied to your mail 04:24:14 hrmm.. macOS still doesn't seem to handle the restart of smb/server too well :( 04:25:39 i had been testing my smb+mDNS stuff just with a VM on my home server.. but decided to build it and actually run my home server w/ it (serving SMB out of a zone).. and switched over from afp 04:26:26 aside from that, seems to work minus it only seems to check/advertise the time machine flag on startup.. so gotta fix that 15:30:53 Does anyone who uses vanilla wireguard and experience reviewing bash have time to review https://github.com/WireGuard/wireguard-tools/pull/17/files ? 15:31:11 I'm guessing there's a bug or two lurking in there. 19:32:11 FYI, @jbk, for time machine disks, I use the simple work around of "connect to server" in Finder first, after which the time machine "select disk..." button will offer to use what you mounted in Finder. 19:33:39 That method does not require mdns or bonjour or whatever for locating. That stuff is handy, but not absolutely necessary. 20:44:04 jbk this would be neat. 20:45:02 I have been using time machine on top of illumos smb for years now:) 20:55:12 yeah, this is just a 'quality of life' thing.. 20:55:42 it's probably more useful for small/home use, but still just a nice bit of integration 20:56:19 Any SMB share on an illumos system can function as a Time Machine backup disk by explicitly providing the host/IP and name of the share in the client Time Machine configuration. This setting is purely informational to aid in discovery on a client system. 20:56:26 is what I put in the man page as part of the change 20:56:42 (obviously can be wordsmithed/changed once i throw it up for review) 20:57:04 I probably need to add a note if you're using netatalk that the tm option can interfere with it 20:57:27 i don't think there's a way to conditionally reject a mount option in the current share api 20:57:43 i.e. 'don't allow it to be set if netatalk is already advertising the adisk service' 21:05:32 tsoome: if you want to play with it (obviously w/ the usual 'work in process' caveats), there is a branch out there you can pull the changes 21:05:35 https://github.com/jasonbking/illumos-gate/tree/smb/mdns 21:06:00 it's not squashed, but also just rebased if off master, and it's just a handful of commits 21:06:23 certainly any feedback you can give would be good 21:06:53 oh, nice. 21:07:01 one thing I do still want to do based off my own testing on it so far is see if there is a conflict with the mDNS stuff, I think that could be logged better (and clearer) 21:09:15 My main concern the last time I saw an attempt at making the SMB server advertise shares on startup or share was about the flexibility of it. I'd like to see this use something like a configurable run script with some provide environment variables, perhaps similar to the tree map/unmap scripts. 21:09:41 In a similar vein, we could really use logon/logoff scripts for SMB. Windows has these... 21:10:37 i guess the question though is what sort of flexibility to you think is needed? 21:15:03 Enough so we don't have to "wire in" the publication mechanisms? 21:15:46 that sort of defeats the purpose then though 21:16:04 honestly trying to do stuff like that with scripts in my experience is clunkly and error prone 21:16:18 I'm not doing a deep technial dive in IRC. You can call me sometime about it, or write something up. 21:16:40 mDNS is a part of the OS, this is an opt-in integration 21:16:50 and it's not even up for review yet 21:17:28 (and something people have wanted enough to write pages to do it in a klunky/ad-hoc fashion) 21:17:50 this does it better, and more seamless 21:26:59 lack of share discovery is among the things that has made my cifs-y life hard 21:27:09 but it's not the major thing, which is windows being a pain in the ass. 21:27:39 I've been vaguely disturbed that gwr holding my hand has been a necessary step in the last 3 times I used this stuff outside of a big enterprise environment though. 21:28:19 i had thought about something like svc.ipfd but for multicast -- a service's manifest could supply static info to advertise via mDNS when it's enabled 21:28:52 but not sure how much stuff is out there outside of smb/time machine that'd make use of it 21:28:59 so if your concern is normal people, of which, technically, I am one, I think your best bet is to get a stock illumos system, and a stock win 10 home, win 10 pro, win 11 ..., and make that work smoothly from soup to nuts 21:29:03 and doesn't work well for information that's more dynamic in nature 21:29:52 I think you're currently nuts, when the soup is awful too 21:30:43 well I can at least handle the soup (or do that later) 22:02:22 @tsoome around? 22:02:36 yes 22:02:56 I've figured out some of what's going on with IPMI/BMC console redirection to COM2 (ttyb) on that AsRock X570D4U board. 22:03:16 ou? 22:03:37 It turns out IPMI access (via ipmitool) works for access to ttyb (with the rate set correcty, meaning 115200) 22:04:04 9600,8,n,1 for life 22:04:20 The surprise was that, unlike older systems I've used, the loader never prints anything on ttyb, nor does it appear sensitive to input. 22:04:49 Every board with IPMI to a com port I've seen used 115200. Sorry, @richlowe :) 22:05:12 despite the console variable setting? 22:05:21 So, @tsoome, does that seem right that the loader only deals with the wscons? 22:05:32 I didn't change anything except ttyb-mode 22:06:45 if you have OS running, you can: tr '\0' '\n' < /system/boot/environment | grep console 22:07:25 and grep tty too 22:08:18 console=text, os_console=ttyb 22:08:56 ok, that means, loader was only using console=text, and asked kernel to use ttyb 22:09:22 I changed console to ttyb in the loader menu. 22:09:26 so first output (and input) should work on ttyb when kernel is sstarting 22:10:03 Right, that works. Again, on other systems, I could interact with the loader on any or all of text, ttyb 22:10:18 On this system, ttyb is inactive until the OS starts. 22:10:19 but could you get 'grep tty' too 22:10:35 No appearance other than in os_console 22:10:58 even no ttyb-mode ? 22:11:01 (and ttyb-mode) 22:11:15 no ttya-mode? 22:11:21 That stuff is there. 22:11:44 Should console have a list of values, comma separated? 22:12:12 comma or space 22:12:32 I'm actually interested if ttyb-spcr-mode was set 22:13:15 tr '\0' '\n' < /system/boot/environment |grep ttyb 22:13:15 os_console=ttyb 22:13:15 ttyb-ignore-cd=true 22:13:17 ttyb-mode=115200,8,n,1,- 22:13:19 ttyb-pcidev= 22:13:21 ttyb-rts-dtr-off=false 22:13:43 thats UEFI boot? 22:14:18 I think so. It boots from NVMe. 22:14:28 How can I tell for sure? 22:14:54 in that environment should be efi-version 22:15:12 The setup menus for boot refer to UEFI 22:16:49 gwr: I usually just do this for systems with a BMC and SOL: https://gist.github.com/jclulow/b76a9f1add72d66f75f734042f22ceea 22:17:54 Most boards I have used lately have also required: enabling serial redirection of the BIOS menu at all, and then making sure you disable redirection _after_ the BIOS menu so that it doesn't stomp on the serial port later 22:18:33 They're all different, and basically shoddy, but that is generally what works (at least once you figure out whether it's tty[a-d]) 22:18:57 I could not find any options about that for this BIOS. 22:19:31 That is somewhat surprising 22:19:55 ok, when you reboot, it would be interesting to get efi-show -g global -v ConOut (or ConOutDev). it seems, your system does not list serial port as part of ConOut... 22:21:34 I assumed, the sol would add serial to console devices list... 22:21:42 Perhaps the firmware is rubbish 22:21:54 Well, more rubbish than usual, that is 22:22:12 It is pretty strange for the system to have a SOL-capable BMC, though, and not be able to use it from the BIOS 22:22:32 That is always a possibility. 22:22:54 of course, it may be worth to check if there is an update. 22:22:59 yeah 22:23:09 which may make it better or worse! 22:24:18 of course I can just add check for ACPI SPCR as we have in bios version. 22:24:38 Can we have some mode where, if prodded, we just do I/O to the serial port directly 22:25:27 I assume we used to do that for BIOS boot 22:25:29 the mode should be set by firmware. 22:25:36 Well, sure, but firmware is trash 22:25:37 OK, setting console="text,ttyb" works well. 22:25:54 which is why the loader prompt doesn't work properly on about half the EFI systems I end up using 22:26:07 That lets me interact with the loader during boot. 22:26:08 The OS works fine because we've deleted the firmware by then :P 22:26:24 gwr: That's good 22:26:38 The firmware is AMI BIOS, which is pretty widely used. Don't know if it's trash or not. :) 22:26:43 It definitely is 22:26:52 if we detect serial port from ConOut, we should use the port settings. (in bios version, we get port settings from SPCR) 22:28:50 there was actually "funny" bug, hyper-v arm version will hung the system if you attempt to change serial port speed with UEFI serialio api. 22:29:15 (serial was used for console). 22:30:13 tsoome: https://gist.github.com/jclulow/f45821c657e8b5317847ecc2a84a846c 22:30:31 on this system there is an 80%+ chance that a keystroke will be randomly eaten 22:30:33 so 22:30:40 I don't think we should be trusting the firmware 22:30:40 there you have serial + video 22:31:46 sure, but I just want the serial console to work, like it does under grub 22:31:56 jclulow: did anyone ever fix cscope, we didn't right? 22:32:01 richlowe: err 22:32:12 I mean probably not, but I also don't remember the specifics 22:32:14 so that good cscope still found everything it should, and didn't get mangled by function pointers and random confusion. 22:32:14 ConOutDev is list of all possible devices, but your ConOut has actually 2 serial port s and video... 22:32:17 something about flex v. lex? 22:32:33 oh, that thing 22:32:36 with the lex 22:32:37 all I know is I have cscope-fast which sucks, and cscope which sucks differently 22:32:45 and an ever shortening tether 22:32:57 yeah I think you found it was using some totally different hard coded set of ... whatever match rules, for different lexers? 22:33:15 that is all I remember yeah. I thought one of us was going to try and do somtehing, but then everyone got busy 22:33:26 but I held out a slim hope you fixed it angrily as part of being busy but forgot to tell me ): 22:33:35 tsoome: Right but if I "set console=ttya" I expect it to work reliably and it does not 22:33:56 everything seems to do it live, like LSP. Which is cool, but not the main use case 22:34:13 EFI firmware is fundamentally untrustworthy, we need to be able to ignore whatever is wrong with it and just use the serial device 22:35:26 tsoome: (before I forget) is there an upstream for EFI guids + names in loader? or do we just add them as desired? 22:35:48 there's a few from the more recent UEFI standards that'd be nice to not have to look for by the GUID :) 22:38:02 if you have patch, I can push it for FreeBSD 22:39:21 Looks like ttymon is doing 115200,p,7,1 rather than ...n,8,1. what's the right thing in ttydefs to fix that? 22:39:32 The ttydefs man page is not all that much help. 22:39:33 How did you get there 22:39:48 like, what configuration have you done so far 22:39:52 Rebooted, selecting ttyb as console 22:40:08 loader env has console="text,ttyb" 22:40:34 Did you set os_console 22:40:52 Most of the time, I'll look at the KVM to see if it's crashed or something. Just when I'm actually debugging stuff or whatever, I'll boot with console=ttyb 22:41:02 I would not do that 22:41:04 No. I let the loader do that based on the menu. 22:41:10 I'm not you :) 22:41:13 ttymon should pick ttyb-mode if ttyb is used for console 22:41:18 I know, but you're setting yourself up for pain haha 22:41:35 This all worked fine on other servers I've used. 22:42:06 One problem with "serial console all the time" (in typical lab environments) is that people see a black screen in the kvm and assume it's "dead". 22:42:19 That's a people problem 22:42:48 gwr what does ttyb-mode have in prtconf -v output? 22:42:52 But if you can't fix the people, it would be pretty easy to have a startup service that does "echo the system is not dead do not reboot it >/dev/wscons" :P 22:43:20 echo "I feel happy! I feel happy" > /dev/wscons 22:43:23 lol 22:44:02 Or run a getty :) 22:44:26 Sure but you're then back to over-constrained territory if you want to sometimes use console=ttyb dynamically 22:44:28 prtconf doesnt 22:44:28 as I outlined in the mail 22:44:37 prtconf doesn't show anything about the mode for ttyb 22:45:00 Oh, maybe I missed it the way I grepped the output. 22:45:12 make sure you have -v 22:45:21 you also need grep -A1 or whatever to get the ttyb it and the value 22:45:24 *bit and 22:45:27 name='ttyb-mode' type=string items=1 22:45:27 value='115200,8,n,1,-' 22:45:50 ok, so, your ttymon *should use 8 bit, not 7 22:46:07 assuming you have the bits for illumos#14608 22:46:11 I'm not sure what happened, but now the SOL shows: 22:46:21 roc?co??ole?lo?i?:?? 22:46:21 roc?co??ole?lo?i?:?? 22:46:21 roc?co??ole?lo?i?:? 22:46:45 I mean, if the os is recent enough, ttymon will pick ttyb-mode *if* ttyb is used for console. 22:46:54 right which it is not here 22:46:59 because you said console="text,ttyb" 22:47:07 so the system console is wscons 22:47:28 No, on my system right now, wscons is blank, and console is ttyb 22:47:32 um, if he did set console in menu, then os_console was set 22:47:40 Exactly. 22:47:42 Ah, so what is os_console set to in prtconf 22:48:16 name='os_console' type=string items=1 22:48:16 value='ttyb' 22:48:40 That's from the loader menu interaction. os_console is not set in bootenv.rc etc. 22:48:44 ok 22:49:10 I can certainly see some of the expected letters haha 22:50:33 Just try try things: rebooted. Interaction with loader looks fine. 22:50:37 does stty -a confirm you have 7 bits? 22:50:41 (over serial) 22:51:02 Yeah how do you know it is 7 bits 22:51:12 Looks OK while kernel is writing startup stuff 22:51:24 As soon as ttymon starts, it's trash. Hm... 22:51:38 Just guessing based on what I see. 22:51:43 the console is not a tty until autopush has run 22:51:53 which might also be relevant 22:52:20 does stty cs8 fix it? 22:52:33 see the charmingly named /etc/iu.ap 22:53:15 # stty -a speed 115200 baud; 22:53:16 rows = 0; columns = 0; ypixels = 0; xpixels = 0; 22:53:17 csdata UTF-8 22:53:19 eucw 1:0:0:0, scrw 1:0:0:0 22:53:21 intr = ^c; quit = ^\; erase = ^?; erase2 = ^h; kill = ^u; 22:53:23 eof = ^d; eol = ; eol2 = ; swtch = ; 22:53:25 start = ^q; stop = ^s; susp = ^z; dsusp = ^y; 22:53:27 rprnt = ^r; flush = ^o; werase = ^w; lnext = ^v; 22:53:29 status = ^t; 22:53:31 parenb -parodd cs7 -cstopb -hupcl cread -clocal -loblk -crtscts -crtsxoff -parext 22:53:33 -ignbrk brkint ignpar -parmrk -inpck istrip -inlcr -igncr icrnl -iuclc 22:53:35 ixon -ixany -ixoff imaxbel 22:53:37 isig icanon -xcase echo echoe echok -echonl -noflsh 22:53:39 -tostop echoctl -echoprt echoke -defecho -flusho -pendin iexten 22:53:41 opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel 22:53:49 it would be good to pastebin/gist the big output if you could 22:53:52 cs7 certainly looks unwanted. 22:53:56 indeed its cs7 there 22:54:13 sorry. What's "big"? 22:54:18 more than a line or two 22:54:38 how is ttymon started? 22:55:02 Is it just in the usual way under svc:/system/console-login:default ? 22:55:28 yes 22:55:33 (did you end up adding any new console-login instances) 22:55:38 nope 22:55:49 on my OI, it has -l console -- this means it should pick console entry from /etc/ttydefs 22:55:58 booooo: ctfdump: failed to open file /usr/lib/saf/ttymon: File does not contain CTF data 22:56:57 yeah what does... svcs -p console-login:default | awk '/ttymon$/ { system("pargs "$(NF-1)); }' 22:56:58 tell you 22:57:29 yeah, this fixes it: stty cs8 -parenb and in addition to console entry, we pick up ttyX-mode line, and set the speed.... um, well, perhaps, if we pick ttyX-mode, we should set all settings, not just speed. 22:57:49 yeah, I have never seen anything like this. It feels vaguely like either something was done incorrectly, or something does a lookup and gets confused 22:58:54 This system is a nearly brand-new install, so I haven't done anything relevant other than what I mentioned above. 22:59:40 ttydefs does not actually set cs8 for console, so the number of bits et al should come from terminal defaults 23:01:46 default_termios does have cs8 23:02:58 may want to check ttymodes in options.conf 23:04:08 I tried to add " -parenb cs8" to the flags in ttydefs, and restarted the service. Something is still setting cs7 parenb 23:04:36 anyhow, its 1am here, i better get sleep... 23:05:01 FWIW any testing that was done on SmartOS for 14608 probably didn't test the change 23:05:07 none of the ttymons on SmartOS use /dev/console 23:05:21 (which is unfortunate but true) 23:12:21 gwr: what does... svcs -p console-login:default | awk '/ttymon$/ { system("pargs "$(NF-1)); }' 23:12:23 tell you? 23:13:56 I am suspicious of our use of "sane" in ttydefs, and the DEFAULT Gdef in ttymon, which seem like they default to "reasonable values" including CS7 23:15:31 and I believe we fall into the default case if we can't find the right one in ttydefs, _and also_ we're on the console or ttymode is NULL 23:16:17 https://gist.github.com/gwr/1601dda7bfb7676885010c696eb099e0 23:19:20 I don't see where "cs7 parenb" is coming from. 23:19:38 it's probably coming from the "sane" entry in ttymon 23:19:46 I would debug if, and if so how, you end up using "sane" 23:19:58 console:115200 hupcl opost onlcr:115200::console 23:19:58 see sttytable.c:121 23:20:36 (see also other entries in that table, but "sane" looks like the one that we'd potentially fall back onto) 23:20:58 you have "sane" in some ttydefs entries, though not the ones you should use, you also have "sane" in the DEFAULT struct Gdef in tmglobal.c 23:22:01 The svc cfg and ttymon args show the "console" label for /etc/ttydefs so I'm stumped. 23:22:20 I also tried adding "cs8 -parenb" to the entry. Did not help. 23:22:33 I've just said a whole lot of stuff you should check that doesn't involve ttydefs. 23:22:42 right because omething is going wrong in get_speed() of ttymon it seems 23:22:43 or merge_flags() 23:23:04 Unfortunately ttymon doesn't have CTF 23:23:07 hm. OK. Just weird, as this works fine on the old machine... 23:23:18 Your old machine is on what bits 23:23:28 Slightly older OI 23:23:29 but you've obviously editted stuff (like that console line), so it's hard to really do things while not being you. 23:24:14 is slightly older before or after Jul 13 21:54:45 2022 23:24:36 SunOS sm20 5.11 illumos-d9be5d44a9 i86pc i386 i86pc 23:24:49 that's sep 25th 23:24:55 October 13th! 23:25:07 oh yeah, commit date 23:25:08 but yes that should have 14608 23:25:24 on _that_ system what do you get "prtconf -v | grep -A1 console" 23:25:35 Sept. 2022? 23:25:42 yes 2022 23:25:54 so it is recent enough to have 14608 23:26:21 name='console' type=string items=1 23:26:21 value='ttyb,text' 23:26:30 and os_console? 23:26:46 nothing 23:26:48 hmm 23:28:10 does this tell you a path on that system: mdb -ke '*rconsdev::dev2snode | ::print struct snode s_vnode | ::print vnode_t v_path' 23:28:51 if you remember how, and god knows I don't right now, could you anonymous dtrace for an ioctl setting these modes? 23:29:28 I don't think you would need to do that 23:29:36 I think just restarting the service instance would be enough? 23:29:45 (from, say, an SSH session) 23:29:51 it could be, I've suffered here recently for unrelated reasons so I'm paranoid 23:29:53 You could also run the ttymon by hand 23:29:59 under DTrace or truss 23:30:13 it just feels like if we see _where_ it's coming from, we could backtrack to how. 23:30:24 Uhm. I haven't tried to use the tty console on sm20 (my old server) in a couple updates. It's apparently not working right now. 23:30:52 It used to... but I guess we can't use that as a reference right now. 23:30:57 is it not working in the same way? 23:31:11 SOL connects but is unresponsive. 23:31:24 notably CS7|PARENB also appears to be, in at least some ways, kernel defaults too 23:31:42 yeah probably hard coded in asy or comes from options.conf or whatever 23:31:48 or both! 23:32:11 so finding if it's coming from ttymon, or just being left to default internally would also be good to know. 23:32:17 Oh, right. It's booted to use kbd/vga right now. 23:32:40 I can reboot it to use ttyb... 23:32:50 but you said it has ttyb,text as the console setting 23:33:04 right. 23:33:06 I wonder if we split on the comma or if we just treat that as invalid and fall back to the framebuffer 23:33:31 I don't see how it could be using the framebuffer console unless we're fumbling that 23:34:04 That one is an (old!) supermicro 23:34:12 BIOS redirection etc. 23:35:23 sure, but if the OS was told "ttyb,text" for console and no os_console value, then either it should split on the comma and just use the "ttyb" bit, or we are fucking that up somehow and it tried to match on "ttyb,text" which is an invalid value so we default to "text" 23:35:27 Oh my... I forgot. That's still on grub. :) 23:36:52 Ah well, that's totally busted now :) 23:37:26 That uses the really OLD Jave ap. for KVM, so it's hard to deal with. 23:42:54 My old system was configured to prefer ttyb and that seems to still work right up until getty runs. 23:43:17 I'm sure that used to work, but I don't get on the console often enough to know when it stopped working. 23:44:48 It does seem odd that os_console is not getting set. 23:45:58 Well if it is grub there is no special logic to set it I believe 23:47:17 Presumably it is coming from /boot/grub/menu.lst or /boot/solaris/bootenv.rc or something in that case? 23:47:38 or ... /rpool/boot/menu.lst ? 23:47:42 I don't remember how GRUB works haha 23:48:19 At least on there, the tty mode remains correct. Output to /dev/console reads OK. 23:48:38 but there is no ttymon? 23:49:03 Not on wscons, and the one on ttyb does not seem to be working 23:49:10 when you say output to /dev/console reads OK, where do you see it 23:49:26 If I echo stuff to /dev/console I see it on the SOL 23:49:28 ah ok 23:49:32 that is pretty odd! 23:49:39 what if you "svcadm restart console-login:default" 23:49:52 I may have had enough of dealing with broken s/w today :) 23:50:13 or broken systems, or misconfigured or whatever. 23:50:15 well please file bugs when you figure it out 23:56:43 Tried setting os_console="ttyb" in the loader, and then the ttymon for /dev/console works fine. Very strange... 23:57:12 I guess not all parts are getting their setting the same way, or something like that. 23:57:52 on the old system or the new system 23:58:03 And yes, something apparently changed to break grub console selection, but I doubt anyone cares. 23:58:07 On the new. 23:58:47 did the loader environment previously have os_console set in it 23:58:52 when you did the menu version 23:59:14 Not in the bootenv.rc or conf.d no, but it was in the env. given to the OS. 23:59:37 yeah /system/boot/environment is what ultimately matters 23:59:43 to the kernel and eventually ttymon 23:59:51 I believe 23:59:53 When I added it to conf.d/serial instead of letting the loader add that, then the ttymon works.