Repository navigation
v0.2.0-beta.18
Pre-release
Pre-release
New in this test version: dynamic DNS (DuckDNS, dynv6, Cloudflare, No-IP, any dyndns2 address – IPv4 and IPv6), an own certificate authority for the box and other devices in the home network, and Let’s Encrypt over DNS without opening a port (System → Netzwerk). USB printers in the network: current printers print and scan without a driver (AirPrint, Mopria, Windows 10/11), older ones over port 9100 – new system app “ipp-usb + p910nd”. UPS over USB: charge, runtime, messages on a power failure and a clean shutdown on battery – new system app “Network UPS Tools”. Printers, UPS and Let’s Encrypt have not been tested on real hardware yet – feedback welcome.
What's Changed
- Network: dynamic DNS, own CA, Let's Encrypt by @UniqueDroid in #108
- USB printers in the network (ipp-usb, p910nd) by @UniqueDroid in #109
- UPS over USB (Network UPS Tools) by @UniqueDroid in #110
- docs: release 0.2.0-beta.18 by @UniqueDroid in #111
Full Changelog: v0.2.0-beta.17...v0.2.0-beta.18
- USB printers in the network (Dienste → Drucker, new system app "printer" in the store: ipp-usb 0.9.34 + p910nd 0.97, 3 MB).
- Current printers and multifunction devices that speak IPP over USB (most since about 2015, e.g. HP Smart Tank, OfficeJet, Canon PIXMA, Epson EcoTank) print without a driver: Windows 10/11, macOS, iPhone/iPad and Android find them by themselves (IPP Everywhere, AirPrint, Mopria) – and their scanner works over the network as well (eSCL). ipp-usb (OpenPrinting) does the work; ShareOS's avahi-daemon has no D-Bus, so a patch makes ipp-usb announce the devices through static avahi service files. The port of each device stays the same (kept on the flash).
- Older printers (usblp,
/dev/usb/lpN): p910nd on port 9100 + N, announced as_pdl-datastream; the computer uses the maker's driver ("Standard TCP/IP port" in Windows, AppSocket/JetDirect). Testseite sends a plain-text/PCL page. - Printers are followed when plugged in or pulled (mdev rule for
lp*, ipp-usb watches USB itself). Mode Immer Port 9100 for printers whose driverless printing misbehaves.shareos-printer, rpcdshareos.printer,tests/test-printer.sh(14 checks with a fake /sys).
- UPS over USB (Dienste → USV, new system app "nut" in the store: Network UPS Tools 2.8.5 with the drivers usbhid-ups, nutdrv_qx and blazer_usb – APC, Eaton, CyberPower, most Megatec/Q1 boxes; 0.7 MB, kept on the flash so it works when a disk fails).
- Charge, runtime, load and model of the UPS; a power failure, the power coming back, a low or worn battery and a lost connection become messages (e-mail/push as set up) and are listed under Ereignisse.
- The box shuts down cleanly while on battery – when the UPS reports a low battery, below a charge of your choice or after some minutes on battery – and only then; if the power comes back first, nothing happens. Afterwards the UPS switches its output off and on again when the power is back, so the box starts by itself (can be switched off).
- Other computers can read the UPS over the network (NUT, port 3493, user
monitorwith a password) and shut down before the box. - NUT without OpenSSL (
external.mk: 4.4 MB of libraries less).shareos-ups, rpcdshareos.ups, the last step of the shutdown inS05board,tests/test-ups.sh(20 checks with fake NUT programs).
- DynDNS, own certificate authority and Let's Encrypt (System → Netzwerk).
- DynDNS: DuckDNS, dynv6, Cloudflare, No-IP or any dyndns2 address (Strato, IONOS, …), IPv4 and/or IPv6 (for lines without their own IPv4 address: DS-Lite, fibre, mobile). The box reports its public address every 5 minutes when it changed, otherwise once a day; a failure becomes a message. Token and password go to curl through stdin, not the command line, and are never sent back to the browser.
shareos-ddns,tests/test-ddns.sh(24 checks with a fake curl). - Own CA: a certificate authority on the box (EC P-256, 10 years) issues certificates for the box and other devices in the home network (825 days, server authentication, wildcards like
*.home.lan, IP addresses); its root certificate is installed once on PCs and phones, after that there are no certificate warnings. The box's own certificate follows name and IP address and is renewed 30 days before it runs out. The CA is part of the settings backup.shareos-ca(mbedtls of the firmware),tests/test-ca.sh(18 checks, in CI with the firmware's programs in qemu). - Let's Encrypt for the DynDNS name with DuckDNS or Cloudflare: the check runs over DNS (TXT record at the provider), no port has to be open; renewed daily when less than 30 days are left.
shareos-acmewith uacme (105 KB, mbedtls), test mode with the staging CA. shareos-certno longer replaces a certificate of the own CA with a self-signed one when the IP address changes (it only renews its own self-signed one).
- DynDNS: DuckDNS, dynv6, Cloudflare, No-IP or any dyndns2 address (Strato, IONOS, …), IPv4 and/or IPv6 (for lines without their own IPv4 address: DS-Lite, fibre, mobile). The box reports its public address every 5 minutes when it changed, otherwise once a day; a failure becomes a message. Token and password go to curl through stdin, not the command line, and are never sent back to the browser.