linux-firmware软件包是干什么用的
6个回答
展开全部
网上随手搜一下Firmware这个单词,我们就能知道它翻译为固件。通常存储于硬件设备中的EEPROM或FLASH芯片中,一般可由用户通过特定的刷新程序进行升级的程序。一般来说,担任着一个硬件产品最基础最底层工作的软件才可以称之为固件。也就是Firmware应在是在硬件设备中存储的。
当我看到linux中会有Firmware时我的第一反映是:linux中的Firmware并不是第一段提到的概念。毕竟操作系统应该不需要Firmware啊!其实不然!Firmware仍旧是硬件设备的固件。
现在有很多硬件产品并不是出场时把Firmware刷好,而是需要系统使用此产品的驱动时负责把驱动包里带Firmware刷到硬件中去。因此为Linux拼凑某个设备的驱动时,有时我们需要从windows版的驱动包里把Firmware拷过来使用(比如我家的Benq扫描仪)。个人认为这样的好处是只要更新最新驱动就能同时使用最新的固件,不需要像以前一样需要自己刻意去刷固件。
当我看到linux中会有Firmware时我的第一反映是:linux中的Firmware并不是第一段提到的概念。毕竟操作系统应该不需要Firmware啊!其实不然!Firmware仍旧是硬件设备的固件。
现在有很多硬件产品并不是出场时把Firmware刷好,而是需要系统使用此产品的驱动时负责把驱动包里带Firmware刷到硬件中去。因此为Linux拼凑某个设备的驱动时,有时我们需要从windows版的驱动包里把Firmware拷过来使用(比如我家的Benq扫描仪)。个人认为这样的好处是只要更新最新驱动就能同时使用最新的固件,不需要像以前一样需要自己刻意去刷固件。
追答
在Linux Kernel中,Driver和Firmware是有明确含义的,其中Driver是控制被操作系统管理的外部设备(Device)的代码段。很多时候Driver会被实现为LKM,但这不是必要条件。driver通过driver_register()注册到总线(bus_type)上,代表系统具备了驱动某种设备(device)的能力。当某个device被注册到同样的总线的时候(通常是总线枚举的时候发现了这个设备),总线驱动会对driver和device会通过一定的策略进行binding(即进行匹配),如果Binding成功,总线驱动会调用driver的probe()函数,把设备的信息(例如端口,中断号等)传递给驱动,驱动就可以对真实的物理部件进行初始化,并把对该设备的控制接口注册到Linux的其他子系统上(例如字符设备,v4l2子系统等)。这样操作系统的其他部分就可以通过这些通用的接口来访问设备了。
而Firmware,是表示运行在非“控制处理器”(指不直接运行操作系统的处理器,例如外设中的处理器,或者被用于bare metal的主处理器的其中一些核)中的程序。这些程序很多时候使用和操作系统所运行的处理器完全不同的指令集。这些程序以二进制形式存在于Linux内核的源代码树中,生成目标系统的时候,通常拷贝在/lib/firmware目录下。当driver对device进行初始化的时候,通过request_firmware()等接口,在一个用户态helper程序的帮助下,可以把指定的firmware加载到内存中,由驱动传输到指定的设备上。
所以,总的来说,其实driver和firmware没有什么直接的关系,但firmware通常由驱动去加载。我们讨论的那个OS,一般不需要理解firmware是什么,只是把它当做数据。firmware是什么,只有使用这些数据的那个设备才知道。好比你用一个电话,电话中有一个软件,这个软件你完全不关心如何工作的,你换这个软件的时候,就可以叫这个软件是“固件”,但如果你用了一个智能手机,你要细细关系什么是上面的应用程序,Android平台,插件之类的细节内容,你可能就不叫这个东西叫“固件”了。
这种情况在计算机领域非常常见,所以大部分Spec都自己重新定义概念。比如说,我们平时写软件,说Component,很多就是只软件的其中一个部分,但在UEFI中,Component的定义是:
An executable image. Components defined in this specification support on elf the defined module types.
这是一个“独立的映像”,和我们一般理解的概念就完全不同,但如果你学计算机,请了解,这是我们的惯例。
麦保(深圳)科技有限公司_
2023-03-28 广告
2023-03-28 广告
cleanmymac是我必装的mac端清理软件,界面简洁好看,完美适配mac系统,文件清理的速度、精度都比较优秀,还是比较不错的呢。cleanmymac作为一款第三方清洁应用程序,具有专业完整的清理功能,包括释放内存、一键智能扫描垃圾和缓存...
点击进入详情页
本回答由麦保(深圳)科技有限公司_提供
展开全部
网上随手搜一下Firmware这个单词,我们就能知道它翻译为固件。通常存储于硬件设备中的EEPROM或FLASH芯片中,一般可由用户通过特定的刷新程序进行升级的程序。一般来说,担任着一个硬件产品最基础最底层工作的软件才可以称之为固件。也就是Firmware应在是在硬件设备中存储的。
当我看到linux中会有Firmware时我的第一反映是:linux中的Firmware并不是第一段提到的概念。毕竟操作系统应该不需要Firmware啊!其实不然!Firmware仍旧是硬件设备的固件。
现在有很多硬件产品并不是出场时把Firmware刷好,而是需要系统使用此产品的驱动时负责把驱动包里带Firmware刷到硬件中去。因此为Linux拼凑某个设备的驱动时,有时我们需要从windows版的驱动包里把Firmware拷过来使用(比如我家的Benq扫描仪)。个人认为这样的好处是只要更新最新驱动就能同时使用最新的固件,不需要像以前一样需要自己刻意去刷固件。
当我看到linux中会有Firmware时我的第一反映是:linux中的Firmware并不是第一段提到的概念。毕竟操作系统应该不需要Firmware啊!其实不然!Firmware仍旧是硬件设备的固件。
现在有很多硬件产品并不是出场时把Firmware刷好,而是需要系统使用此产品的驱动时负责把驱动包里带Firmware刷到硬件中去。因此为Linux拼凑某个设备的驱动时,有时我们需要从windows版的驱动包里把Firmware拷过来使用(比如我家的Benq扫描仪)。个人认为这样的好处是只要更新最新驱动就能同时使用最新的固件,不需要像以前一样需要自己刻意去刷固件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个是硬件的固件。
很多硬件需要自己的固件才能运行,这种东西类似于硬件自己的操作系统。
本来这个东西应该是存放在固件自己的存储器里面。但是因为各种”成本“和难度的原因,现在这些很多都是由驱动程序代为载入系统内存后和硬件交互运行。
可以不可以删除,这要看你的硬件是不是需要这东西。
你的计算机不会硬盘容量小到连这个也要删除吧?
很多硬件需要自己的固件才能运行,这种东西类似于硬件自己的操作系统。
本来这个东西应该是存放在固件自己的存储器里面。但是因为各种”成本“和难度的原因,现在这些很多都是由驱动程序代为载入系统内存后和硬件交互运行。
可以不可以删除,这要看你的硬件是不是需要这东西。
你的计算机不会硬盘容量小到连这个也要删除吧?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
现在有很多硬件产品并不是出场时把Firmware刷好,而是需要系统使用此产品的驱动时负责把驱动包里带Firmware刷到硬件中去。因此为Linux拼凑某个设备的驱动时,有时我们需要从windows版的驱动包里把Firmware拷过来使用(比如我家的Benq扫描仪)。个人认为这样的好处是只要更新最新驱动就能同时使用最新的固件,不需要像以前一样需要自己刻意去刷固件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
硬件固件,驱动硬件的软件包,你可以理解为驱动
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |