Comments (3)
Clean install
✔️ mesh module only
- bash scripts/mesh-point/install
- hardcoded meshname in mesh-point script
- hardcoded frequency in mesh-point script
wlan1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
❌ Disabled WPA Kill in mesh-point
wlan1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
❌ manual meshpoint
sudo ifconfig wlan1 down
sudo iw wlan1 set type mp
sudo ifconfig wlan1 up
sudo iw dev wlan1 mesh join tomesh freq 2412
sudo iw dev wlan1 set mesh_param mesh_fwding=0
wlan1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
from prototype-cjdns-pi.
Script reported to work:
#!/bin/bash
function isMeshable {
interface=`iw dev | grep phy#$1 -A 1 | grep Interface | awk '{print $2}'`
# Check to see if driver reports missing mesh point support
if [ -z "$(iw phy phy$1 info | grep 'mesh point')" ]; then
result='' # Indicate interface is not meshable
# XRADIO driver reports Mesh Point but does not actually work
elif [ "$(basename $(readlink /sys/class/net/$interface/device/driver))" == 'xradio_wlan' ]; then
result='' # Indicate interface is actually not meshable
else
result='1' # Indicate interface supports mesh point
fi
echo $result
}
set -e
# Set wireless regulatory domain
sudo iw reg set BO
# Find first 802.11s Mesh Point capable device
for wlanfile in /sys/class/net/*; do
int="$(basename "$wlanfile")"
if [ -d "/sys/class/net/$int/wireless" ]; then
phy=$(iw dev "$int" info | grep wiphy | awk '{print $2}')
if [ ! -z "$phy" ]; then
if ! [ -z $(isMeshable "$phy") ]; then
mesh_dev="$int"
fi
fi
fi
done
# If no device found exit with error
if [ -z "$mesh_dev" ]; then
exit 1
fi
# Shut down the mesh_dev interface
sudo ifconfig $mesh_dev down
# Convert mesh_dev to 802.11s Mesh Point interface
sudo iw $mesh_dev set type mp
# Bring up the mesh_dev interface
sudo ifconfig $mesh_dev up
# Optionally assign IPv4 address to the mesh_dev interface
# sudo ifconfig $mesh_dev 192.168.X.Y
# Join the mesh network
# To join radio in HT40+ htmode (enable 802.11n rates) add HT40+ to end of this line
sudo iw dev $mesh_dev mesh join HS freq 2412 HT40+
# Disable forwarding since we rely on cjdns to do routing and only uses Mesh Point as a point-to-point link
sudo iw dev $mesh_dev set mesh_param mesh_fwding=0
# Prevent trying to establish connections with nodes under -65 dBm
sudo iw dev $mesh_dev set mesh_param mesh_rssi_threshold -85
# Make a local-link ip out of yggdrasil ip if $mesh_dev does not have a local-link ip
if [ ! -z "$(which yggdrasilctl)" ]; then
if [ -z "$(ip addr show dev $mesh_dev | grep inet6\ fe)" ]; then
ip="$(sudo yggdrasilctl getSelf | grep "IPv6 address" | awk '{print $3}' | cut -d ":" -f5-8)"
ip address add dev $mesh_dev scope link fe80::${ip}/64
fi
fi
pi@raspberrypi:~ $ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.40.240 netmask 255.255.255.0 broadcast 192.168.40.255
inet6 fddd:869:29bf::b78 prefixlen 128 scopeid 0x0<global>
inet6 fe80::1a5:fc4d:706:f857 prefixlen 64 scopeid 0x20<link>
inet6 2607:f2c0:940e:1c00:c08d:4bf9:7902:fd6a prefixlen 64 scopeid 0x0<global>
inet6 2607:f2c0:940e:1c00::b78 prefixlen 128 scopeid 0x0<global>
inet6 fddd:869:29bf:0:3836:a52d:898d:32f6 prefixlen 64 scopeid 0x0<global>
ether dc:a6:32:04:64:8a txqueuelen 1000 (Ethernet)
RX packets 79 bytes 9959 (9.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 121 bytes 54489 (53.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether dc:a6:32:04:64:8b txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 18:a6:f7:14:26:d2 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
pi@raspberrypi:~ $ bash test.sh
pi@raspberrypi:~ $ iw dev
phy#1
Interface wlan1
ifindex 4
wdev 0x100000001
addr 18:a6:f7:14:26:d2
type mesh point
channel 1 (2412 MHz), width: 40 MHz, center1: 2422 MHz
txpower 20.00 dBm
phy#0
Unnamed/non-netdev interface
wdev 0x2
addr 22:a7:2e:81:9d:48
type P2P-device
txpower 31.00 dBm
Interface wlan0
ifindex 3
wdev 0x1
addr dc:a6:32:04:64:8b
type managed
channel 34 (5170 MHz), width: 20 MHz, center1: 5170 MHz
txpower 31.00 dBm
pi@raspberrypi:~ $ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.40.240 netmask 255.255.255.0 broadcast 192.168.40.255
inet6 fddd:869:29bf::b78 prefixlen 128 scopeid 0x0<global>
inet6 fe80::1a5:fc4d:706:f857 prefixlen 64 scopeid 0x20<link>
inet6 2607:f2c0:940e:1c00:c08d:4bf9:7902:fd6a prefixlen 64 scopeid 0x0<global>
inet6 2607:f2c0:940e:1c00::b78 prefixlen 128 scopeid 0x0<global>
inet6 fddd:869:29bf:0:3836:a52d:898d:32f6 prefixlen 64 scopeid 0x0<global>
ether dc:a6:32:04:64:8a txqueuelen 1000 (Ethernet)
RX packets 151 bytes 16432 (16.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 177 bytes 64973 (63.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether dc:a6:32:04:64:8b txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 18:a6:f7:14:26:d2 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
pi@raspberrypi:~ $
from prototype-cjdns-pi.
Reported behaviors seems to be because of different drivers the ALFA wireless cards use.
Seems the underlying issue has something to do with drivers, however patching wpa_supplicant works on all devices.
from prototype-cjdns-pi.
Related Issues (20)
- yggdrasil iptunnel is using cjdns iptunnel HOT 1
- Review all permissions on .service files
- Tun0 interface not up in time for cjdns and Yggdrasill iptunnel HOT 1
- yggdraisl radvd issued ip addresses break ipv6 on wlan-ap
- external Hostapd Stretch
- CJDNS nodes and Meshpoint
- Yggdrasil failes on armbian 20
- Clarification on README
- SSB layer, change Patchfoo for Oasis HOT 2
- Raspbian buster (RPi3B+) npm: command not found HOT 2
- Yggdrasil & cjdns optional install HOT 2
- Xbian = btrfs & ipfs Mediacenter . Systemd / Upstart init problem HOT 1
- Investigate Dat support HOT 1
- Compile NodeJS for unsupported arches
- Update to latest IPFS version - changes and testing needed HOT 6
- CJDNS Version bump
- IPFS - Power Profile
- Missing Artifact files HOT 2
- newer pre compiled cjdns
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from prototype-cjdns-pi.