[HN Gopher] Show HN: TinyPilot - Build a KVM over IP using a Ras... ___________________________________________________________________ Show HN: TinyPilot - Build a KVM over IP using a Raspberry Pi Author : mtlynch Score : 493 points Date : 2020-07-23 13:56 UTC (9 hours ago) (HTM) web link (mtlynch.io) (TXT) w3m dump (mtlynch.io) | cmer wrote: | This is a game-changer! Thanks for all your work on this. | | Do you have any plans to allow controlling more than 1 computer | remotely? I'd love to implement this in my homelab. | mtlynch wrote: | > _This is a game-changer! Thanks for all your work on this._ | | Thanks for reading! | | > _Do you have any plans to allow controlling more than 1 | computer remotely? I 'd love to implement this in my homelab._ | | Right now, I can't think of a way to do this. The Pi only has | one USB OTG port, so I don't know of a way to share that among | multiple machines. | | A friend suggested an interesting solution of chaining | TinyPilot together with a "dumb" multi-machine KVM that | supports switching via hotkey. So it would go: | | TinyPilot -> legacy KVM -> server1, server 2, ... | | You could still use a web interface and hop between servers | using keyboard shortcuts that the legacy KVM understands. | cmer wrote: | That's a really great and simple idea, actually. I might give | this a try. | dukoid wrote: | I have given up on KVMs altogether and I am using the following | approach now: | | - Most monitors have multiple digital inputs. Connect each | computer to one of them | | - Use a USB switch keyboard and mouse | | - Before switching the USB switch, press the "lock screen" key | combination and make sure locking the screen drops the video | signal | | - After switching the USB switch, pressing shift should bring up | the login dialog and re-activate video output. Since the monitor | has just lost the signal in the previous step, it will scan the | inputs and switch to the desired signal. | jbob2000 wrote: | I did this for a while, the problem is that there's really no | such thing as a high-quality USB switch. They are all garbage | and mess with USB devices in some way (at least at the consumer | level). | btgeekboy wrote: | I have an old Belkin USB 2.0 switch from god-knows when that | works beautifully. I use it to share a hub with a keyboard | and mouse attached. I've given up trying to find a 4K60 x2 | DisplayPort KVM that doesn't suck. | stamps wrote: | I have this one[0] that works great. | | Wendell at Level1Techs does good work and there's even | newer ones that can do 8k30. | | [0] https://store.level1techs.com/products/kvm-switch-dual- | monit... | ajford wrote: | I couldn't find the details on their site, but do you | know whether the 3.5mm audio jack is 3 or 4 pole? I've | found that most KVMs have the 3 pole jack, meaning it | just supports audio out, but I need 4-pole so my headset | microphone works. | bombita wrote: | I have been using this at 4k60 (but 1 monitor) flawlessly | for 8 months. | | https://www.startech.com/Server-Management/KVM- | Switches/2-po... | duskwuff wrote: | Seconding a recommendation for Startech's KVMs. They have | an _excellent_ USB stack which handles complex USB | hierarchies flawlessly -- I 've successfully used mine | with chained hubs, weird HID devices like Apple | keyboards, and non-HID devices like disks, audio | interfaces, and even stranger things. | GordonS wrote: | I switched from a KVM to a USB switch a few years back, and | haven't had any real issues with it. I don't think it was | expensive either, just a standard USB 3 switch with only 2 | ports. Occasionally it takes more than a few seconds after | pressing the button for the switch to happen, but that's | about it. | BoysenberryPi wrote: | This is my experience as well. I currently use a USB switch | that I got off of Amazon for about 15 bucks. It typically | "just works." Press the button, wait 2 seconds and my input | devices have switched. | TacticalTable wrote: | Care to share it? The one I have will work for a few | switches, then both Windows/Mac will eventually stop | recognizing the port its connected to until a reboot. | HEHENE wrote: | I have been using one from IOGEAR (SKU GUS432CA1KIT) for | the last 6 months and I haven't had a single problem with | it. | | I use it to switch all of my peripherals (keyboard, | mouse, wireless headset dongle, webcam, and mixer) | between my desktop and my MacBook several times per day | and have not had a single failure yet. | JeremyNT wrote: | > _I did this for a while, the problem is that there 's | really no such thing as a high-quality USB switch. They are | all garbage and mess with USB devices in some way (at least | at the consumer level)._ | | A lot of these things seem to "help" by inserting their own | USB host device that acts as a proxy for attached USB | peripherals. This allows them to do (ostensibly) useful | useful things such as intercepting keypresses and responding | to them (e.g. by switching to another input). | | Don't get one of those, get a _physical_ switch that just | connects the leads to the correct port when pressed. I got | this USB 2.0 switch (all you need for input devices) for $12 | [0]. I 'm sure there are others available with more ports, | but this is all I needed. | | [0] https://www.amazon.com/gp/product/B01HV1N674 | weaksauce wrote: | Yeah I second this. I have a physical usb switch to move | keyboard and mouse over. It works flawlessly. | | Though, I also use a KVM to switch over the video but it's | separate. | tyingq wrote: | That's handy for the KVM part, but this is mostly about KVM | over IP. | TaylorGood wrote: | I just bought a PiBookPro (1) that I discovered on Twitter. | It's a laptop shell for RPi at $80. Kind of a wild backstory | but hard to beat that $ | | 1) Http://pibookpro.com | derefr wrote: | I feel like the ideal here would be for there to be a | Thunderbolt/USB4 display which has multiple Thunderbolt | "source" ports, and _also_ USB-C connectors for peripherals, | where the display itself is acting as a USB controller | available over Thunderbolt-PCIe, with the USB-C sockets | attached to said USB controller. Change the input on the | monitor, and the USB-controller PCIe card in the display would | be hotplugged out of one computer and into the other. | | Even more ideally, the display would _also_ have a built-in | Bluetooth controller that stays active regardless of the USB | controller 's attach state, such that Bluetooth peripherals | could be paired _to the display itself_ rather than to the OS | (i.e. you 'd manage the pairings through the OSD of the | display); and then these devices would be presented through the | display's USB controller as always-on direct-attached USB | devices -- much like VM hypervisors present host-attached | Bluetooth HID devices to their VM guests. (As a side-benefit of | that, as long as the computer's BIOS understood Thunderbolt | well-enough to display anything during boot, then even | Bluetooth peripherals would also work during boot.) | monadic2 wrote: | I've just given up on Bluetooth for rapid device switching. | It's too time consuming to be figuring out which device your | headphones are attached to & disconnecting/reconnecting to | resolve, especially e.g. when someone calls you. Wires are | very, very easy to read and debug. | | I have AirPods but will only pair them to my phone. | ryanar wrote: | AirPods are the first blutooth type device that I switch | all the time. If I am hooked up to my phone and connect on | my Mac, instantly switches, if I am paired to my Mac and | get a call on my phone and accept it, it opens a menu | asking if I want to use airpods, tap that, instant audio / | mic. The switching is so seamless and it makes the tech | phenomenal for me. | philippantoni wrote: | The LG ultrawide monitor with Thunderbolt that I have from a | couple years ago (34UC97) mostly does this -- It has a two- | port USB hub which I use for my mouse and keyboard, which it | routes either through the Thunderbolt interface to my MacBook | or a separate USB cable to my PC, depending on whether | Thunderbolt or one of the DisplayPort/HDMI display inputs is | selected. | | (I'd guess their newer models work similarly but I haven't | confirmed.) | burnte wrote: | Oy! I've been designing a HAT for a year to do this, but it would | take VGA rather than HDMI. You've done well! :D | RealStickman_ wrote: | Funnily enough I'm waiting for my hdmi to usb capture card to | arrive so I can play on my PS3 while also having the option of | switching back to the desktop instantly. | swiley wrote: | That has to add a lot of latency. | | Although honestly I think some of the latency complaints by | gamers are a little much. Personally I have a Bluetooth | mouse/keyboard connected to my desktop with a super duper cheap | projector pointed into the living room and can play FPS games | on it just fine. | RealStickman_ wrote: | It probably won't work. Though I think it could still be a | fun project. Maybe I'll use it in the same way the author | does in the end. | ctas wrote: | It has a lot of latency indeed. I tried the raspberry as a | Steam Link alternative, but as far as I know the ethernet | port is not suitable (?). I've also read that it actually | gets worse if you plug in any USB peripherals. Correct me if | I'm wrong though. | swiley wrote: | Yes the Ethernet port is on USB so you're sharing (the | already small) bandwidth between that and all the | peripherals. | | This may have changed with the pi4 though. | yetanta wrote: | Using a timer on a screen to SEE latency. Why did I not think of | that?! | mtlynch wrote: | Thanks for reading! | | I got the idea from danman, but his setup is much cooler than | mine: | | https://blog.danman.eu/new-version-of-lenkeng-hdmi-over-ip-e... | cerberusss wrote: | Fantastic project. Amazing how you overcame each obstacle, and | very well written to boot. Kudos. | | Quite funny how you brought 1000 ms latency down to 200 ms. I | wonder how this compares to iDRAC and that Raritan device. | mtlynch wrote: | Thanks for reading! | | Yeah, it was kind of like the perfect difficulty level for this | kind of project. If it was two months of work to get it working | at all, I probably would have gotten discouraged, but it worked | out that every couple weeks I was rewarded with a breakthrough | that substantially improved the latency until it was finally a | practical tool. | cm2187 wrote: | I don't know about iDRAC but I used raritan a bit for some home | projects and it's not super fun. I couldn't connect it on HDMI | when the server was already running, it had to be connected | before the boot. For both VGA and HDMI, it sort of works, there | is a clunky but functional java desktop application, the screen | is often off by a dozen pixels (part of the screen hidden) and | the pointer too. | | For new servers, I just buy a supermicro motherboard with IPMI | and stop worrying. You can set up an IP based firewall within | IPMI, so that only a handful of IPs can even connect, plus a | very strong password, and I am not too worried about exposing | it to the WAN (I know it's not a great idea but I don't know | any alternative that doesn't require another U in a | datacentre).. | EvanAnderson wrote: | I've used virtually all of the iDRACs. They're probably in that | 200ms area (based on my gut feeling w/ no empirical | measurements). They've been fairly responsive in my experience. | tinco wrote: | I manage a machine that has an AST2500 (competitor to iDRAC in | smaller vendors like Gigabyte, it rocks), and I didn't notice | latency, so it's probably under 200ms. | numpad0 wrote: | Most iDRAC type products actually use that same Aspeed | ASTxxxx with vendor firmwares. If a server reports "Matrox | G200e" as display adapter it's it. | captn3m0 wrote: | Was stuck with latency issues on a unrelated streaming project, | thanks for writing about ustreamer - going to try that out. | znpy wrote: | the best thing in this article is the immediate link named "I | don't want your life story; just tell me how to build it " | mtlynch wrote: | Haha, that was inspired by my experience of searching cooking | recipes online. | erikig wrote: | Which begs the question - which cooking recipes start off | with a biography of the author? Now I want to see those! | jbj wrote: | I use barrier on my raspberry pi, and have a keyboard shortcut to | pick wich machine receives the keystrokes and mouse movement. | Additionally to this keyboard shortcut, I also need to click a | button on my monitor since it can receive hdmi from multiple | machines. | | It works great, If I could get it done with only a keyboard | shortcut, I would only pick this solution if it does not induce | additional lag. | naggie wrote: | Brilliant idea. I have an idea to extend this! | | 1. A relay to reset the PC like iDRAC/iLO | | 2. 2 dual pole relay to move a USB flash drive to and from the PC | it's connected to, in combination with (1) you could then boot | ISOs remotely by dd-ing the ISO to the flash drive and then | connecting it to the host PC with a relay | [deleted] | agwa wrote: | It should be possible for the Raspberry Pi to emulate a USB | flash drive using the OTG connection, though I'm not sure if it | can emulate a keyboard and a mass storage device at the same | time. It would be a very valuable feature for sure. | Nexxxeh wrote: | Alternatively, just use a microcontroller for the USB HID | stuff, and talk to it via BT/WiFi/40-pin header. | tmzt wrote: | The kernel at least supports that, through the gadgetfs | filesystem. | bronco21016 wrote: | The GPIO should easily be able to handle doing a reset by | connecting with jumpers directly to the motherboard. I guess | there may be some circuitry required... I'm not positive on how | the standard motherboard pins work. | tmikaeld wrote: | Raspberry 3B is too slow for this? | Nexxxeh wrote: | More likely the lack of OTG being an issue, as elsewhere in the | comments the author showed the CPU usage of the Pi 4. It's not | even making a dent. It's super low overhead. I'd be surprised | if it maxed out a 3B. | Jaruzel wrote: | I have a similar solution in place. For _reasons_ ... I have a | machine that is 100% locked down by the client. I cannot install | software on it, nor does it have any sort of remote access tools | installed on it. To keep my work space clear, and negate the need | for second monitor (as I need to be able to see the screen of | this machine AND my main machine at the same time), I use an | Elgato CamLink HDMI dongle[1] to capture the video output of the | machine, and I use VLC to display it in a window on my main | desktop. I use a bluetooth keyboard and mouse combo to control | it. The latency on the video capture is very low (it doesn 't | feel any more laggy than a normal remote sesson), and as an added | bonus I can screen capture the video stream, which is really | useful for documentation. The CamLink is locked at 1080p, so as | long as the machines desktop resolution matches that, I get a | very crisp picture. I've been using this setup for almost two | years now, on a daily basis with no issues. | | -- | | [1] https://www.elgato.com | lxe wrote: | Oh man, the video latency woes. I've been going through the same | motions trying to get minimal-latency stream-to-browser from an | Amcrest (Dahua) IP camera. Their app and cloud services leaves | much to be desired, so I tried to roll my own. They cameras send | h264-encoded stream over rtmp but also through some kind of | custom HTTP protocol which their browser app (requiring a scary | binary native plugin) decodes, but it's challenging to reverse- | engineer. | louwrentius wrote: | I respect this effort, I think it's a great accomplishment. | | I think most people are better off building their own home (lab) | server with a motherboard that supports IPMI (KVM over IP) | natively. | | Supermicro (only brand I've experience with) or other brands that | build server motherboards all include IPMI with HTML5 support. | | Doing so will save you a lot of trouble. Maybe you may not be | able to run the kind of hardware you want, but it's all a | tradeoff. You have to choose. | | I have HP Microservers (quiet) and a Proliant (loud) all with ILo | (HP IMPI) and it's awesome. | grosswait wrote: | I just finished building a Pi KVM about a month ago using project | https://github.com/pikvm. Has been great so far. | mtlynch wrote: | Yeah, I'm really impressed with that project and love Max's | work! There's a bit of a barrier to entry though, as it | requires you to compile the OS yourself. My goal with TinyPilot | was to create something that's easier for newcomers to install | and simpler for me to reason about. | pdimitar wrote: | I'll use the opportunity to ask for a KVM switch help here if | that's not breaking the board's rules (and I feel it's related to | the topic): | | I got a company laptop recently and bought an Aten CS782DP KVM | switch so I can reuse my gaming PC's monitor on it (using | DisplayPort 1.4 cables). But when using my gaming PC the display | now flickers very often when gaming and it's driving me crazy. | Some people said it's the length of the DP 1.4 cables (they are | very short though, <1m), some even say gas spring chairs | introduce signal disturbance (wtf?), others say make sure the DP | 1.4 cables don't touch any other cables. | | In any case: would a KVM switch like the one in the post help? I | suspected NVIDIA's G-Sync but turning it off for several days | made no difference. :( | | For the record, the display runs at 144Hz in both Win10 and | Ubuntu. But it only flickers in Win10. The only thing that comes | to mind is that the miniDP-to-DP cable that runs from my PC's | videocard to the KVM switch is no good -- but not sure. I sadly | can't use the KVM switch's DP-to-DP cable because my videocard | only has miniDP on its rear. | | Anybody had similar struggles in the past? | techntoke wrote: | Have you tried lowering to 60Hz in Windows to see if it helps? | What about another switch? | pdimitar wrote: | In the very few games I play 60Hz is way too low so I haven't | attempted it at all -- I want the maximum Hz/FPS. | | As for another switch, I am open to ideas if you have them. | In my local market I was only able to find like 2-3 of them | [that support DP 1.4] and they are all north of $250 -- which | I don't mind but it would be non-pleasant to buy 5+ of them | just to experiment. | | Maybe my requirement for DP 1.4 is silly though. Maybe HDMI | would be fine. | techntoke wrote: | My guess is that switch simply doesn't support 144Hz, so if | it works at 60Hz then you have your answer. | pdimitar wrote: | They advertise 4K@60Hz and my display is at 2560x1080 @ | 144Hz. Math says my case should be supported but yeah, | computer standards are often non-intuitive. I'll try with | 120Hz and then 60Hz just to ascertain limits as you | suggest. Thanks. | systemBuilder wrote: | This guy has apparently never heard of lynx browser. He wasted | $40 and a lot of time because of that! | x87678r wrote: | This looks awesome. I was looking for a solution like this last | year. I budgeted a few hundred bucks but couldn't find anything. | Ideally would have a way to handle a few different boxes. | | I did see something called Intel AMT, part of Intel vPro. | https://www.howtogeek.com/56538/how-to-remotely-control-your... | Does anyone have experience with this? (I have AMD box so doesn't | help me) - actually looks like AMD has similar | https://developer.amd.com/tools-for-dmtf-dash/ | mixmastamyk wrote: | Is it trustworthy, or full of backdoors? | Haemm0r wrote: | It works, however you need a non-free special client called VNC | Viewer Plus [1]. Afaik it is Windows only. You can enable | regular VNC protocol capabilities for AMT[2], but then you | can't use the interesting stuff anymore. | | [1] https://www.realvnc.com/en/products/viewerplus/ [2] | https://blog.michael.kuron-germany.de/2011/10/using-intel-am... | | //edit: link [2] added. | tyingq wrote: | This seems to show a reasonable option from Linux: | https://www.cyberciti.biz/faq/remotely-access-intel-amt- | kvm-... | vetinari wrote: | You can use meshcommander[1], which has a nodejs version that | runs under linux and mac. | | Then you just have to pay attention to your certs (if you are | using https), because browser policy will apply. | | [1] https://www.meshcommander.com/meshcommander | an_opabinia wrote: | I just set up AMT for a bunch of servers. | | It is possible but extremely tricky to set up AMT headless on a | self built Intel. You basically need to press keyboard keys at | the right time. Too challenging without a display. | | Devices don't load AMT configuration from USB by default unless | a vendor configured them to. In which case the vendor just | ships you AMT enabled in the first place. | | Better to just image the disk on a different computer. | wolfhumble wrote: | If a machine/server doesn't have built in IPMI, I am using an | Adderlink Digital ipeps and control it that way 1). Apart from | the built in RealVNC server, it also has HDMI video, USB and | virtual media support among other things. I have no | relationship with Adderlink, but I am a happy user of this | product. Not cheap, but worth the price IMHO. | | 1) https://www.adder.com/en/kvm-solutions/adderlink-digital- | ipe... | cr3ative wrote: | AMT is great. I use it with https://www.meshcommander.com/ - | though learning how to provision the machine correctly in Admin | Mode so it doesn't pop up a pin-entry screen on the remote end | is "fun"! | R0b0t1 wrote: | vPro is error prone and may require multiple setup attempts. If | you want to use it on anything but the same LAN there is a | built-in VPN. If you can find anything about the AMD version | I'd be interested, they don't seem to publish anything unless | you are a partner. | close04 wrote: | Here are some AMD tools, docs are thin on the ground. [0] | | I have a boatload of Intel vPro machines spread throughout | multiple countries (or the basement) and connect to them both | via internet (mutual TLS authentication) and VPN. Never had | any reliability issues at provisioning or operating. I had an | old AMT v2.1 machine that was a bit unreliable, needed to be | manually powered on once in a while or the remote connection | wouldn't work. | | I wholeheartedly recommend Meshcommander [1] for this. | | [0] https://developer.amd.com/tools-for-dmtf-dash/ | | [1] https://www.meshcommander.com/meshcommander | wjdp wrote: | Not tried anything like this before: looking at TinyPilot and Pi- | KVM which one should I use? | | I'm happy doing some soldering. Is there anything that TinyPilot | has that Pi-KVM doesn't? | | Has Pi-KVM added support for the HDMI dongle you used? | mtlynch wrote: | Thanks for reading! | | I'd say, in short, Pi-KVM is more feature rich, while TinyPilot | is simpler and more approachable with less functionality. | | Pi-KVM has several nice features that TinyPilot doesn't yet | have, including power management, mouse support, | authentication, TLS, and USB storage mounting. | | TinyPilot has a quicker install. Pi-KVM requires you to compile | the OS locally, which takes about an hour. If you've got a | Raspberry Pi OS system (aka Raspbian) already, you can | configure it for TinyPilot with two commands, and the install | takes 5-10 minutes. | | One of my goals with TinyPilot was to avoid a requirement for | soldering/jumper cables, but if you don't mind soldering, that | might not matter much to you. Pi-KVM works without soldering as | well, but the documentation assumes soldering/breadboards. | | I hope that there's space for both projects, and Max and I have | talked about ways to potentially collaborate. | mdevaev wrote: | Pi-KVM can do all the same, and it also supports IPMI, VNC, and | Mass Storage Device emulation. The only difficulty is that for | the USB dongle to work, you need to add a couple of options to | the config, because it's not yet supported out of the box. | Everything else will work on its own. | cptnapalm wrote: | I tried something like this, but instead of a KVM, a remote | "terminal" for multiseat in Linux. usbip worked fine, but I | couldn't get video to work for a damn. The idea was to have the | main computer stream video from one seat to the RP and act as a | client for the keyboard and mouse attached to the RP using usbip. | Had I been able to get the video portion to work, then next step | would have been setting the RP to boot to a fullscreen vlc (or | what have you) which displayed the gdm login screen from the main | computer. | rglover wrote: | This is great, Michael :) One question before I buy... | | I'd like to use these to do development work like you suggested, | too. Is the Hacker option the build with the best latency/least | issues (set it and forget it)? | mtlynch wrote: | Thanks for reading! | | Honestly, the overhead from TinyPilot is so small that it's | just a question of how powerful you want the device for other | activities. | | Here's a screenshot I took earlier today on a Pi 4 with 2 GB of | RAM. TinyPilot is streaming video over WiFi, and top shows that | it's only using ~4% of CPU and ~2% of RAM: | | https://imgur.com/GadzDOr | [deleted] | ape4 wrote: | Sorry to ask but what's it cost to buy a KVM over IP device? | EvanAnderson wrote: | You're not going to find a decent one sub $500. Used devices | can be had for less, but most of the older ones I've seen use | terrible Java-based clients that are a major pain to get | running on modern browsers. For multi-device KVMs you usually | have to figure in the prices for the individual interface | module dongles that plug into each computer, too. | | StarTech makes a USB-to-KVM that looked promising to me, but | it's still >$400: https://www.startech.com/Server- | Management/KVM-Switches/Port... | ape4 wrote: | Thanks and that StarTech doesn't have HDMI. Maybe its cloud | VMs that are removing the need for KVM over IP. I still want | it. | AaronFriel wrote: | I wouldn't say cloud VMs have removed the need, they've | just made infra admins have to live without it. For the | most part it's fine on well supported and tested OSes but | before the container/kubernetes revolution I managed some | personal VMs with esoteric distros in various clouds and so | many things have to go right for that to work. A bad update | or install of grub, initrd, dhclient, a handful of system | services and maybe systemd, or sshd and the machine is | effectively dead. You have to attach the disk to another | machine to debug it. | | A more extreme example was when I went down the rabbit hole | of trying to set up remotely unlocked full disk encryption | on a cloud, just to see what was possible. This was maybe | 4-5 years ago. This involved a pre-boot environment that | would run from memory only, packaged into an initramfs and | used dropbear as an ssh server to accept a connection. | | I really, really wish cloud VMs had virtual KVMs. It turns | out, it's really easy to mess this up, and when you do | recovery is Non Trivial. | | The best I found was that Azure's cloud allows you to | connect (read/write!) a virtual serial port via web | interface so you can use the Linux serial console to | recover. That was a game changer for playing with this. If | dropbear failed to come up, I _at least_ got a shell into | the pre-boot environment. | rob-olmos wrote: | Google Cloud also provides read/write serial ports over | SSH: https://cloud.google.com/compute/docs/instances/inte | racting-... -- but I think AWS still doesn't. | | One thing I've ran into was root not having a password | since the cloud images are typically SSH key auth only. | That was annoying when trying to fix something simple | like iptables or entering maintenance mode for a disk | check. | AaronFriel wrote: | Thank you! I wasn't aware this was possible back then. | I'm glad they implemented this. | ed25519FUUU wrote: | I can't tell if the USB port that usually delivers power is the | only one that supports "USB Device Mode" (USB OTG). Can someone | confirm? If I could use _any_ port, then there would be no need | for powering the pi with a serial USB adapter. | radiowave wrote: | From memory, this is correct. It's only the USB-C port that | allows OTG operation. I remember a while back seeing someone | selling a special splitter cable for the rpi4 which provided 2 | separate USB connectors, one for powering the rpi and one for | attaching the pi as a gadget to a USB host port. But I can't | remember where I saw it, and haven't been able to turn up a | link to it. | bsharitt wrote: | Nice, I had thought about an HDMI capture device but plugged it | in, played with it for about 5 minutes trying to tune out the | latency(I'm not exactly and ffmpeg pro) and didn't make much head | way. I was also using either a pi 2 or 3, so that maybe have been | part of the problem too. I'm glad someone actually had the time | to see it through and put together a solution. Having one of | these would have been super useful the past few days when I was | having kernel panics due to a failing root disk on my home | server, but I had any spare monitors stored away because I'm in | the middle of moving. I'll have to give this a look once I get | all settled in again. | martinmunk wrote: | I've long considered creating a KVM IP thingie for VGA video with | a BeagleBone Black. IIRC the PRUs (200mhz coprocessors) and the | on-chip ADC should be fast enough to sample the video as-is, and | have DMA access into main-cpu ram. | dannyw wrote: | Hey OP, I was reading your linked HomeLab article and you | mentioned you'd rather have gotten a mobo with integrated GPUs | next time. | | Actually, motherboards do not include integrated graphics, it's | all in the CPU/APU. The mobo you linked would not provide | graphics either. | | AMD unfortunately does not have a high end APU released to | consumers right now (there are some 4000 series, but only to OEMs | I believe). However, for a HomeLab setup, you might find a cheap | GPU to be useful for many things (including hardware video | transcoding). | mtlynch wrote: | Thanks for reading and for the note! I didn't realize that | about display not being available on motherboards generally. | | I just built a new homelab server and ended up buying a | separate GPU again. My new mobo is the SuperMicro | MBD-X10DAL[0], which has no onboard display. | | [0] https://www.supermicro.com/en/products/motherboard/X10DAL-i | cptskippy wrote: | > Actually, motherboards do not include integrated graphics, | it's all in the CPU/APU. | | You should probably qualify that as current generation. There's | plenty of last gen Intel and AMD solutions with onboard | dedicated graphics. | | I think the advent of GPU acceleration in servers and APUs for | low end machines has impacted demand for these motherboards in | current gen products. | PaulKeeble wrote: | I have MSI 450 MITX board and a Ryzen 3600 that is doing | NAS/homeserver duty and it refused to POST without a GPU | plugged in. Given its MITX and it only has a single slot | needing it for PCI-E is a real pain, I intended to use it for | SATA ports so it hurt my plans quite a bit. | | Its motherboard dependent but its definitely something to check | with AMD Ryzen motherboards. | dsr_ wrote: | For years and years, many motherboards _did_ have graphics sets | integrated in. These days, you 'll still see that on a lot of | server-class motherboards. | | e.g. | https://www.supermicro.com/en/products/motherboard/M11SDV-4C... | -- the line about AST2500 BMC graphics? That runs a VGA port. | btown wrote: | I'm guessing the rationale for this is that even if the | server's CPU can support onboard graphics, you wouldn't want | to change the CPU's load profile just by plugging in a | monitor to debug something? Or even to support CPUs that have | no onboard graphics support? | dsr_ wrote: | Mostly the second -- the high end Intel and AMD CPUs don't | have integrated graphics, and nobody wants to spend | precious PCIe slots on a graphics card that won't be used | except at install time and emergencies... or is more useful | as a GPU slot that never produces video output. | numpad0 wrote: | That MacroSilicon MS2109 capture is super interesting! $11 | shipped for 1080p30 capture is unbeatable. I wonder what kind of | host SBC is going to be necessary to build a clone BlackMagic | ATEM Mini without choking up USB bandwidth. | mmastrac wrote: | A USB 2.0 device can use up to 480Mbps and MJPEG is on the | order of 10s of Mbps (estimated), so I don't think you're | anywhere near needing to worry about bandwidth. | | Your biggest complication will be real-time re-encoding and | compositing with effects. | numpad0 wrote: | I can't believe it until I see it. I've seen USB EHCI choke | up from just three webcams. | mtlynch wrote: | Ah! That's the name of it. Thanks! I didn't know how to tie it | to any kind of identifier. | devwastaken wrote: | Are there any projects that can do similar but on a VPS? Used to | be a group video service called rabb.it where you could get a | streamed Ubuntu desktop for groups that you can control through | the browser. | tfolbrecht wrote: | Check out Apache Guacamole! "clientless remote desktop gateway" | basically VNC/RDP through a browser | | https://guacamole.apache.org/ | nanomonkey wrote: | KVM = Keyboard, Video and Mouse | | For those, like me, who were ignorant of this particular use of | KVM, and couldn't find it in the article or comments. | superkuh wrote: | The hardest part of this seems to be the V in the KVM and the | solution of the author's is pretty neat. But I think things could | still be improved by dropping his keyboard/mouse setup and just | switching to the standard: barrier/synergy, | https://github.com/debauchee/barrier | jseutter wrote: | While Barrier works well, TinyPilot is more capable. TinyPilot | gives you full control of the remote machine, including BIOS | screens. With Barrier you rely on having Barrier running on | both machines, so you can't use it for things like reinstalling | an operating system. Or fixing a machine that won't boot. | mtlynch wrote: | Thanks for reading! | | I'm not familiar with Barrier, but is my understanding correct | that it requires software running on the target computer? If | that's true, it wouldn't work for things like installing a new | OS or managing BIOS because you'd have to wait for the computer | to boot up fully before you're able to enter keyboard or mouse | input. | Neil44 wrote: | I got a cheap Lantronix Spider KVM from eBay, it works quite | well. Mine was an older VGA model but you can use it with a DP or | HDMI to VGA adapter. | somethingwitty1 wrote: | Awesome! I could have built this with what I have at home, but I | purchased because this is something worth supporting. | mtlynch wrote: | Thanks for reading and for purchasing! | mudkip wrote: | This is pretty cool (for managing servers cheaply), but I remain | disappointed that remotely controlling computers over a network | with low latency is still a difficult task. I've been trying to | find a way to use a bunch of machines remotely over my LAN (for | gaming / media playback on multiple devices), and have been | somewhat disappointed at the quality / latency of the various | options I've played around with. It's especially disappointing | when you have 10gbps networking, and sending uncompressed 1080p60 | video over over the network with a couple ms of latency should be | trivial, from a bandwidth perspective. Obviously this is a | different problem than what you're trying to solve (remote | management, so you have to do HDMI + USB stuff in hardware, | adding some latency), but it's still annoying that there aren't | great lower latency software options. | xiao_haozi wrote: | Steam link does it, and fast enough to play games with no | noticeable latency. | | Not sure what the magic is, though. | baq wrote: | the latency is absolutely noticeable, the human brain adapts | quite well though. i've switched mid-playthrough of ori and | the blind forest (highly recommended btw) from a link to | native 144hz and was blown away how easy the game has become | :) | | the point still stands: most games are very playable via a | steam link. | mudkip wrote: | I haven't tried Steam Link yet, but I might give it a shot. I | was originally looking for purely remote desktop stuff for a | combination of managing computers and gaming, so I was mostly | testing stuff not specifically marketed to gamers. Ideally | I'd also like something that does software<->hardware (at | higher latency obviously), so I can stream older computers or | game consoles to a variety of devices as well. | | I did end up trying Parsec, since I saw some people | recommending it, and that was terrible. Latency was fine | (~10ms software <-> software) and video quality was alright, | but audio quality was terrible despite being set to the | highest option - which is especially bad, because there's no | option to send uncompressed audio, and whatever "optimization | work" they were doing to reduce bandwidth made their entire | product unusable, despite the fact that there's no need to | try saving 1mbps over a wired LAN. | fock wrote: | the cool thing about this solution seems also, that it | conveniently alleviates the "need a screen"-problem of the | windows-screencapture-approach. | mindslight wrote: | SPICE (virt-viewer) performs well enough for my every day web | browsing with VMs. The performance is annoying but adequate | over wifi/WAN. | mudkip wrote: | I'm curious how well this works over a LAN - over a WAN, my | expectations are way lower because of actual limitations from | going over the internet, so I'm fine with some latency / | quality loss. | mindslight wrote: | Sorry, I was trying to imply that it does work great over a | wired LAN. I run my everyday browsers on a separate | physical machine, communicating over gigabit ethernet. | Videos with sound generally play fine, although I often | youtube-dl longer ones for usability's sake. The main | source of flakiness I've had is from opening too many tabs | in low-memory VMs. | SparkyMcUnicorn wrote: | Have you tried out https://github.com/moonlight- | stream/moonlight-qt ? | | If all your host machines are Windows 8+, then Parsec is | fantastic and has clients for every major OS other than iOS. | mudkip wrote: | I looked into Moonlight, but don't have any nVidia cards | laying around here to test with. | | I tried Parsec on one machine and was super disappointed. | Video quality and latency were fine, but audio sounded like | crap, despite streaming at 512kbps. Since there's no option | to stream uncompressed audio, and no debug options to figure | out why it sounded so terrible, I had to write off their | entire product as unusable. | ed25519FUUU wrote: | Really neat project. Small optimization, you can use the RPI's | gpu accelerated h264 decoding and free up a lot of CPU: | | Change: ffmpeg -vcodec libxh264 | | To: ffmpeg -vcodec h264_mmal | mtlynch wrote: | Thanks, good tip! I ended up not using ffmpeg after I | discovered uStreamer, but this is a good trick to have in my | back pocket. | fowl2 wrote: | Interesting! I wonder if it'd be possible to skip the capture | card and have the pi act as a USB graphics adaptor. | | Most firmware environments probably don't support them I guess. | twicetwice wrote: | There was another approach to the same problem posted on HN just | yesterday[0], which took a very different route! Very interesting | to compare/contrast the two appraches. That one doesn't do video, | just gets you a terminal. (Not sure if it would let you mess with | the BIOS or install a new OS like this one does? Not familiar | enough with serial ports to assess.) | | But anyway, TinyPilot is super cool! I'd love to get it set up | one day. And the "life story" as to how it came to be was really | neat, and made me feel like I understood the whole solution. | Great article! | | [0] https://news.ycombinator.com/item?id=23915777 | vidanay wrote: | I'm all in favor of cool projects, and I have done my fair share | of useless experiments. But wouldn't it just be simpler to attach | a dumpster-sourced monitor and keyboard to the server in question | for the 3-4 times a year you brick it? To me the idea of a | locally placed 1:1 KVM "switch" (huh? it's not switching anything | if it's 1:1) is crazy. It makes sense if it is remotely located, | but not if it's within your own home. | CyberDildonics wrote: | Remote monitors like this are occasionally used in offices so | that powerful workstations can be put in racks. I'm not | completely convinced it is a great idea, even for that | application, but it does get used in those instances quite a | bit. | toomuchtodo wrote: | Makes sense if you want the flexibility to do it from anywhere | over IP, even across the house. | cm2187 wrote: | Every time I update windows and reboot, I never know if the | server is bricked or if it is just windows taking ages to | update. | | Also if you use TPM / full disk encryption for a server in | colocation, it only takes a firmware update for TPM to request | to reenter the key on reboot. | mtlynch wrote: | Thanks for reading! | | > _But wouldn 't it just be simpler to attach a dumpster- | sourced monitor and keyboard to the server in question for the | 3-4 times a year you brick it?_ | | Maybe it's just personal preference, but I'd much rather plug | in a Raspberry Pi than a whole monitor and keyboard. My server | is tucked away in the corner without a good desk surface to | place a keyboard and monitor. | | With the Pi, I can just plug it and go back to my desk and do | everything through the browser. It's also nice for when I have | to Google things about why it's not booting, I can just do it | from another browser tab rather than physically walking back | and forth between computers. | detaro wrote: | not sure why you talk about "switch"? The word never appears in | the article? | | And at such a no-brainer price (especially if you already have | a Pi), kind of worth it just to avoid the hassle of moving a | screen around. | vidanay wrote: | https://mtlynch.io/tinypilot/raritan-kvm.png | mtlynch wrote: | I think the confusion is that the original comment was | worded as if _I_ called TinyPilot a switch, but I think you | 're actually saying you think it's strange that Raritan | calls _their_ device a switch, despite the fact that it 's | only 1-port. | dewey wrote: | Of course it would be simpler, but it's also addressed multiple | times in the blog post why he decided to do it anyway. | | I'm glad he did because it looks like a fantastic project. | Naac wrote: | This is a great writeup. | | I wonder if this can be extended to connect multiple servers to a | single Pi. | EvanAnderson wrote: | This looks great. To be useful in the datacenter environments I | work in such a device would need VGA capture, though. Most | servers don't have HDMI ports in my experience. | | Anybody know of a good, cheap V4L2 USB-based VGA capture dongle? | louwrentius wrote: | Most servers have built-in IPMI. | diabeetusman wrote: | Could always add another dongle with something like this: | https://www.amazon.com/dp/B07BKYBKGP maybe? | bserge wrote: | Most obvious choice, but the USB port might not be able to | provide enough power. You could splice in an external adapter | with a bit of work, though :) | Nexxxeh wrote: | I've used one of these a couple of time and they work great, | not yet hooked up into the HDMI cap device but can test if | anyone is interested. | Nextgrid wrote: | Not sure if they are still easily available but look into | https://blog.benjojo.co.uk/post/userspace-usb-drivers. | crypt1d wrote: | KVMs have been a the bane of my existence over the last 10 years. | Almost 99% of the time they come with some ancient Java | dependency that breaks on any modern OS and is barely usable. Not | to mention the nightmare-ish KVM experience big players like OVH | and Hetzner provide. | | This is a superior solution to all of them. | louwrentius wrote: | No. Modern IPMI is HTML5 based. Lightyears better than the old | java/.net clients or this (awesome) hobby project. | Severian wrote: | You could also probably add power/reset functionality by hacking | something like this: | | https://www.amazon.com/SilverStone-Technology-Wireless-Compu... | | Or possibly just wiring up a transistor to the power button pin | (not sure if it sources or sinks) between motherboard and the Pi, | and just hold it high until it boots. | fuzzy2 wrote: | Very nice. I've been looking into the same thing, with a | different video grabbing method though: A HDMI-to-CSI bridge | (Auvidea B101/B102). Hopefully, this could somehow work with a | Raspberry Pi Zero W, which is very compact and also supports USB- | OTG. Unlike the Raspberry Pi 4, a single USB port can easily | power it. | | Unfortunately, the much more powerful B102 bridge isn't | available. :( | bronco21016 wrote: | Because of COVID my work on the road has come to a screeching | halt. I was always using my iPad with an external keyboard for | nearly everything and became really accustomed to having iMessage | always a key command away. | | Now I work at home at a desktop with Ubuntu. It's a huge | disruption to use iMessage now as I have to switch | devices/keyboards. | | I had the thought of doing almost exactly this with the | Ligthning-> HDMI adapter and some form of Bluetooth keyboard | emulation. I can't wait to build one of these and start | experimenting. | rjeli wrote: | oh, i wrote software that does this over airplay wifi mirroring | and a bluetooth dongle as a mouse. i gave up because I couldn't | convince my phone to take a tablet hid profile for seamless | mouse capture. it's messy but I'll throw it on github in a bit | annoyingnoob wrote: | A cool solution to a common problem. | bserge wrote: | This is some great timing, I might need a KVMoIP setup soon and I | couldn't find anything cheap. Very nicely written article, | thanks! | mtlynch wrote: | Awesome, glad it was helpful! Thanks for reading. | mtlynch wrote: | Author here. Happy to answer any questions or take any feedback | about this post. | simlevesque wrote: | How would you remotely connect to something like this ? using | something like ngrok ? | mtlynch wrote: | Yeah, I haven't looked into that much because everything is | on my local network. ngrok looks like it would work. One of | my users is looking into remote.it, which seems like a | similar service. | gyrgtyn wrote: | zerotier | jimatremoteit wrote: | I work for remote.it. If you or your users need any help | setting up remote access to the TinyPilot let us know. This | looks like a great application. We can make ssh/VNC/http on | the Pi available remotely over internet as a free service | no problem. | mtlynch wrote: | Oh, that's awesome. Thank you! | fock wrote: | or VPN on your router? or just get a VPS and run wireguard. | ghaberek wrote: | Would a Pi Zero W work for this, or do you need a full-size Pi | 4? I would think that with the HDMI dongle doing the hardware | MJPEG encoding, a Pi Zero might suffice. It'd be really neat to | A) bring the cost down another $30 and B) be able to package | everything into a tiny 3D printed case. | Nexxxeh wrote: | The immediate issue would be the Pi Zero W only has one | usable (micro)USB port, the other port is Power In only. If | you run it for OTG, you can't use it for the dongle. | | There would be ways around this though, perhaps using a cheap | microcontroller for the USB HID stuff. | ghaberek wrote: | Yeah I forgot that only one of the USB ports actually does | data. I guess you could use a Teensy that interfaces | through the GPIO pins and pretends to be the keyboard and | mouse. | Nexxxeh wrote: | That's what I'm thinking, or worst case, one that | communicated via USB to TTL adaptors. Or an ESP-based | board that connects over WiFi. Or BT-enabled board. | | Combined with a HDMI switch, you could then control | multiple devices with just one Pi+Cap device. | | I've been looking to do something similar for a while, | albeit possibly with Windows as that's where I've (very | rusty Delphi) programming experience. | mtlynch wrote: | Thanks for reading! | | > _Would a Pi Zero W work for this, or do you need a full- | size Pi 4?_ | | I tested Key Mime Pi (the keyboard-only version) on the Pi | Zero W and it worked great. I haven't tested TinyPilot on the | Pi Zero W, but I _think_ it will work. The video encoding is | happening in the HDMI dongle, so it doesn 't hammer resources | much. I don't have a USB to microUSB adaptor on hand, but | I'll order one now and see if it works. | | > _be able to package everything into a tiny 3D printed | case._ | | Yeah, that would be neat! One of the biggest issues I have | with TinyPilot's setup right now is that it looks kind of | like a bunch of random hobbyist parts stuck together. A 3D | printed case would be good and wouldn't have the heat issues | that Pi 4 has.[0] | | [0] https://www.jeffgeerling.com/blog/2019/best-way-keep- | your-co... | cricalix wrote: | You might also be able to use the "standard" radio kit | metal boxes - tap some standoffs, carefully drill some | holes for wires etc. Dunno which works out better for the | world - ordering a pre-fab metal box that you have to do | some work on (or perhaps use | https://www.frontpanelexpress.com/ to get a customised | enclosure), or printing something from plastic. Might | depend on production volume, metal used etc. | trm42 wrote: | Do you happen to have any idea, whether older RPIs like 1 | or 2 could work for this fast enough? Have some of those | laying around. | mtlynch wrote: | The video capture part should work, but I don't believe | they support USB OTG, so they wouldn't be able to | impersonate the keyboard. | | The official documentation[0] says all Pi devices have | USB OTG, but I'm not sure if there's something else about | the Pi 4 and Pi Zero W that allows USB gadget mode | because I've never found anyone talking about using it | before recent generations of Pi. This StackExchange | answer says the A and the A+ had it, but that the 2 | doesn't.[1] | | [0] https://www.raspberrypi.org/documentation/hardware/ra | spberry... [1] https://raspberrypi.stackexchange.com/ques | tions/71613/how-to... | Scaevolus wrote: | I'd expect the Pi Zero W to be fast enough to pass | through the MJPEG stream and impersonate the keyboard, | which should cut the cost by $20+ plus however much you | save on not needing a fancy case. | [deleted] | mtlynch wrote: | Yeah that's true. I stopped thinking about the Pi Zero W | early in the project because I assumed it would choke on | video encoding. When I discovered that the HDMI dongle | was doing the heavy lifting, I forgot to revisit that | assumption. I'm going to order an USB to micro-USB | adaptor to test it out because it would slim things down | significantly. | Deathmax wrote: | I think you might run into a lack of connectivity on the Pi | Zero W. Since the only data USB port has to run in device | mode, I would assume you can't connect the HDMI capture | device. | wojciii wrote: | Cool project, but what about power management? What happens if | the PC being controlled crashes and does not let you reboot it | using keyboard shortcut? | | I'm might be damaged by testing and working with embedded | development. | zyx321 wrote: | If you need access to the power and reset, you can replace | the respective buttons with a cheap relay switch controlled | by GPIO. If you know what you're doing you can also solder | your own circuit using opto-isolators instead of relays, to | reduce the power draw on the Pi. | hedora wrote: | This isn't a bad choice: | | https://wiki.52pi.com/index.php/DockerPi_4_Channel_Relay_SK | U... | | It's $17 for four relays, expandable to 16. If you wire it | "normal closed" then the relays will only draw power while | it's resetting the other machine. | | However, the relays are only rated for 3 amps. (360W at | 120V). Also, the board is labeled backwards so, the NO port | is normal closed, and NC is normal open. | | Has anyone found something that's similarly plug and play | with a higher amperage rating? | | Edit: this would work as a switched AC outlet (to replace a | four outlet PDU) or for hot wiring the power / reset | buttons. You could do both buttons and the AC line and have | a relay left over. | | I'd feel funny running AC that close to the lower button | wires though (if cross those wires, it will certainly let | the magic smoke out of your motherboard). | fanatic2pope wrote: | Plug it into a smart outlet running tasmota. | mtlynch wrote: | Thanks for reading! | | > _Cool project, but what about power management? What | happens if the PC being controlled crashes and does not let | you reboot it using keyboard shortcut?_ | | Yeah, that's one of the limitations. TinyPilot can't control | power for the target computer. | | I don't know of any way to manage power without connecting | the Pi to the target machine's motherboard, but that | increases complexity significantly. I'm using this for a | homelab, so it's easy for me to walk over and cycle power if | that ever comes up, but for this to support more remote | scenarios, I'd need to address this. | baq wrote: | hook up a gpio pin to a reset switch jumper somehow? | davidzweig wrote: | Wake-on-Lan can handle powering on. It should be possible | to directly connect a RPi GPIO pin directly to the 0.1" | headers on the motherboard.. the power and reset buttons | are just closing a circuit to pull high/pull low an input | pin. Use a 1k resistor between the Rpi and motherboard | headers for protection. | oakwhiz wrote: | Perhaps a fake USB device that issues power or sleep button | requests could work. I had limited success with this on | Linux using an HID keyboard emulator. However this won't | work on a machine that's too far gone to respond to USB, | and that's also an issue with the physical power button as | well. Perhaps an AC latching relay would work to cut power. | wojciii wrote: | APC produces (or rebranded) power control modules you can | control over Ethernet. They are probably expensive. | | There are most likely cheaper products which would work. | You should probably implement some kind of power control | interface that could be used. Calling a shell script would | be enough and some example implementations provided by your | users. :) It doesn't need to be complicated. | Nexxxeh wrote: | A horrible way would be to set the target to power on after | power loss. Plug the target into a WiFi-controlled smart | plug, like the Belkin Wemo. In the event of catastrophic | hard lock, power cycle it at the wall. | | A better way would be a relay and microcontroller, which | you could also potentially use for the USB HID stuff too. | | In theory, you could have a HDMI switch, a single Pi and | HDMI grabber, and just a microcontroller board for each | target machine that could have power button control, | keyboard emulation etc built in. | FatalException wrote: | If the motherboard of the PC being controlled supports Wake- | on-Lan that may be a viable option to send a packet from the | local subnet to boot up the computer. | https://en.wikipedia.org/wiki/Wake-on-LAN | swsieber wrote: | If you can plug stuff into it, just use the KVM from a laptop | and sit by it. | tootie wrote: | If this just requires USB and HDMI, it should theoretically | work identically a for Mac Mini or even something like a Fire | TV, yes? Is there an upper limit on resolution and frame rate | for the dongle? | mtlynch wrote: | > _If this just requires USB and HDMI, it should | theoretically work identically a for Mac Mini or even | something like a Fire TV, yes?_ | | I believe so, but with the caveat that I haven't tested it. | Does Fire TV take USB keyboard input? | | I have successfully captured video from a Roku Premiere[0], | even though it's HDCP protected. The LKV373A couldn't capture | anything out of it, but the $11 dongle did just fine. But | that was just video capture. I didn't have a way of sending | input to the Roku. | | > _Is there an upper limit on resolution and frame rate for | the dongle?_ | | Yes, the limit is 1280x720px @ 30FPS. | | [0] | https://twitter.com/tinypilotkvm/status/1277994838210875392 | Uhhrrr wrote: | I love how this is a project which puts together several | different projects which are themselves the product of | significant amounts of effort: RPi, the HDMI-USB dongle, the | browser, and uStreamer. I think we are in for an interesting | decade or so of people plugging things together like this. | | I'm curious why you use the browser instead of ffplay for | decoding and display. I'd guess ffplay would be faster - but | maybe not? | mixmastamyk wrote: | For one, it wraps the screen and input into one window. Using | two would be unwieldy. | fock wrote: | and today I was wondering how to solve the video problem! | that's great timing. | tlamponi wrote: | Really nice, exactly what I need just now as I'm setting up a | remote workstation/part-time server at my families farm, but | did not have a motherboard with IPMI/iKVM at hand. | | Oh, and thanks for using Proxmox VE! Was positively surprised | when I saw our installer flash up out of nowhere :) | mtlynch wrote: | Wow, thank YOU for making Proxmox! I'm switching over after | three years of Kimchi[0], and Proxmox does everything so much | better. | | [0] https://github.com/kimchi-project/kimchi | silverp1 wrote: | Any thoughts on how this could work with VGA for example? | mtlynch wrote: | I believe it should work with a VGA to HDMI adaptor, as | another commenter suggested[0], though I haven't tested this | personally. | | [0] https://news.ycombinator.com/item?id=23928401 | da39a3ee wrote: | This isn't an area I know anything about but I really enjoyed | your write-up (I still don't know what KVM stands for! But I | get that you wanted to act as a physical keyboard and display | over IP). From a quick skim of your site it looks like you've | worked at large companies and now are doing some independent | projects. Do you think you'll go back to working for a company | (perhaps a smaller one?), or do you see yourself working | independently for many years? I ask because (a) I'm also | casting about at a similar point in my career doing independent | projects, but (b) I've never worked at a truly large company, | and (c) (someone like) you seem(s) like you'd be a great | colleague to work with, and (d) my vague ambition is to work | for a small company with skilled colleagues that I can learn | from and to work on "technical" projects as opposed to product | development but (e) I guess, when I see talented people such as | yourself apparently rejecting the conventional job market, I | partly infer that they've looked at what's on offer and | declined and thus that I'm deluding myself in thinking that | I'll find something in the conventional job market that I | really want. | mtlynch wrote: | Thanks for reading! | | > _I still don 't know what KVM stands for!_ | | Oh, keyboard, video, mouse. The article does define it, but | it's a little buried. | | > _From a quick skim of your site it looks like you 've | worked at large companies and now are doing some independent | projects. Do you think you'll go back to working for a | company (perhaps a smaller one?), or do you see yourself | working independently for many years?_ | | I'd love to continue working for myself forever. My ideal | would be if I could find a business sustainable enough that I | can hire 2-5 developers and other teammates to work with me. | If I did have to go back to being an employee, I'd probably | lean toward something smaller. | | It's very much about your temperament, what type of work you | enjoy, and how much you value flexibility and autonomy. A | good way to test the waters is by building a side business | and see if you enjoy it more than your job. You can also | read/hear more about the lifestyle in places like Indie | Hackers[0], Starter Story[1], and WIP[2]. | | But I agree with you that you pass up certain kinds of growth | by working on your own. I'm happy that I had ~10 years of | experience with big companies before doing my own thing. I | learn a lot on my own, but I don't think I could have learned | a lot of my software "craftsmanship" kind of skills (e.g., | designing for maintainability, creating repeatable, well- | documented processes) had I not worked for Google and | Microsoft. | | [0] https://indiehackers.com | | [1] https://starterstory.com | | [2] https://wip.chat | PaulKeeble wrote: | Have you looked at a solution for controlling the power on/off | yet? This was something I was considering to do with a | Raspberry PI and a relay and I figure it is the final part of | the solution for when the machine inevitably crashes. | Admittedly if its just across the room it was less of a concern | but I have had the need to restart while I was away before and | it would be nice to be part of the solution. | MayeulC wrote: | This is a pretty simple thing to achieve electrically, just | plug something instead of the power button inside the | computer. You likely just need one mosfet. If soldering is | too uncomfortable, you can find relays to control the main | power supply (requires screwing a power supply cable and a | couple dupont connectors). | | If you don't want to touch anything related to electronics, | you could rely on enabling a watchdog on boot-up. Or control | if from a smart power supply (you likely have a UPS plugged | in, for instance). Use the power after power loss BIOS | feature, or WoL to wake it up. | pdevine wrote: | Dude, thanks so much for this. I have a loud machine I'm using | for ML stuff and I've been reluctant to move it to the basement | as I didn't want to have to run downstairs with a monitor for | the odd issue. I also looked at KVMs and was annoyed at the | prices. I have a R Pi sitting here I was looking to do a | project with. This is perfect! | mtlynch wrote: | Oh, that's great! So glad it was helpful! | tinco wrote: | This is epic, I run a small computer cluster using workstation | hardware (AMD 3970X's) and no IPMI boards exist. If I get some | time I might build 7 of your little system to manage them all. | Thanks! | mtlynch wrote: | Awesome! I'd love to hear how it turns out. | C1sc0cat wrote: | Oh nice I will have to look into this as I was considering Using | a dual pc set up for streaming and this would be great for | controlling the second pc (mac mini) | | I want to have main pc for running ROLLd20 and a daw - then use a | mac mini to run the processed audio from my DAW into hangouts. | | This is so I can properly play in audio and , music cues as well | as altering my voice to suit the character eg a galdos style for | a robot | lukevp wrote: | You could probably do this with the loopback features of a | podcast style interface and not need a second computer. The one | I use is the MOTU M4, the M2 is a little cheaper. | | https://m.youtube.com/watch?v=IKjKymjc_R8 | C1sc0cat wrote: | Yes I have looked at virtual loop back like Voicemeeter and | might be able to do it with the routing aspects of the | focusrite software. | | It is of course the sort of thing that should be baked into | the OS. | mtlynch wrote: | Thanks for reading! | | I'm not an audio guy, so I can't comment on how well it would | suit that scenario, but it sounds like a neat pipeline, and I'd | love to hear about it if you end up building it. | C1sc0cat wrote: | I was more a better way of remote controlling the mac vnc | works but its a bit crap. | | The main idea was for GM's to use mood music to set the tone | or for audio effects the classic red alert should for a sf | based game. | | What I wanted it for was real time voice changing for | character voices - basically the flanged goa'uld or the | glados formant shifting robot voice or the classic Dalek | voice | babuloseo wrote: | great blog post! will try to watch the video at some point. | NietTim wrote: | Great little project! I had no idea capture cards got that cheap | mtlynch wrote: | Thanks for reading! Yeah, my understanding is that these | capture cards are fairly recent. I think my timing was pretty | lucky because a lot of earlier projects had to do HDMI->S-Video | and S-Video->USB[0] to keep costs down because there weren't | any inexpensive HDMI->USB options at the time. | | [0] https://github.com/Fmstrat/diy-ipmi#setting-up-the-hardware | jwatzman wrote: | If you're looking to buy the card in the article, I just got | one of these https://www.aliexpress.com/item/4000958505670.html | which looks to be exactly the same card, and doesn't require | scouring eBay. I haven't done much with it yet, but can confirm | that it arrived to me in the UK with no issues, and seems to | work from a quick test. | fulafel wrote: | A major con of the enterprisey ilom systems (such as the idrac) | is their atrocious security track record. You are basically | giving up your "the network is untrusted, I can survive its | compromise" badge if you plug in one of those. | parliament32 wrote: | Well those ports should never face the internet anyway. Most | servers will have a dedicated (physical) port you use for IPMI | or whatever -- vlan that and only allow access from your VPN. | If you're extra secure you can full on disable the switchport | until you need it. | fulafel wrote: | This fail-open "should" is bad besides for the obvious | reasons, also because it'll be extra ops complexity compared | to a secure kvm widget that you don't have to handle with kid | gloves. | | (And thirdly because of the sibling comment noted footgun.. | or silent foot-boobytrap more properly) | parliament32 wrote: | The problem is BMC has an astounding array of features[1] | that are worth the operational complexity. This isn't just | KVM like in OP's post... being able to remote mount images | is a godsend when you're provisioning a server or | diagnosing hardware issues or doing a BIOS update on the | other side of the globe (with your other alternative being | shipping a flash drive[2], then paying $200/hr for DC | remote hands to plug it in for you). | | [1] https://www.supermicro.com/en/solutions/management- | software/... | | [2] don't even try to talk about PXE booting if you've | never tried to get DHCP+BOOTP to work over a WAN | extrapickles wrote: | Make sure in the BIOS to disable fallback to one of the other | ethernet ports. Quite a few IPMIs will listen on eth0 if it | looses the dedicated IPMI port link by default. | iron2disulfide wrote: | This is cool. Any chance this would scale for many machines? I | have a ~15 machine lab with no KVM setup right now, and could | really use something like this if it works for a large number of | devices. | mtlynch wrote: | Thanks for reading! | | I don't think there's a way to get the Pi to capture video or | impersonate keyboards for more than one computer at a time. | | A neat idea a friend proposed to me was to buy a "dumb" KVM | that supports switching through keyboard hotkeys and use that | to scale it to multiple machines. See my comment here: | https://news.ycombinator.com/item?id=23928251 | jolmg wrote: | I'm not really into electronics, but I imagine it wouldn't be | that difficult to control the switch of a cheap KVM-switch with | the GPIO pins of the RPi. One might even control multiple KVM- | switches and daisy-chain them. | iron2disulfide wrote: | Haha, I am kind of the opposite: I work on electronics, and | am not much of a sys admin. One of the problems I've run into | is that I haven't found a single switch solution with enough | connections. I _could_ build a multi-level multiplexer with | many switches, but that 's too much effort. If TinyPilot can | support multiple KVM-over-IP connections, it would be a | perfect fit for me. | jolmg wrote: | > If TinyPilot can support multiple KVM-over-IP | connections, it would be a perfect fit for me. | | RPis only have 1 OTG port, though. A device that could get | it to handle more machines with that single port would | functionally be a KVM-switch. I don't think there's a way | around that. ___________________________________________________________________ (page generated 2020-07-23 23:00 UTC)