Hacker News new | ask | show | jobs
by xxpor 2323 days ago
>Ethernet and WiFi work, although WiFi is a bit slow (only up to 802.11a?) compared to 802.11n/802.11ac capable OSes.

And stuff like this is why I've never stuck with FreeBSD when I've tried it. I screw around with debugging issues all day at work. Why would I want to try to figure out why something as fundamental as wifi isn't working in my spare time?

8 comments

They almost certainly mean 802.11g or n, not the archaic a. FreeBSD has generally good 802.11n support. It lacks 802.11ac.

Yes, if you absolutely need 802.11ac wifi in particular, FreeBSD isn't a great choice. But many modern 802.11n NICs (and 802.11ac NICs, in 802.11n mode) "just work" out of the box, including the 'iwm' devices mentioned in the article, on more recent versions of FreeBSD.

FreeBSD 12.0 dates to 2018 — this is like installing Fedora 29 in 2020.

> It lacks 802.11ac.

Why in the world would it lack support for one of the most ubiquitous, not to mention fastest, wireless standards? I mean, it’s been out since 2013.

Time, resources, interest; lack of open datasheets and corporate sponsorship from the hardware vendors making the parts. These things don't just happen magically; people make them happen. Linux finally has enough market power that vendors willingly write drivers for it, but I remember a very similar situation with Linux in the 2000s when Microsoft was the only player around with that kind of market clout.
Speaking from memory as it's a little difficult to search for but there's no fully FOSS ac driver available for Linux which might be why the BSDs have none, Linux has open source ac drivers of course but they still require proprietary firmware blobs and the performance is terrible compared to the proprietary drivers (think 350Mb/s with OpenWrt compared to 800Mb/s on stock router firmware). Atheros released fully open blob free 802.11n drivers in 2008 with their ath9k driver, although no other manufacturer followed suit. I've heard that there may be licencing or patent restrictions preventing blob free ac drivers from being released but again it's a little difficult to try and verify this.
FOSS driver and open firmware are separate issues.

Binary drivers executing on the CPU are a no-go for me. OTOH, I consider device firmware blobs user(OS)-loaded on power-on to be strictly safer than a stored blob, though less convenient in some ways.

Devices these days have firmware, usually on flash-able storage, as they don't make it right the first time. Would you rather have a wifi chipset, that can be permanently infected after an exploit / evil-maid / malware on PC, or one that can equally be exploited, but is as clean as ever after a power cycle, because the OS needs to load firmware every time?

This isn't the reason FreeBSD doesn't have 802.11ac. We're not picky about firmware blobs.
Doesn't mt76* count? It is in since 4.19.

http://lkml.iu.edu/hypermail/linux/kernel/1808.0/04276.html

I know, because I've immediately bought an usb wifi dongle for my desktop with this chipset. (and it is working perfectly OOB with every linux kernel for me since then).

Because running freebsd on a laptop is an edge case. Most people run it on servers. It’s not trying to be everything to everyone like Linux is.
FreeBSD dev here — I don't like this line of argument. It is always used to rationalize any defect in FreeBSD. Sometimes we just have defects! That's just the truth of things; we don't need to pretend we're defective on purpose. Many developers run FreeBSD on their daily driver laptops or workstations because it is (perhaps tautologically) one of the best platforms to develop FreeBSD on.

Our wifi support isn't 100% and this is a weakness. I believe that desktop usability is a large part of why Linux is as successful as it is today, and the modern laptop is so similar to the modern server that it's a bit of a moot distinction.

I don't think the person you responded to was claiming or implying that FreeBSD's wifi support is incomplete on purpose. Rather giving a reason for why resources have not (yet?) been expended in that area.

I have FreeBSD running on my home desktop workstation and everything is working fine, but I wouldn't try to install it on my laptop. Laptop hardware is just too variable and non-standard. Touchscreens, esoteric Wi-Fi chipsets, fingerprint readers, brightness controls, bluetooth, power management, suspend on lid close... I'd be quite surprised if FreeBSD supported all of this out of the box, so I stick with Ubuntu.

That's a very charitable read of GP's remarks. Kudos for the generosity, but I didn't get the same impression from the statements and the context. The phrases GP is repeating aren't novel; they're repeated time and time again in any messageboard discussion that ever touches on a missing feature in FreeBSD. You could say FreeBSD is missing SATA support (just for example; it isn't really) and someone would chime in with "FreeBSD isn't trying to be all things..."

As far as laptops, it all tends to be a bit specific to the model. There aren't too many different wifi chipsets these days; bluetooth is pretty simple from the software side of things. Power management and lid suspend work on most systems (as they say, resume is the hard part). Brightness controls should also work well. I don't know about fingerprint readers. Recently we landed Thinkpad PrivacyGuard support from software, for example. It's not particularly significant in isolation, just as an example of random modern laptop features that might exist in only a handful of models, which we still try to support in FreeBSD.

Being honest about a defect/weakness like this while being a FreeBSD developer gives me (as non-FreeBSD user) faith in your platform.

I've recently tried NixOS and I'm impressed. Have you considered adopting Nix into FreeBSD?

Thanks! I also appreciate honesty about faults, so this is sort of a golden-rule thing for me. I'm glad I'm not alone :-).

I don't know anything about Nix. So the short but perhaps unsatisfying answer is that I have not considered adopting Nix.

I really wanted to run FreeBSD in my T470s and the lack of hardware support pushed me over to Ubuntu. I loved setting up FreeBSD and it felt snappy for a lot of stuff but it would be cool if some of the devs who do live on laptops would just release a package they tune for their particular hardware.
It's not quite a canned package, but we try to keep the Laptop support wiki up to date:

https://wiki.freebsd.org/Laptops#T-Z

And for the T470s in particular (yes, it's somewhat sparse, and the links suggest a non-ideal amount of effort required, but purportedly it seems to work at the end): https://wiki.freebsd.org/Laptops/Thinkpad_T470s

How difficult would it be to flesh out this rough spot? For others, it seems like a FreeBSD dev might not at all be able to get ac support for hardware with the drivers as locked down as they are. But if I knew the problem was tractable I might try my hand at it someday. Could be a good resume driven project.
I can't begin to answer this question, sorry! I mostly don't work on network drivers at all, and the 80211 family/stack is its own beast that I am utterly unfamiliar with.
Was about to write the same. I suppose WiFi support to an average FreeBSD user is as useful as floppy disk reader drivers to Win 10 users.
Linux it is, then.
Linux desktop is great in 2020, especially if you buy the right hardware with solid support, the experience is totally smooth and super-high performance with stuff like ArchLinux.

Boots up immediatley, no annoying MacOS updates or having to install XCode while having multiple versions of core unix packages, because it pre-installs a bunch of out-of-date ones you replace immediately with brew. This causes problems, especially for newbies new to working with terminals, as it falls back onto the old ones when stuff isn't linked or set up properly.

Nothing beats having a clean minimal /usr directory with only the stuff you decide to install and extremely fast startups with good battery use.

I get Macbooks for work but use a Linux one on the side (which I used for 5+ yrs when I was working freelance) and I plan to convince my boss to let me get a thinkpad or dell for the next laptop update.

So I used to be a Linux mint/ubuntu/fedora user (I distro hopped a bit), but I really like how homebrew on macs is per user account rather than system wide, and I can just delete the folder to reset it for the most part (minus running programs, some GUI casks, and shortcuts). AFAIK, apt-get and most if not all linux package managers only work system wide, and I can't install something just for a specific user. Maybe arch is different? Homebrew definitely has issues though, agreed.

Incidentally I ran all of those distros on a T430... which still works fine when I boot it up. Thinkpads are great linux machines, and just great easily repairable machines in general.

FreeBSD vm for everything within a Linux host for hardware support.
Because there are not many people with the ability to add 802.11ac support to drivers, the resources to do so (datasheets, test hardware), and the time required. The 802.11 stack does support at least some 11ac features.
Fedora 29 works great with T480 though.
Because you like the tinkering and believe there should be (fringe) alternatives to mainstream OSes?
> ...mainstream OSes?

Look how far we've come. Linux was the alternative OS just ~15 years ago. Now it's one of the mainstream OSes.

TBH, I'd like to see one of the BSDs to become one of the mainstream OSes too. :)

edit: Except macOS ofc. :)

"Stardate 2020. There is a mainstream OS with great driver support and the best gaming performance, that everybody uses (Linux). There are two other OSs battling for survival: One run by open source fanatics that release open source editors, browsers and programming languages and which frantically tries to emulate the mainstream OS (WSL), and one where stuff constantly breaks on upgrades, fundamental hardware like keyboards doesn't work, and keeping enter pressed logs you in as root (OSX)."
Stardate 2030: Everyone is now doing Chrome apps, with three major companies sharing the cloud OS resources.

Some old people keep talking about the crazy idea of owning computers and installing OSes.

Linux has the best gaming performance?
Check out some of the recent Phoronix benchmarks.
Some games see a significant performance boost running through Wine.
Sure some get a performance boost, but I believe more get a performance hit than a boost (and that's not counting the ones that don't even run at all).
open source browsers?
They joined the Chromium project.
> Now it's one of the mainstream OSes

...on servers. It's still far, far from "mainstream" for desktops.

Still, that's a really big deal. I work for what is firmly a Microsoft shop, and nobody bat's an eyelid now if we use Linux VMs (as long as they're cloud-based).

I think 3 things in particular have driven the rise of Linux as a mainstream server OS:

1. docker/containerisation. Sure, Windows containers exist, but have you ever seen one in the wild?

2. The shift to the cloud, in conjunction with (3)

3. The rise of DevOps, in tandem with (2)

> 1. docker/containerisation. Sure, Windows containers exist, but have you ever seen one in the wild?

I have. What is done on .NET stays on Windows, for UNIX like OSes we get to use Java.

Yes there is .NET Core, it is the future, not all MS shops are buying into it due to the current limitations, waiting to see how .NET 5 will actually look like.

I'm truly surprised you've seen Windows containers in the wild - across dozens of engagements with very firm Microsoft shops, I've never seen them, nor seen the need. Gods, even MSSQL runs on Linux these days!

I'm also very surprised you'd claim that not all Microsoft shops are buying into dotnet core - I've seen the very opposite; every client I've worked with has known dotnet framework has been superceded by core, and has been eager to move. A decent portion of this is driven by certain containerisation, which (realistically) means dotnet on Linux.

The only real limitation with dotnet core has been the lack of managed C++ support - a niche use case, and only relevant on Windows, but even this has been resolved in dotnet core 3.1.

Considering the not insubstantial performance improvements in dotnet core, and of course the benefit of cross-platform code, I'm really interested to hear about the limitations of dotnet core you've found (the switch for me and all the enterprise clients I've worked with has been great)?

Plenty of Microsoft shops are deeply invested in technologies like WCF, EF6, ODP.NET, WPF/Forms component libraries, commercial CMS stacks (e.g. Sitecore), and aren't willing to allocate budgets to rewrite what is working perfectly fine.

The kind of enterprises where deployments on IIS, with AD infrastructure on premises, Windows on all company layers are still the name of the game, with some Linux servers for running SAP and a couple of other Java based services.

What is missing from .NET Core 3.1?

Besides what I have listed above, EF 6 on Core doesn't support the Visual Studio graphical tooling nor the EF 6 .NET Framework EF providers, WPF/Forms designers are still WIP and have issues with commercial component libraries, WCF well, no one is looking forward to rewrite their working code with gRPC.

And many are still a little burned with Silverlight and how the whole WinRT, UAP, UWP story went.

Back in the .NET Code 2.0 days, I had a project to rewrite a .NET Application into Java, because the customer in question saw a better business value in doing so than investing in .NET Core. Mainly because .NET Core didn't had support for some critical libraries being used in the .NET Application, while the libraries vendor did support a Java counterpart for them.

Yes, they will eventually move to .NET Core, when it makes business sense to allocate budget to do so.

That is just my experience, others will vary.

> It's still far, far from "mainstream" for desktops.

Desktops themselves are far from mainstream! The vast majority must be owned by gamers and video editors; both groups use predominantly non-Linux for reasons mostly unrelated to support that is or isn't in the kernel.

I think Linux went mainstream when the default installation of one of the distributions came with an icon that opened up "Amazon.com"
Color me ignorant, but which distribution is that?
Ubuntu did some years ago; it did cause some uproar. Just search for "Ubuntu Amazon"
coughubuntucough

IIRC, they recently discontinued the link and related data sharing though.

It was always possible to uninstall it. Just a nuisance that you have to, while clearly no users ever desired it. It was also terrible that all search requests went plaintext to Amazon.
Is Android still built on Linux?
It is, but userspace isn't aware of it.

For userspace what matters is ART, ISO C, ISO C++ and Android NDK APIs.

It uses a (slightly modified) Linux kernel, yes, although its user land is decidedly not GNU or particularly Unix-like.
Doesn't each phone basically ship its own modified Android-Linux with hacked up drivers specific to the model?
Ever since Project Treble it got standardized.
Yes.
Well, a BSD-branded BSD isn't. (MacOS is technically a BSD.)
Some BSD userspace only, and with few of the things most BSD people like about BSD.
What’s it missing?
Updates since 2004? It's like they took an old snapshot of BSD userspace and some of the syscall interface, except somewhat broken (see the long saga of broken select/kqueue in OSX). Fundamentally Darwin is a completely different beast based on Mach. It's radically different from the core BSD kernel. Most of their userspace is built on Objective-C, which has 0 overlap with BSDs.

It's cool that the Mac community used some BSD code way back when — that's why we use a permissive license — but they've forked whatever they took; they never work to integrate their changes back upstream. To the extent that they're a BSD, they're a very very divergent fork of a historical BSD. And that's fine, for them. I don't know if that makes them a BSD or not in some ontological sense.

Open-source, for one, but that's more than just a philosophy in BSD. One of the key design considerations touted by BSD communities is that the kernel and userspace are distributed and built as one cohesive system for which you can get all the source / rebuild on your system. And that's done far more often than in Linux and other more mainstream OSs. But it's not a BSD kernel and what's distributed / used is very far removed from open-source Darwin and anything you could rebuild yourself. On the more subjective side of things, BSDs tend to value simplicity and correctness over new features. OpenBSD takes this to an extreme, but FreeBSD still takes it a lot further than Apple does.

But other than having more claim to the UNIX title than Linux and having some BSD userland, it's really not technically a BSD at all. I'll grant you it's arguably a distant descendant of BSD under the surface or in your shell.

Zfs
BSD was mainstream before Linux existed...

(and macOS can't really be called a BSD derivative; it is a mostly different OS that has taken some of its code from FreeBSD)

who cares if its not a mainstream os? how many people in the world actually cares?
Apparently OP does -- What are you asking?

Some people are motivated by the allure of fringe projects. There's usually a lot of exploration and learning involved with those projects, which can be very rewarding. Not to mention you gain a deeper appreciation for the unbelievable amount of work that goes into the projects.

I have a T430 at home that runs FreeBSD that acts as a spare PC/browser/home media server. I never have to screw around with anything. FreeBSD has come a long, long way.

If I gave you a new Mac or PC, you could spend hours "screwing around" with it tweaking and customizing it, Linux even more so. If you absolutely need 802.11ac, then FreeBSD is not the right OS for T480s. But how many people actually require that speed?

i am really glad to read this. it is great that freeBSD continues to improve this way. we all win.
>Suspend/resume works almost fine as the same level as Windows (they sometimes get weird anyway).

Don't forget this, which translated means suspend/resume doesn't work.

Can't speak for TFA's hardware but suspend/resume works fine on my lenovo x1 6th gen running freebsd, with the only caveat being that I had to load some drivers that were not loaded by default. (I think it was called acpi_ibm. Manpage says that's for the Fn key combos, maybe it was something else.)

FWIW, suspend/resume is probably the worst, fiddliest thing about free OSs on a laptop.

>FWIW, suspend/resume is probably the worst, fiddliest thing about free OSs on a laptop.

Sadly I agree.

My requirements for a laptop are:

1. Working suspend resume

2. Good touch pad with working palm rejection

3. Good battery life

Sadly the only laptop that meets these requirements to my satisfaction is my macbook.

XPS 13 Developer edition meets these requirements. The touch pad isn't as good as a MacBook (none are) but it's plenty sufficient for working when not at a desk and if you do Docker based development having a Linux OS is actually much more performant.
I agree! Specially after I installed a different desktop environment (Plasma KDE, which is beautiful) as Ubuntu's default was really poor in my opinion! Now, I honestly don't know if I prefer my Mac (used mostly for work) or my Dell :) which is great!
Going from a MacBook trackpad to literally any other laptop is an exercise in extreme frustration. Even going from Mac OS X to Windows in Boot Camp makes one want to pull their hair out.
> Going from a MacBook trackpad to literally any other laptop is an exercise in extreme frustration.

For you.

I don't mind TrackPoint on thinkpads at all. In fact I would probably prefer that usually.

Everybody's got different tastes. It's not a problem.

Pixelbook with Crostini has treated me well.
I run Mint (now 19.3) on a T420 Thinkpad, and suspend/Resume has always just worked as expected.

I don't recall having to jump through hoops when I originally setup the machine about 3 years ago.

FreeBSD developers and people who use FreeBSD on a daily basis need laptops too. There are not many options out there unless they opt for ancient hardware.
Most of them use Macs and work on FreeBSD in a VM (I'm not kidding)
Most isn't objectively true. The (admittedly statistically problematic) pseudo-surveys I've seen land Mac contributors at 50% or less.
There are certainly some, but "most" is unsupported by evidence.
It'd be really interesting to know the proportion of Linux users who are now running under a VM for their desktop Linux use.

I have Linux on the three machines I use. But on each it's via a VM. I run Windows and MacOS on the machines. Where I work this is common as well. It's surely pretty prevalent. The other way a lot of people work on Linux where I work is on a VM on AWS.

I keep hearing this, and I don't understand it. Windows is just so... messy. At my last job I kept a Windows VM for Skype (S4B) and the odd non-portable app, but I wouldn't want that on bare metal.

I don't have experience with Darwin; maybe the experience is better there.

Whenever I try to use linux on hardware, either audio doesn't work without stuttering, video doesn't work without tearing or some package manager dependency issue rears its ugly head. From my perspective, it seems inconceivable to run linux on (personal) hardware.

That being said, I am very unhappy with windows 10 at work, and would much rather have some older windows version. At some point windows probably will become shitty enough that linux might seem like a viable alternative.

> video doesn't work without tearing

NVidia, closed blob - no way to fix, contact support

> audio doesn't work without stuttering,

can't remember problems with audio last 5 years.

One thing that probably taints my perspective: the majority of machines that I have used, at home and work, have been thinkpads and business-class Dells, so I've always enjoyed excellent hardware support. Without that, I'd understand the balance being different.
What hardware are you installing it on?
You sort of answered about understanding the question with your comment about Skype.

Lots of work places are Windows / Office effectively only. Many places have a SOE that is windows only. At home I play games sometimes. Again, that drives Windows.

Also drivers, power issues and various other issues still crop up on Linux more than Windows or MacOS.

Also, working on a VM is nice in a way because it means if it gets stuffed up, just start again quickly.

Raises hand.

I'm typing this from an Arch instance running in VMWare Fusion on a macOS host. It's a bit annoying though -- the trackpad is emulated as a scroll wheel, making everything janky, and I can't use my host's full 32gb of RAM...

I almost never do anything but run VMWare on the host -- the only reason I haven't given back my MBP and asked work to buy me a Linux machine is because I'm waiting for the 32gb Dell XPS 13 to come out, supposedly sometime this month.

I've got a Lenovo X1 Carbon 7th gen for FreeBSD development; there are many options besides ancient hardware. Buying a non-name $200 laptop isn't likely to result in a good experience, but if you're willing to do a little research there are many good options.
Any hardware not work on that one, that you know of?
The mic doesn't work yet, actually an array of MEMS mics and needs firmware for an onboard DSP. The trackpad driver isn't yet in the tree and needs to be built separately. Overall it provides a decent experience for someone with a bit of skill.
Fair enough! I meant there are not many options other than Thinkpads and some business models from Dell or HP. Even an expensive consumer grade laptop will have all sorts of driver issues.
Totally. This is the virtue signaling of the workstation world.

The mere fact that you’re running a computer with *nix, and you get to tell everyone about it, outweighs the fact that 50% of your day is spent figuring out how to get common tasks working on it.

Would love to read a piece akin to “I’ve been running Ubuntu on a ThinkPad for two years without issue” which is a standard the other main OSes have established

Because it's fast enough you don't notice it's "slow" outside of benchmarks?
802.11a is not just slow in benchmarks. That’s easily perceptibly slow, even when doing ordinary web browsing (given that web pages are orders of magnitude larger than when 802.11a was mainstream)

Theoretically 802.11a is the same speed as 802.11g, but in practice it drops off super quickly and means a “simple” page (like gmail/outlook) is loading in 30s-1m.

> Theoretically 802.11a is the same speed as 802.11g, but in practice it drops off super quickly and means a “simple” page (like gmail/outlook) is loading in 30s-1m.

Nope, that never happened to me. I use 802.11a for the same reason as OP (Intel card on FreeBSD plus a 5GHz only network), an iperf3 test reports a perfectly stable 22.2 mbit/s. More than enough for surfing, in fact Tor limits the bandwidth more than this Wi-Fi :)

It operates on the 5GHz frequency, instead of 2.4GHz of 802.11b/g (802.11b was more popular when 802.11g was still a draft).

Not sure if that was a factor or just that being less popular there was less investment to make it "better".

I don't think I ever saw a card supporting 802.11a exclusively, it was part of a chip supporting multiple standards. And then you would always use 802.11g.

> I don't think I ever saw a card supporting 802.11a exclusively, it was part of a chip supporting multiple standards. And then you would always use 802.11g.

This ignores the historical fact that 802.11a cards predate 802.11g by multiple years - A-only cards were available in 2001 when the initial draft of the G standard was announced.

I'm talking about the year 2003 in Spain. Perhaps I should have mentioned it.

802.11g was still a draft. There were serious issues to use cards from different vendors to talk to each other, and 802.11b cards were common.

Anyway, 802.11a frequency didn't play well with walls (or other solids), added to the shorter range compared with 802.11b (and g), in 2003 b was king and g was introduced early because of the higher speed.

I suspect the author is mistaken about calling it 802.11a speeds but if it was, then it'd absolutely be noticeable speed wise. 802.11a is a rather old (more than 20 years old now) standard that only supported up to 54Mbit/s speeds. Just copy a file or push some commits and you'll start to notice it.
If you only have 6Mbs DSL for an internet connection, you won't notice!
Or if you only use the laptop for surfing through Tor and do all the heavy stuff (YouTube 4K) on a desktop
Tor is actually a lot faster than it used to be. I remember when I first tried it several years ago (maybe ~2010?), and it was literally like going back to dialup - just horrible to use.

I tried it again more recently, and was very pleasantly surprised - it's not as fast at the web, but at least for web pages (as opposed to downloading files) the difference was much less noticeable.

You should be able to swap the wifi card for something with better drivers. Not being a BSD user, I couldn't give a recommendation.