嵌入式开发板默认内核并没有打开IPv6协议栈,对网卡添加IPv6地址是不被允许的,出现“ifconfig: socket: Address family not supported by protocol”

可以2种方法来使内核支持:
1)重新配置内核,编译镜像,使之支持IPv6
2)编译IPv6协议栈模块,利用insmod方式加载模块
配置内核,并利用make zImage命令编译镜像,这样内核镜像就可以支持IPv6协议栈:
依次在内核配置单选择Networking support -> Networking options -> The IPv6 protocol



由于需要将IPv6协议栈编译进内核,所以选择“*”的方式。
这样编译好的内核镜像zImage.bin就可以支持IPv6,将其烧进开发板中即可。
在内核源码下配置为模块方式,编译模块make modules(前提是要用make zImage编译过内核源码)
利用这种方法时,在之前配置单选择时候,将“*”替换为“M”,表示以模块方式编译。


保存配置单后,在Linux源码目录下输入“make modules”命令,便可以对IPv6模块进行编译。编译出的模块为“ipv6.ko”文件,将其导入至TQ2440文件系统下,利用"insmod ipv6.ko"便可以进行加载模块。此时内核支持IPv6。
(宿主机上进行模块编译,可以发现最终编译出各种ko文件,包括ipv6.ko)


本文介绍在嵌入式开发板上开启IPv6协议栈的两种方法:一是重新配置并编译内核;二是编译IPv6协议栈模块并使用insmod加载。详细步骤包括内核配置选项的选择、内核编译命令以及模块编译和加载过程。
3944

被折叠的 条评论
为什么被折叠?



