LinuxQuestions.org
Review your favorite Linux distribution.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Software
User Name
Password
Linux - Software This forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.

Notices


Reply
  Search this Thread
Old 09-29-2018, 09:04 AM   #1
whjeon
Member
 
Registered: Feb 2018
Location: Seoul,South Korea
Distribution: Gentoo Linux
Posts: 88

Rep: Reputation: Disabled
curious about binary blobs


Dear Mentors.

While I'm studying Linux and CPU architectures, I already knew that there are lots of different cpu instructions between cpus.

Then how proprietary binary blobs (such as Nvidia Driver) install my cpu's instruction architecture?

I mean how do they exactly copy and install x86_64/i5-4690 instruction binary onto my pc?

Do they first detect my cpu? and have every different instruction's binaries on their DB?
 
Old 09-29-2018, 11:26 AM   #2
hazel
Senior Member
 
Registered: Mar 2016
Location: Harrow, UK
Distribution: LFS, AntiX, Slackware
Posts: 4,719
Blog Entries: 13

Rep: Reputation: 2690Reputation: 2690Reputation: 2690Reputation: 2690Reputation: 2690Reputation: 2690Reputation: 2690Reputation: 2690Reputation: 2690Reputation: 2690Reputation: 2690
If you look on the download page for the nvidia driver, you can see that there are general versions for 32-bit and 64-bit Intel and 32-bit arm. There are also some specific versions for particular distros and releases.

I assume these packages are built in the same way as the packages in any binary distribution. That is to say, they use only the general instruction set for that architecture and are not tuned to the precise foibles of particular processors.
 
1 members found this post helpful.
Old 09-29-2018, 06:03 PM   #3
zeebra
Member
 
Registered: Dec 2011
Distribution: Mageia, Slackware
Posts: 854
Blog Entries: 10

Rep: Reputation: 211Reputation: 211Reputation: 211
Damn, I was reading about this yesterday when I was dealing with a firmware issue. I apologise if I do not remember it correctly, but what I remember is that the software driver actually loads the firmware into the hardware space.

I am no expert, but the way I interpret this and simplify it to myself to try to understand it, is that this loading of the firmware into the hardware by the driver activates that hardware to work with the driver. To further simplify it in my head I liked to compare it to an encryption key facility, where the hardware only allows drivers signed with the particular key, and the loading of firmware into the hardware by the driver is that "handshake".

I could be grossly wrong. I was reading alot about firmware and Linux yesterday, but it went a bit over my head. So anyone feel free to correct my possibly idiotic and ridiculous interpretation of firmware.
 
1 members found this post helpful.
Old 09-30-2018, 07:16 AM   #4
hazel
Senior Member
 
Registered: Mar 2016
Location: Harrow, UK
Distribution: LFS, AntiX, Slackware
Posts: 4,719
Blog Entries: 13

Rep: Reputation: 2690Reputation: 2690Reputation: 2690Reputation: 2690Reputation: 2690Reputation: 2690Reputation: 2690Reputation: 2690Reputation: 2690Reputation: 2690Reputation: 2690
I don't know about video cards but some wifi cards certainly work in that way. For example, if you have a broadcom card (as I once did), it needs certain code loaded into its own internal processor in order to work. The kernel's broadcom driver is instructed to perform this load and complains if it can't find the necessary file in /lib/firmware. But I don't know if it is an activation key or just a blob containing secret instructions that the manufacturer doesn't want to include in the kernel driver for reasons of commercial secrecy.
 
1 members found this post helpful.
Old 09-30-2018, 10:14 AM   #5
Habitual
LQ Veteran
 
Registered: Jan 2011
Location: Abingdon, VA
Distribution: Catalina
Posts: 9,374
Blog Entries: 37

Rep: Reputation: Disabled
When I was growing up on Computers, a blob was a "Binary Large OBject". Thanks Oracle.
IDK how they read every OS/arch/driver, I'm guessing there's some JavaScript involved. Lot of things exposed via the browser.
I supposed that would/could be an "open loop" or traversal into the system. [See graphic]
Check about:config (if such a feature exists on your chosen browser) and search for these items?

Found this (first)

Hope that helps.
 
2 members found this post helpful.
Old 10-01-2018, 01:25 AM   #6
ondoho
LQ Addict
 
Registered: Dec 2013
Posts: 15,536
Blog Entries: 9

Rep: Reputation: 4486Reputation: 4486Reputation: 4486Reputation: 4486Reputation: 4486Reputation: 4486Reputation: 4486Reputation: 4486Reputation: 4486Reputation: 4486Reputation: 4486
EVERY program is a binary blob (or at least a bob, refering to habitual's definition) once it is compiled.

but i guess you are refering to binary blobs as opposed to open source software?
in that case it just means "there's no source code available for this software. the manufacturers are keeping it secret". it does not mean that the program's functionality is fundamentally different.
 
Old 10-01-2018, 06:53 AM   #7
zeebra
Member
 
Registered: Dec 2011
Distribution: Mageia, Slackware
Posts: 854
Blog Entries: 10

Rep: Reputation: 211Reputation: 211Reputation: 211
Quote:
Originally Posted by hazel View Post
I don't know about video cards but some wifi cards certainly work in that way. For example, if you have a broadcom card (as I once did), it needs certain code loaded into its own internal processor in order to work. The kernel's broadcom driver is instructed to perform this load and complains if it can't find the necessary file in /lib/firmware. But I don't know if it is an activation key or just a blob containing secret instructions that the manufacturer doesn't want to include in the kernel driver for reasons of commercial secrecy.
In my particular case I was dealing with the iwlwifi. I downloaded the correct ucode from github. When looking at the file through github it kinda looks like a table of weird data. Have a look at some iwlwifi ucode files on github to see what I mean.

I personally have no clue what they actually do, but I think you are right in what you say. My problem was that my new custom kernel did not accept my old ucode file which was shipped with the distro and an older kernel. This ofcourse worked for that particular kernel, but the new kernel required a newer ucode file. This makes no sense, unless what you say is correct.

Anyways, I have not inspected alot of other firmware and I am by no means qualified to talk about firmware, but what I said is my impression and interpretation of it, and what you say fits with that too.
 
1 members found this post helpful.
Old 10-01-2018, 06:54 AM   #8
zeebra
Member
 
Registered: Dec 2011
Distribution: Mageia, Slackware
Posts: 854
Blog Entries: 10

Rep: Reputation: 211Reputation: 211Reputation: 211
Quote:
Originally Posted by ondoho View Post
EVERY program is a binary blob (or at least a bob, refering to habitual's definition) once it is compiled.

but i guess you are refering to binary blobs as opposed to open source software?
in that case it just means "there's no source code available for this software. the manufacturers are keeping it secret". it does not mean that the program's functionality is fundamentally different.
ahh yah, this is ofcourse true too. but specifically about binary blobs related to the kernel, most people think of firmware, at least I did.
 
1 members found this post helpful.
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

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 Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
LXer: How to manage binary blobs with Git LXer Syndicated Linux News 0 08-15-2016 08:15 AM
Does Alpine Linux contain blobs? Soderlund Linux - Distributions 9 01-22-2016 04:26 PM
Packing some binary blobs with rpm Alexvader Linux - General 1 11-03-2010 06:11 PM
LXer: Debian permits binary blobs LXer Syndicated Linux News 0 01-13-2009 08:00 AM
LXer: Binary blobs mean few apps are purely open source LXer Syndicated Linux News 0 08-27-2006 07:21 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Software

All times are GMT -5. The time now is 04:24 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration