使用git上的kernel编译模块

大部分内核位于git.phytec.de,请阅读:

BSP版本、设备树、config文件对照表 / BSP version, device tree, config file cross reference table

来查询你使用的BSP是哪个内核以及哪个版本(tag),然后需要在本地git clone一份内核对应版本的代码,比如下面是i.MX7 PD17.1.2:

git clone git://git.phytec.de/linux-imx
git checkout v4.1.15-phy3

phytec git: https://git.phytec.de/

kernel下载完成后,需要先编译kernel:

source [sdk-environment]
make ARCH=arm imx_v7_defconfig
make ARCH=arm zImage

完成后就可以使用该kernel来编译模块,其中makefile中的路径需要修改为之前内核如:

obj-m += egalax_i2c.o

all:
	make -C /mnt/work/home/nzhang/kernel/linux-imx M=$(PWD) modules

clean:
	make -C /mnt/work/home/nzhang/kernel/linux-imx M=$(PWD) clean

编译指令,在模块代码的路径执行:

source [sdk-environment]
make

使用yocto中的临时内核代码来编译

这里除了makefile中的路径需要修改为yocto中内核代码外,还要在编译时使用devshell。

先在bsp包中执行

bitbake linux-imx -c devshell

然后在弹出的devshell窗口中使用cd命令进入模块的目录, 再执行make操作就可以编译模块成功.

  • No labels