Hi Kaushik N P,

I too have been experimenting with mesh. Another wrinkle comes from there being no really open standard for RF mesh operation. So meshes ONLY work well if a given manufacturer's chips are used. In other words having a really open RF specification has yet to be done. GSM probably comes closest to a real useful open RF specification.

My guess is that this will be by far the biggest problem you face. The software part is as you suggest easy. But having or creating really good RF test equipment and techniques will be THE problem.

So the war right now is in the RF insides of the various chips all of which are corporate secrets.

Perhaps you can find some combination of some fast fpgas and some well documented RF chip building blocks that will help. I have been wondering what this might be? As far as I know, ADCs and DACs that are directly useful at 2.4 and 5GHZ have yet to become available.

If it is still on the web, you might check out MITs roof net project. Some of that data is pretty interesting.

If my recently purchased $10USD 3G telephone were an open design, I could perhaps reprogram it?

   Just my thoughts.

   Good luck with your efforts.

   John


On Sat, 8 Oct 2016, Kaushik N P wrote:

Hello,

Good to hear it is tough to work on in Linux and that am not the only
person finding it difficult working on it.

@Ufo : Yes, it might be tough, but we learn from experience on working
on such stuff after all. I have two routers but want to setup a bigger
mesh bed with more nodes and would prefer not to spend more for now.
And mainly I think working on Linux would provide me a better
understanding and would allow me to experiment more on it. I have
worked with Virtual machines before, though with minimal
experimentation at that. And I will definitely check out LEDE. Thank
you for the suggestion.

@Marek : Yes, I know it was a half baked question I presented, but
wasn't sure how to put up my query more clearly. Now I will list out
the steps I have followed till now and what the results are.

Links I followed primarily:
[1] https://wiki.openwrt.org/doc/howto/qemu
[2] https://www.open-mesh.org/projects/open-mesh/wiki/Emulation

So, the link [1] defines setting up QEMU. Again, I am working on
Ubuntu 16.0, 64-bit.

As far as I could see, only the Commands in  'Booting from SD card
image' was related. Have downloaded openwrt-realview-vmlinux.elf ,
openwrt-realview-sdcard.img and type in the command below :

qemu-system-arm -M realview-pbx-a9 -m 1024M -nographic \
   -kernel openwrt-realview-vmlinux.elf \
   -sd openwrt-realview-sdcard.img \
   -append "console=ttyAMA0 verbose debug root=/dev/mmcblk0p1"


This command opened up a BusyBox which looks as follows :

BusyBox v1.24.2 () built-in shell (ash)

//Says OpenWrt below
 _______                     ________        __
|            | .-----.-----.-----.|  |  |  |.----.|  |_
|     -      | |  _  |  -__|    ||  |  |  ||   _||   _|
|_______| |  __|____|__|__||________||__|  |____|
               |__| W I R E L E S S   F R E E D O M
-----------------------------------------------------
DESIGNATED DRIVER (Bleeding Edge, 49928)
-----------------------------------------------------
 * 2 oz. Orange Juice         Combine all juices in a
 * 2 oz. Pineapple Juice      tall glass filled with
 * 2 oz. Grapefruit Juice     ice, stir well.
 * 2 oz. Cranberry Juice
-----------------------------------------------------
root@OpenWrt:/# [   13.897119] smsc911x smsc911x.0 eth0: SMSC911x/921x
identified at 0xf0b40000, IRQ: 60
[   13.934741] device eth0 entered promiscuous mode
[   13.978166] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[   15.762764] br-lan: port 1(eth0) entered forwarding state
[   15.764526] br-lan: port 1(eth0) entered forwarding state
[   15.802643] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[   17.762480] br-lan: port 1(eth0) entered forwarding state
root@OpenWrt:/#

There is no details on what to do once this opens up though. And I
still need confirmation as to what this means. Is it that QEMU has
loaded OpenWRT in my system like a virtual machine or is it a console
to access OpenWRT functionalities, etc.

After this I made changes according to "openwrt virtualized using
debian, qemu/kvm and a lex twitter system with intel atom d525 and
chipset ich8m" section to 'Virtualization proper' too in case it was
required, but the Virtualization didn't work.


This done, I moved to link [2], where it explains how to set up mesh
testbed. It says"OpenWrt, kamikaze trunk version for x86 with minimal
modifications" and so I have downloaded 'openwrt-x86-ext2.image' from
Kamikaze. Changed the above code used to load QEMU as :
qemu-system-arm -M realview-pbx-a9 -m 1024M -nographic \
    -kernel openwrt-realview-vmlinux.elf \
    -sd openwrt- \
    -sd openwrt-x86-ext2.image \
    -append "console=ttyAMA0 verbose debug root=/dev/mmcblk0p1"

But loading this hasn't been successful as doing this gives :
...<loading and stuff>...
[    1.304028] VFS: Mounted root (ext2 filesystem) readonly on device 179:1.
[    1.317832] Freeing unused kernel memory: 196K (c0481000 - c04b2000)
[    1.328078] Kernel panic - not syncing: No working init found.  Try
passing init= option to kernel. See Linux Documentation/init.txt for
guidance.
[    1.332338] ---[ end Kernel panic - not syncing: No working init
found.  Try passing init= option to kernel. See Linux
Documentation/init.txt for guidance.


Next, running the script written in 'OpenWrt' section doesn't work as it says :
/tmp/logserver.sh: 3: /tmp/logserver.sh: cannot open
/sys/kernel/debug/batman_adv/bat0/log: No such file
/tmp/logserver.sh: 3: /tmp/logserver.sh: cannot open
/sys/kernel/debug/batman_adv/bat0/log: No such file

Commenting the lines that open this file :
while [ 1 ]; do
   nc -l -p 2050 < /sys/kernel/debug/batman_adv/bat0/log
done

gives the error :
RTNETLINK answers: File exists
Cannot find device "br-lan"
Cannot find device "br-lan"
./rc.local: 23: ./rc.local: cannot create
/proc/net/batman-adv/interfaces: Directory nonexistent
./rc.local: 24: ./rc.local: cannot create
/proc/net/batman-adv/interfaces: Directory nonexistent
./rc.local: 25: ./rc.local: cannot create
/proc/net/batman-adv/log_level: Directory nonexistent
/tmp/logserver.sh: 1: /tmp/logserver.sh: !/bin/sh: not found
Cannot find device "bat0"
Cannot find device "bat0"

Next, I have patched both 'vde2-2.3.2_colour.patch' and
'vde2-2.3.2-wirefilter-ethertype.patch'

The final step lists a script for running the scripts to start up all
the qemu windows. This throw up a lot many errors.
Below is the error it shows:

kaushik@kaushik-HP:~/QEMUopenwrt$ ./command.sh
Must be run inside a screen session
[sudo] password for kaushik:
wirefilter(8722): Operation not permitted
wirefilter(8724): Operation not permitted
wirefilter(8726): Operation not permitted
wirefilter(8728): Operation not permitted
wirefilter(8730): Operation not permitted
wirefilter(8732): Operation not permitted
wirefilter(8734): Operation not permitted
wirefilter(8736): Operation not permitted
wirefilter(8738): Operation not permitted
wirefilter(8740): Operation not permitted
wirefilter(8742): Operation not permitted
wirefilter(8744): Operation not permitted
wirefilter(8746): Operation not permitted
wirefilter(8748): Operation not permitted
wirefilter(8750): Operation not permitted
vde_switch(8567): Operation not permitted
vde_switch(8575): Operation not permitted
vde_switch(8583): Operation not permitted
vde_switch(8591): Operation not permitted
vde_switch(8599): Operation not permitted
vde_switch(8607): Operation not permitted
vde_switch(8615): Operation not permitted
vde_switch(8623): Operation not permitted
vde_switch(8631): Operation not permitted
ioctl(TUNSETIFF): Device or resource busy
RTNETLINK answers: File exists
ioctl(TUNSETIFF): Device or resource busy
RTNETLINK answers: File exists
ioctl(TUNSETIFF): Device or resource busy
RTNETLINK answers: File exists
ioctl(TUNSETIFF): Device or resource busy
RTNETLINK answers: File exists
ioctl(TUNSETIFF): Device or resource busy
RTNETLINK answers: File exists
ioctl(TUNSETIFF): Device or resource busy
.
.
.

This I run in a screen as it is mentioned in the guide. It creates
many files and folders named num0 to num9, but doesn't proceed after
that.


This and some more experimentation I have done with it. So, any help I
can get would be most welcome

Thanks and Regards,

Kaushik NP
LI | Tw | FB
SAP Ambassador,
General Secretary, Computer Society
Team IEEE UVCE,
3rd Year Undergraduate Student,
University Visvesvaraya College of Engineering,
Bangalore, IN


On Sat, Oct 8, 2016 at 1:21 AM, Kaushik N P <kaushik.np...@ieee.org> wrote:
Hello,

Good to hear it is tough to work on in Linux and that am not the only person
finding it difficult working on it.

@Ufo : Yes, it might be tough, but we learn from experience on working on
such stuff after all. I have two routers but want to setup a bigger mesh bed
with more nodes and would prefer not to spend more for now. And mainly I
think working on Linux would provide me a better understanding and would
allow me to experiment more on it. I have worked with Virtual machines
before, though with minimal experimentation at that. And I will definitely
check out LEDE. Thank you for the suggestion.

@Marek : Yes, I know it was a half baked question I presented, but wasn't
sure how to put up my query more clearly. Now I will list out the steps I
have followed till now and what the results are.

Links I followed primarily:
[1] https://wiki.openwrt.org/doc/howto/qemu
[2] https://www.open-mesh.org/projects/open-mesh/wiki/Emulation

So, the link [1] defines setting up QEMU. Again, I am working on Ubuntu
16.0, 64-bit.

As far as I could see, only the Commands in  'Booting from SD card image'
was related. Have downloaded openwrt-realview-vmlinux.elf ,
openwrt-realview-sdcard.img and type in the command below :

qemu-system-arm -M realview-pbx-a9 -m 1024M -nographic \
    -kernel openwrt-realview-vmlinux.elf \
    -sd openwrt-realview-sdcard.img \
    -append "console=ttyAMA0 verbose debug root=/dev/mmcblk0p1"


This command opened up a BusyBox which looks as follows :

BusyBox v1.24.2 () built-in shell (ash)

//Says OpenWrt below
  _______                     ________        __
 |            | .-----.-----.-----.|  |  |  |.----.|  |_
 |     -      | |  _  |  -__|    ||  |  |  ||   _||   _|
 |_______| |  __|____|__|__||________||__|  |____|
                |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 DESIGNATED DRIVER (Bleeding Edge, 49928)
 -----------------------------------------------------
  * 2 oz. Orange Juice         Combine all juices in a
  * 2 oz. Pineapple Juice      tall glass filled with
  * 2 oz. Grapefruit Juice     ice, stir well.
  * 2 oz. Cranberry Juice
 -----------------------------------------------------
root@OpenWrt:/# [   13.897119] smsc911x smsc911x.0 eth0: SMSC911x/921x
identified at 0xf0b40000, IRQ: 60
[   13.934741] device eth0 entered promiscuous mode
[   13.978166] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[   15.762764] br-lan: port 1(eth0) entered forwarding state
[   15.764526] br-lan: port 1(eth0) entered forwarding state
[   15.802643] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
[   17.762480] br-lan: port 1(eth0) entered forwarding state
root@OpenWrt:/#

There is no details on what to do once this opens up though. And I still
need confirmation as to what this means. Is it that QEMU has loaded OpenWRT
in my system like a virtual machine or is it a console to access OpenWRT
functionalities, etc.

After this I made changes according to "openwrt virtualized using debian,
qemu/kvm and a lex twitter system with intel atom d525 and chipset ich8m"
section to 'Virtualization proper' too in case it was required, but the
Virtualization didn't work.


This done, I moved to link [2], where it explains how to set up mesh
testbed. It says"OpenWrt, kamikaze trunk version for x86 with minimal
modifications" and so I have downloaded 'openwrt-x86-ext2.image' from
Kamikaze. Changed the above code used to load QEMU as :
qemu-system-arm -M realview-pbx-a9 -m 1024M -nographic \
    -kernel openwrt-realview-vmlinux.elf \
    -sd openwrt- \
    -sd openwrt-x86-ext2.image \
    -append "console=ttyAMA0 verbose debug root=/dev/mmcblk0p1"

But loading this hasn't been successful as doing this gives :
...<loading and stuff>...
[    1.304028] VFS: Mounted root (ext2 filesystem) readonly on device 179:1.
[    1.317832] Freeing unused kernel memory: 196K (c0481000 - c04b2000)
[    1.328078] Kernel panic - not syncing: No working init found.  Try
passing init= option to kernel. See Linux Documentation/init.txt for
guidance.
[    1.332338] ---[ end Kernel panic - not syncing: No working init found.
Try passing init= option to kernel. See Linux Documentation/init.txt for
guidance.


Next, running the script written in 'OpenWrt' section doesn't work as it
says :
/tmp/logserver.sh: 3: /tmp/logserver.sh: cannot open
/sys/kernel/debug/batman_adv/bat0/log: No such file
/tmp/logserver.sh: 3: /tmp/logserver.sh: cannot open
/sys/kernel/debug/batman_adv/bat0/log: No such file

Commenting the lines that open this file :
while [ 1 ]; do
    nc -l -p 2050 < /sys/kernel/debug/batman_adv/bat0/log
done

gives the error :
RTNETLINK answers: File exists
Cannot find device "br-lan"
Cannot find device "br-lan"
./rc.local: 23: ./rc.local: cannot create /proc/net/batman-adv/interfaces:
Directory nonexistent
./rc.local: 24: ./rc.local: cannot create /proc/net/batman-adv/interfaces:
Directory nonexistent
./rc.local: 25: ./rc.local: cannot create /proc/net/batman-adv/log_level:
Directory nonexistent
/tmp/logserver.sh: 1: /tmp/logserver.sh: !/bin/sh: not found
Cannot find device "bat0"
Cannot find device "bat0"

Next, I have patched both 'vde2-2.3.2_colour.patch' and
'vde2-2.3.2-wirefilter-ethertype.patch'

The final step lists a script for running the scripts to start up all the
qemu windows. This throw up a lot many errors.
Below is the error it shows:

kaushik@kaushik-HP:~/QEMUopenwrt$ ./command.sh
Must be run inside a screen session
[sudo] password for kaushik:
wirefilter(8722): Operation not permitted
wirefilter(8724): Operation not permitted
wirefilter(8726): Operation not permitted
wirefilter(8728): Operation not permitted
wirefilter(8730): Operation not permitted
wirefilter(8732): Operation not permitted
wirefilter(8734): Operation not permitted
wirefilter(8736): Operation not permitted
wirefilter(8738): Operation not permitted
wirefilter(8740): Operation not permitted
wirefilter(8742): Operation not permitted
wirefilter(8744): Operation not permitted
wirefilter(8746): Operation not permitted
wirefilter(8748): Operation not permitted
wirefilter(8750): Operation not permitted
vde_switch(8567): Operation not permitted
vde_switch(8575): Operation not permitted
vde_switch(8583): Operation not permitted
vde_switch(8591): Operation not permitted
vde_switch(8599): Operation not permitted
vde_switch(8607): Operation not permitted
vde_switch(8615): Operation not permitted
vde_switch(8623): Operation not permitted
vde_switch(8631): Operation not permitted
ioctl(TUNSETIFF): Device or resource busy
RTNETLINK answers: File exists
ioctl(TUNSETIFF): Device or resource busy
RTNETLINK answers: File exists
ioctl(TUNSETIFF): Device or resource busy
RTNETLINK answers: File exists
ioctl(TUNSETIFF): Device or resource busy
RTNETLINK answers: File exists
ioctl(TUNSETIFF): Device or resource busy
RTNETLINK answers: File exists
ioctl(TUNSETIFF): Device or resource busy
.
.
.

This I run in a screen as it is mentioned in the guide. It creates many
files and folders named num0 to num9, but doesn't proceed after that.


This and some more experimentation I have done with it. So, any help I can
get would be most welcome


Thanks and Regards,

Kaushik NP
LI | Tw | FB
SAP Ambassador,
General Secretary, Computer Society
Team IEEE UVCE,
3rd Year Undergraduate Student,
University Visvesvaraya College of Engineering,
Bangalore, IN

On Thu, Oct 6, 2016 at 8:39 PM, Ufo <u...@rund.freifunk.net> wrote:

Testing batman-adv in virtual maschines on laptops is the most complex and
non-realistic way to start with mesh-networking. So its a nice, very
demanding student thing.

its much more easier to buy some (more than 2!!) cheap wifi-routers! they
have proper wifi, more than one ethernet-interface (!) and there are many
openwrt/lede mesh firmwares with a well-configured batman-adv. after that,
the next step could be to try to couple your first laptop into that mesh.
starting with nothing but laptops seems to be too "versatile".

if you are unfamiliar with qemu and virtualization your should first try
to install ubuntu or windows in a virtual machine. please use
"virt-manager", a graphical interface for that.

unfortunatly the mentioned "stable" openwrt was forced to use a very old
batman-adv version from 2014. So you might use trunk firmware, and use LEDE
instead of Openwrt, to have a proper system.


http://ftp.halifax.rwth-aachen.de/lede/snapshots/targets/x86/generic/lede-x86-generic-combined-ext4.img.gz






On 04.10.2016 12:11, Kaushik N P wrote:

Hello,

Thank you 'rise.net' for the suggestion. It has given me some ideas,
but what I hoped to do was to run the laptop with OpenWRT working with
Batman adv like a router. This would enable me in creating a more
extensive network without having to buy more routers itself and
hopefully provide me with a more versatile network to work on. I will
ofcourse be experimenting more along your steps, but I hope to get the
QEMU set up and running on my system.

If any one has more info on the QEMU setup, pls do contact.


Thanks and Regards,

Kaushik NP
General Secretary, Computer Society
Team IEEE UVCE,
3rd Year Undergraduate Student,
University Visvesvaraya College of Engineering,
Bangalore, IN


On Mon, Oct 3, 2016 at 10:38 PM,  <leftbydefa...@riseup.net> wrote:

Hello Kaushik

On 2016-10-03 19:44, Kaushik N P wrote:

Hello,

What I hope to find is:-

Another documentation maybe for setting up, or confirmation for
setting up (because I can't tell sometimes if the instructions have
been followed correctly).


I have no experience in simulating or emulating batman-adv, but I have
experience
in compiling openwrt from source along with batman-adv and batctl. I can
help you with that. batman-adv is built as a kernel module and so it is
included by default in Linux kernels >= 2.x. You have mentioned that you
are
using Linux based operating system, I hope by now, you should be running
Linux kernel 4.x. If you want to play around with batman-adv for
sometime
before emulating, you can use two three Linux based laptops with WiFi
interface cards that support IBSS (adhoc mode).

You can check that using

     iw list | grep IBSS

if the command returned something like
Device supports RSN-IBSS.
                  * IBSS

then your Wireless NIC can be switched to ad-hoc mode. We have a bash
shell
script that does it automatically for you. You can find the script and
terminal cast in the following links.

  1. https://github.com/PYMeshnet/scripts
  2. https://asciinema.org/a/38575

Clarification for my doubt regarding the different types of OpenWRT
images (like Kamikaze, Chaos Calmer, Attitude Adjustment,etc), what do
they do and which one I should use for working with standard Batman
adv setup.


Chaos Calmer (15.x) is the recent stable release of OpenWRT firmware.
'Kamikaze, Altitude Adjustment, etc.,' are just different names given to
different versions of OpenWRT releases. OpenWRT are meant to be the
operating system for routers and modems. Depending on the configuration
of
devices, some versions may be supported and some may not be supported on
certain routers and modems.

Since you are trying to create a virtual environment, I think should go
with
Chaos Calmer. (again I have no experience either with creating a virtual
environment for OpenWRT nor for batman-adv).


Confirmation method to see if qemu having OpenWRT is setup in my
system - as now I have a setup in terminal which says

BusyBox v1.24.2 () built-in shell (ash)

//Says OpenWrt below
   _______                     ________        __
  |            | .-----.-----.-----.|  |  |  |.----.|  |_
  |     -      | |  _  |  -__|    ||  |  |  ||   _||   _|
  |_______| |  __|____|__|__||________||__|  |____|
                 |__| W I R E L E S S   F R E E D O M
  -----------------------------------------------------
  DESIGNATED DRIVER (Bleeding Edge, 49928)
  -----------------------------------------------------
   * 2 oz. Orange Juice         Combine all juices in a
   * 2 oz. Pineapple Juice      tall glass filled with
   * 2 oz. Grapefruit Juice     ice, stir well.
   * 2 oz. Cranberry Juice
  -----------------------------------------------------
root@OpenWrt:/# [   13.897119] smsc911x smsc911x.0 eth0: SMSC911x/921x
identified at 0xf0b40000, IRQ: 60
[   13.934741] device eth0 entered promiscuous mode
[   13.978166] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[   15.762764] br-lan: port 1(eth0) entered forwarding state
[   15.764526] br-lan: port 1(eth0) entered forwarding state
[   15.802643] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes
ready
[   17.762480] br-lan: port 1(eth0) entered forwarding state
root@OpenWrt:/#


I have more doubts, but hopefully, I will get some answers to them
from the above questions itself.
Hope to hear soon!!!

Thanks and Regards,

Kaushik NP
LI | Tw | FB
SAP Ambassador,
General Secretary, Computer Society
Team IEEE UVCE,
3rd Year Undergraduate Student,
University Visvesvaraya College of Engineering,
Bangalore, IN





Reply via email to