Skip to main content


What's the best way to create dedicated devices with Linux?


in reply to dontblink

Debian minimal netinstall should fit you use case. Long support time, small footprint and should support everything you want to do. Just secure it by having a unprivileged account doing all the stuff you want to do.
This entry was edited (5 days ago)
in reply to fachpersonal

This is the way I'd go if it were me. Debian minimal, add in unattended-upgrades + rkhunter + fail2ban + ufw to keep it locked down, and then set it up as a kiosk for whatever I needed (something like here: github.com/PhilGoud/xfce-kiosk )
in reply to boydster

Glad to know xfce has a kiosk mode, I wonder if it's easier to set up than KDE or GNOME..

UFW definitely and maybe also selinux or apparmor to give internet access only to applications that need access!

in reply to dontblink

So, for a single purpose kiosk device, I've had some success with not using a DE or WM at all - essentially putting the desired application inside your xinitrc. In that case, you would need to configure the window geometry using xdotool (I think). There's probably something similar for Wayland. Alternatively, a tiling wm like i3 or Sway could be useful if you remove all the keybinds from the config file.

ETA: for a device like that, I would say that arch is a potential starting point, but you might also consider an immutable distro. I don't have any experience with them though.

ETA2: For the hardware, a Raspberry Pi is not a bad starting point, but Arch on Arm isn't officially supported. Your mileage may vary

This entry was edited (5 days ago)
in reply to dontblink

Do some searches on "kiosk" software. That's the general term of art for machines that are intended to run a single program/interface. As for distros, you'll want something light and easy to maintain, ideally with automatic updates. Debian's an obvious pick. Alpine could be great for something like this. Gentoo could be awesome too, but there's a serious learning curve involved.
in reply to dontblink

I'd think #NixOS would be ideal for this task. As for hardware, any of the SBCs listed on their ARM page should do.

Linux reshared this.

in reply to eshep

I thought about Nix, it is indeed cool to declaratively install stuff and it would indeed be very helpful to set system settings all from one file so that you control everything there, but I don't think that's what I need, I think I'd need a more focused desktop environment maybe?

Kiosk environments could be a solution, because once the UI is limited, you can install software in any way you like and from any distro really, I think the focus is to keep it minimal under the hoods and very simple on the surface!

in reply to dontblink

It's hard to give concrete advice without knowing the specs or the software you want to run on this, but for tiny Linux systems there's Buildroot so you can compile just the bare minimum you need and not use a distro at all (unless you could Buildroot as a distro). This is what OpenWRT uses to build all the router firmwares among other things.

For something that would go in a car that seems pretty ideal to me. Skip initializing things you won't use, make something that boots to GUI in 3 seconds. When you want to update the software you flash it as a new firmware image, no on-device installing or anything.

Depending on what you run, ideally you'd skip Xorg/Wayland and use the framebuffer directly. But if you need to run a more standard environment, that's what things like Cage are designed for. Single app, always full screen. It's called a kiosk environment.

in reply to Max-P

I retract my "ideal" statement; this is the way to do it.

Linux reshared this.

in reply to eshep

NixOS isn't a bad option, I'm not sure how much you can trim it down but I'd expect it to be possible to express in Nix to install to a target that's different from the host. Maybe not NixOS but Nix itself as a package/config manager. I'm sure at minimum it makes for a great development environment for building a buildroot.
in reply to Max-P

Second buildroot as the way to go. This is what I use to build systems for single application touchscreen HMIs. It's dead simple too, unless you're messing with a custom kernel config and/ or using obscure hardware without ready made device tree blobs.
in reply to dontblink

M5 paper might be something you're interested in.
in reply to dontblink

i've done this using android and linux.

i've repurposed my old androids to turn them into wireless cameras for my home made security system based on the motion project as well as created a homemade lojack and dashcam for my car. some phones i was able to root and i picked and chose what software ran on it and the others, i disabled as many services/apps as i could to make them as minimalistic as possible.

for linux, i created my own home made router and wifi access point; but it's kind of the opposite of minimalistic as it's a full blown linux server with virtual machines and desktop environment to help with management.

i provided both extremes to mirror what others have said: it's hard to provide advice without knowing what your goal is.

This entry was edited (5 days ago)
in reply to dontblink

Dietpi user here. I've got a orange pi zero 3 w/ 1GiB of ram serving me nextdns under docker + playing a live stream 24/7 (via yt-dlp/ffplay) and it does its job just nicely.
This entry was edited (5 days ago)
in reply to dontblink

Sidenote, maybe some of your applications do not need a Linux computer but a microcontroller like an Arduino or a ESP32 is sufficient.
in reply to dontblink

Small tangent, I didn't have the energy to read your whole post, so you might have addressed that. But often it's cheaper to go with an established multi purpose device instead of building something new.

I used to build and sell Raspberry Pi gaming handhelds that were as cheap as possible and literally just held together by some string. My purpose was to get enough money through the sales to be able to build one for myself. Sure, the building process was fun. But when I crunched the numbers just buying a cheap smartphone and controller was much cheaper and more performant and versatile than the self-built solution.

Just buying a cheap phone or tablet is often the cheaper solution.

Heck, even Valve just bought off the shelve tablet displays and turned the image in software for the Steam Deck.

This entry was edited (4 days ago)