Firmware binary identified by device
Clash Royale CLAN TAG#URR8PPP
How firmware binary file is identified by any device like the binary file is meant for that device.. What is the role of kernel in this?
linux firmware
add a comment |
How firmware binary file is identified by any device like the binary file is meant for that device.. What is the role of kernel in this?
linux firmware
What operating system?
– Jeff Schaller
Jan 24 at 10:28
Linux operating system
– pradip thakur
Jan 24 at 17:16
add a comment |
How firmware binary file is identified by any device like the binary file is meant for that device.. What is the role of kernel in this?
linux firmware
How firmware binary file is identified by any device like the binary file is meant for that device.. What is the role of kernel in this?
linux firmware
linux firmware
edited Jan 26 at 10:41
icarus
6,05111030
6,05111030
asked Jan 24 at 6:37
pradip thakurpradip thakur
1
1
What operating system?
– Jeff Schaller
Jan 24 at 10:28
Linux operating system
– pradip thakur
Jan 24 at 17:16
add a comment |
What operating system?
– Jeff Schaller
Jan 24 at 10:28
Linux operating system
– pradip thakur
Jan 24 at 17:16
What operating system?
– Jeff Schaller
Jan 24 at 10:28
What operating system?
– Jeff Schaller
Jan 24 at 10:28
Linux operating system
– pradip thakur
Jan 24 at 17:16
Linux operating system
– pradip thakur
Jan 24 at 17:16
add a comment |
1 Answer
1
active
oldest
votes
The hardware device won't specify the name of the firmware file; the device driver does that.
In general terms, the kernel may detect the hardware based on standardized identifiers (like vendor/product IDs on PCI/PCIe or USB buses, or DMI information), or it may already know the device is supposed to be there (platform devices; based on device-tree information on some architectures like ARM), or the administrator or system start-up scripts may explicitly tell the kernel to load a certain driver (still used with some x86 legacy devices based on the old ISA architecture which is not fully auto-detectable).
The driver will then attempt to confirm that the device exists and ascertain the state of the device, using some method that is either documented by the hardware vendor or reverse-engineered. If the device requires firmware, the driver will include the necessary kernel calls to load the appropriate firmware file. Once the firmware data is loaded in memory, the driver will send it to the hardware device, using whatever method is appropriate for that particular hardware.
The hardware device itself may or may not validate that the firmware data is correct. The simplest hardware designs may simply trust that the firmware provided by the driver is correct, and might hang if that isn't true, possibly requiring a device-specific reset sequence or even a power-down/unplug to make the device usable again. At the other extreme, the firmware might be cryptographically signed or even encrypted, with the appropriate keys and functionality to verify/decrypt it embedded in the device hardware.
Adding firmware verification/decryption logic in the hardware itself will increase the price and complexity of the hardware device, so generally the manufacturers will do that only if the use of non-standard firmware might cause something more significant than just the device itself not working: for example, a WiFi device firmware may regulate the frequencies and power levels used, so an incorrect firmware might cause the device to transmit on forbidden frequencies, potentially causing interference to air traffic control radars (either civilian or military). That might have very serious consequences, so hardware manufacturers have an incentive to ensure that only the firmware versions that have been certified to comply with the appropriate regulations can be used.
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "106"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f496386%2ffirmware-binary-identified-by-device%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
The hardware device won't specify the name of the firmware file; the device driver does that.
In general terms, the kernel may detect the hardware based on standardized identifiers (like vendor/product IDs on PCI/PCIe or USB buses, or DMI information), or it may already know the device is supposed to be there (platform devices; based on device-tree information on some architectures like ARM), or the administrator or system start-up scripts may explicitly tell the kernel to load a certain driver (still used with some x86 legacy devices based on the old ISA architecture which is not fully auto-detectable).
The driver will then attempt to confirm that the device exists and ascertain the state of the device, using some method that is either documented by the hardware vendor or reverse-engineered. If the device requires firmware, the driver will include the necessary kernel calls to load the appropriate firmware file. Once the firmware data is loaded in memory, the driver will send it to the hardware device, using whatever method is appropriate for that particular hardware.
The hardware device itself may or may not validate that the firmware data is correct. The simplest hardware designs may simply trust that the firmware provided by the driver is correct, and might hang if that isn't true, possibly requiring a device-specific reset sequence or even a power-down/unplug to make the device usable again. At the other extreme, the firmware might be cryptographically signed or even encrypted, with the appropriate keys and functionality to verify/decrypt it embedded in the device hardware.
Adding firmware verification/decryption logic in the hardware itself will increase the price and complexity of the hardware device, so generally the manufacturers will do that only if the use of non-standard firmware might cause something more significant than just the device itself not working: for example, a WiFi device firmware may regulate the frequencies and power levels used, so an incorrect firmware might cause the device to transmit on forbidden frequencies, potentially causing interference to air traffic control radars (either civilian or military). That might have very serious consequences, so hardware manufacturers have an incentive to ensure that only the firmware versions that have been certified to comply with the appropriate regulations can be used.
add a comment |
The hardware device won't specify the name of the firmware file; the device driver does that.
In general terms, the kernel may detect the hardware based on standardized identifiers (like vendor/product IDs on PCI/PCIe or USB buses, or DMI information), or it may already know the device is supposed to be there (platform devices; based on device-tree information on some architectures like ARM), or the administrator or system start-up scripts may explicitly tell the kernel to load a certain driver (still used with some x86 legacy devices based on the old ISA architecture which is not fully auto-detectable).
The driver will then attempt to confirm that the device exists and ascertain the state of the device, using some method that is either documented by the hardware vendor or reverse-engineered. If the device requires firmware, the driver will include the necessary kernel calls to load the appropriate firmware file. Once the firmware data is loaded in memory, the driver will send it to the hardware device, using whatever method is appropriate for that particular hardware.
The hardware device itself may or may not validate that the firmware data is correct. The simplest hardware designs may simply trust that the firmware provided by the driver is correct, and might hang if that isn't true, possibly requiring a device-specific reset sequence or even a power-down/unplug to make the device usable again. At the other extreme, the firmware might be cryptographically signed or even encrypted, with the appropriate keys and functionality to verify/decrypt it embedded in the device hardware.
Adding firmware verification/decryption logic in the hardware itself will increase the price and complexity of the hardware device, so generally the manufacturers will do that only if the use of non-standard firmware might cause something more significant than just the device itself not working: for example, a WiFi device firmware may regulate the frequencies and power levels used, so an incorrect firmware might cause the device to transmit on forbidden frequencies, potentially causing interference to air traffic control radars (either civilian or military). That might have very serious consequences, so hardware manufacturers have an incentive to ensure that only the firmware versions that have been certified to comply with the appropriate regulations can be used.
add a comment |
The hardware device won't specify the name of the firmware file; the device driver does that.
In general terms, the kernel may detect the hardware based on standardized identifiers (like vendor/product IDs on PCI/PCIe or USB buses, or DMI information), or it may already know the device is supposed to be there (platform devices; based on device-tree information on some architectures like ARM), or the administrator or system start-up scripts may explicitly tell the kernel to load a certain driver (still used with some x86 legacy devices based on the old ISA architecture which is not fully auto-detectable).
The driver will then attempt to confirm that the device exists and ascertain the state of the device, using some method that is either documented by the hardware vendor or reverse-engineered. If the device requires firmware, the driver will include the necessary kernel calls to load the appropriate firmware file. Once the firmware data is loaded in memory, the driver will send it to the hardware device, using whatever method is appropriate for that particular hardware.
The hardware device itself may or may not validate that the firmware data is correct. The simplest hardware designs may simply trust that the firmware provided by the driver is correct, and might hang if that isn't true, possibly requiring a device-specific reset sequence or even a power-down/unplug to make the device usable again. At the other extreme, the firmware might be cryptographically signed or even encrypted, with the appropriate keys and functionality to verify/decrypt it embedded in the device hardware.
Adding firmware verification/decryption logic in the hardware itself will increase the price and complexity of the hardware device, so generally the manufacturers will do that only if the use of non-standard firmware might cause something more significant than just the device itself not working: for example, a WiFi device firmware may regulate the frequencies and power levels used, so an incorrect firmware might cause the device to transmit on forbidden frequencies, potentially causing interference to air traffic control radars (either civilian or military). That might have very serious consequences, so hardware manufacturers have an incentive to ensure that only the firmware versions that have been certified to comply with the appropriate regulations can be used.
The hardware device won't specify the name of the firmware file; the device driver does that.
In general terms, the kernel may detect the hardware based on standardized identifiers (like vendor/product IDs on PCI/PCIe or USB buses, or DMI information), or it may already know the device is supposed to be there (platform devices; based on device-tree information on some architectures like ARM), or the administrator or system start-up scripts may explicitly tell the kernel to load a certain driver (still used with some x86 legacy devices based on the old ISA architecture which is not fully auto-detectable).
The driver will then attempt to confirm that the device exists and ascertain the state of the device, using some method that is either documented by the hardware vendor or reverse-engineered. If the device requires firmware, the driver will include the necessary kernel calls to load the appropriate firmware file. Once the firmware data is loaded in memory, the driver will send it to the hardware device, using whatever method is appropriate for that particular hardware.
The hardware device itself may or may not validate that the firmware data is correct. The simplest hardware designs may simply trust that the firmware provided by the driver is correct, and might hang if that isn't true, possibly requiring a device-specific reset sequence or even a power-down/unplug to make the device usable again. At the other extreme, the firmware might be cryptographically signed or even encrypted, with the appropriate keys and functionality to verify/decrypt it embedded in the device hardware.
Adding firmware verification/decryption logic in the hardware itself will increase the price and complexity of the hardware device, so generally the manufacturers will do that only if the use of non-standard firmware might cause something more significant than just the device itself not working: for example, a WiFi device firmware may regulate the frequencies and power levels used, so an incorrect firmware might cause the device to transmit on forbidden frequencies, potentially causing interference to air traffic control radars (either civilian or military). That might have very serious consequences, so hardware manufacturers have an incentive to ensure that only the firmware versions that have been certified to comply with the appropriate regulations can be used.
answered Jan 25 at 0:35
telcoMtelcoM
17.2k12347
17.2k12347
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f496386%2ffirmware-binary-identified-by-device%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
What operating system?
– Jeff Schaller
Jan 24 at 10:28
Linux operating system
– pradip thakur
Jan 24 at 17:16