DaemonForums  

Go Back   DaemonForums > FreeBSD > FreeBSD General

FreeBSD General Other questions regarding FreeBSD which do not fit in any of the categories below.

Reply
 
Thread Tools Display Modes
  #1   (View Single Post)  
Old 12th September 2008
Tsuroerusu Tsuroerusu is offline
Real Name: Troels Just
New User
 
Join Date: Jul 2008
Location: Denmark
Posts: 2
Default Compiling a blob-free FreeBSD 7.0 kernel

I recently decided that I was going to switch to FreeBSD on my main desktop, and leave Fedora for while, because Fedora won't be supporting KDE 3.5.x in new versions. FreeBSD has both in the ports tree, which was the approach that I preferred to this whole thing.

I am usually quite a bit of an OpenBSD fan, I use it on both of my servers, however for my main desktop, it's not that good of an option, because of the size of the ports tree, and some other things. FreeBSD generally would fit me well, but I have one problem. I take the OpenBSD stance on proprietary, binary-blob drivers. I have been tarring my hair out trying to compile a kernel without drivers such as ath, hptmv, hptrr, nve, oltr and so on. But every time I try, despite me commenting it out in the configuration file, it still compiles the support for them and builds the modules.

To sum it up, I humbly request a bit of help to compile a FreeBSD 7.0 kernel with no binary blob drivers at all. If there are more than the ones I mentioned above, please see those as included in this equation. I don't mind firmware all that much, although stripping out stuff like the Intel wireless drivers isn't something I would mind either.
I have been trying for hours now, and I just can't figure it out on my own.
__________________
"Hatred does not cease by hatred, but only by love. This is the eternal rule."
- Siddhattha Gotama (Buddha), founder of Buddhism.
Reply With Quote
  #2   (View Single Post)  
Old 12th September 2008
BSDKaffee's Avatar
BSDKaffee BSDKaffee is offline
Real Name: Jason Hale
Coffee Addict
 
Join Date: May 2008
Location: Wintersville, Ohio
Posts: 212
Default

You can remove them from the kernel config so they are not built into the kernel. To prevent the kernel modules from being built, you can add to /etc/make.conf:
Code:
WITHOUT_MODULES=    ath hptmv hptrr nve oltr
Reply With Quote
  #3   (View Single Post)  
Old 12th September 2008
robbak's Avatar
robbak robbak is offline
Real Name: Robert Backhaus
VPN Cryptographer
 
Join Date: May 2008
Location: North Queensland, Australia
Posts: 366
Default

I really don't know what you mean.

If you comment out the driver entries in the kernel config file, then they will not be linked into the kernel. The code for that module will be built, however, but it will be left as a loadable kernel module. You can control whether it builds the kernel modules in /etc/make.conf, but I do not know how.

The only binary blobs that FreeBSD will use are the firmwares for some devices, like wireless adapters - Sure, we would like the source code for that, but you'd expect it to be mostly in assembler anyway, which does not tell you much more than the binary anyway. After all, it is no different from a device with firmware in flash ram.
__________________
The only dumb question is a question not asked.
The only dumb answer is an answer not given.
Reply With Quote
  #4   (View Single Post)  
Old 12th September 2008
vermaden's Avatar
vermaden vermaden is offline
Administrator
 
Join Date: Apr 2008
Location: pl_PL.lodz
Posts: 1,056
Default

In /etc/make.conf add that line:
WITHOUT_MODULES="ath hptmv hptrr nve oltr"

more info here: make.conf(5) | src.conf(5)
__________________
religions, worst damnation of mankind
"If 386BSD had been available when I started on Linux, Linux would probably never had happened." Linus Torvalds

Linux is not UNIX! Face it! It is not an insult. It is fact: GNU is a recursive acronym for “GNU's Not UNIX”.
vermaden's: links resources deviantart spreadbsd
Reply With Quote
  #5   (View Single Post)  
Old 12th September 2008
Tsuroerusu Tsuroerusu is offline
Real Name: Troels Just
New User
 
Join Date: Jul 2008
Location: Denmark
Posts: 2
Default

Quote:
Originally Posted by robbak View Post
I really don't know what you mean.
If you comment out the driver entries in the kernel config file, then they will not be linked into the kernel. The code for that module will be built, however, but it will be left as a loadable kernel module. You can control whether it builds the kernel modules in /etc/make.conf, but I do not know how.

Quote:
Originally Posted by robbak View Post
The only binary blobs that FreeBSD will use are the firmwares for some devices, like wireless adapters
Actually, it's a bit more than that. If we look at the ath driver. The HAL for that is proprietary. hptmv and hptrr also have binary-only components. nve, uses NVIDIA's binary-only Linux blob for the nForce chipset. This is not firmware, this is stuff that actually runs in the OS at some level.

Quote:
Originally Posted by robbak View Post
Sure, we would like the source code for that, but you'd expect it to be mostly in assembler anyway, which does not tell you much more than the binary anyway. After all, it is no different from a device with firmware in flash ram.
Which I why I said I didn't mind firmware all that much. I mentioned the Intel drivers just in order to be "complete" in the sense that if needed, people could have mentioned those as well.

Let's just say my view on blobs are very, dare I say, Theo de Raadt-style.


Anyway, thank you guys for your replies I really appreciate it, and thanks a lot for replying so quickly.
__________________
"Hatred does not cease by hatred, but only by love. This is the eternal rule."
- Siddhattha Gotama (Buddha), founder of Buddhism.
Reply With Quote
  #6   (View Single Post)  
Old 12th September 2008
phoenix's Avatar
phoenix phoenix is offline
Risen from the ashes
 
Join Date: May 2008
Posts: 696
Default

"Binary blobs" and "binary/loadable firmware" are very different things.

Firmware runs on the hardware device itself (the harddrive, the soundcard, the wireless card, the NIC, the videocard, etc). A system without any firmware or firmware-loading mechanism will be a dead system (with the exception of the hardware that ships with the firmware onboard, of course). You can't run hardware without firmware. Period. The only difference between a piece of hardware that ships with the firmware onboard and one that ships with a driver that loads the firmware of the harddrive is where the firmware is stored (onboard or on disk). It would be really nice if people would stop the whole "no binary firmware" crap. OpenBSD is not anti-firmware (in fact, I don't know of any system that is).

Binary blobs or binary drivers are a completely different beast. These are things that run on your system, using your CPU, your RAM, etc. These are the things that can be troublesome. Who really knows what these things are doing on your system. These are the things that people who have an issue with binary blobs should be worried about. This is what OpenBSD is against.
__________________
Freddie

Help for FreeBSD: Handbook, FAQ, man pages, mailing lists.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
FreeBSD Kernel Optimization komodo FreeBSD General 5 22nd June 2009 07:15 AM
"free" command/perl script for freebsd unixdude FreeBSD General 0 17th November 2008 09:23 PM
compiling Apache 2.2.9 with php support on FreeBSD 7.0 dk_netsvil FreeBSD Ports and Packages 11 30th October 2008 11:05 PM
FreeBSD 7.0 kernel building... daemonFromHeaven FreeBSD Installation and Upgrading 4 3rd September 2008 02:42 PM
Understanding the FreeBSD kernel TomAmundsen FreeBSD General 3 7th July 2008 02:48 PM


All times are GMT. The time now is 02:13 AM.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Content copyright © 2007-2010, the authors
Daemon image copyright ©1988, Marshall Kirk McKusick