**** BEGIN LOGGING AT Tue Nov 20 02:59:58 2018 Nov 20 03:00:39 set_: how is that link to some random python library relevant? Nov 20 03:01:12 B/c...MRRSquared wanted to see things work. Nov 20 03:01:23 I thought something I was reading might work for him. Nov 20 03:01:23 I had already check both those docs to no avail. The grep command does not seem to work either. Nov 20 03:01:30 I Nov 20 03:02:03 The reading did help make it work. Now I want to see it stop. :) Nov 20 03:02:25 MRRSquared: what does this show: readlink /etc/robotcontrol/link_to_startup_program Nov 20 03:02:53 MRRSquared: hahahaha. Okay. you can stop it w/ a sudo systemctl disable robotcontrol. Nov 20 03:03:11 That is what zmatt just gave a link to. Nov 20 03:03:32 disabling the service entirely isn't really the solution you want though Nov 20 03:03:42 Oh. He wants to erase it entirely? Nov 20 03:03:45 no Nov 20 03:03:48 Oh. Nov 20 03:03:50 I very much doubt that Nov 20 03:03:52 Right. Nov 20 03:03:56 Oops. Nov 20 03:03:58 Okay. Nov 20 03:04:19 I keep forgetting to try that stuff out w/ the BBBlue. Nov 20 03:04:23 So the command. readlink /etc/robotcontrol/link_to_startup_program showed just a new line Nov 20 03:04:40 hmm, it doesn't exist? Nov 20 03:04:41 I am in terminal as root. Nov 20 03:04:47 I guess not Nov 20 03:05:06 does /etc/robotcontrol exist at all? Nov 20 03:05:13 maybe you changed the file and forgot to restart your robotcontrol. Nov 20 03:05:20 set_: shush Nov 20 03:05:24 Fine. Nov 20 03:06:13 No. I even is Nov 20 03:06:36 Oops, I even ls in /etc nothing Nov 20 03:06:39 I have 4.14.71-ti-r80 and it is there. Nov 20 03:06:46 MRRSquared: eh? Nov 20 03:06:50 Dang it. Sorry. Nov 20 03:06:55 MRRSquared: what do you mean? Nov 20 03:07:33 Ubuntu? Nov 20 03:07:56 I listed all files and folders in /etc no robotcontrol Nov 20 03:08:33 Debian the newest beta (the adafruit tut recommended it) Nov 20 03:08:47 beta? you mean testing image? Nov 20 03:08:53 Yes. Nov 20 03:09:01 Ut oh! Nov 20 03:09:09 should be fine Nov 20 03:09:29 stretch-iot 2018-11-11 ? Nov 20 03:10:10 That was the only way to get the libraries to play nice with the hardware. Nov 20 03:10:40 ok I'm digging in the librobotcontrol package.. I've found where it asks for the question Nov 20 03:10:50 Buster 2018-6-17 Nov 20 03:10:55 oh buster even Nov 20 03:11:16 living on the edge? ;) Nov 20 03:11:21 I did do apt-get upgrade Nov 20 03:11:34 Yep. Nov 20 03:12:26 ehh, I hate to say this, but it really does create a symlink at the aforementioned location Nov 20 03:12:29 echo "setting rc_blink to run on boot" Nov 20 03:12:30 ln -s -f /usr/bin/rc_blink /etc/robotcontrol/link_to_startup_program Nov 20 03:13:10 (this is from the postinst script of the current librobotcontrol package on buster) Nov 20 03:13:49 Ok. Cool thanks I will poke around. Nov 20 03:14:26 but like I said earlier, you can also get the prompt(s) again using: sudo dpkg-reconfigure librobotcontrol Nov 20 03:15:20 but all the "program to run at boot" prompt does is create or delete the aforementioned symlink Nov 20 03:15:31 which also matches the docs Nov 20 03:16:57 Okay. Thanks. I think it may end up being the rcpy which is why I could not find it. That is necessary (I think) to run robotcontrol in python, but takes control of librobotcontrol. Nov 20 03:18:19 rcpy is the name of a package? Nov 20 03:18:27 hmm, no Nov 20 03:19:16 Yes. It is a python wrapper for robotcontrol. I think that is why I could not find it. Now I know what to look for, I will find it. Thanks again. Nov 20 03:19:30 well, does the blinking stop if you do: sudo systemctl stop robotcontrol Nov 20 03:21:09 is rcpy a python package? did you manually install some service? I mean, merely installing a python package shouldn't cause stuff to happen at startup (then again I'd normally assume the same about a package with a name like "librobotcontrol" :P ) Nov 20 03:21:32 Hey! Nov 20 03:21:44 and it doesn't change the mystery of what happened to the /etc/robotcontrol directory, which should have been created as part of installing/upgrading the librobotcontrol package Nov 20 03:21:52 Yes, but it is not merely a python package. It has lower level control too. Nov 20 03:22:06 It replaces robot control on install. Nov 20 03:22:28 I think anyway. Nov 20 03:22:34 I'm not even sure what that might mean Nov 20 03:22:42 did you try stopping the robotcontrol service? Nov 20 03:23:03 Stop it and restart it! Nov 20 03:23:11 Test it! Nov 20 03:23:13 I had forced it to stop by accessing the leads directly. I am waiting for a reboot. Nov 20 03:23:24 Oh. Nov 20 03:23:38 ehh, what? Nov 20 03:23:50 Here we go. Nov 20 03:24:00 set_: ? Nov 20 03:24:25 "Do not stop anything w/ physical components until the BBB has powered off." Nov 20 03:24:27 So, it was not robot control (service not running, Nov 20 03:24:39 Hhahaah. Nov 20 03:24:44 This is getting good. Nov 20 03:24:47 But, I can now find it thanks a lot. Nov 20 03:25:19 "I can now find it" ? how so? where? Nov 20 03:25:25 MRRSquared: What do you think is causing the odd stuff to transpire? Nov 20 03:25:40 Are we discussing some LEDs blinking? Nov 20 03:26:07 ohh, here we go, it's not the librobotcontrol package but the roboticscape package Nov 20 03:26:22 I'd guess Nov 20 03:26:26 Oh. Nov 20 03:26:30 Okay. Nov 20 03:26:36 Not sure precisely, I think it is the renamed robot control, if not then it is a different library I installed probably roboticscape. Yes. Thanks. Nov 20 03:26:52 looks like this is an old version or predecessor of librobotcontrol? Nov 20 03:26:56 but it has the same question Nov 20 03:27:03 I have to run, but you have been extremely helpful. Thanks. Nov 20 03:27:17 MRRSquared: have a good time. Nov 20 03:27:24 yeah, the librobotcontrol package is meant to replace roboticscape Nov 20 03:27:31 Oh! Nov 20 03:27:37 Thanks. I will. Nov 20 03:27:52 Three way convo. is really nice. Nov 20 03:28:09 I like the backtalk and banter. Nov 20 03:28:38 zmatt: Sorry for interrupting. I thought we were discussing LEDs that would not quit. Nov 20 03:28:43 so it's the same symlink but at /etc/roboticscape/link_to_startup_program instead of /etc/robotcontrol/link_to_startup_program Nov 20 03:28:49 set_: we were Nov 20 03:28:57 Oh. Nov 20 03:29:03 and the service name is roboticscape rather than robotcontrol Nov 20 03:29:10 Oh. Nov 20 03:29:12 Got it. Nov 20 03:29:18 but it looks like this is just an old version/predecessor Nov 20 03:29:30 That was fun. I should intervene more often. Nov 20 03:29:40 I even learned some stuff. Nov 20 03:29:58 :) have a wonderful night everyone. Nov 20 03:30:21 I got some of those very, very, very small connectors for the BBBlue. Nov 20 03:30:29 w/ wires attached. Nov 20 03:30:50 I am going to try that lib one day. Nov 20 03:31:11 Maybe some motors or some servos. Nov 20 03:32:04 I am neck deep in making the Flying Blue work. I might have to retract and go w/ this lib. instead. Nov 20 03:35:21 Oh! Nov 20 03:35:31 All that was about...was loading the LED driver? Nov 20 03:36:29 no, about the blinky example being run at boot Nov 20 03:37:16 Oh. Nov 20 03:37:25 dang blinky. Nov 20 03:37:54 I thought this person had too many LED activities while booted. Nov 20 03:40:04 that librobotcontrol stuff is interesting. Nov 20 03:40:12 I never really got into it. Nov 20 03:40:45 I just tested version and available pins to be used for my board. Cool stuff. Nov 20 07:52:46 the A64 has the beste pin mux layout for me and the PI compute module has the worst. Basically everything on the A64 has it's own pin where as the CM3, even with the 200 pins seems to overlap everything I need. I.e. if you want 24 bit video and i2s you're only getting 1 i2c port. Nov 20 07:56:08 well, those broadcom SoCs sucked to begin with. No clue why anyone would want to productize on one of those. Nov 20 07:56:40 All the "omg look at my rpi do this thing" things are worthless anyway in a professional environment Nov 20 07:58:00 tbr: well it depends on your definition of "professional". if "professional" means "good enough to create a marketable product", then the rpi is "superprofessional" Nov 20 07:58:22 LetoThe2nd: yeah, it's gone plaid! Nov 20 07:58:57 the CM3 is quite a nice form factor at quite a good price and good availaiblity though Nov 20 07:59:15 and good performance Nov 20 07:59:27 per dollar including effort. Nov 20 08:00:16 no, i mean seriously. i've had reports of rpis being used as som for products that are actually quite good - but have a rather limited lifespan due to abuse and rapid evolution. so if i don't have to care about being able to support a product in 10 years, maybe not even 5, hey, then lets use a raspi! Nov 20 08:00:18 tbr: do you have a preferred SoC in the same kind of performance bracket? Can run QtQuick. Nov 20 08:00:34 suprothunderbolt: imx6/imax8 Nov 20 08:00:36 imx8 Nov 20 08:00:54 yeah, they seem to have a decent offering Nov 20 08:01:07 they are pretty pricey... Nov 20 08:01:16 can run qtquick with a gpu driver that actually is maintained and understood, instead of a binary blob Nov 20 08:01:28 oh that is nice Nov 20 08:01:28 and for one-off things I'd rather use something based on an Allwinner 64bit SoC Nov 20 08:02:01 but in a nutshell, it all depends. there is no best soc or som Nov 20 08:02:30 indeed, there is least pain and sufficient for the job at hand in the price bracket given by damagement Nov 20 08:02:40 in the under $35 for 1gb flash, 1 gb ram and opengl :) Nov 20 08:03:01 I'm contemplating a switch to A64. Nov 20 08:03:07 suprothunderbolt: used/outdated android phones. Nov 20 08:03:41 pretty small volume, 250 units to start with. Nov 20 08:04:19 cm3 is $30, bbg is $40, Nov 20 08:05:12 A64 is around $20 ish depending on setup. Nov 20 08:09:01 ouch the imx8 is $102 at 250 units for the modules I've found. Nov 20 08:09:27 but you're comparing apples and oranges here right, since for the A64 you mean a custom board? unless you had a specific board in mind, but the olimex board you mentioned is definitely not that cheap Nov 20 08:09:47 https://www.pine64.org/?page_id=1491 Nov 20 08:09:53 that ones $30 Nov 20 08:10:18 but I priced up building the olimex board, given that the files are all KiCad and easy to edit Nov 20 08:10:52 my total, with assembly and boards for 250 was under $20 including shipping. Nov 20 08:11:36 that actually only works if your manufacturing department provides free labor and gear. Nov 20 08:11:56 oh that's outsourced manufacturing / assembly. Nov 20 08:12:06 and they work for free? Nov 20 08:12:11 no? Nov 20 08:12:39 i just sent them the gerbers and got them to quote assembly per board Nov 20 08:12:44 then i'd totally like to see the bom and calculation to crank out a board @250 pcs for <20$ Nov 20 08:12:59 if its not just a cortex m3 Nov 20 08:14:49 it's basically just the olimex bom, all parts come from LCSC or Arrow apart from the A64 / pmu. I dropped the ethernet / wifi / hdmi. All connectors are on my base board and it's in a sODIMM format Nov 20 08:15:16 i'm suprised how cheap the 6 layer board is though Nov 20 08:15:42 if you say 1.000.000 and 40 weeks lead time, then i'd possibly believe it. but certainly not 250@20, in a decent timeframe and with proper testing. Nov 20 08:16:10 Fair enough but given the Nov 20 08:16:14 $30 price point Nov 20 08:16:38 which is the listed price of the sodimm version, would you got the A64 or the CM3? Nov 20 08:16:46 they are the identical price Nov 20 08:16:49 or the BBG Nov 20 08:17:16 if i really had to choose between those three evils, then the cm3. Nov 20 08:17:40 is there another better alternative in that price bracket? Nov 20 08:17:51 $30 ish in quanties for few :) Nov 20 08:18:26 if you have to spread the cost of your development effort over only 250pcs, or even 1000pcs, then any hour it takes me longer to archieve something hurts. and by far not that much as more expensive hardware. so on the cm3 i think i'd expect the least troubles. Nov 20 08:18:29 All the imx modules really want you to order a lot apart from some Chinese im6ull makers who charge brutal postage Nov 20 08:19:17 yeah, that was my attraction to the BBG Nov 20 08:19:49 I might keep poking to get the GPU stuff working properly... Nov 20 08:20:33 suprothunderbolt: my outline didn't work so far? Nov 20 08:21:41 zmatt: oh it totally looks like it will... I'm just a bit scared so thought I'd quickly glance at options before diving in :) It looks like the right approach though. Nov 20 08:22:31 you should be able to cherry-pick that commit from our bb-kernel repo, build the kernel deb, then use the build script in my omap5-sgx-ddk-linux repo (caution: contains hardcoded paths you'll need to fix) to build the deb with sgx kernel modules Nov 20 08:22:50 and if you're lazy just use my debs for the userspace part Nov 20 08:23:34 making better debian packages for that part is still kinda on my to-do list, but I haven't had any personal need lately Nov 20 08:25:05 I'll have a go. Hopefully I'll get it working. Might be tomorrows mission at this point though. Nov 20 09:03:14 hi Nov 20 10:45:08 Hello everybody, I have a question: which chip is used in ethernet card of x15? Nov 20 10:45:50 you mean which phy? Nov 20 10:46:41 the ethernet controller itself is built-in functionality of the SoC Nov 20 10:47:17 the two PHYs are KSZ9031RNX Nov 20 10:48:27 does anyone have access to a http://beagleboard.org/green-wireless ? i am looking to implement http://www.ti.com/lit/an/swaa162a/swaa162a.pdf, and according to the schematic, the green-wireless at least has a testpoint for the gpio i need Nov 20 10:51:06 so what i am asking for is basically, can anyone see TP17? Nov 20 10:52:43 they're not labeled on the silkscreen Nov 20 10:52:53 https://www.cnx-software.com/wp-content/uploads/2016/05/BeagleBone_Green_Wireless_Board_Top_Large.jpg Nov 20 10:53:18 lastaid: https://www.cnx-software.com/wp-content/uploads/2016/05/BeagleBone_Green_Wireless_Board_Top_Large.jpg Nov 20 10:53:22 zmatt: ah dang Nov 20 10:54:24 assuming its one of the unmarked once near the wl8 :D Nov 20 10:55:00 the gerbers might tell Nov 20 10:57:53 i'll trust the schematic ... and the pretty pictures. how unlucky do i need to be if that exact thing is not broken out? Nov 20 10:57:58 13 testpoints in the schem, and I see 11 on the pcb top side and 2 bottom side Nov 20 10:58:29 yes Nov 20 10:58:40 i only saw the 11 on top :D Nov 20 10:59:11 so yeah, looks like the BBGW is useful when you want access to all the weird pins :) Nov 20 10:59:18 too bad it otherwise sucks pretty badly Nov 20 11:00:25 (instead of reusing the pins of the sacrificed ethernet port, which (on other mux modes) have everything you need for the wifi chipset, they left those pins unused and sacrificed a whole bunch of expansion header pins instead) Nov 20 11:03:02 also, I don't see any hardware docs for the green-wireless other than the schematic Nov 20 11:03:40 so you'll need to nag seeed to identify the testpoints for you Nov 20 11:06:21 ah, never mind, there's more docs here => https://github.com/SeeedDocument/BeagleBone_Green_Wireless/tree/master/resources Nov 20 11:06:41 but you'd still need something to open those in Nov 20 11:44:38 Hi, we are trying to develop a java application for character Lcd display using beaglebone black. Please suggest us any utility available to access gpio and data pins. Nov 20 11:45:15 that's a really unclear question Nov 20 11:45:58 but ultimately, gpios are controlled via sysfs attributes, which you can just read/write like normal files Nov 20 11:46:34 @zmatt Nov 20 11:50:53 @zmatt I need a java library to controll gpio pins in beaglebone black, like Pi4j for raspberry pi Nov 20 11:51:59 newbee_: the gpio sysfs interface is hardware-independent, it's a linux feature, although restricting to the beaglebone might simplify things Nov 20 11:54:26 the main thing to determine is what is the most convenient way to identify/locate gpios Nov 20 11:56:30 @zmatt I am a begainer in beaglebone black, i don'i have full idea of it. I just want to access gpio using java, can you please guide me.. Nov 20 11:57:30 newbee_: does a /dev/gpio/ directory exist on the default beaglebone system? (I don't have a beaglebone running a default image anywhere here to check) Nov 20 11:57:33 I'm guessing it doesn't Nov 20 11:58:27 but could you check for me? Nov 20 11:59:05 @zmatt I checked but there is no such a file or directory in /dev Nov 20 11:59:35 newbee_: okay, but there's a lot of directories named "gpio" followed by a number in /sys/class/gpio/ right? Nov 20 12:00:07 @zmatt yes Nov 20 12:00:18 okay, those represent the individual gpios. Nov 20 12:00:41 @zmatt yeah Nov 20 12:01:12 of course you probably want to be able to identify the gpio by expansion header pin name for convenience... you could use a lookup table, but there's a more elegant way Nov 20 12:02:16 create a file /etc/udev/rules.d/gpio-symlink.rules containing these lines: https://pastebin.com/raw/REyzQrYX Nov 20 12:02:31 and reboot Nov 20 12:02:43 @zmatt I am able to access the individual gpio pin. But my need is to controll the Lcd display in beaglebone. Nov 20 12:03:26 ....... what? so why did you ask for a way to control gpios if you already have a way to control gpios and actually need a different problem solved? Nov 20 12:04:09 what sort of lcd display? Nov 20 12:04:13 what interface does it use? Nov 20 12:04:23 @zmatt sorry for that. Nov 20 12:04:59 @zmatt character 20x4 lcd display Nov 20 12:05:10 part number? Nov 20 12:05:13 or link to datasheet Nov 20 12:06:18 @zmatt https://www.buydisplay.com/default/lcd-module-20x4-display-datasheet-character-hd44780-black-on-yg Nov 20 12:07:11 zmatt: i am really hoping that implementing the application note swaa162 will be straight forward on this board. i tried it before using a cc3200 Nov 20 12:07:42 didn't fare so well, mostly because of all the latencies the network processor brings Nov 20 12:08:40 almost got into a fight with ti over them saying that clock stability has no influence on the rate the network interface sends interrupts ( it does ) Nov 20 12:09:43 lastaid: not sure I understand what you mean. the wl18xx timestamps the beacon frames on reception, so any processing latency after that won't affect accuracy of the time sync Nov 20 12:10:49 i know, the cc3200 doesn't though Nov 20 12:11:04 but i didn't use beacon frames, i tried udp broadcasts Nov 20 12:11:47 newbee_: okay, pretty standard HD44780-compatible protocol Nov 20 12:12:24 newbee_: so, if you're already able to control gpios, then you've already solved the beaglebone-specific part Nov 20 12:12:54 @zmatt okay, can you please help me, with sample java code. Nov 20 12:13:08 newbee_: so to control the lcd, just find any generic code for controlling HD44780 displays (on any platform) via gpios Nov 20 12:14:37 newbee_: presumably whatever code you have running on top of pi4j should also work on whatever code you have to control individual gpios on the beaglebone Nov 20 12:15:33 @zmatt okay, but how to specify the pin numbers in pi4j. Nov 20 12:15:50 newbee_: uh, no you wouldn't use pi4j of course Nov 20 12:16:02 earlier you said you're already able to control individual gpios Nov 20 12:16:09 2 < newbee_> @zmatt I am able to access the individual gpio pin. Nov 20 12:16:20 @zmatt yeah. Nov 20 12:16:51 I was working on helping you be able to control gpios, but you interrupted me saying you're already able to do so Nov 20 12:16:59 so... what's your question remaining? Nov 20 12:17:16 @zmatt what i am trying to tell you that pi4j has only 40 gpio pinn access. Nov 20 12:17:55 fork and beat it into shape Nov 20 12:18:07 how is pi4j relevant here? that's a library for the rpi Nov 20 12:18:35 zmatt: "its the thing i know" Nov 20 12:18:36 @zmatt in beaglebone it has 60, i dont know how to access the lcd display using those pins.. Nov 20 12:19:02 newbee_: okay so you're *not* able to control gpios? Nov 20 12:19:09 or... I don't understand what you're trying to say Nov 20 12:19:42 to me the question totally reads as "plese tell me the equivalent of pi4j for the bbb" Nov 20 12:20:07 yeah and I was trying to help with that, and then newbee_ interrupted me saying he already had the ability to control gpios Nov 20 12:20:28 @zmatt sorry for the inconvineance.. Please help me to controll lcd display in beaglebone black. Nov 20 12:21:45 newbee_: you really need to work on asking much clearer questions. you're asking vague things and you're constantly alternating between different questions Nov 20 12:22:32 controlling the lcd display itself is not beaglebone-specific code, find some generic code for HD44780 displays on the internet Nov 20 12:22:48 all you need for that is the ability to control gpios Nov 20 12:23:18 are you able to control gpios on the beaglebone right now, yes or no? you're been very inconsistent in your answers so far about that Nov 20 12:23:20 @zmatt my question is LetoThe2nd mentioned : plese tell me the equivalent of pi4j for the bbb Nov 20 12:24:10 newbee_: and as i already said: there is none, go fork pi4j and beat it into shape if you believe that you need it. Nov 20 12:25:02 newbee_: and what zmatt is trying to tell you, that there is no magic in doing direct gpio control through the sysfs files. one certainly does not need any java library to do it. Nov 20 12:25:06 newbee_: so, I don't know if such a library already exists (I don't use java), but presumably you've googled already. like LetoThe2nd said you can probably adapt pi4j since there will be significant overlap, but that code looks horribly overcomplicated to me. however, controlling gpios is however really easy, and I'm willing to explain how to do it Nov 20 12:25:49 in which case, we will continue where I was 23 minutes ago, and ignore that you wasted 23 minutes of our time Nov 20 12:26:17 @zmatt okay... Nov 20 12:26:37 @zmatt i am ready to learn that... Nov 20 12:26:42 so, to quote myself: 13:02 < zmatt> create a file /etc/udev/rules.d/gpio-symlink.rules containing these lines: https://pastebin.com/raw/REyzQrYX Nov 20 12:27:14 and reboot. (this is for convenience of being able to locate gpios easily) Nov 20 12:27:52 I'm assuming you know how to read and write files in java? because that's the only thing you need Nov 20 12:28:25 @zmatt I created that file.. Nov 20 12:28:38 okay, after reboot /dev/gpio should exist? Nov 20 12:28:48 and contain symlinks named after the expansion header pins Nov 20 12:30:03 Zmatt : yes , but only 13 pins names is dispayed Nov 20 12:30:54 because not every physical pin is a gpio by default Nov 20 12:30:57 that's odd. which 13 ? can you share the output of ls -l /dev/gpio/ via pastebin.com ? Nov 20 12:31:08 LetoThe2nd: doesn't matter, all of the gpios should be exported by default Nov 20 12:31:17 (and some are basically never, so you really have to free your mind from the number "80") Nov 20 12:31:25 LetoThe2nd: except for pins reserved for things like eMMC and HDMI Nov 20 12:31:46 zmatt: yeah sure, but it won't be the 60 (not 80, sry) that he always spoke of Nov 20 12:32:38 @zmatt, One more reboot, solve this ... Now all the pins are displayed Nov 20 12:33:10 that's weird Nov 20 12:33:44 @zmatt the output is: P8_03 P8_07 P8_11 P8_15 P8_19 P8_23 P8_27 P8_31 P8_35 P8_39 P8_43 P9_11 P9_15 P9_19 P9_23 P9_27 P9_31 P9_92 P8_04 P8_08 P8_12 P8_16 P8_20 P8_24 P8_28 P8_32 P8_36 P8_40 P8_44 P9_12 P9_16 P9_20 P9_24 P9_28 P9_41 P8_05 P8_09 P8_13 P8_17 P8_21 P8_25 P8_29 P8_33 P8_37 P8_41 P8_45 P9_13 P9_17 P9_21 P9_25 P9_29 P9_42 P8_06 P8_10 P8_14 P8_18 P8_22 P8_26 P8_30 P8 Nov 20 12:34:02 newbee_: don't paste such long output in irc, it gets truncated. use a paste service like pastebin.com Nov 20 12:34:30 @zmatt okay... I dont know that sorry.. Nov 20 12:34:49 well I said it earlier already: "can you share the output of ls -l /dev/gpio/ via pastebin.com ?" Nov 20 12:35:00 it helps to read Nov 20 12:35:38 huh, P8_03 ? you have eMMC disabled and are running from sd card? Nov 20 12:36:23 @zmatt https://pastebin.com/pTNTXrfA Nov 20 12:37:02 @zmatt : No no, I am running in emmc.. Nov 20 12:37:39 odd Nov 20 12:37:57 * zmatt checks if that's a bug in the overlay Nov 20 12:38:00 (one moment) Nov 20 12:38:11 @zmatt okay. Nov 20 12:39:07 definitely shouldn't happen... are you using an old system? check with: cat /etc/dogtag Nov 20 12:39:50 @zmatt : BeagleBoard.org Debian Image 2018-10-07 Nov 20 12:41:02 ehhh, how... that makes no sense Nov 20 12:41:19 * zmatt scratches head Nov 20 12:41:47 oh well, we'll ignore that for now Nov 20 12:41:59 @zmatt okay.. Nov 20 12:42:38 but be aware that some pins are reserved for certain functions (such as eMMC) and can't be used for gpio unless you disable that function Nov 20 12:43:00 for example, if you don't use the HDMI output, you should uncomment the disable_uboot_overlay_video=1 Nov 20 12:43:04 line in /boot/uEnv.txt Nov 20 12:43:34 @zmatt after i created the symlink My HDMI is not sending any signal... Nov 20 12:43:51 ehh what? those things have nothing to do with each other Nov 20 12:44:01 are you sure you didn't also make other changes since the last reboot? Nov 20 12:44:22 @zmatt No, I only followed you instruction. Nov 20 12:44:37 my udev rule literally just creates a few symlinks, it has no effect whatsoever on hardware configuration Nov 20 12:44:43 @zmatt I didn't do anything.. Nov 20 12:46:01 can you install this utility: https://github.com/mvduin/bbb-pin-utils/#show-pins Nov 20 12:46:14 and share (via pastebin.com) the output of: sudo show-pins | sort Nov 20 12:46:58 @zmatt : okay, wait a min.. Nov 20 12:47:23 (if your beaglebone doesn't have internet connection, you can of course also just download the "show-pins" script yourself and manually copy it to the beaglebone) Nov 20 12:48:54 @zmatt : https://pastebin.com/7FDHjPXm Nov 20 12:50:07 hdmi is not enabled, which means it is disabled in your /boot/uEnv.txt Nov 20 12:50:35 (this has nothing to do with my udev rule) Nov 20 12:50:45 find the disable_uboot_overlay_video=1 line in /boot/uEnv.txt and comment it out Nov 20 12:50:54 oh Nov 20 12:51:17 never mind, you're loading an uart overlay or something? Nov 20 12:51:27 @zmatt hmm.. Okay Nov 20 12:51:43 notice P8.37 and P8.38 have been configured to uart function Nov 20 12:52:08 even though those pins are reserved for hdmi (if you use hdmi) Nov 20 12:52:53 @zmatt okay.. Nov 20 12:53:05 share the contents of your /boot/uEnv.txt file ? Nov 20 12:56:28 @zmatt : https://pastebin.com/1CFh9U6c Nov 20 12:58:00 eh Nov 20 12:58:06 are you using a cape? Nov 20 12:58:28 @zmatt you mean uart? Nov 20 12:58:42 a cape, a physical expansion board that plugs onto the beaglebone Nov 20 12:59:20 I don't understand how your pin configuration can end up the way you've shown Nov 20 13:00:45 @zmatt, For your question, I flash the emmc using msd-card.. Is that related with that? Nov 20 13:00:45 your system is in a really bizarre state and I don't understand why, there's nothing in your /boot/uEnv.txt that can explain the pin configuration you've shown Nov 20 13:01:20 eh, no, that's how you normally reflash the eMMC Nov 20 13:01:42 @zmatt yeah.. Nov 20 13:02:08 what's the output of: cat /proc/cmdline Nov 20 13:03:43 @zmatt : console=ttyO0,115200n8 bone_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk1p1 ro rootfstype=ext4 rootwait coherent_pool=1M net.ifnames=0 quiet Nov 20 13:05:54 so, you added those BB-UART lines in the /boot/uEnv.txt ? see, I'm a bit suspicious now since your paste shows those lines (which are not normally there) commented out, but if they weren't commented out then they would *exactly* explain your pin configuration and loss of hdmi Nov 20 13:07:51 @zmatt : No, I commented but didn't reboot the system. Nov 20 13:08:00 ... Nov 20 13:08:59 and it didn't occur to you that it would be rather important to mention that you modified this file since last reboot, when I ask you for its contents? Nov 20 13:09:22 @zmatt I enabled the uart for testing.. now its been disabled Nov 20 13:09:48 so I've just spend half an hour trying to understand an issue that you caused yourself Nov 20 13:11:54 @zmatt I am not aware of it.. Please sorry.. Nov 20 13:12:31 newbee_: well, if you don't mind I'm not really going to spend much time on you anymore. you have a way of easily locating the directory of each gpio (via /dev/gpio). here's how you use that to control the gpio: https://pastebin.com/raw/gZisvd8z Nov 20 13:12:47 good luck, have fun, bye. Nov 20 13:16:05 @zmatt Please explain this to me... Nov 20 13:17:15 no, read it at your leisure and try to understand it yourself first. if you really can't figure it out, come back tomorrow at the earliest. I'm done with you for today Nov 20 13:19:15 @zmatt thanks for the guidence,... and sorry for everything else.... The think is i am not gud in english... I will do it my self.. if not succedded, I will comback as you said.. Nov 20 14:54:28 hello Nov 20 14:55:12 I'm a newbie... I'm trying to ssh into my beaglebone black for the first time using the terminal on a linux computer Nov 20 14:55:27 I'm prompted for a password and I have not clue what it is Nov 20 14:55:44 this is a second hand BBB, and I just flashed it Nov 20 14:56:12 any suggestions on how to get into the BBB terminal to install things Nov 20 14:56:44 Megz: usually user debian pw temppwd Nov 20 14:57:11 Megz: just as noted here: http://beagleboard.org/getting-started#troubleshooting Nov 20 15:03:40 Thank you, I was able to find that information on forums Nov 20 15:04:04 also no password does not work either Nov 20 15:04:35 when I reflash with the software that is here should it reset the password on the beaglebone? Nov 20 15:04:54 if so I may try reflashing it Nov 20 15:05:27 reflashing should reset the password, yes. Nov 20 15:05:47 ok Nov 20 15:06:05 I will five that a go Nov 20 17:03:23 hey zmatt, you around? i have a question from yesterdays conversation around the GPIO group... Nov 20 17:03:57 when you mentioned that the group is there to allow gpio access (i believe you said without sudo)... it never clicked to me that the debian account is in the gpio group, and yet i still need to use sudo to run the app Nov 20 17:17:42 jrich523: yes, I tried to convey that the debian user should normally have plenty of rights Nov 20 17:18:03 you did, but, that one bit didnt really click Nov 20 17:18:04 so you should try to figure out what your app is doing that demands elevated privileges Nov 20 17:18:22 guess i could check what the errors says again first :) Nov 20 17:18:32 that would probably be a good lead Nov 20 17:18:46 lol Nov 20 17:18:47 ugh Nov 20 17:18:55 cloned as root Nov 20 17:19:03 so.. file owner is root, which, is likely causing that Nov 20 17:19:25 lol Nov 20 17:19:39 what do we learn: don't habitually do stuff as root Nov 20 17:20:32 lol that will def help increase my troubleshooting skills at the very least Nov 20 17:20:35 because thats all i'll be doing Nov 20 17:21:55 ? Nov 20 17:21:59 ah Nov 20 17:22:16 somehow I failed to parse what you said for a bit, but now I get it Nov 20 17:22:21 meaning, there are a lot of... core... 'basic' things that i dont understand as well as i should Nov 20 17:22:30 its early (at least for me lol) Nov 20 17:22:50 i think my experience on the windows side both helps and hurts a lot Nov 20 17:23:16 the correlations are strong (usually strong enough for me to run with) but it usually means i miss important details that could be considered basic Nov 20 17:23:36 at least, did I understand correctly that you meant that you expect that doing stuff as non-root will increase your troubleshooting skills because you expect to need to do a lot of it? if so, why do you expect that? Nov 20 17:23:43 (if not, what did you mean?) Nov 20 17:23:52 the scale of my clients has changed, and no one asked me if that was cool lol Nov 20 17:24:04 because, i use sudo habitually because of previous issues Nov 20 17:24:18 basically anything should work fine on the debian account Nov 20 17:24:26 and im not yet use to the wording of linux errors (they feel pretty general in most cases) Nov 20 17:24:29 but... sudo git clone? why? Nov 20 17:24:41 i did something prior to it that required it Nov 20 17:24:44 you'll love this part Nov 20 17:24:48 im a fan of sudo -i Nov 20 17:24:49 lol Nov 20 17:25:00 yeah, so, that's a bad idea :) Nov 20 17:25:12 lol to be fair, i dont do that at work, just lazy personal projectgs Nov 20 17:26:52 I mean, using a root shell isn't always a problem of course, but if you start cloning git repos or compiling stuff you really need to start asking yourself "why am I doing this as root?" Nov 20 17:28:13 so chown -R debian: the whole shebang and move it to /home/debian if it's not already there, and then check again what exactly is giving problems Nov 20 17:28:20 yeah the habbit is to update first apt/yum which is a root thing, and then just stay there Nov 20 17:28:41 ahh yeah i've seen the home folder used a lot in docker apps Nov 20 17:28:43 that's definitely a bad habit, and there's really no reason for it... Nov 20 17:29:04 it's the directory you're in by default when you log in as user debian Nov 20 17:29:12 also known as ~ Nov 20 17:29:41 i feel like i type sudo often enough that i just go interactive, but, im also typically configuring systems, not apps, so thats likely why i feel like its "so many" Nov 20 17:30:05 sure, and I'll use root shells in such situations too Nov 20 17:30:12 but not when I'm developing code Nov 20 17:31:44 and obviously when you want to create an unprivileged service you should ensure that it can read the things it needs to read and write the things it needs to write ;) Nov 20 17:32:31 root is "convenient" but also dangerous. root on linux is far more dangerous than Administrator on windows Nov 20 17:32:34 so, if you were to deploy to a BBB, what would the steps be (ansible playbook), apt/yum update/install, node/npm update/install, clone code to ~, register service (pm2) Nov 20 17:32:39 root completely ignores file permissions, i.e.: Nov 20 17:32:42 chmod a-w testfile Nov 20 17:32:44 root = 'system' on windows? Nov 20 17:32:44 echo foo >testfile Nov 20 17:32:46 no problem Nov 20 17:33:36 I don't know if windows has an equivalent. the security model of windows is a fair bit more complicated anyway Nov 20 17:33:53 as far as I remember (it's been a while) Nov 20 17:33:57 yeah, but there are a handful of system accounts, (3 if i recall correctly) Nov 20 17:34:34 yeah but I think they're still just accounts Nov 20 17:34:40 probably pretty similar, and in windows you'd NEVER use them (only to configure services) Nov 20 17:35:15 isnt root an account? it has a uid Nov 20 17:35:42 yes, but it has special-case behaviour hardcoded in the kernel Nov 20 17:35:59 same with windows Nov 20 17:36:32 im not sure if they fixed it, but you could create a sched task, 'run as system' and 'interactive' and you could bypass a LOT of security stuff Nov 20 17:36:46 task being cmd of course Nov 20 17:38:05 obviously it has farreaching privileges, and can presumably do basically anything if it wants Nov 20 17:38:33 but the difference is that root (at least traditionally) has no choice: it always ignores file/directory permissions entirely Nov 20 17:40:01 (in theory on linux you can create an environment in which uid 0 is not privileged, but... let's not go there for now ;) Nov 20 17:40:07 yeah, up until yesterday, i was confused between the relationship of process permissions (user exec process) vs file permission... that had caused many issues for me Nov 20 17:40:40 what do you mean by "process permissions" exactly? Nov 20 17:41:58 when we talked about the, err, what was it, setuid and setgid (basically process owner) and how that relates to file/group owners Nov 20 17:42:42 yeah, the primary way permission checks are done is that a process runs with the authority of a certain user (geteuid()), primary group (getegid()), and supplementary groups (getgroups()), and those are checked against the file permissions/ACL Nov 20 17:42:44 digging in to what those cmds do, helped sort out the permissions relationship between the process and file objects Nov 20 17:43:35 guess i should reimage my BBB and attempt to set it up correctly :) Nov 20 17:43:40 note that "process owner" is not quite the right term to use Nov 20 17:44:07 like, it is possible for a process to run with a certain authority (geteuid) even if it a process of a different user (getuid) Nov 20 17:44:24 instantiator? Nov 20 17:44:54 well right, that was what the setuid was for, and why you mentioned (crap i forget the service param now) but it prevented that Nov 20 17:44:56 the typical way this happens is if the program's "setuid" (or analogous setgid) file permission is set Nov 20 17:46:13 so, if I run a program like that, it's still sort of "my" process, even though it runs with e.g. root privileges. in such a situation my control over the process is limited, but I can for example kill it with a signal Nov 20 17:46:19 the more i think about this, the root=system relationship helps clear up stuff too Nov 20 17:46:25 since it's still *my* process, even though I can't peek inside Nov 20 17:46:56 hmm Nov 20 17:47:51 another way of saying that: the "real" uid/gid of a process (returned by getuid/getgid) are relevant for the process viewed as object, while the "effective" uid/gid (geteuid, getegid) are relevant for the process as actor Nov 20 17:49:17 from an admin perspective, you'd see the 'real' owner via a ps -u, and would and admin be able to see the 'effective' as account? Nov 20 17:49:32 *an Nov 20 17:49:36 (although in practice, the actual rules can be a bit convoluted and full of warts grown over time) Nov 20 17:50:06 yeah, been in IT long enough to know there is always an edge case or exception to everything :) Nov 20 17:50:39 the "USER" column in ps is a synonym for EUSER (effective) Nov 20 17:50:50 oh so complete opposite, ok Nov 20 17:52:16 it's rarely to find a process where the two differ though, it tends to be a short-lived thing Nov 20 17:52:20 *rare Nov 20 17:52:27 ps -eO euser,ruser Nov 20 17:53:11 i assume those are the technical terms? real /effective? Nov 20 17:53:13 or nicer to read, ps f -eO euser,ruser Nov 20 17:53:15 yeah Nov 20 17:53:43 (and there's a third uid/gid pair, "saved uid/gid"... /o\ ) Nov 20 17:54:29 see "man setresuid" and "man 2 kill" for some examples of how the rules work in practice Nov 20 17:54:51 found a good stackover flow on r/e/saved Nov 20 17:54:54 they're pretty odd Nov 20 17:55:00 elevate up vs down Nov 20 17:55:34 "For a process to have permission to send a signal, it must either be privileged (under Linux: have the CAP_KILL capability in the user namespace of the target process), or the real or effective user ID of the sending process must equal the real or saved set-user-ID of the target process." Nov 20 17:56:10 eh, someone borked here, the "set-user-ID" should simply have been "user ID" Nov 20 17:57:11 (oh, and of course a wart on top: for SIGCONT it suffices if sender and target to belong to the same session") Nov 20 17:58:20 CAP_KILL here is an example of a "capability", a shard of the privilege traditionally given to uid 0. Nov 20 17:58:34 so frustrating trying to phrase questions when you dont know the correct terms lol Nov 20 17:59:40 signal = cross process communication? Nov 20 17:59:51 such capabilities can be given to otherwise unprivileged processes in certain situations (e.g. via systemd service files), or converse a "full" root-privileged process can deliberately choose to drop capabilities Nov 20 17:59:55 yes Nov 20 18:00:04 signals are a pretty crude form of IPC Nov 20 18:00:14 where do capabilities fall on the security stack? Nov 20 18:01:07 eh Nov 20 18:02:04 they're basically just a bitmask of special system privileges that a process has that's completely beside anything discussed so far Nov 20 18:02:50 except that, normally, a process that becomes euid 0 will also gain all capabilities and an euid 0 process that becomes euid != 0 loses all capabilities Nov 20 18:03:07 to keep backwards compatibility with the original "euid 0 == god" paradigm Nov 20 18:04:06 see "man capabilities" for a list of capabilities Nov 20 18:04:24 CAP_DAC_OVERRIDE is an interesting one, it's the one that causes file permissions to be ignored for the process Nov 20 18:04:57 so earlier when I said file permissions are ignored for root, what I meant was that file permissions are ignored for processes with the CAP_DAC_OVERRIDE capability ;) Nov 20 18:05:24 a really nice example of fine-grained use of capabilities is "ping" Nov 20 18:06:22 the ping utility needs to open a raw socket to do its thing, which traditionally would have required it to be setuid root Nov 20 18:06:53 on modern linux systems however, it is not: Nov 20 18:06:57 -rwxr-xr-x 1 root root 47756 Nov 10 2016 /bin/ping Nov 20 18:07:32 (if it were setuid, that first "x" would be "s" instead) Nov 20 18:08:27 so what magic is going on here? Nov 20 18:08:31 $ /sbin/getcap /bin/ping Nov 20 18:08:31 /bin/ping = cap_net_raw+ep Nov 20 18:09:32 you (by which I mean root) put special attributes on executables that cause it to automatically gain certain capabilities when executed :) Nov 20 18:10:42 * zmatt hopes jrich523 is still breathing ;) Nov 20 18:15:37 * zmatt pokes gently in jrich523 Nov 20 18:32:58 lol sorry someone bugging me Nov 20 18:37:03 that makes really good sense, thanks! Nov 20 18:42:48 i think im now wise enough to setup my app not as root lol Nov 20 18:43:48 zmatt, ideally i should use the debian account for my app? or would it still be considered good practice to create a user for my app? Nov 20 18:45:03 definitely, considering that the debian account is allowed to do pretty much anything Nov 20 18:46:02 assign that user no groups, and assign the groups to the service? Nov 20 18:46:37 really need to run this against a docker image... god the BBB is so slow lol Nov 20 18:46:58 a user always belongs to a group, but yeah no need to add the user to groups, you can explicitly give them in the service file Nov 20 18:47:00 guess since im using ansible, i could use vagrant to do the testing Nov 20 18:47:09 you probably mean "god, my application is so slow lol" ? ;P Nov 20 18:47:18 lol my app does nothing Nov 20 18:47:34 a reimage takes 10-20 min Nov 20 18:47:43 "reimage" ? Nov 20 18:47:45 pm2 takes a solid 5-10 seconds per command Nov 20 18:48:01 yeah, flash emmc Nov 20 18:48:22 okay, but that's not exactly something you need to do frequently Nov 20 18:48:31 (and is entirely limited by the eMMC write speed) Nov 20 18:48:45 and/or SD read speed Nov 20 18:48:51 to test my ansible config script (which should move over to vagrant) Nov 20 18:49:09 I have no idea what that means Nov 20 18:49:59 oh, well to deploy the app (mostly configure the BBB) i'll use ansible... stuff like, create the user/service config etc.. in this case, also setup samba so i can easily access the files for the hardware dev parts Nov 20 18:50:29 5-10 seconds... you mean pm2 needs 5-10 _billion_ cpu cycles to do its stuff? what on earth does it *do*? :P Nov 20 18:50:35 and really im only using ansible because my up and coming contract will be around ansible and i havent touched it in a good year.... figured i'd get a 2 for one on this :) Nov 20 18:50:47 im wondering wtf its doing too lol Nov 20 18:51:02 cuz really it should just look at the systemd service state and some info it likely has in a text file Nov 20 18:51:26 does pm2 have added value compared to just running your node service as systemd service? Nov 20 18:51:30 and logging to journal Nov 20 18:51:33 i could probably ditch pm2 since im now using ansible.. not sure any of the other features of pm2 are really needed in this case Nov 20 18:51:44 ^^ :) Nov 20 18:52:30 really what i liked is i can have a pm2 config file, and can do pm2 ; pm2 startup ; pm2 save, and the service is created and works pretty well Nov 20 18:52:39 it has keep alive and scaling (nginx proxy etc) Nov 20 18:52:44 all stuff i dont really need for this Nov 20 18:52:51 hehe Nov 20 18:53:01 and as extra bonus, it's suuuper slow apparently ;) Nov 20 18:53:36 nodejs isn't exactly a speed monster in general, especially w.r.t. startup time Nov 20 18:54:20 yes, a great added bonus :) Nov 20 18:54:45 mostly the issue is when i do pm2 show or pm2 status, those take a WHILE to come back Nov 20 18:58:49 also what you describe suggests you'd use pm2 as service manager, which means your services hag under pm2 and it is a single systemd service? Nov 20 18:59:09 which would be pretty awkward for the purposes of privilege minimalization Nov 20 19:00:03 yeah, it creates a systemd service (supports other service managers too) Nov 20 19:00:17 oh, per node service? Nov 20 19:00:24 per user Nov 20 19:00:32 pm- is the name format Nov 20 19:00:58 so any apps (doesnt have to be node only) that runs as a user will be managed by that systemd service Nov 20 19:01:01 i.e. you don't have a service file per service Nov 20 19:01:11 pm2 creates that file Nov 20 19:01:14 so you can't easily assign privileges per service Nov 20 19:01:32 yes but that's a service file for the pm2 manager/daemon for a user Nov 20 19:01:42 that's not the same thing as a service file for a service Nov 20 19:02:22 no no, pm2 creats a systemd service file (pm2 startup cmd does that) Nov 20 19:02:36 that systemd service (pm2) calls a pm2 config that loads the app Nov 20 19:02:42 I mean, I understand that it's fine for a lot of web application uses, but those web applications also normally don't need special privileges Nov 20 19:02:57 ... isn't that exactly what I said? Nov 20 19:03:12 but i think we're in agreement i dont need special privileges Nov 20 19:03:15 you get a systemd service *for pm2* Nov 20 19:03:15 well not exactly :) Nov 20 19:03:20 yes you do Nov 20 19:03:52 messing with gpios or devices is not something a normal web application does Nov 20 19:04:21 right, but wouldnt that be solved by adding the gpio group? Nov 20 19:04:49 yes but then you're granting those privileges to the pm2 service in general Nov 20 19:05:08 ahh true, i gotcha Nov 20 19:06:44 anyway, I think the conclusion was already that pm2 was kinda slow and has limited added value in this situation anyway, so not that much is lost Nov 20 19:06:56 yup, she's going out the window! Nov 20 19:07:17 and once you have one good example, creating additional systemd services doesn't sound substantially more complicated than how you described adding a pm2 service Nov 20 19:07:44 well, it will all be in ansible, so it will be super easy :) (to do more, not so much the first lol) Nov 20 19:08:34 btw it may also be a good idea to make the user for the service not own or have write access to the node sources Nov 20 19:08:57 read access should suffice after all Nov 20 19:09:54 hmm that would even align with my samba for dev Nov 20 19:10:23 could keep the code as the debian user, and a limited user for the service Nov 20 19:10:42 do try to make sure you don't end up with all files marked executable when transferring from windows to beaglebone :P Nov 20 19:12:14 lol learned that the hardway already :) Nov 20 19:12:22 few neat git tricks for that crap Nov 20 19:15:32 systemd service files have pretty neat facilities for locking things down though, e.g. you can use ProtectSystem=strict to make the whole filesystem readonly for the process and then give explicit exceptions of directories where write-access is permitted (still subject to the usual permission checks of course) Nov 20 19:16:08 or make parts of the filesystem entirely inaccessible to it Nov 20 19:17:18 even restrict which system calls it is allowed to perform Nov 20 19:18:15 would certain be a great learning exercise :) Nov 20 19:18:49 also the readonly would be good, since it wouldnt need to write (log files tho?) Nov 20 19:19:02 it shouldn't create log files probably, log to journal instead Nov 20 19:19:39 app logs to the journal?! Nov 20 19:20:02 not that its wrong, i just never actually see that... Nov 20 19:20:36 stdout/stderr will already end up in journal (with priority-prefix parsed if present), and you can use my node-sd-daemon to include more general key-value pairs in log messages Nov 20 19:20:48 ehh, all services log to journal normally, and you're setting up a service Nov 20 19:20:56 i would but i can npm install it ;) Nov 20 19:20:58 lol jk Nov 20 19:21:53 yeah well, the hacky bit (the weird dep) is because nodejs is really obnoxious and doesn't actually let you use local (AF_UNIX) datagram sockets Nov 20 19:22:01 speaking of which, that lead me down a rabbit hole of looking at speakers lol Nov 20 19:22:39 like, you'd think that since they provide the main event loop, they include the ability to use sockets of any address family supported on the platform, but nope! Nov 20 19:22:58 lol why would they do that?! Nov 20 19:23:28 even worse, I think they used to support them but removed it... because they're not cross-platform Nov 20 19:23:53 joys of moving towards cross platform Nov 20 19:24:01 on the plus side, windows keeps getting more linuxy Nov 20 19:24:03 which is apparently more important to them than being able to communicate with other services on the platform you use Nov 20 19:24:26 im not sure i'd disagree with that, the main draw of node is cross platform (at least how i see it) Nov 20 19:25:02 they also don't allow you to send file descriptors over a unix domain socket... except they do support it internally because they need it themselves, but they refuse to make the functionality public Nov 20 19:25:50 yeah thats stupid, because the 'solution' to that is to expose it all, and let someone write a module that provides feature X and deals with cross platform crap Nov 20 19:25:54 yeah but that's bullshit in this case, basic OS functionality like sockets, things that also need to tie into the main event loop, belong in the core Nov 20 19:25:56 sorta the way things like SignalR work Nov 20 19:26:12 try this spiffy method... nope... try this not so spiffy method... no... try this really horrible method Nov 20 19:26:33 moreover, there's no reason for these restrictions... they could just have supported arbitrary sockets by... not weirdly hardcoding special cases Nov 20 19:26:52 * zmatt grumbles Nov 20 19:26:55 i dont know, thats sorta how i feel about the whole stack (node/javascript) Nov 20 19:27:02 its like "we have this great base idea!" Nov 20 19:27:11 ok now lets cram crap that wasnt designed for it in! Nov 20 19:27:35 ok now there are 50 ways to do thing that only work in certain situation and you have to know all the rules to function! Nov 20 19:29:33 journal is kinda spiffy btw, basically being a sort of database designed for the append-only nature of logging, flexible "columns" (the keys that are used in messages), and indexed on every column Nov 20 19:32:17 another good reason to not give your service write-access to the logfiles: you don't want a compromised service to be able to wipe or alter earlier records that might reveal the fact it got compromised Nov 20 19:32:22 yeah, but windows is way better in that sense lol Nov 20 19:32:42 'event tracing' sadly its not used much Nov 20 19:33:02 what is it? Nov 20 19:33:04 just like i rarely see journals used Nov 20 19:33:07 sorta the same thing Nov 20 19:33:39 well journal is likely to be enabled by default on any modern linux system that uses systemd Nov 20 19:33:57 as is ETL Nov 20 19:34:03 but the app needs to write to it Nov 20 19:34:09 unfortunately often some legacy syslogd is also still enabled to write redundant copies of the information into textfiles in /var/log :P Nov 20 19:34:12 most people just dump to a file (not even event log) Nov 20 19:34:45 most unix services either log to stdout/stderr or via syslog. in all cases it'll end up in journal Nov 20 19:35:13 it's the laziest way to do logging Nov 20 19:35:18 with the windows stuff its a well defined structure (Giving you more power to search/filter) vs just dumping generic info/streams Nov 20 19:35:35 yeah, ditto if you use the native journal interface Nov 20 19:35:51 although systemd already adds a bunch of metadata to log entries Nov 20 19:35:51 you can also pretty easily create eventlog messages (and your own log) and i've only ever seen that used like by maybe 5 non-MS apps Nov 20 19:36:38 note that you can view journal in json format with: journalctl -o json Nov 20 19:36:46 to get an idea of what's *really* in there Nov 20 19:37:02 powershell would be a bajillion times better for that lol Nov 20 19:37:39 the structured data in pipes thing? Nov 20 19:37:39 it has cmdlets for event tracing/eventlogs and to me its structure/style make it amazingly powerful Nov 20 19:37:57 sure pipes are nice (not really needed tho) Nov 20 19:38:07 more so its how it works in objects along side .net Nov 20 19:38:23 so you can do full programming (i've used win32) in a shell Nov 20 19:38:44 programming in a shell is the thing that makes me the happiest Nov 20 19:39:07 hey, someone added FFI support to bash too! ;) https://github.com/taviso/ctypes.sh Nov 20 19:39:43 no objects tho Nov 20 19:39:49 thats an unsaid requirement lol Nov 20 19:40:01 the amount of regex is too damn high! Nov 20 19:40:09 I wasn't being very serious, this isn't something you want to touch with a ten foot pole Nov 20 19:40:13 im good at regex for horrible reasons Nov 20 19:40:18 lol Nov 20 19:40:19 yay regex Nov 20 19:40:31 yeah reading it now, and its kinda scary Nov 20 19:41:01 i cant wait for powershell to become more common on linux Nov 20 19:41:31 * zmatt gives jrich523 a dubious look Nov 20 19:41:40 * jrich523 is dead serious Nov 20 19:42:07 simple for an object based shell Nov 20 19:42:42 i mean, if you google "how do i X" for linux, if there isnt a direct command, there is def a well know awk mess of some kind Nov 20 19:43:03 "oh its easy you just do this" and its not easy at all lol Nov 20 19:43:19 also, you have to read FAR less docs Nov 20 19:43:40 think about a rest endpoint, you can explore them SO quickly Nov 20 19:43:49 many languages suck at exploring objects Nov 20 19:44:35 $rtn = invoke-restmethod -uri $uri ; $rtn | select * ; gm -i $rtn Nov 20 19:44:48 those 3 commds will basically give you almost all you need to know about an endpoint Nov 20 19:45:15 do that in any other lang, and you'll find its either hard, or horribly ugly Nov 20 19:45:15 I have no clue what you just said or why you think it would make me happy Nov 20 19:45:24 but I suspect we have different needs from our daily system use ;) Nov 20 19:45:27 lol not sure it would make you happy, but it makes me very happy Nov 20 19:45:34 lol yeah def more of a systems guy Nov 20 19:46:38 i get a lot of "i need a report from this software, it has an api..." Nov 20 19:46:53 or more so, relating multiple systems.. but yeah... way different needs Nov 20 19:47:04 at least linux is slowly starting to converge on the use of dbus as a form of structured IPC (including remote procedure calls, with support for introspection). while it's not exactly a flawless protocol, at least it's more than "connect to this socket and communicate this custom protocol" or whatever Nov 20 19:47:28 yeah i like the direction stuff is heading... Nov 20 19:47:36 and im really impressed with how much MS is jumping on linux Nov 20 19:47:48 if you're not yet familiar with busctl, you might want to look at it Nov 20 19:48:25 e.g. busctl tree org.freedesktop.login1 Nov 20 19:49:06 i've mostly limited my linux knowledge to centos... because i have yet to work for a client that isnt using it Nov 20 19:49:27 this is distro-generic Nov 20 19:49:44 (as long as they use systemd) Nov 20 19:50:32 oh man, how was any of that working before? Nov 20 19:50:47 lots and lots of os specific code? lol Nov 20 19:51:51 ipc is basically signals for really simple stuff (like "please reload your config files") or just a (unix domain) socket Nov 20 19:52:30 more creative stuff involved shared memory for the occasional application that needs high-bandwidth ipc (e.g. pulseaudio) Nov 20 19:52:34 *involving Nov 20 19:52:40 sure, but it can be anything Nov 20 19:52:48 yep Nov 20 19:53:02 i've screwed with it a bit on the windows side (IPC for front end communication to a service) Nov 20 19:55:40 ugh i really should make a different repo for the ansible playbook Nov 20 19:55:56 not sure why i should be grumpy, they are free Nov 20 21:37:44 zmatt: is shared memory between applications a thing? like with mmap or something? Nov 20 21:37:56 are unix domain sockets not fast enough for audio? Nov 20 23:10:01 googling a bit finds e.g. this statement (in a "pulseaudio 10 coming soon" article from early 2017): "With PulseAudio 10, memfd transport is on by default after being added as an optional feature to PulseAudio 9.0. This shared memory mechanism should be better than their older shared memory implementation and also work better for sandboxing software." Nov 20 23:10:09 so yeah it uses shared memory Nov 20 23:15:56 huh yeah Nov 20 23:16:00 i figured you'd have run some benchmarks or something Nov 20 23:16:03 isn't this your use app? Nov 20 23:16:18 ? Nov 20 23:16:24 you guys do audio stuff over linux right Nov 20 23:16:25 am i wrong? Nov 20 23:16:47 i swore you did some linux audio stuff for work professionally, but i guess i'm wrong Nov 20 23:17:03 not inter-application though Nov 20 23:17:09 i c Nov 20 23:17:40 linux isn't part of the main audio path, it's only used for network-distributed audio. Nov 20 23:18:57 and that's just a daemon that receives it over the network and sticks it into a hw: alsa device .... except nowhere nearly as simple as I just made it sound ;) Nov 20 23:19:22 sounds fun Nov 20 23:19:33 you guys are doing studio, event, consumer? Nov 20 23:20:03 (it has a control loop to track how the local audio time relates to the network audio time and runs the audio through an asynchronous sample rate converter) Nov 20 23:20:24 i think DSP Is really interesting Nov 20 23:20:31 i told you before I <3ed laplace Nov 20 23:20:33 studio and starting to nudge into the high end of consumer Nov 20 23:20:37 https://dutchdutch.com/ Nov 20 23:20:51 i took a course in DSP for z-transforms and stuff but i didn't consume it like i had analog Nov 20 23:21:03 do you know any good books in english on dsp? Nov 20 23:21:10 the one i hvae is okay but it's not like the awesomeness of my lathi Nov 20 23:21:35 not sure actually, it's a topic I kinda absorbed through osmosis Nov 20 23:21:45 oh gosh Nov 20 23:21:52 I've definitely seen explanations I very much disagree with :P Nov 20 23:21:55 this was by far one of my favorite undergrad textbooks: https://www.amazon.com/Signal-Processing-Linear-Systems-Lathi/dp/0195219171?SubscriptionId=AKIAILSHYYTFIVPWUY6Q&tag=duckduckgo-d-20&linkCode=xm2&camp=2025&creative=165953&creativeASIN=0195219171 Nov 20 23:21:59 jeez sory for that link Nov 20 23:22:14 http://a.co/d/3kf3ZCv Nov 20 23:22:15 and the z^-1 convention annoys me a lot Nov 20 23:22:57 also, what I might consider a good book might not at all be what you consider to be a good book Nov 20 23:23:04 thats true but its better than nothing Nov 20 23:23:06 i wouldn't sue you Nov 20 23:23:09 :-p Nov 20 23:23:40 so the guy i know how runs the space-quality SAW filter frabraction/design lab told me that there's apparently some 1:1 transformations from z-domain to physical outline of saw filters Nov 20 23:24:23 i don't remember the exact details but aparently there's really not much thought between moving the DSP math to the lithography department Nov 20 23:24:26 i thought that was pretty cool Nov 20 23:25:14 that's neat. it's not obvious to me why (since presumably a SAW filter does not work in a discrete-time domain) but I don't really know anything about SAW filters so... Nov 20 23:26:31 yeah it's sort of a niche Nov 20 23:26:35 its just what i was told **** ENDING LOGGING AT Wed Nov 21 02:59:58 2018