Hacker Newsnew | past | comments | ask | show | jobs | submit | wryun's commentslogin

OpenWrt devs had this epiphany many years ago:

https://openwrt.org/docs/techref/ubus https://openwrt.org/docs/techref/ubus#what_s_the_difference_...

(no endorsement implied; in particular, ubus has not much of a security model, though OpenWrt has an excuse for that)


Surprising. Cross compilation too annoying to set up? No CI pipelines for things you're actually deploying?

(I'm keen about ARM and RISC-V systems, but I can never actually justify them given the spotty Linux situation and no actual use case)


Cross compilation is a pain to set up, especially if you're relying on system libraries for anything. Even dynamically linking against glibc is a pain when cross compiling.


Linux on arm is probably the most popular computing device platform in the world.


Which doesn't mean that it's easy to use an ARM device in the way I'd want to (i.e. as a trouble-free laptop or desktop with complete upstream kernel support).


We do have ARM CI pipelines now, but I can only imagine what a nightmare they would have been to set up without any ability to locally debug bits that were broken for architectural reasons.


I guess you must be doing trickier things than I ever have. I've found docker's emulation via qemu pretty reliable, and I'd be pretty surprised if there was a corner case that wouldn't show on it but would show on a native system.


Not really trickier, but different stack - we’re a .NET stack with a pile of linters, analyzers, tests, etc. No emulation, everything run natively on both x86-64 and ARM64. (But prior to actually running/debugging it on arm64, had various hang-ups.)

Native is also much faster than qemu emulation - I have a personal (non-.NET) project where I moved the CI from docker/qemu for x86+arm builds to separate x86+arm runners, and it cut the runtime from 10 minutes in total to 2 minutes per runner.


It's more surprising to me that software isn't portable enough that you can develop locally on x86-64. And then have a proper pipeline that produces the official binaries.

Outside the embedded space, cross-compilation really is a fool's errand: either your software is not portable (which means it's not future-proof), or you are targeting an architecture that is not commercially viable.


> It's more surprising to me that software isn't portable enough that you can develop locally on x86-64. And then have a proper pipeline that produces the official binaries.

This is what we largely do - my entire team other than me is on x86, but setting up the ARM pipelines (on GitHub Actions runners) would have been a real pain without being able to debug issues locally.


The tree mesh thing you're thinking of is actually just EasyMesh (it's a standard!). We're using prplmesh.

But yes, 11s Mesh also works. Let us know on the forum (https://community.morsemicro.com/) or via github (https://github.com/MorseMicro/) if you're having issues. Err, I work for Morse in case that wasn't clear.


If this is like the RPI4 with a single global model I'm wondering how it passes FCC regs, in that presumably the Wi-Fi is flexible enough to transmit on illegal US channels (i.e. Ch 12-14 on 2.4).

Am I missing something?


The usual way to do it is to use the same regdomain as the current access point, with a fallback to a default country code of '00' (which allows only the minimal set of frequencies which are acceptable globally).


But what if you're using mesh or running an AP? Won't the software out of the box allow you to set the regdomain to AU?


They do have: https://github.com/jolibrain/colette/blob/main/pyproject.tom...

I agree it's better to have the full licence at top level, but is there a legal reason why this would be inadequate?


Search for WiFi HaLow.

(I work for Morse Micro; we can do 30mbps udp)


On most openwrt devices you can compare /rom/etc/config to /etc/config (though this will get you a bunch of automatic changes as well).


Tracking config via VCS is great, but the automatic changes is what then makes it tricky to understand what you've actually configured.


I had a look more into this. https://www.reddit.com/r/openwrt/comments/114kv0y/weeding_ou... has some people with the problem that I'm trying to avoid.

I see the fresh re-install suggestions probably work but that's tedious and risky.


GP missed this basic fact and then moved to NixOS for a router target? What!?


I use NixOS, btw


Does it run doom? Debian?


Is nixos new arch?


For sure. I feel like the arch joke has played itself out.

I use arch, btw.


As an Arch user I've always been a bit confused by the joke. I have more shit go wrong on my Macbook. Sure, on Arch I might get a bad Nvidia driver update and either have to roll back the driver, kernel, or both[0] but these are at least easily fixable. You can easily determine the problem, fix it, and you've learned how to avoid it or resolve it in 5 minutes if it happens again (thanks Nvidia ;). Other than that, the only breaking things are when I'm fucking around, and well... that seems like my own damn fault lol. But several Macbooks I've had will go to sleep and if I try too fast to wake it up I'll have a black screen that can't be recovered until I reboot. And I could go on about how weird and infuriating some shit is and how I can't even implement a fix myself and I just give up because I don't want to waste time fighting Apple and play that cat and mouse game with no good documentation. I've just come to understand that "just works" means "not as buggy as Winblows".

[0] https://forum.endeavouros.com/t/only-black-screen-after-logi...


AFAIAA the joke comes from Arch's purported superiority (rolling release, close to upstream, bleeding edge, KISS) as compared to "bloated/slow" e.g. Ubuntu. It's kinda old now and existed even before the controversial switch to systemd from SysVinit/rc.conf.


Tbh I thought that it was because people are scared of the terminal, this even somehow includes people who have used Linux for a decade. That and that basically you're forced to use the terminal for Arch and read the instructions.

So kinda like how people joke about Ikea furniture being difficult to build. I mean... it's not, it's quite intuitive. But even if it wasn't then it's purely an exercise in ability to read instructions


Isn't arch just linux for people who can't install gentoo?


Isn't Arch just Gentoo for people who think 90% of the time the provided build instructions are sufficient.


Gentoo is old arch.


He was missing a config to compare to previous versions so it makes sense from that perspective.


Could always add a git repo to track changes to config files if you need the full history.


On virtual routers there is no content in /rom. What you can easily do is install another copy of the same image on another VM or container and run it through firstboot. Make a backup and compare it with a backup from your running system. Even better is to make a backup just after firstboot, then use the system and compare your current backup with the first one.

Do keep in mind that the OpenWRT backup does not contain information about which extra packages were installed after firstboot. I solved this adding a cron job which runs opkg list-installed > /etc/opkg_installed.txt and adding that last filepath to /etc/sysupgrade.conf so it gets added to backups.


If you have an overlay, you can do something like this to list user-installed packages only:

    ls /overlay/upper/usr/lib/opkg/info/*.list | sed -e 's/.*\///' | sed -e 's/\.list//'


There is no overlay on ext4-based virtual routers.

    # mount|grep ext4
    /dev/mapper/pve-vm--501--disk--0 on / type ext4 (rw,relatime,stripe=512)
The /overlay directory exists just like the /rom one does but they're empty:

    # ls -l /|grep -E 'overlay|rom' 
    drwxr-xr-x    2 root     root          1024 Jan 27 23:53 overlay
    drwxr-xr-x    2 root     root          1024 Jan 27 23:53 rom
These are empty directories (there is a note file in /rom with some info for those using squashfs which is not applicable to these installations).


That's not complete, though, is it? Ex. if I follow https://openwrt.org/docs/guide-user/network/wifi/wifiextende... most of the config is covered, but not the parts that disable daemons.


Just use a Surface Go? Tablet linux has been working well for years...


Without looking I'm going to assume that the Surface Go is not an open source hardware platform -- not to mention the fact that it's produced by a company that's been famously anti-open source for most of its existence.


I have used it on and off on a Surface Go, but I would prefer a dedicated device built with linux and open source in mind. Starlabs Starlite is the first tablet device that is a true daily driver with Linux (Pine Tab is not a daily driver in my eyes), and I am pleased to see more in the works.


https://en.m.wikipedia.org/wiki/Masters_of_Rome is an enjoyable fictionalised account.


It's fascinating to see him through the eyes of Cicero's slave Marcus Tullius Tiro in Robert Harris's Cicero Trilogy.


Yeah, I found it very interesting how McCullough (Masters of Rome) idolizes Caesar and holds Cicero in contempt, and Harris is exactly the opposite.


It’s funny how political figures from over two thousand years ago can remain as divisive now as they were at the time.


+1 for anyone who hasn't read it. Get that fix asap.

Roberts wife completed the last novel based on his drafts and notes, as he died before finishing it.


Sorry, I'm confused here! Who died before finishing what?


lol, brain fart: I was talking about Troy series with David Gemmell:

https://www.goodreads.com/series/43788-troy


Are you thinking of Robert Jordan / The Wheel of Time? Robert Harris is alive and writing


I was talking about Troy series with David Gemmell:

https://www.goodreads.com/series/43788-troy


Love that series. Enjoy any easy historical fiction.


Came to the comments to make sure someone was recommending these books. An incredibly enjoyable read.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: