一、拿到SDK后,执行以下命令,安装相应软件,否则编译过程中还是会报错,要求安装他们
sudo apt-get install ncurses-dev
sudo apt install lib32z1-dev
sudo apt install u-boot-tools
二、首先要以非裁剪配置 hi3518ev200_full_defconfig 来编译一次内核,然后再进行相应裁剪,否则出错。
-
进入 /Hi3518E_SDK_V1.0.4.0/osdrv/opensource/kernel/linux-3.4.y$ 目录,复制非裁剪的完整配置文档至该目录下:
cp arch/arm/configs/hi3518ev200_full_defconfig .config
-
执行内核编译命令
make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux- uImage
-
编译成功后,会在 “arch/arm/boot” 目录下生成相应的内核镜像,如图:
三、在内核中编译自己加载的驱动模块
-
将自己写的驱动程序放在 ~/Hi3518E_SDK_V1.0.4.0/osdrv/opensource/kernel/linux-3.4.y/drivers$ 下相关的目录下。例如,我的驱动是一个misc杂项设备驱动,所以将驱动放在了 misc 目录下,如图:
-
修改misc目录下 Makefile,添加驱动的编译路径。如图,红框处为添加的内容,只要加一行这个即可。
vi Makefile
3. 修改驱动程序的Makefile,进入自己的驱动程序目录,我的是 misc/veb_spi
,
执
行
v
i
M
a
k
e
f
i
l
e
。
修
改
其
中
P
A
R
A
M
F
I
L
E
的
路
径
,
让
M
a
k
e
f
i
l
e
能
找
到
/
H
i
3518
E
S
D
K
V
1.0.4.0
/
m
p
p
,执行 vi Makefile。修改其中 PARAM_ FILE 的路径,让Makefile能找到 ~/Hi3518E_SDK_V1.0.4.0/mpp
,执行viMakefile。修改其中PARAMFILE的路径,让Makefile能找到 /Hi3518ESDKV1.0.4.0/mpp目录下的 Makefile.param 文件。如果路径不对,编译时会提示无法找到文件,到时根据提示再调整路径也行。
4. 进入 /Hi3518E_SDK_V1.0.4.0/osdrv/opensource/kernel/linux-3.4.y$ 目录,执行如下命令编译内核和驱动,如果成功会在驱动对应的目录下找到 .ko 文件
make ARCH=arm CROSS_COMPILE=arm-hisiv300-linux- all