Page 1 of 6 123 ... LastLast
Results 1 to 10 of 57

Thread: openSUSE without kernel binary blobs?

Hybrid View

  1. #1

    Question openSUSE without kernel binary blobs?

    Hi,

    I have just read that openSUSE has binary blobs in its kernel.

    Some questions which arise in my mind:

    1. Is deblobbing the linux kernel a freetardism and how bad is it actually to have blobs?

    2. In case it comes down to hardware support (which may depend on particular blobs) - how can one check if there is such hardware which needs those blobs?

    3. Is this a valid/recommended procedure for switching to a "Linux-libre" kernel or is there a better way?

  2. #2
    Join Date
    Feb 2010
    Location
    Germany
    Posts
    2,478

    Cool Re: openSUSE without kernel binary blobs?

    Given that, the binary blobs that matter for most of us, contain CPU, APU and GPU firmware, it depends on whether one wishes to use modern CPUs with firmware or, CPUs constructed using hardware modules with TTL gates and/or transistor arrays …

    Please be aware that, AFAIK, CPUs with firmware began to appear around 1975 – at least in the Mini-Computer scene …

  3. #3

    Default Re: openSUSE without kernel binary blobs?

    Quote Originally Posted by dcurtisfra View Post
    Given that, the binary blobs that matter for most of us, contain CPU, APU and GPU firmware, it depends on whether one wishes to use modern CPUs with firmware or, CPUs constructed using hardware modules with TTL gates and/or transistor arrays …

    Please be aware that, AFAIK, CPUs with firmware began to appear around 1975 – at least in the Mini-Computer scene …
    For CPU I have read only about microcode updates (and I wonder why on openSUSE dmesg shows:
    Code:
    [    0.000000] microcode: microcode updated early to revision 0x20, date = 2018-04-10
    while on intel.com there is a version 20180807.

    It is the first time that I read about firmware in CPU. Could you please elaborate?

    Also - why would one rely on the OS to update firmware?

    APU - the only info I found is this and since I am not using AMD (and not planning to) I guess it is not an issue.

    GPU - are you saying that the distro maintains my discrete video card's GPU and without it it won't be able to work? I have never heard of anything like that so far.


    Quote Originally Posted by nrickert View Post
    1. There is a vanilla kernel ("kernel-vanilla" in the repos). If you are worried about this, you can install that. It is the kernel compiled directly from sources.
    From what I read on the web the vanilla kernel also contains binary blobs.

    3. If there are binary blobs, they are probably in the "drm" module. You could just uninstall that.
    Unfortunately "probably" doesn't really help here. BTW with a little more searching I found some sources explaining that a package called linux-firmware is the one which contains blobs on other distros. On openSUSE I see a package kernel-firmware which shows a link to a repository with the same name. However that doesn't really say what is the situation with the rest of the kernel.

    4. You can download kernel sources and build your own.
    Please correct me if I am wrong but AFAIU that's vanilla too. (= your 1.)

    Another source suggests a check on licenses of modules like this:
    Code:
    modinfo $(lsmod | cut -d' ' -f 1) | awk '/filename/{fn=$2;} /license/{print $2, fn;}'
    which in my case shows:
    Code:
    Dual /lib/modules/4.12.14-lp150.12.48-default/kernel/drivers/gpu/drm/drm_panel_orientation_quirks.ko
    Dual /lib/modules/4.12.14-lp150.12.48-default/kernel/fs/nls/nls_cp437.ko
    Dual /lib/modules/4.12.14-lp150.12.48-default/kernel/fs/nls/nls_iso8859-1.ko
    ...
    GPL - for all others
    I wonder what "Dual" means and what these 3 are needed for.

    Generally my initial questions pretty much remain.

  4. #4
    Join Date
    Feb 2010
    Location
    Germany
    Posts
    2,478

    Default Re: openSUSE without kernel binary blobs?

    Quote Originally Posted by heyjoe View Post
    It is the first time that I read about firmware in CPU. Could you please elaborate?
    CPUs have come a long way from the concept of “only some logic gates” things such as discrete ALUs (Arithmetic Logic Units).
    Modern CPUs are complex beasts with various buses and channels performing pipe-lining of instructions and the instructions in parallel …
    Therefore, Firmware – to allow modification of the CPUs behaviour at the customer's site – both yours and, mine …

    Quote Originally Posted by heyjoe View Post
    Also - why would one rely on the OS to update firmware?
    You have to rely on someone with good contact to the CPU manufacturers …

    Quote Originally Posted by heyjoe View Post
    APU - the only info I found is this and since I am not using AMD (and not planning to) I guess it is not an issue.

    GPU - are you saying that the distro maintains my discrete video card's GPU and without it it won't be able to work? I have never heard of anything like that so far.
    Take a look in ‘/usr/share/licenses/kernel-firmware/’ and ‘/lib/firmware/’ …

    If the firmware can not be loaded at boot time, the device will not behave as expected …

  5. #5

    Default Re: openSUSE without kernel binary blobs?

    Quote Originally Posted by dcurtisfra View Post
    You have to rely on someone with good contact to the CPU manufacturers …
    But why? If I want to update my BIOS - I download the update and do it myself. Same for SCSI controller or whatever. Why should the CPU be any different? IOW: why should the distro be a mid-man? I mean - I not that I do or don't mind, just want to know why this is made to be like that.

    Take a look in ‘/usr/share/licenses/kernel-firmware/’ and ‘/lib/firmware/’ …
    How to the so called "Libre" distros run without all that? Are they any worse?

    If the firmware can not be loaded at boot time, the device will not behave as expected …
    Again - how come "Libre" distros work without that?

    Also - I certainly don't flash my BIOS on each boot. And I would be definitely concerned to find out that a firmware-level updated can come through the OS update. I have never thought that the OS would touch anything below Ring 0. Is that something new?

    Sorry if these questions sound dumb. I have just stopped following closely how CPUs evolve after Pentium 4

  6. #6
    Join Date
    Sep 2014
    Location
    Germany
    Posts
    346

    Default Re: openSUSE without kernel binary blobs?

    Quote Originally Posted by heyjoe View Post
    But why? If I want to update my BIOS - I download the update and do it myself. Same for SCSI controller or whatever. Why should the CPU be any different? IOW: why should the distro be a mid-man? I mean - I not that I do or don't mind, just want to know why this is made to be like that.
    In your post #4 you provided this link: https://downloadcenter.intel.com/dow...le?product=873

    Did you read the "Detailed Description" part?

    It actually provides an answer to your question:

    "CPU microcode is a mechanism to correct certain errata in existing systems. The normal preferred method to apply microcode updates is using the system BIOS, but for a subset of Intel's processors this can be done at runtime using the operating system. ... Microcode states are reset on a power reset, hence its required to be updated everytime during boot process ..."

    Quote Originally Posted by heyjoe View Post
    How to the so called "Libre" distros run without all that? Are they any worse?
    I never used a "Libre" distro and all i know about them is what one can read in Wikipedia :

    "... The downside of removing proprietary firmware from the kernel is that it will cause loss of functionality of certain hardware that does not have a free software replacement available ..."

    As far as my Bluetooth-adapter is concerned i can confirm this statement. The adapter will not provide certain BT profiles without its firmware being loaded. Yet i didn't dare to test how my Intel CPU does without its microcode.

    Regards

    susejunky

  7. #7

    Default Re: openSUSE without kernel binary blobs?

    So similar to what I would prefer Intel also says that the "normal preferred method to apply microcode updates is using the system BIOS" adding that it "can be done at runtime using the operating system". Then the question transforms to: why don't we do it the way the manufacturer recommends and why does the distro use the other way, instead of recommending the recommended one?

    Quote Originally Posted by susejunky View Post
    "... The downside of removing proprietary firmware from the kernel is that it will cause loss of functionality of certain hardware that does not have a free software replacement available ..."
    Doesn't that also contradict the recommendation of the manufacturer? If it is possible to do it once throug the BIOS, why should the OS do it on every boot?

    Yet i didn't dare to test how my Intel CPU does without its microcode.
    Are you saying that your CPU may not work without the microcode provided by the distro? Makes no sense.

  8. #8
    Join Date
    Sep 2014
    Location
    Germany
    Posts
    346

    Default Re: openSUSE without kernel binary blobs?

    Quote Originally Posted by heyjoe View Post
    Doesn't that also contradict the recommendation of the manufacturer? If it is possible to do it once throug the BIOS,
    Updating the firmware/microcode of a device via BIOS/UEFI implies installing a (new/updated) BIOS/UEFI which includes the updated firmware. Is that correct?

    Who should provide all those new/updated BIOSs/UEFIs?

    If firmware updates had to be done exclusively via BIOS/UEFI then - on every required firmware update - the manufacturer (of the device to be updated) had to contact all motherboard manufacturers who sell (and once sold!) boards which can handle that specific device, hand them over the new firmware and ask them to update their BIOS/UEFI for the boards in question and to provide these new/updated BIOSs/UEFIs to their customers.

    I can recall at least three intel microcode updates within the last twelve months (and my system contains several more devices which make use of firmware which in turn gets updated more or less frequently) so i can't believe that updating firmware/microcode exclusively via BIOS/UEFI would work.
    Quote Originally Posted by heyjoe View Post
    ...Are you saying that your CPU may not work without the microcode provided by the distro?
    No! I said: I have not tried to run my system without the CPUs microcode (and i certainly never will because i do not want to make my system vulnerable to known CVEs which intel fixed by microcode).

    Nevertheless i would be very interested to know how a system performs without the CPUs microcode. So if you do have any practical experience in this please share it here.

    Regards

    susejunky

  9. #9

    Default Re: openSUSE without kernel binary blobs?

    Quote Originally Posted by susejunky View Post
    Updating the firmware/microcode of a device via BIOS/UEFI implies installing a (new/updated) BIOS/UEFI which includes the updated firmware. Is that correct?
    I don't know. I am reading what Intel writes and asking.

    Who should provide all those new/updated BIOSs/UEFIs?
    Assuming that the answer to the above is "yes" (and I don't know if such assumption is correct for microcode in particular) that should be the motherboard manufacturer.

    If firmware updates had to be done exclusively via BIOS/UEFI then - on every required firmware update - the manufacturer (of the device to be updated) had to contact all motherboard manufacturers who sell (and once sold!) boards which can handle that specific device, hand them over the new firmware and ask them to update their BIOS/UEFI for the boards in question and to provide these new/updated BIOSs/UEFIs to their customers.
    I don't read anywhere "exclusively". I read "recommended". Also what you explain may be incorrect. To my mind the CPU manufacturers should publish updated microcode, the MB manufactuers should download it and update BIOS/UEFI accordingly, and the end user should in his turn follow the updates of the MB manufacturer. I.e. - nobody should "contact" anyone, just like nobody contacts me to update the version of openSUSE.

    I can recall at least three intel microcode updates within the last twelve months (and my system contains several more devices which make use of firmware which in turn gets updated more or less frequently) so i can't believe that updating firmware/microcode exclusively via BIOS/UEFI would work.
    My understanding is that firmware resides in ROM, i.e. needs to be written only once, not on every boot. Then it is read and executes on every boot. So it confuses me to read the replies here which imply that firmware is (in some way) ran by the OS on each boot. Please someone correct me if I am wrong and clarify.

    I have not tried to run my system without the CPUs microcode (and i certainly never will because i do not want to make my system vulnerable to known CVEs which intel fixed by microcode).

    Nevertheless i would be very interested to know how a system performs without the CPUs microcode. So if you do have any practical experience in this please share it here.
    Perhaps you mean the microcode *updates*. I don't think it is possible to run the CPU "without the microcode" (as in completely without any microcode) because of what it is and the way it works.

    I still hope to get answers to my initial questions.

  10. #10
    Join Date
    Jun 2008
    Location
    Auckland, NZ
    Posts
    20,193
    Blog Entries
    1

    Default Re: openSUSE without kernel binary blobs?

    In a nutshell - At boot, the UEFI firmware (or BIOS) loads the microcode in to the CPU. Microcode updates can be incorporated with UEFI firmware (or BIOS) updates. Updates can also be provided by operating systems to load new microcode at boot time. The Linux kernel loads the update the microcode (CPU firmware) to the CPU's volatile memory at boot time.
    openSUSE Leap 15.0; KDE Plasma 5

Page 1 of 6 123 ... LastLast

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •