Firmware binary identified by device

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP












0















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?










share|improve this question
























  • What operating system?

    – Jeff Schaller
    Jan 24 at 10:28











  • Linux operating system

    – pradip thakur
    Jan 24 at 17:16















0















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?










share|improve this question
























  • What operating system?

    – Jeff Schaller
    Jan 24 at 10:28











  • Linux operating system

    – pradip thakur
    Jan 24 at 17:16













0












0








0


0






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?










share|improve this question
















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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








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

















  • 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










1 Answer
1






active

oldest

votes


















0














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.






share|improve this answer






















    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
    );



    );













    draft saved

    draft discarded


















    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









    0














    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.






    share|improve this answer



























      0














      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.






      share|improve this answer

























        0












        0








        0







        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.






        share|improve this answer













        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.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Jan 25 at 0:35









        telcoMtelcoM

        17.2k12347




        17.2k12347



























            draft saved

            draft discarded
















































            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.




            draft saved


            draft discarded














            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





















































            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






            Popular posts from this blog

            How to check contact read email or not when send email to Individual?

            Displaying single band from multi-band raster using QGIS

            How many registers does an x86_64 CPU actually have?