c - ARM-linux4.3.2,无法打开PF_PACKET类型的socket

标签 c linux sockets arm cross-compiling

我将 FriendlyARM 与 linux 2.6.29 一起使用,并使用 ARM-Linux GCC 进行编译 4.3.2

当尝试使用 PF_PACKET 打开套接字时失败,错误号为 97,地址 协议(protocol)不支持的系列。

这是一个说明问题的示例程序 -

 #include <stdio.h>
 #include <sys/socket.h>
 #include <netpacket/packet.h>
 #include <net/ethernet.h> 
 //#include <linux/if_packet.h>
 //#include <linux/if_ether.h>
 #include <errno.h>

  int main() {
      int sockfd = socket(PF_PACKET, SOCK_RAW, htons(ETHER_TYPE));
      if (sockfd < 0)
          perror("Can't open socket");
  }

知道为什么会这样吗?

提前致谢

奥伦

编辑: 我尝试过的事情 -

  1. 确保我以 root 身份运行

  2. 在 linux 2.6.27.7-9-pae 和 intel 机器下编译,在它下工作正常 (gcc 4.4.1)

  3. 下面的帖子表明它与 linux 版本有关,但基于以上我认为它可能是其他原因。 link text

最佳答案

您的内核配置中是否定义了 CONFIG_PACKET?这是 AF_PACKET 所必需的。

关于c - ARM-linux4.3.2,无法打开PF_PACKET类型的socket,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3297005/

相关文章:

java - PHP 套接字发送数据,但 Java 套接字未接收数据

c++ - gtk 配置错误 - 找不到包 'atk-bridge-2.0'

谁能解释一下这个程序吗?

c++ - 将结构传递给函数并在其中输入数据

c - 如何通过 linux framebuffer 在屏幕上显示一些东西?

linux - RPM 包名称中的 "sdl6"指的是什么?

c - 使用C编程调用VHDL实现

linux - 如何在CentOS 6.5 上搭建一个可以使用最新的shell、diff、vim 等的环境?

linux - 如何使用 netlink 监控用户空间守护进程中的内核 arp 表?

linux - 连接Redis时无法读取任何数据