Monday, August 17, 2015

Setup 6lbr to run 6LowPAN with CC2531 USB dongle on Raspberry Pi 2B

1. Unzip and flash a CC2531 USB dongle with cc2531-slip-radio_contikimac.zip.
2. SSH login to Raspberry Pi.
3. sudo apt-get install libncurses5-dev
4. sudo apt-get install bridge-utils
5. sudo vi /boot/cmdline.txt file and add the following configuration parameter in the beginning of cmdline.txt
    dwc_otg.speed=1
6a. git clone --recursive https://github.com/cetic/6lbr
6b. cd 6lbr and run "sudo git submodule sync" and "sudo git submodule update --init"
7. cd 6lbr/examples/6lbr
8. make all plugins tools ---> This step takes lots of time so go for a break!
9. sudo make install
10. Create /etc/6lbr/6lbr.conf with the content below
      MODE=ROUTER

      RAW_ETH=1
      BRIDGE=0
      DEV_BRIDGE=br0
      DEV_TAP=tap0
      DEV_ETH=eth0
      RAW_ETH_FCS=0

      DEV_RADIO=/dev/ttyACM0
      BAUDRATE=115200

      LOG_LEVEL=3
11. Change to channel 25,which is used by cc26xx Contiki port
      $sudo /usr/lib/6lbr/bin/nvm_tool --update --channel 25 /etc/6lbr/nvm.dat
12. Run "/usr/lib/6lbr/bin/nvm_tool --print /etc/6lbr/nvm.dat" to make sure it switches to channel 25.

13. Plug CC2531 USB dongle to Raspberry Pi and the dongle should appear as /dev/ttyACM0. Run "sudo lsusb -v" to verify this.

14. run "sudo service 6lbr start" to start 6lbr.

15. Open browser like Firefox and input [bbbb::100].


13 comments:

  1. Hey, im found of your amazing works at developing and sharing your research with community.

    But can i have a litte tip? I cant really start my 6lbr cuz when i ty "6lbr start" stuff at my console at first it says that there is no such thing as 6lbr.service, and after rebooting it gives no output at all. [bbbb::100] doesnt work in both cases. So, any suggestions?

    ReplyDelete
    Replies
    1. I too got the 6lbr.service not found error initially.
      I tried make install again and found it to be working after that.

      pi@mypi:~/6lbr/examples/6lbr $ sudo service 6lbr start
      pi@mypi:~/6lbr/examples/6lbr $ ps -eaf | grep 6lbr
      root 30971 1 0 00:29 ? 00:00:00 /bin/sh /usr/lib/6lbr/6lbr /etc/6lbr/6lbr.conf
      root 30978 30971 35 00:29 ? 00:00:08 /usr/lib/6lbr/bin/cetic_6lbr_router -c /etc/6lbr/nvm.dat -F /etc/6lbr/factory.dat -o /etc/6lbr/nvm.conf -s /dev/ttyS0 -r -t eth0 -B 115200 -U /usr/lib/6lbr/6lbr-ifup -D /usr/lib/6lbr/6lbr-ifdown -w /usr/lib/6lbr/www -L 3 -W /var/log/6lbr.timestamp -P 60 -C /var/log/6lbr.ip -m /usr/lib/6lbr/plugins
      root 30979 30971 0 00:29 ? 00:00:00 /bin/sh /usr/lib/6lbr/6lbr-watchdog 30978 60 3 /var/log/6lbr.timestamp
      pi 31098 983 0 00:29 pts/0 00:00:00 grep --color=auto 6lbr
      pi@mypi:~/6lbr/examples/6lbr $

      Delete
  2. Do you following all the steps exactly?

    ReplyDelete
  3. Thank you for the great instruction. I was able to follow through your post and successfully installed 6lbr on my debian (I am using Beaglebone Black with CC2531 dongle).
    However, I have a few question to ask.

    On my nvm data file, it states WSN accpe RA : false and I cannot connect to web-browser using [bbbb:100]. I cannot solve this problem on my own and I am stuck at this step.

    Hope you can give me any suggestion to solve this.

    Thank you.

    ReplyDelete
    Replies
    1. go to /6lbr folder and run "git checkout ff69ae4214407eeec4c71f87589ac4bc7d3a8a49". You will get 6lbr version on 2016 Dec. 22th and you can rebuild 6lbr to test again.

      Delete
    2. This comment has been removed by the author.

      Delete
  4. Hi, i use CC1310 launchpad and raspberry pi 3 to test that examples.
    But i met problem when start 6lbr.
    When i ran "sudo service 6lbr start", its nothing happen (its not show [ok] 6lowpan border router start)
    And also i cannot access [bbbb::100].
    My 6lbr.log just show: Thu 5 Oct 11:06:44 ICT 2017 : Starting 6LBR
    /usr/lib/6lbr/bin/cetic_6lbr_router -c /etc/6lbr/nvm.dat -o /etc/6lbr/nvm.conf -s /dev/ttyACM0 -r -t eth0 -B 115200 -U /usr/lib/6lbr/6lbr-ifup -D /usr/lib/6lbr/6lbr-ifdown -w /usr/lib/6lbr/www -L 3 -W /var/log/6lbr.timestamp -P 60 -C /var/log/6lbr.ip -m /usr/lib/6lbr/plugins
    Contiki-develop-20161222 started with IPV6, RPL
    Rime started with address 1.2.3.4.5.6.7.8
    MAC mac_wrapper RDC br-rdc SEC llsec-wrapper NETWORK sicslowpan
    2017-10-05 11:06:44.775081: NOTICE: 6LBR: Starting 6LBR version 1.5.x (Contiki-develop-20161222)
    2017-10-05 11:06:44.775422: INFO: ETH: 6LBR watchdog started (interval: 60)
    2017-10-05 11:06:44.775705: INFO: NVM: NVM Magic : 2009
    2017-10-05 11:06:44.775719: INFO: NVM: NVM Version : 5
    2017-10-05 11:06:44.775731: INFO: CONFIG: Loading configuration : /etc/6lbr/nvm.conf
    2017-10-05 11:06:44.775824: FATAL: CONFIG: Syntax error in /etc/6lbr/nvm.conf at line 1

    Can you help me to solved this problem? (my rasp pi and my pc are connected to wifi)

    ReplyDelete
    Replies
    1. Did you get it working? I got the same

      Delete
    2. I use the same hardware and got a similar issue: nothing happened after running "sudo service 6lbr start" and I cannot access [bbbb::100]., but my 6lbr.log is slightly different
      Thu 13 Jun 09:45:38 BST 2019 : Starting 6LBR
      /usr/lib/6lbr/bin/cetic_6lbr_router -c /etc/6lbr/nvm.dat -F /etc/6lbr/factory.dat -o /etc/6lbr/nvm.conf -s /dev/ttyS0 -r -t eth0 -B 115200 -U /usr/lib/6lbr/6lbr-ifup -D /usr/lib/6lbr/6lbr-ifdown -w /usr/lib/6lbr/www -L 3 -W /var/log/6lbr.timestamp -P 60 -C /var/log/6lbr.ip -m /usr/lib/6lbr/plugins
      Contiki-contiki-6lbr-1.5.0-2562-g8013ba48d started with IPV6, RPL
      Rime started with address 1.2.3.4.5.6.7.8
      MAC multi-radio RDC br-rdc SEC nullsec NETWORK sicslowpan
      2019-06-13 9:45:38.413242: NOTICE: 6LBR: Starting 6LBR version 1.5.x (Contiki-contiki-6lbr-1.5.0-2562-g8013ba48d)
      2019-06-13 9:45:38.413437: INFO: SLIP: Allocated slip device 0 -> 0
      2019-06-13 9:45:38.413523: INFO: ETH: 6LBR watchdog started (interval: 60)
      2019-06-13 9:45:38.415118: INFO: NVM: NVM Magic : 2009
      2019-06-13 9:45:38.415147: INFO: NVM: NVM Version : 6
      2019-06-13 9:45:38.415165: INFO: CONFIG: Loading configuration : /etc/6lbr/nvm.conf
      2019-06-13 9:45:38.415196: WARN: CONFIG: Can not open /etc/6lbr/nvm.conf : No such file or directory
      2019-06-13 9:45:38.415227: NOTICE: 6LBR: Log level: 30 (services: ffffffff)
      2019-06-13 9:45:38.415243: INFO: FRAMER: Using 802.15.4 framer
      2019-06-13 9:45:38.415260: INFO: MAC: Using 'csma' mac driver
      2019-06-13 9:45:38.415467: INFO: SLIP: SLIP started on /dev/ttyS0
      2019-06-13 9:45:38.425645: INFO: SCMD: Started br-cmd process
      2019-06-13 9:45:38.425671: INFO: BR-RDC: SLIP RADIO configured as RADIO
      2019-06-13 9:45:38.425688: INFO: BR-RDC: Configuring SLIP RADIO 0 (API: 1.0)
      2019-06-13 9:45:38.425704: INFO: BR-RDC: Reset SLIP Radio
      2019-06-13 9:45:38.425723: INFO: BR-RDC: Fetching MAC address
      2019-06-13 9:45:39.425046: INFO: BR-RDC: Fetching MAC address
      2019-06-13 9:45:40.425043: INFO: BR-RDC: Fetching MAC address
      2019-06-13 9:45:41.425042: INFO: BR-RDC: Fetching MAC address

      Delete
  5. Hi, That's a great piece of work you done.

    I don't get the role of cc2531, Can you share it's purpose.

    Thanks

    ReplyDelete
  6. why do i need CC2531 USB dongle i dont have it

    ReplyDelete
    Replies
    1. You can use CC2650 as slip radio instead of CC2531

      Delete
    2. i followed these steps but instead of the usb dongle i connected to RPI cc1310 launchpaf flashed with slip radio.
      but nothing worked , do i need to change something in the setting?

      Delete