惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
The GitHub Blog
The GitHub Blog
V
Visual Studio Blog
G
GRAHAM CLULEY
Spread Privacy
Spread Privacy
Last Week in AI
Last Week in AI
腾讯CDC
P
Privacy & Cybersecurity Law Blog
WordPress大学
WordPress大学
C
Cybersecurity and Infrastructure Security Agency CISA
Security Archives - TechRepublic
Security Archives - TechRepublic
博客园 - 司徒正美
爱范儿
爱范儿
雷峰网
雷峰网
The Hacker News
The Hacker News
S
SegmentFault 最新的问题
Cisco Talos Blog
Cisco Talos Blog
博客园 - 聂微东
T
Tor Project blog
I
Intezer
大猫的无限游戏
大猫的无限游戏
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Schneier on Security
Schneier on Security
T
Tenable Blog
Google Online Security Blog
Google Online Security Blog
S
Schneier on Security
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
AI
AI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
宝玉的分享
宝玉的分享
Help Net Security
Help Net Security
O
OpenAI News
博客园 - 【当耐特】
博客园 - Franky
AWS News Blog
AWS News Blog
罗磊的独立博客
J
Java Code Geeks
Know Your Adversary
Know Your Adversary
A
Arctic Wolf
小众软件
小众软件
量子位
SecWiki News
SecWiki News
S
Security Affairs
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Hugging Face - Blog
Hugging Face - Blog
N
News and Events Feed by Topic
Apple Machine Learning Research
Apple Machine Learning Research
H
Heimdal Security Blog
Google DeepMind News
Google DeepMind News
IT之家
IT之家

Hacker News

Introducing Claude Opus 4.7 Qwen Studio The Future of Everything is Lies, I Guess: Where Do We Go From Here? GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis Moving a large-scale metrics pipeline from StatsD to OpenTelemetry / Prometheus GitHub - Nightmare-Eclipse/RedSun: The Red Sun vulnerability repository GitHub - SethPyle376/hiraeth: Local AWS emulator focused on fast integration testing, with SQS support, SQLite-backed state, and a debug-friendly web UI. GitHub - macOS26/Agent: Any AI, replaces Claude Code, Cursor, OpenClaw. Over 18 LLM providers (Claude, OpenAI, Gemini, Ollama, Zai, HF, Qwen) wired into a native Mac app that writes code, builds Xcode projects, bumps versions, manages git, automates Safari, use AppleScript, JS or Accessibility, extend Agent! w/ MCP Servers, run tasks from your iPhone via Messages. YouTube now lets you turn off Shorts I Made a Terminal Pager Burgers | マクドナルド公式 Commands — HackerNews CLI documentation ChatGPT for Excel PiCore - Raspberry Pi Port of Tiny Core Linux Live Nation illegally monopolized ticketing market, jury finds Google Broke Its Promise to Me. Now ICE Has My Data. Founding Engineer at Adaptional | Y Combinator CRISPR takes important step toward silencing Down syndrome’s extra chromosome GitHub - saffron-health/libretto: The AI toolkit for building reliable browser automations US v. Heppner (S.D.N.Y. 2026) no attorney-client privilege for AI chats [pdf] Unexpected €54k billing spike in 13 hours: Firebase browser key without API restrictions used for Gemini requests Retrofitting JIT Compilers into C Interpreters IPv6 – Google The Accursèd Alphabetical Clock Cybersecurity Looks Like Proof of Work Now Fragments: April 14 Cal.com Goes Closed Source: Why AI Security Is Forcing Our Decision | Cal.com - Scheduling Software for Online Bookings Laravel raised money and now injects ads directly into your agent When moving fast, talking is the first thing to break Too much Discussion of the XOR swap trick – Heather Cafe Introduction to Spherical Harmonics for Graphics Programmers The Grand Line Building a Z-Machine in the worst possible language High-Level Rust: Getting 80% of the Benefits with 20% of the Pain GitHub - duguyue100/midnight-captain: Inspired by Midnight Commander, tailored to my taste. How to build a `git diff` driver · Jamie Tanna | Software Engineer Center for Responsible, Decentralized Intelligence at Berkeley The Local Universe’s Expansion Rate Is Clearer Than Ever, but Still Doesn’t Add Up - A new synthesis of astronomical measurements confirms a persistent mismatch that could point to physics beyond current models The air throughout our homes is infused with microplastics. But there are things you can do to breathe less of them The disturbing white paper Red Hat is trying to erase from the internet – OSnews The Future of Everything is Lies, I Guess: Annoyances ‘Abhorrent’: the inside story of the Polymarket gamblers betting millions on war Productive procrastination — Max van IJsselmuiden maps, territory and LMs 447 Terabytes per Square Centimetre at Zero Retention Energy: Non-Volatile Memory at the Atomic Scale on Fluorographane Show HN: Pardonned.com – A searchable database of US Pardons 20 Years on AWS and Never Not My Job The Seasons are Wrong Artemis II crew splashes down near San Diego after historic moon mission We gave an AI a 3 year retail lease in SF and asked it to make a profit | Andon Labs How a dancer with ALS used brainwaves to perform live On filing the corners off my MacBooks Installing every* Firefox extension OpenClaw’s memory is unreliable, and you don’t know when it will break Steve Blank Nowhere Is Safe Chimpanzees in Uganda locked in vicious 'civil war', say researchers watgo - a WebAssembly Toolkit for Go linux/Documentation/process/coding-assistants.rst at master · torvalds/linux GitHub - callumlocke/json-formatter: Makes JSON easy to read. Founding Product Engineer at Bild AI | Y Combinator A compelling title that is cryptic enough to get you to take action on it GitHub - Keychron/Keychron-Keyboards-Hardware-Design: Industrial design files for Keychron keyboards and mice. 100+ models with CAD assets in STEP, DXF, DWG, and PDF. Source-available, with commercial use allowed for original compatible accessories within the license terms. [ANNOUNCE] WireGuardNT v0.11 and WireGuard for Windows v0.6 Released 1D-Chess Helium Is Hard to Replace Cooperative Vectors Introduction | Evolve Keeping a Postgres queue healthy — PlanetScale Our response to the Axios developer tool compromise Do Americans read print books, e-books or audiobooks more? The Zettelkasten Method in Obsidian: A Practical Setup Guide Artemis II Is Competency Porn and We Are Starving For It WeakC4 Flight Viz — Cockpit View A Mexican surveillance giant you’ve never heard of is now watching the U.S. border Surelock: Deadlock-Free Mutexes for Rust RISC-V 101 – what is it and what does it mean for Canonical? | Ubuntu The Problem That Built an Industry How Much Linear Memory Access Is Enough? | Solidean Investigating Split Locks on x86-64 Simplest hash functions Sybilproof reputation mechanisms (2005) [pdf] What is a property? How Complex is my Code? Static code analysis in Kotlin — tools overview Toffoli gates are all you need PGLite evangelism dcmake: a new CMake debugger UI Clojure on Fennel part one: Persistent Data Structures Fragments: April 2 Python Release Python install manager 26.1 The Life and Death of the Book Review - Liberties Introducing Database Traffic Control — PlanetScale Bitcoin miners are losing $19,000 on every BTC produced as difficulty drops 7.8% God sleeps in the minerals Building slogbox Apple Silicon and Virtual Machines: Beating the 2 VM Limit Who was “Not Even Wrong” first? Pokemon Evolution Vs Darwinian Evolution The APL Programming Language Source Code
Building a serial and VGA "everything console"
2026-06-14 · via Hacker News

Some of our recent (and some upcoming) projects are oriented to systems with serial consoles, but it's been getting pretty old dragging around old CRT terminals or tying up Mac laptops with a serial port. I'd like something that's self-contained, a little more portable and a bit less heavy. I'm sure there's any number of all-in-one setups you can buy to do this, but I'm cheap, so I'm going to DIY it.

We'll start with this used, slightly abused IBM 1U console that I got for $120 (shipped) from eBay, add a terminal emulator, and put all the fixin's on.

Nearly every server company produces one of these. They slide into a regular 19" rack and provide a flip-up LCD screen and keyboard in 1U. This was an IBM 7316-TF3 with a 17" screen and a combo keyboard-mouse slimline keyboard. IBM apparently manufactured these from 2004 to 2014, so it's almost on-topic for this blog, even. I chose it because it was a little banged up and the LCD had some areas of damage (probably improperly closed on something), and the seller had priced it accordingly, but the screen was still sufficiently legible and the keyboard looked fine. Naturally you can do mostly what we're doing here with any of the similar Dell or HP or etc. units that can also be easily found.

The keyboard is an IBM "USB Travel Keyboard with UltraNav" SK-8845RC, the variant with an extra-long cable. This is part of a family of such keyboards including a PS/2 variant (SK-8840), the short cable regular version (SK-8845), and the larger SK-8835 with a numeric keypad.

I actually rather like this keyboard. It's decently space-saving and has a not-horrid tactile feel given its thickness, and of course the lower tray is customized to fit it. Also, being an UltraNav, the fact it gives you a choice of pointing device is rather nice: if you like TrackPoints (I don't hate them), you can use that, or if you prefer trackpads (I don't hate them either but I'd rather use the TrackPoint), you can use that. The keyboard and UltraNav are implemented as HIDs on a single hub which also offers two more USB ports.

The keyboard's USB cable comes out on the other end carried by an extensible folding arm which is how everything stays connected when you pull the assembly forward from the rack. The other cable carried on this arm is the VGA connector.

The screen is "fine." Like I say, there was some damage, probably because it got closed improperly on something and messed up the display, but it's sufficient as a simple terminal or here connected to the M1 MacBook Air with a USB-C dongle.

The only drawback is that it gets a little daft with non-60Hz rates; it's rated to 75Hz, but 60Hz had fewer artifacts. The panel's maximum resolution of 1280x1024 is sufficient for my purpose.

Although the keyboard can be lifted up clear of the tray it sits in, it is only tethered by a single bolt and clip. This is fortunate because of ...

... what we chose for the terminal emulator. Assuming you don't want to build or program this yourself from scratch (and I didn't), there are a few homebrews here that will take a USB keyboard and a VGA screen and a serial port and do the needful, and what you need to do is pick what is the most convenient for you and has the right features. There are slightly more such devices which use a PS/2 port, but I decided to stick with USB since it would be more flexible and if I really needed something else, I could use an active converter like a ps2x2pico for PS/2 or a Wombat for Macs with ADB.

I eventually selected this one from Tattler Solutions (not affiliated) because it ships from the United States (damn you UPS, you still owe me $600 on that tariff you stiffed me on), comes in a nice self-contained case and can be USB-powered, runs up to 115200bps, and has demonstrably good VT100 terminal support. All up it cost me $86 shipped. However, it also has a big drawback: its USB controller does not support combo devices like our IBM keyboard, which he does warn you about, and believe me, I tried really hard to get that to work because I really like the keyboard. Unfortunately, it truly is (and in fairness, as described) a fundamental hardware limitation that can't be programmed around, so that means we can't use our nice UltraNav.

I looked at slimline keyboards on Amazon and found two by Perixx (not associated, not affilated) that looked like they might fit ($20 and $25) and also had a PrtScr key to open the terminal's setup screen. The $25 keyboard would fit but did not sit in the little tray area, so we'll go with the $20 one and I'll find something else to use the $25 one for.

After a quick whirl through the keys to ensure that all the necessary function and control keys could be used and worked with the terminal emulator box, it's time to modify the lower tray.

My expert and exceptionally precise measurements showed that its thinness was just enough to fit in the cleft against the screen, so I got out the silane metal glue and some black-painted mending braces to serve as supports. However, we'll come back to this point.

Measure twice ...

and glue once (after scuffing the undersides with some steel wool and marking everything with silver Sharpie). Ignore what the tube says: this needs to cure for days. The first time I tried it, I tested it out after 24 hours as suggested and while the excess silane glue exposed directly to air had cured, the silane between the metal had only partially done so and the whole thing peeled right off. The second time I let it sit for a week. That seemed stable.

As insurance I also put some Flexseal tape over each support for extra rigidity and to hide the excess glue.

The appearance on the other side. One got a little crooked but it's fine.

To hold the keyboard in position, I then added some Velcro strips left over from another project, with the sticky side out.

The sticky side adhered to the keyboard, and then the Velcro kept it in place. This was nice for typing but also added a small amount of additional thickness I had not considered in my calculations. Again, more later.

Finally threading the cable out the previous hole. I made the cord long enough so the keyboard could be pulled out alongside as necessary. We'll more securely affix it momentarily.

Now for the rest of it. I went down to Target and bought some more Velcro tape and some Velcro cable guides ($21 for both), plus a little miniature power strip with two built-in USB 5V ports ($13), then from eBay bought a couple of "The Best" (that's how you know they're, like, the best) manual USB and VGA switchboxes ($20 for both shipped), and finally pulled out a whole bunch of matching USB and VGA cables from my stock closet. The idea is that this device will have two modes: in one, the keyboard USB and panel VGA will be connected to the VT100 terminal box, and in the other, they will be free connectors to plug into something else (as this unit did originally).

I started with installing the power strip. We'll remove the extension arm since we're not going to rackmount this; it comes off by unscrewing the nut with a pair of pliers and lifting it off the bolt it attaches to. The little plastic loop on this particular power strip nicely fits around the leftover bolt which is embedded in the metal.

The monitor has its own little brick power adapter, which is also (IBM and I think alike, which is moderately disturbing) attached by its own Velcro pad. We'll leave the power brick in place and merely move its power plug to the new power strip by taking off its clip and nut.

One of the Velcro cable strips neatly bundles up the slack in the power cable, and I reattached the nut and clip in a new location to hold the loops in place.

Next I laid out where I wanted the two switchboxes and the VT100 terminal box on the top. The idea is to have the switchboxes face to the side so that I can access the buttons. The "lower" buttons will be for raw USB and VGA, and the "upper" buttons will be for the terminal box.

The terminal box did require some thought. On one side is the USB power connector and the DE-9 ("DB-9") serial port, and the other the USB keyboard and VGA. I would have preferred the power cable to go there also, but since this is what we have, I decided to have the USB keyboard and VGA ports on the terminal box face down nearest the switchboxes. Using a yardstick I made sure everything was symmetric before marking their placements.

After that I attached all three boxes with Velcro tape, and connected the master USB from the keyboard and master VGA from the monitor panel to the switchboxes.

Simultaneously I made sure we had enough length on the keyboard cable, and with everything connected secured the cable in the proper position with its own nut and clip. A little plastic tubule wedges into the exit hole as well.

Now the power connector for the VT100 box. This will be powered directly from the USB on the power strip. I ran this cable from the power strip up along the monitor's power input, then under the box so it would keep it in position and looped it into its jack on top.

Following that we run the remaining USB and VGA cables. One set of USB and VGA cables goes to the VT100 box. The excess cable for this set is looped with a Velcro tie and then stuck onto a Velcro pad so it stays fixed, but can be removed if needed. The other set goes down the centreline with its own set of Velcro ties holding them together until they branch off.

A quick power test.

Finally, we'll put hooks on top of the switchboxes and Velcro cable ties on the ends of the external USB and VGA cables so they can be looped and affixed. A Velcro pad glued to the top of the power cable with its own attachment site completes the cable management.

It's a lot of cables, but they stay in one place, and everything has one.

Unfortunately, a second problem became apparent: the extra bit of height added by the Velcro meant the top of the keyboard was now contacting the screen when the unit closed.

I looked around for some Z-brackets of approximately the right height to match the keyboard and allow it to sink into the tray hole. This set of black steel ones ($9 on Amazon) were roughly correct.

The keyboard front portion is elevated from the rest of the unit, so it is possible to slip the Z-brackets in back to the stepoff where the two meet and secure them there. In this position, however, the side pieces will block the keyboard, so I peeled them off.

This does make the brackets extend lower than the usual bottom of the unit. To deal with that ...

... once the glue on the Z-brackets had hardened, I got a whole bunch of shims and bumpers out of the junk drawer, measured everything, and then installed several pieces to level off the bottom. I think I need a low-mounted crossbeam here to support the keyboard better but I'd have to fashion that out of Z-brackets of different height and smaller size. For the time being the Velcro keeps it in place well enough, it no longer hits the screen (and the unit can now close completely), and I generally use it on flat surfaces anyway. When I think I've got the underpieces all in permanent locations, I'll redo it all with JBWeld since the silane goo can still give way if you bang on it enough.

Proof of function: as a console for the POWER9 Raptor Blackbird, using a VGA-to-HDMI dongle on the Blackbird side.

And as a serial console for an AT&T 3B2/310, which will hopefully be the subject of a future entry if I can get the kernel to come up.

Folded up more flat this time, ready for the next project. A latch and a handle would also help to make this more portable, though I suspect some drilling may be required for that. I'll look at some options. For now, this suffices.