FreeBSD on the Framework Laptop
xyinn.org
xyinn.org
My experience was pretty similar to that of the owner of Framework laptop, except some extra topics: headless NVIDIA GPU, Touchpad issues, bootloader hangs.
What is meant by: "many fryukhovovod and linukhovod"? How does that translate to English?
"Фрюховод", which Google translated as "fryukhovod", means a guy who raises and pets FreeBSD systems. Like cattleman is a man who raises and breeds cattle. It's gentle form. Same way "линуховод" (linukhovod) is a guy who raises Linux systems. Both are well-known jargon words circulating in sysadmin/programming community. :-)
So, the whole phrase your are referring to, can be translated as: "so, many FreeBSD and Linux adepts advise AMD GPU as an alternative".
Thanks for the response.
Does anybody know any service or a decent way to convert Google Translate pages to some editable format ? I would like to save that translation just in case I could find time to polish and publish English version.
-rwxr-sr-x 1 games games 1713664 Jul 9 17:01 /usr/local/share/nethack33/nethack33*
-rwxr-sr-x 1 games games 19744 Jul 9 17:01 /usr/local/share/nethack33/recover*
Here it's actually the SGID attribute that is set, not SUID.Also, because they don't change gratuitously, once you learn their quirks, you can move on to other things without needing to worry about re-learning tons about the next update. Linux is a constantly moving target with lots of churn that users of computers really don't want or need.
But...
This article describes (at least in my opinion) an unusable and unstable machine.
Basic HDMI out and Ethernet aren't "optional" on machines I run. Frankly - I'd rather lose wifi/bluetooth than HDMI and Ethernet (not that bluetooth is working here either...).
So I guess my point is that
>that users of computers really don't want or need
seems very much like a personal opinion. I not only want churn if it's bringing online more hardware support - I find the lack of support here completely unsuited to my needs.
If this is what you mean by "clean"... then It feels a bit like keeping a boardgame in the shrink wrap - rather than getting it out, bending a few cards, and having a good time. At least to me (fully admit this is also just an opinion).
For instance, does "ifconfig" need to be replaced by "ip" in order to support new ethernet chips? Do you need all sorts of new invocations to systemd because a new generation of Intel graphics is supported? No.
It may be a personal opinion that people don't want or need churn, but what I mean is that when people want to use a system to get things done, learning new invocations for old commands is usually a distraction to getting those things done.
I don't really think I am.
I'm going to pick on your exact example: ip is replacing ifconfig because linux distros are moving to netlink as a replacement for ioctl. Why are they doing that? Hardware support - Particularly WNICs.
So did ifconfig need to be replaced? Strictly speaking, no - but if you want better hardware support - yes...
ifconfig could have been updated, but the problem is that you're adding complexity to the system somewhere, either by expanding the old interface, or by replacing it with a new one.
You can argue expansion would have been preferable to replacement, but I'm not totally convinced - they both have tradeoffs. Someone is paying the piper either way.
The only way to avoid that cost (churn in the existing tool, or churn in the introduction of a new tool) is by not supporting that hardware. Which is what BSD is doing...
ip replaced ifconfig NOT because of new hardware support. For one, ifconfig could, and has been, extended. Second, that wouldn't explain removing ifconfig. Third, other OSes, like the BSDs, have alternatives for additional functionality like wiconfig.
ip could exist alongside of ifconfig, if ifconfig were really a subset of ip. It's political. And if you're going to echo that, "oh, someone needs to sit around and spend all sorts of energy keeping ifconfig up to date", then remember that they clearly don't if you contend that ip is all about supporting new stuff.
In other words, there's nothing in what you're saying at all that would explain the need to remove ifconfig and break decades of common usage. That's unnecessary churn, in my opinion.
I will talk about Linux with my therapist when I see her next. I wonder if childhood trauma is the reason I'm a Linux sysadmin.
I see this opinion a lot, but what tangible benefits does that result in?
For me, this is a nice benefit because I can know that anything installed into /usr/local can be removed and won't break the basic system's functionality. This organizational structure I think is also just very sensible imo.
Note: I'm mostly a Linux user but I play around with FreeBSD a lot. I wish that by default my Arch machine organized things similarly, but ultimately it's minor enough for me that I haven't switched
I don't really see how it is relevant. First I don't see why would anyone want to randomly remove things. On my linux system everything that I compile or install by myself goes to /usr/local. Everything managed by packages goes to /usr, any thing that comes from a precompiled tarball is better installed in /opt. How is that different?
What I liked about freebsd when I was using it was the handbook that was fairly complete.
A simple example is if you run 'which vim'. If you have installed vim through pkg on FreeBSD it will show up in /usr/local/bin/vim. Whereas if you run 'which vim' on Ubuntu, it will show up in /usr/bin/vim -- but on Ubuntu Desktop (when I last used it) vim is preinstalled. You can't just look at the /usr directory on a Linux machine in most cases and know what was installed when you installed the machine.
I mean, try debloating an Ubuntu Desktop machine that's been used for a while and tell me if by looking at the /usr directory what was included in the install vs what you installed post-install.
A simple example is if you run 'which vim'. If you have installed vim through pkg on FreeBSD it will show up in /usr/local/bin/vim. Whereas if you run 'which vim' on Ubuntu, it will show up in /usr/bin/vim -- but on Ubuntu Desktop (when I last used it) vim is preinstalled. You can't just look at the /usr directory on a Linux machine in most cases and know what was installed when you installed the machine.
SysV based Solaris left a bad taste and Linux just seemed unnecessarily weird. 386/Net/FreeBSD was fast, a stable, simple to configure and most importantly familiar.
Jails are a fair point, but if they’re essential to your production environment, why not just run your FreeBSD dev environment in a VM on your Linux laptop, or SSH into a dedicated FreeBSD dev box?
After all, OP is already running Linux in a VM in order to run working WiFi drivers.
Certain integrations between ZFS and the OS are more 'elegant' in FreeBSD:
But there is something very comfortable about the openbsd base system that I have not found in a linux system, don't get me wrong linux is one of the good guys. it does not actively anger me up like using a windows desktop system does. But I really feel at home on openbsd, I think it is because I feel I understand the system well.
Speed-wise I think is is more sluggish than a linux system. I like and keep it because openbsd is so comfortable. openbsd was the first operating system where I felt I understood it and it's motivations. every once in a while I try to replicate my preferred system on linux(void linux comes close to what I like about openbsd) but usually find myself back on openbsd(usually with a sigh of relief) in a couple of weeks.
Thinking back I have had essentially the same experience/environment on BSD for years. Upgrading from one version to the next just works and is fairly painless, even across major releases (trying to think of the last time I've had issues). I keep my home directory on a separate physical disk, so upgrading the OS drive or moving to new hardware is a matter of installing the latest BSD and plugging my home drive back in and mapping it. After upgrading I can use pkg to reinstall the apps I need and the shortcuts all link back, and I'm done. Probably forgot a few steps in there but it doesn't take long. For example I upgraded from 11.x to 13.0 just a few months ago with a hard drive swap and it took me maybe 3 hours(?), including installing the physical drive.
I don't play a lot of games on it, other than complete source ports, or simple games that run on vanilla wine. Linux is for gaming and experimenting. On Linux I am far more free with what I install, and my experience has changed often over the years with different distros. Some of that was by my choice, but even at the most basic level I've found that distros tend to have a lot of flux between versions.
So, overall no real surprises with FreeBSD. Upgrade and keep chugging.
* No Suspend/Resume? Linux has solved this for years, I have not come across a laptop in the last 10 years that had trouble with s2r or s2d (but I guess that there might be a few that don't fully support it, I mainly tested Dell laptops)
* WiFi driver and Ethernet over USB-C both highly unstable? That's an Intel chipset, those are usually the more stable ones (at least on Linux/Windows), and the wire ethernet is not a cheapo chipset either (Realtek)
* Bluetooth not supported???
* microSD slot on USB-C docking station doesn't work? This is just SPI, how hard can that be...
I wonder if there is any laptop from the last 5 years where FreeBSD fully works. I keep trying FreeBSD on and off on my two Laptops but I had similar experiences (plus I'm not used to the FreeBSD way of doing things). I'm ready to jump through some hoops but in my case, FreeBSD was always removed after a weekend or so, and replaced with Linux where everything just works.
I used to tinker a lot to get Linux and BSD running on hardware, but these days I kinda expect most things to just work out of the box ...
I really wish FreeBSD would get some more developer backing
I wouldn't be so sure. My Dell XPS 13 and ThinkPad X1 Carbon both had issues with suspend/resume. Close the lid @ get surprised with a completely dead battery.
Ironically, when I used FreeBSD on X1 - S3 state worked perfectly fine. The issue in post is how bhyve handles wake up from S3 state, with devices being pass-through to the VM.
Not once had a laptop that isn't a MacBook with macOS with properly working hibernation.
> * Bluetooth not supported???
Yeah, BT stack is completely broken for years. No one has desire to fix it.
> Ethernet over USB-C both highly unstable?
- I had no issues with my no-name dongle.
> I wonder if there is any laptop from the last 5 years where FreeBSD fully works.
Define fully works? Graphics - you're limited to Nvidia and whatever Linux 5.4 supported. Wi-Fi - 802.11g is as fast as you can go without wifibox.
> but these days I kinda expect most things to just work out of the box ...
Even on Linux, you either have to deal with hardware that been out for some time or know how to install the latest kernel and maybe apply some patches. When I got my XPS, it was the first one with Intel Xe - had to use "unstable" kernel in NixOS with every other distro not having graphics output.
This is still an issue in 2022: https://01.org/blogs/qwang59/2018/how-achieve-s0ix-states-li...
> Not once had a laptop that isn't a MacBook with macOS with properly working hibernation.
OpenBSD can pull this off, though the process is not very performant.
> ...802.11g is as fast as you can go without wifibox.
There are a few different Wi-Fi card options that will support 11ac on OpenBSD. Yes, it's not the full 11ac implementation, but some is better than none.
There's full Xorg GPU acceleration on AMD cards with drm-kmod[1]
> Wi-Fi - 802.11g is as fast as you can go without wifibox.
Some 5GHz 80211n cards will work. There's no support for ac/ax but at least you're not limited to overcrowded 2.4GHz.
When I had an Nvidia card, this issue would happen every other day, so I had to disable sleep and hibernate. Because it was a very shitty way to start your day.
Suspend still didn't work. Is there a list I have not found?
Much better resource is reading various wikis and user forums, I found.
Sometimes you need to enable legacy/linux ACPI state in BIOS. I think it maps S0ix to S3 or something like that.
There is (was?) an issue with suspend on some intels and I had to tweak the behavior otherwise the laptop would keep going after you close the lid.
I think both are solid laptops for linux.
[1]: Everything I used and tried
I believe the article author calls this "Sleep" and got it to work well. It's hibernation to disk that's not working.
WiFi and Bluetooth seem indeed to be issues but I don't really need them on my desktop. On a laptop it would be a dealbreaker indeed.
Not sure if the hook script is still necessary (kernel version has updated a couple times since), but it doesn't cause any issues, so I haven't taken the time to check.
Not exactly "worked out of the box". Easy fix, but the same fix is available on *bsd too.
Buying Realtek does not guarantee getting good hardware, the RTL8153 is infamous [0], and I remember there were reports about Realtek chips flooding the network with corrupt packets if they were powered on via the charger but not connected to a laptop.
[0] https://overengineer.dev/blog/2021/04/25/usb-c-hub-madness.h...
This is a fairly new controller that may not have a FreeBSD driver yet.
I don’t know if the lack of copy left license is the problem as much as the momentum.
The various Unix and BSD wars (that were predicated on a much different licensing challenge) and splintering of the communities has meant there was never a big way for developer or even manufacturer interest to really focus.
OpenBSD has a very different philosophy related to drivers than FreeBSD and for very understandable reasons, most of the BSDs don’t want to use or touch GPL code.
The copyleft nature of the GPL definitely helped Linux, but I don’t think it’s the only reason Linux was successful.
But Linux got its shit together first and was able to benefit from that. Apple and to a lesser-extent, Solaris, show that you can still have broader hardware support and drivers without a copyleft license.
I do think that if companies could easily port their Linux drivers, you’d see that happen. That’s absolutely a consequence of the license choice (and it’s a consequence from either license decision). But if there is a market for the BSDs in a particular area, I do think you see companies making drivers.
The reality is, the market for people running FreeBSD on laptops is pretty small and probably not worth it for a lot of WiFi chipset makers. But if you had a specific industry where FreeBSD was widely deployed, I do think you’d have broader hardware support for things important to that industry, if nothing else.
It is absolutely in their interest to help. But if people expect companies to just write a driver for X operating system, that’s not realistic. And if you could just port the Linux drivers, sure, that would be easier, but it wouldn’t change the fact that device makers still have the be able to prioritize where to put their resources. And laptop FreeBSD users is probably really low on most lists.
FreeBSD has some contribution from businesses like Netflix and Nginx and those are very welcome, but they have nothing to do with desktop usage. Those have deadlines and budgets, features get implemented and tested. That's why FreeBSD has superb network stack, good NUMA support, files from disk to nic go brrr. That's why the move to OpenZFS was so fast.
Then, they're contributions without company backing it. This is where desktop feature live. That's why FreeBSD's Wi-Fi stack is stuck on 802.11g - no company depends on this. GPU drivers stuck at Linux 5.4 level - no company cares about it[1]. Those get discussed to death - there is no deadline, no money.
Note, that solution to graphics card driver is to use Linux's drivers, so they don't shy about GPL. However, FreeBSD folks LOVE to bikeshed and polish things. This is why PR to port linux 5.11 drm was open when 5.11 was already EoL for an entire year. Instead of "just" porting 5.11, they decided to refactor how things are done. There are like 3 people working on that PR. It still not merged and not even in review yet.
[1]: Bless Nvidia for having FreeBSD driver available. Would be nice to have CUDA too...
What I would like to see however is maybe some specific wifi chip or USB/thunderbolt Ethernet adapter that is certified to work well with FreeBSD - for testing purposes and as a mobile network tool it would be useful to have a laptop running FreeBSD in a VM that could communicate over that dedicated piece of hardware. This would make it super convenient to test a bunch of physical hardware or do all kinds of other infrastructure work while remote.
Linux is not a company or person. It's the people behind Linux who got it together, but sadly BSD folks have left behind.
> Apple and to a lesser-extent, Solaris, show that you can still have broader hardware support and drivers without a copyleft license.
You're comparing Apple (a company, and a FAANG of them no less) with community-driven projects. Apples and oranges, almost literally.
Pretty sure any “port” of Linux drivers would be in effect a substantial rewrite, for the dissimilar kernel structures and coding standards.
FreeBSD enables these companies to exist and while consumer grade drivers are not available, many things in FreeBSD are rock solid. Thanks to commercial contributions.
Why should we all do free work for corporations? At least with the GPL you can negotiate a commercial license in exchange for money, but with a permissive license you forfeit your ability to do that.
This article accurately sums up my point of view: https://lukesmith.xyz/articles/why-i-use-the-gpl-and-not-cuc...
Also, the GPL does not require you to share the source code for programs that you do not distribute outside your company.
There is nothing to disagree here.
You're shoving in GPL ideology where none was asked for. No one is asking to do free work for corporations; this is a flimsy straw man. You're welcome to do what you feel, I was stating the fact that FreeBSD has done the world a lot of good. That's hard to refute even in the worst of assumptions. And that's not saying anything about GPL. It has its place.
I personally regard copyleft as a severe curtailing of options and equate it with being forced to adopt a narrow, ideological worldview. Worse, the GPL perpetuates the fundamental atrocity of intellectual property law, by hacking it, and therefore intrinsically depending on it; in contrast, the BSD and MIT licenses are mostly a liability waiver under an assertion of attribution, ultimately creations more of necessity than ideology.
In the context of abjuring exploitative corporations, I hear an echo of trade unionism, a movement often oblivious to its own reinforcement of capitalism, again by depending upon the thing it purports to confront; few entities are more aligned with the moral sentiments of Adam Smith than a trade union engaged in collective bargaining. And so it is with the copyleft licenses and their implicit support for enforceable intellectual property rights.
The article linked appears to be derogatory, emotive, riddled with false equivalences, and relies on invective as a substitute for rhetoric. Rather than finding it compelling, it think it describes a myopic, narcissistic view of both intellectual advancement and the value of unfettered contribution.
>At the end of the day, though, what does it matter? What is a totally unenforced GPL? It's just a Cuck License—Isn't that what license cucks want? So why should they care? At their very best, BSD and MIT licenses are only what GPL might be at its very worst.
>The GPL is a permanent liability for any company that crosses it. Some companies might be so bold to lift GPL code and hide it, but there is always a risk and a worry that prevents its general violation.
which will be less feasible if people don't contribute to permissive projects in the first place, and basically serve as free labor for corporations to take advantage of.
> or they will roll their own (probably lower quality) proprietary version
this will cost them time and money to produce, putting them at a disadvantage compared to their competitors.
>Or they'll pull an nvidia and release some hacky shim/workaround that breaks all the time and leads to bad user experience.
nvidia can pull that off with linux because pushover operating systems like BSD give them the leverage to make those sorts of demands of the linux ecosystem. If linux sues nvidia or makes the driver/shim incompatible that's fine by nvidia- they will be mostly content with to tell their userbase to switch over to BSD so they can distribute a closed-source driver. They can do this to the extent that BSD is a workable replacement for linux, so all work on BSD is really just leverage against the linux GPL.
If there were no feasible permissive competitors to linux, then linux developers would be quite free to make demands of companies who would be forced to comply with the GPL or write their own OS from scratch.
That is quite the assertion given that FreeBSD is much smaller than linux, which is already much smaller than windows. Honestly kind of laughable, FreeBSD is so small and insignificant, it's just an afterthought of an afterthought for companies, the only reason those drivers exist is because it's a minimal amount of extra work for them since they already have the linux drivers.
It would take a massive amount of work and nurturing to create a FreeBSD community large enough for it to become a palatable option for most linux users. Not to mention FreeBSD doesn't even have CUDA support, so nvidia themselves would have to do extra work to make it happen (probably other features too, that's just the main one that bit me). As for shims, linux already breaks them all the time, that's why everyone hates nvidia on linux. But that doesn't stop nvidia from doing it.
> If there were no feasible permissive competitors to linux, then linux developers would be quite free to make demands of companies who would be forced to comply with the GPL or write their own OS from scratch.
nvidia is already complying with the GPL. And no, if they wanted to skip shims they wouldn't be forced to write their own OS, they would just force their users to use windows. This comparison makes no sense.
[1] https://i.redd.it/2omcrsz8ut691.png
* i am aware how in todays time you shouldn't, updates, and blah blah. But not required.
So the reason we are not seeing say open CUDA drivers from NVIDIA for Linux is that they instead distribute closed ones for permissively licensed operating systems such as FreeBSD, OpenBSD, Illumos, MINIX, Plan9, etc.? Which (apart from all lacking CUDA drivers) all universally have less support from hardware manufacturers both when it comes to open and closed drivers across the board? ERRNOLOGIC.
You are aware that FreeBSD got closed NVIDIA graphics driver support about a decade after Linux? It is also the only operating system with a permissive license that I am aware of NVIDIA ever supporting.
Alternatively, are you trying to refer to that some game consoles used FreeBSD as a basis and had proprietary NVIDIA drivers written for them? You are aware that there is nothing stopping them from doing exactly the same thing with Linux?
You are free to believe in “licensing magic” being a solution as much as you want, but I think that you will find that it all has much more to do with what NVIDIA is ultimately all about: Shipping as many cards as is humanly possible while maintaining a borderline monopoly maximising profits.
Ahem, https://cgit.freebsd.org/ports/commit/?id=94fc89fbfbc7cd8886...
> some game consoles used FreeBSD as a basis and had proprietary NVIDIA drivers written for them
You mean proprietary AMD drivers? (Only PlayStation 4 and 5 are based on FreeBSD.)
See https://en.wikipedia.org/wiki/Comparison_of_open-source_wire...
The driver layer (code around firmware that initializes the hardware and marshals/unmarshals comms to/from the device).tends to be GPL lest it taint the kernel. The firmware on the other hand, is the last unconquered vestige of the Open Source landscape. Logic locking, and the prevalence/nature of fabless semiconductor IP tends to make that endeavor incredibly difficult.
It is really hard to have a complete personal computer on Linux or any other OS that doesn't require closed source / proprietary binary blobs.
Now I run OpenBSD, and I could purge /etc/firmware with no issues if I wanted.
It isn't "just SPI". That is a fallback protocol for the full SD interface.
I understand that the community only has so many resources to support the various hardware around. I suspect one BSDs strengths is that the smaller community is able to follow a more cohesive vision. But for me this means I'm probably not going learn it until I can just run it out of the box.
But I don't need WiFi nor Bluetooth so that helps a lot. Don't have these on my windows (big gaming box) desktop either.
I'm just not a laptop person really. Only for work. That makes the situation a lot easier.
Audacious is a fork of a fork of it.
Jesus christ.
Have you ever tried to install a minimal driver for a printer in windows, and then watched in horror as it automatically started downloading 600MB of HP junk?
Never have I changed my opinion on something (a VM for a fricking driver) so quickly. Good job.
(or, just run Linux and run FreeBSD in a VM, but that's no way to support a niche operating system...)
(I would love to be proven wrong, but I'm super tired of people saying "wifi cards work fine on FreeBSD" when the reality is that the speeds are sub-optimal without a way to improve it currently)
dmesg | grep ath:
[ath_dfs] loaded
[ath_rate] loaded
[ath] loaded
ath0: <Atheros AR946x/AR948x> mem 0x7a200000-0x7a27ffff at device 0.0 on pci2
ath0: [HT] enabling HT modes
ath0: [HT] enabling short-GI in 20MHz mode
ath0: [HT] 1 stream STBC receive enabled
ath0: [HT] 1 stream STBC transmit enabled
ath0: [HT] LDPC transmit/receive enabled
ath0: [HT] 2 RX streams; 2 TX streams
ath0: AR9460 mac 640.3 RF5110 phy 0.0
ath0: 2GHz radio: 0x0000; 5GHz radio: 0x0000
ath0: ath_edma_recv_tasklet: sc_inreset_cnt > 0; skipping
ath0: ath_edma_recv_tasklet: sc_inreset_cnt > 0; skipping
I confirmed by checking wpa_cli scan_results and I saw my 5ghz-only ssid (not listing the output here for privacy)Its an AR9462 which I purchased off thinkpenguin
People will say it is easy, setup a mesh network or some powerline adapters but: 1. It is much more expensive 2. It is not practical in an old flat with very few power outlets, especially when you are not the owner.
And I don't really run into use case where running 2.4GHz limits me.
exactly.
this is the kind of bs i like to call out when i see the usual freebsd desktop thread.
it's going to work mostly okay-ish, as long as you don't mine some abominations like that running on your systems in the background.
this really reminds me my linux experiences circa 2005-2006 (ndiswrapper for wifi cards, do people remember that?).
That’s a it different from the various Broadcom or whatever issues the Linux kernel was dealing with in the early Ubuntu eras (where Ubuntu also I think accepted some blobs/drivers that weren’t in the kernel at the time).
The problem here seems to be no support for certain stuff, regardless of chipset maker, rather than having to pick a certain one, unless you’re able to go really far back (which may have issues on some networks at this point).
As always, the best option for less-mainstream operating systems is to use Ethernet when possible.
Not because Linux doesn't work at a *hardware* level. All the drivers are long since mainlined and the documentation on places like Gentoo and Arch's wikis are superb
The only blocker for me now is fractional scaling in XFCE is just not there (yet). It's something the developers are slowly working on and hoping to get out in the next release, but it's just not available yet.
I could use GNOME or KDE and gain it (and probably even run Wayland since it's an Intel iGPU) but I've been wedded to XFCE since GNOME 2 went out the door and GNOME 3 showed up. I'd rather not make the uphill climb to relearn an entire desktop environment for just a laptop I use infrequently