将firmware编译进kernel空间

将firmware编译进kernel空间

Overview

kernel原本就是支持将firmware编译进内核的。

早些年,用的比较多的是方法一。这也就导致了kernel里面多了很多firmware文件,这些文件对于kernel源码来说。不适合放在release版本里面。用户自己需要时添加比较合适。所以有了下面两个修改。

2017年9月份,kernel开发者整理firmware下的相关代码(如下两个patch)

From 5620a0d1aacd554ebebcff373e31107bb1ef7769 Mon Sep 17 00:00:00 2001
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date: Thu, 14 Sep 2017 14:23:01 -0700
Subject: [PATCH] firmware: delete in-kernel firmware

From df85b2d767aad90fd2746f993fcd66dd322768f8 Mon Sep 17 00:00:00 2001
From: Markus Trippelsdorf <markus@trippelsdorf.de>
Date: Sat, 16 Sep 2017 11:01:16 +0200
Subject: [PATCH] firmware: Restore support for built-in firmware

法2其实是一直都支持的方法。

法1是看起来,用的人比较多的方法。

新版本的kernel中,法1不支持了。

法1:kernel 4.9 及之前版本的方法

1.1 修改firmware/Makefile,如下面的例子

fw-shipped-y += a/b.bin
fw-shipped-$(CONFIG_A) += c/d.fw
fw-shipped-$(CONFIG_B) += d.ihex

1.2 添加FW

然后在firmware目录下添加.fw .bin .ihex等firmware文件

法2:kernel 4.14版本方法

2.1 在defconfig中增加如下修改

CONFIG_EXTRA_FIRMWARE_DIR="firmware"
CONFIG_EXTRA_FIRMWARE="a.bin b.bin c.bin"

EXTRA_FIRMWARE_DIR该选项指定firmware所在的目录

CONFIG_EXTRA_FIRMWARE该选项是一个字符串,接受固件文件的名称(空格分隔)

与源文件中MODULE_FIRMWARE()request_firmware()中出现的名称相同。
这些文件应该存在于EXTRA_FIRMWARE_DIR选项指定的目录下

2.2 添加FW

在kernel根目录下的firmware目录中添加.bin固件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值