海思平台SS528V100编译 linux kernel tun.c eth_get_headlen 编译 出错的问题

osdrv目录下  make kernel  

会去opensource目录下解压linux内核压缩包 同时打上很多补丁 

海思平台SS528V100编译 linux kernel tun.c eth_get_headlen 编译 出错的问题_第1张图片

如上图  查看Makefile 如下 有打补丁的命令 

海思平台SS528V100编译 linux kernel tun.c eth_get_headlen 编译 出错的问题_第2张图片

然后 然后我们的应用程序用到一个特性 需要打开tun/tab这两个属性 

打开之后编译内核出错 

海思平台SS528V100编译 linux kernel tun.c eth_get_headlen 编译 出错的问题_第3张图片

查到最后发现  

没打补丁之前的文件 没问题 

打完补丁之后出问题了  

那就  用原来的文件 替换掉现有的文件  如下图  左边的是原来的 

右边的打完补丁之后的文件

然后  去arch/arm64/configs/目录 更改配置文件ss528v100_defconfig

增加如下两个选项

CONFIG_TAB=y
CONFIG_TUN=y

去内核源码目录

cp arch/arm64/configs/ss528v100_defconfig .config

make ARCH=arm64 CROSS_COMPILE=aarch64-mix210-linux- menuconfig

发现这个选项已经打开了 

海思平台SS528V100编译 linux kernel tun.c eth_get_headlen 编译 出错的问题_第4张图片

然后还要增加网卡驱动 

根据板卡厂家给得代码 

目录是drivers\net\ethernet\vendor\gmac

gmac.h文件 增加如下代码

海思平台SS528V100编译 linux kernel tun.c eth_get_headlen 编译 出错的问题_第5张图片

同目录util.c文件 修改如下 

海思平台SS528V100编译 linux kernel tun.c eth_get_headlen 编译 出错的问题_第6张图片

然后编译

make ARCH=arm64 CROSS_COMPILE=aarch64-mix210-linux- uImage -j 20

先clean 一下

make ARCH=arm64 CROSS_COMPILE=aarch64-mix210-linux- clean
 

海思平台SS528V100编译 linux kernel tun.c eth_get_headlen 编译 出错的问题_第7张图片

这次没报错了 生成了对应的uImage 

你可能感兴趣的:(linux,运维,服务器)