网卡AD HOC模式 device busy

网卡AD HOC模式(device busy)

可能原因

  • raspbian 有一个服务交ifplugd,是一个系统进程会自动配置网卡当它加入和拔出时。(我的目前系统并没有装载)
  • 后来查阅资料发现是因为wpa_supplicant运行中(为无线网络提供必要的服务)

解决方案

  • 第一种方法:将wpa-supplicant进程kill掉
  • 第二种方法:系统能够使用两张网卡

Raspberry Pi Zero 使用COM连接终端

Raspberry Pi Zero 使用 COM连接终端

1)enable UART

​ 将SD卡烧录Raspberry硬件支持的系统,将系统目录中boot里面的文件config.txt内添加一句话:enable_uart=1

1542377651187

2)使用USB转COM的设备

​ 1.在本次的测试中,我使用的设备是六合一多功能USB转UART串口模块CP2102,对该设备而言需要注意将该模块的功能选择其模式为USB转TTL

​ 1542379013182

​ 2.通过两端都为母线的杜邦线,将两个设备的GPIO针连接起来,具体连法如下

1542803245403

使用有PUTTY的软件对树莓派进行控制

3.使用带有PUTTY的软件进行对于树莓派进行控制(我使用mobaxterm),调节串口频率为115200bps,

选择好串口COMn,开始控制树莓派里面的嵌入式系统

​

BATMAN-ADV的配置

9075136688配置BATMAN-ADV

  1. 在新的树莓派上,若缺少环境需安装必要的依赖和工具,通过以下命令进行

    1
    2
    sudo apt-get update
    sudo apt-get install libnl-3-dev libnl-genl-3-dev vim screen git
  2. 从git上下载batctl源码,然后编译安装

    1)可通过编译链接,安装

    1
    2
    3
    4
    git clone /git.open-mesh.org/batctl.git
    cd batctl
    sudo make install
    cd ..

    2)debian系统可使用apt-get

    1
    sudo apt-get install alfred batmand batctl
  3. 输入以下命令,完成对batman使用前的配置,以下内容为脚本

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #!/bin/bash
    sudo modprobe batman-adv
    sudo ip link set wlan0 down
    sudo ifconfig wlan0 mtu 1532
    sudo iwconfig wlan0 mode ad-hoc
    sudo iwconfig wlan0 essid my-mesh-network
    sudo iwconfig wlan0 ap any
    sudo iwconfig wlan0 channel 8
    sleep 1s
    sudo ip link set wlan0 up
    sleep 1s
    sudo batctl if add wlan0
    sleep 1s
    sudo ifconfig bat0 up
    sleep 5s
    # Use different IPv4 addresses for each device
    # This is the only change necessary to the script for
    # different devices. Make sure to indicate the number
    # of bits used for the mask.
    sudo ifconfig bat0 172.27.0.1/16
  4. 设置脚本模式

    1
    chmod 700 /root/mesh.sh
  5. 启动脚本

    1
    /root/mesh.sh
  6. 此时网卡状态如下

    1543040626826

  7. 当有三台主机时,现在路由表为

    1543569854381

转至:/www.techinterchange.com.au/howto-setup-raspberry-pi-3-with-mesh-wireless-networking-using-b-a-t-m-a-n/

AD_HOC可选开源项目

目前可选开源项目(均开源)

  • Smesh

  • BATMAN ADV

  • Babel

  • Project Byzantium

  • CoovaChilli

    Smesh

    简介:一个无缝的无线Mesh网络(具有明显为客户端提供端到端连接的优势),客户端经过基站来进行网络通信

    • 提供P2P连接,因特网连通性

    • 设备快速取出和接入

    • 客户端接入经由标准的DHCP服务器

    • 设备使用该网络无需安装额外的软件和驱动

    • 工作模式为 802.11 IBSS ,整个工程分层次来进行架构,客户端从基站中分离出来进行通信,通信时不依赖本网络的其他客户端,而是经过基站来进行收发数据,所以我们无需修改移动设备的通信的方式

    • Smesh的基站是建立经典的Spines框架下的

    • 依靠socket进行多跳通信

    • SMesh的客户端可配置于原生的Windows XP, Mac OS-X, Windows-Mobile, Palm OS and Linux

      开发者:DSN LAb

      时间: Version 2.3, Built Apr 1, 2008

      条件:

      运行于802.11无线接口下的linux系统

      官方在x86,Linksys WRT54G和Meraki routers做过测试

BATMAN-ADV

简介:建立在链路层以linux内核环境下实现的路由协议

  • 就近选择网关节点

  • 与路由表是通过向邻居发送UDP包不同,他是通过虚拟的网络接口来发送透明的包以建立翻译表

  • 通过侦测以防止桥接网路,通过链路聚合以增强网络通信

  • wifi的客户端与客户端之间无法通信

  • 分布式的ARP表

  • 多播通信优化

  • 为了节省空闲时间,将两个包合并成一个包来进行网络通信优化

  • 能够将包进行碎裂处理

  • 能够使用Alfred的进程来发送本地信息和可视化当前网络状况

    最后发布时间:14.Nov 2018

    组织:open-mesh1542423585229

    平台:支持linux kernel(3.16-4.20)

    912-629-3567Babel

    简介:是一个防止路由环路的距离矢量路由协议

    • 能够提供IPv4和IPv6网络条件下实现快速收敛路由的能力
    • 参考设计在DSDV(Destination-Sequenced Distance Vector routing),AODV(Ad hoc On-Demand Distance Vector Routing)和EIGRP的路由协议底下
    • 是IETF的标准协议
    • 健壮和高效性在有线和无线网络
    • 同时提供IPv4和IPv6的网络
    • 由于协议小的特征,适合于嵌入式系统

    开发者:Juliusz Chroboczek

    时间:2019年6月有草案在ietf里

    平台:适合于嵌入式系统

Byzantium

简介:是一个能够在因特网接入下使用终端相互连接和分享信息的通信系统(Linux),可以在可插拔设备下无安装启动。

  • 图形化界面,拥有控制面板
  • 无线节点,可以在咖啡和家里发现

    (973) 634-2540CoovaChilli

    简介: 是一个开源的软件访问控制器(已经不存在的项目,现在有CHilliSpot贡献者维护)

  • 基于Radius和Http提供服务

  • 基于Openwrt,能够提供热点服务