Screenshot of the demonstration video that shows the desktop being unlocked with face recognition, with a camera feed and a terminal showing how the software works.

Open-Source FaceID With RealSense

RealSense cameras have been a fascinating piece of tech from Intel — we’ve seen a number of cool applications in the hacker world, from robots to smart appliances. Unfortunately Intel did discontinue parts of the RealSense lineup at one point, specifically the LiDAR and face tracking-tailored models. Apparently, these haven’t been popular, and we haven’t seen these in hacks either. Until now, that is. [Lina] brings us a real-world application for the RealSense face tracking cameras, a FaceID application for Linux.

The project is as simple as it sounds: if the camera’s built-in face recognition module recognizes you, your lockscreen is unlocked. With the target being Linux, it has to tie into the Pluggable Authentication Modules (PAM) subsystem for authentication, and of course, there’s a PAM module for RealSense to go with it, aptly named pam_sauron. This module is written in Zig, a modern C-like language, so it’s both a good example of how to create your own PAM integrations, and a path towards doing that in a different language for once. As usual, there’s TODOs, like improving the UX and taking advantage of some security features RealSense cameras have, but it’s nevertheless a fun and self-sufficient application for one of the F4XX-series RealSense cameras in case you happen to own one.

Ever since the introduction of RealSense we’ve seen these cameras used in robotics and 3D scanning, thanks at least in part due to their ability to be used in Linux. Thankfully, Intel only discontinued the less popular RealSense cameras, which didn’t affect the main RealSense lineup, and the hacker-beloved depth cameras are still available for all of our projects. Wondering about the tech behind it? Here’s a teardown of a RealSense camera module intended for laptop use.

Linux Fu: Gum Up Your Script

We often write quick bash scripts and judging by the comments, half of us use bash or a similar shell to pop out quick, useful scripts, and half of us think that’s an abomination, and you should only use bash for your command line and resort to something more like a traditional language to do anything else. If you’re in the former camp, you’re probably cursing your allegiance when you need to make your bash scripts more interactive.

Gum can help. It’s a utility that can handle your script input and output with a little flair while requiring almost no effort on your part.

The command looks simple, but it has twelve subcommands, each with myriad options. But you can break down the functions into a few simple categories. The input commands let you prompt for a line of input or a bunch of lines of input. You can also create a pick list or a yes/no type of prompt. There’s also a file picker and a filter, sort of like fzf.

Continue reading “Linux Fu: Gum Up Your Script”

A Pi Pico soldered onto a custom breakout PCB, with an SD card connected to it using prototyping wires

RP2040 Runs Linux Through RISC-V Emulation

We’re used to running Linux on CPUs where it belongs, and the consensus is that RP2040 just isn’t up for the task – no memory controller, and nowhere near enough RAM, to boot. At least, that’s what you might believe until you see [tvlad1234]’s Linux-on-RP2040 project, reminding us there’s more than one way to boot Linux on a CPU like this! Just like with the “Linux on AVR” project in 2012 that emulated an ARM processor, the pico-rv32ima project emulates a RISC-V core – keeping up with the times.

Initially, the aforementioned “Linux on AVR through ARM” project was picked as a base – then, a newer development, [cnlohr]’s RISC-V emulator, presented itself and was too good to pass up on. Lack of RAM was fully negated by adding an SD card into the equation – coupled with a small caching layer, this is a crucial part for the project’s not-so-secret sauce. A fair amount of debugging and optimization later, [tvlad1234] got Linux to run, achieving boot times in 10-15 minutes’ ballpark – considering the emulation layer’s presence, this is no mean feat.

At this point, the boot process stalls as you enter a login shell. If Linux on RP2040 is within your area of interest, feel free to pick up the effort from here, as the project is fully open-source – you only need a Pi Pico board and a throwaway SD card! Now, if pairing a RP2040 with some classic software is your definition of an evening well-spent, you can’t go wrong with DOOM! However, if you’d rather play with something else *nix-like, we’ve seen someone port Fuzix onto the RP2040 before.

Raspberry Pi Adds Second Laptop Monitor

If you have a cheap laptop and you realize you can’t connect a second monitor to it, what do you do? Well, if you are [Pierre Couy], you grab a Raspberry Pi and put together a virtual screen solution.

Like all good projects, this one started with some goals and requirements:

  • Low latency
  • Redable text
  • At least 10 frames per second
  • Fast catch up if the remote screen falls behind
  • Low-bitrate encoding; no hardware acceleration
  • A DHCP server on the Pi to manage the network
  • Power control for the attached monitor

Continue reading “Raspberry Pi Adds Second Laptop Monitor”

A Linux Distro For All Your Ham Needs

For anyone new to the world of ham radio, one of the things that takes a little getting used to is visiting the websites of authoritative experts in various fields and feeling like you’ve traveled back to the Internet of 1999. As a hobby that lends itself to extremely utilitarian amateurs, the software side can feel a little left behind like that. [Andy] aka [KB1OIQ], on the other hand, is also a Linux enthusiast and has been putting together a complete Linux distribution with everything needed to operate a radio in the modern era.

While most ham radio software seems to be developed for Windows, there is a lot available for Linux. It just takes a bit of tinkering and experimentation to get everything configured just right. Andy’s Ham Radio Linux, or AHRL, takes a lot of the guesswork out of this. The distribution includes everything from contact logging software to antenna modeling, propagation forecasting, and electronic design. While tools like this are largely optional for operating radios themselves, there are also tools included to allow the user to operate various digital modes as well, which require some sort of computer interface to use.

The other design consideration [Andy] made was something that most hams consider when choosing software, which is that it should be able to run on extremely modest hardware. To that end, the distribution is based around Xubuntu and can run on ten-year-old machines with as little as 2 GB of RAM. And, for those interested more in software-defined radio specifically, there is another Debian-based Linux distribution called DragonOS that we’ve featured a few other times as well which is also worth checking out.

Continue reading “A Linux Distro For All Your Ham Needs”

Linux Fu: Sharing Your Single WiFi

If you are trying to build a router or access point, you’ll need to dig into some of the details of networking that are normally hidden from you. But, for a normal WiFi connection, things mostly just work, even though that hasn’t always been the case. However, I ran into a special case the other day where I needed a little custom networking, and then I found a great answer to automate the whole process. It all comes down to hotel WiFi. How can you make your Linux laptop connect to a public WiFi spot and then rebroadcast it as a private WiFI network? In particular, I wanted to connect an older Chromecast to the network.

Hotel WiFi used to be expensive, but now, generally, it is free. There was a time when I carried a dedicated little box that could take a wired or wireless network and broadcast its own WiFi signal. These were actually fairly common, but you had to be careful as some would only broadcast a wired network connection. It was more difficult to make the wireless network share as a new wireless network, but some little travel routers could do it. Alternatively, you could install one of the open router firmware systems and set it up. But lately, I haven’t been carrying anything like that. With free WiFi, you can just connect your different devices directly to the network. But then there’s the Chromecast and the dreaded hotel login.

Continue reading “Linux Fu: Sharing Your Single WiFi”

What’s Old Is New Again: A Linux PC From A Set Top Box

There was a time around two decades ago, when the new hotness was taking control of home routers to use as small Linux computers. An echo of this era lives on in the name of the OpenWrt minimal Linux distribution, in reference to the Linksys WRT54G router which started it all. Routers as small computers were displaced by small cheap Linux machines from the likes of Raspberry Pi, and the promise of discarded home network gear doing interesting stuff receded. Now it might just be back, as [Jasper Devreker] shows us an Android TV set-top box from a mobile carrier repurposed as a Linux computer that can even run a desktop environment.

The method starts as you might expect, by identifying a mystery connector as a debug serial port. This outputs all sorts of interesting boot information, but can be dropped into a uBoot shell. From here with a bit of effort the eMMC storage could be dumped, and from that the nature of the machine could be deduced. The CPU is an Amlogic quad core ARM Cortex-A53 SoC, which by a stroke of luck is a target for which an Armbian build is available. From there a Linux installation could be assembled, and even an AFCE desktop.

These boxes are handed out in the hundreds of thousands by home connectivity providers, so there’s value in this type of hack as they become available for experimenters. Perhaps it’s more useful as a small headless Linux machine than as a desktop, but we sense there are more machines to come in this line.

If you’d like a little bit of history on hackable Linux devices, have a read of one of our earliest posts featuring the Linksys WRT54G.