การเชื่อมต่อบลูทู ธ 6LoWPAN ระหว่าง Raspberry Pis สองตัว


3

ฉันมีคำถามนี้เกี่ยวกับ Stack Overflow แต่แนะนำว่าให้ย้ายที่นี่ มันถูกตั้งค่าสถานะเพื่อให้ผู้ดูแลให้ความสนใจ แต่ฉันไม่แน่ใจว่ากระบวนการทำงานอย่างไรและฉันไม่ได้รับข้อเสนอแนะใด ๆ ดังนั้นฉันจึงคิดว่าฉันจะถามคำถามที่นี่:

ฉันพยายามสร้างการเชื่อมต่อ Bluetooth Smart ระหว่าง Raspberry PIs สองแห่งที่ฉันสามารถใช้ IPSP (โปรไฟล์การสนับสนุนโพรโทคอลอินเทอร์เน็ต) เพื่อให้ฉันสามารถสื่อสารกับโปรโตคอล IPv6 โดยใช้ 6LoWPAN

ฉันสามารถประสบความสำเร็จในการสร้างการสื่อสารระหว่าง Raspberry Pis และชุดพัฒนา nRF51 ของ Nordic แต่เป็นข้อพิสูจน์ถึงแนวคิดที่ว่าตอนนี้ฉันพยายามที่จะสร้างการเชื่อมต่อระหว่าง Raspberry Pi สองกล่องที่ไม่มีชุดพัฒนา nRF51 ของ Nordic

ดังนั้นขั้นตอนแรกของฉันคือการตั้งค่า Raspberry Pis ฉันทำสิ่งนี้ด้วยขั้นตอนใน nRF5 IoT SDK ของ Nordic ( https://developer.nordicsemi.com ) ฉันรู้ว่า Raspberry Pis ได้รับการตั้งค่าอย่างถูกต้องเพราะทั้งคู่ทำงานกับบอร์ด nRF51 ฉันสามารถสร้างการเชื่อมต่อระหว่าง Raspberry Pi กับบอร์ด nRF51 และ ping6 กับบอร์ด nRF51 จาก Raspberry Pi

ตอนนี้เพื่อสร้างการเชื่อมต่อบลูทู ธ ของฉันระหว่าง Raspberry Pis ฉันทำงานแม้ว่าขั้นตอนต่อไปนี้: บนอุปกรณ์หลักฉันใช้คำสั่งต่อไปนี้:

#need root access
sudo su

#enable 6lowpan over Bluetooth le
echo 1 > /sys/kernel/debug/bluetooth/6lowpan_enable

#start advertising Bluetooth LE service
hciconfig hci0 leadv

บนอุปกรณ์ Slave ฉันรันคำสั่งต่อไปนี้:

#need root access
sudo su

#enable 6lowpan over Bluetooth le
echo 1 > /sys/kernel/debug/bluetooth/6lowpan_enable

#establish le connection to master
hcitool lecc 5C:F3:70:XX:XX:XX

hcitool leccคำสั่งเสมอกลับ“การเชื่อมต่อมือจับ 64” ณ จุดนี้ฉันมีการเชื่อมต่อที่มั่นคงระหว่างอุปกรณ์ทั้งสองที่ฉันสามารถตรวจสอบได้โดยใช้คำสั่งhcitool con

ตอนนี้ฉันสามารถเรียกใช้คำสั่งต่อไปนี้ได้ทั้งต้นแบบหรือทาสโดยที่ที่อยู่ mac เป็นที่อยู่สำหรับอุปกรณ์ Bluetooth ที่ฉันกำลังเชื่อมต่อด้วย:

echo “connect 5C:F3:70:XX:XX:XX 1” > /sys/kernel/debug/bluetooth/6lowpan_control

Raspberry Pi ใดที่ฉันรันคำสั่งในการสร้างการเชื่อมต่อ 6lowpan และถ้าฉันรันคำสั่ง ifconfig ฉันเห็นอุปกรณ์ bt0 ใหม่ Raspberry Pi อื่น ๆ ไม่ได้รับอุปกรณ์ bt0 ฉันได้ลองใช้คำสั่ง ifconfig bt0 upและยังรันคำสั่ง echo เดียวกัน (เปลี่ยนที่อยู่ mac) แต่ไม่มีหนึ่งในนั้นที่ให้อุปกรณ์ bt0 แก่ฉัน

อุปกรณ์ bt0 ที่ปรากฏบน Raspberry Pi ที่ฉันรันคำสั่งจะหายไปหลังจากผ่านไป 39 วินาที ในไฟล์บันทึกการทำงาน / var / log / syslog จะปรากฏว่า ntpd daemon เริ่มฟังบนอินเตอร์เฟส bt0 เมื่อมันเกิดขึ้นจากนั้น 39 วินาทีหลังจากนั้นจะตรวจพบว่าอินเตอร์เฟสหายไปและปล่อยออกมา ฉันได้ลองกำหนดที่อยู่ IPv6 ให้กับอุปกรณ์เมื่อใช้งานโดยใช้คำสั่งต่อไปนี้:

ifconfig bt0 inet6 add 2001:db8::5cf3:70ff:feXX:XXXX/64 

จากนั้นฉันก็วิ่ง ping6 เพื่อทำการ ping อย่างต่อเนื่องโดยหวังว่าจะรักษาส่วนต่อไปให้สั้น ๆ แต่อินเทอร์เฟซยังคงลดลงหลังจากผ่านไป 39 วินาที

ฉันใช้ Raspberry Pi 2 รุ่น B และอะแดปเตอร์ Bluetooth ทั้งสองตัวคือ Broadcom Corp BCM20702A0 อุปกรณ์บลูทู ธ 4.0 (ใช้lsusbเพื่อรับข้อมูลเกี่ยวกับอะแดปเตอร์) แม้ว่าอแด็ปเตอร์จะอยู่ในรายการ Bluetooth 4.0 แต่ฉันก็สามารถใช้มันกับชุดพัฒนา nRF51 ของ Nordic เพื่อสร้างการเชื่อมต่อ 6LoWPAN

หลังจากการทดลองทั้งหมดของฉันนี่คือคำถามที่ฉันมี:

  • เป็นไปได้ไหมที่จะทำสิ่งที่ฉันพยายามจะทำ?
  • มีใครเคยสามารถสร้างการเชื่อมต่อ 6LoWPAN ระหว่างอุปกรณ์ Linux สองเครื่องที่สามารถบอกได้ว่าฉันพลาดขั้นตอนใดบ้าง
  • ฉันต้องมีอุปกรณ์บลูทู ธ ตัวใดตัวหนึ่งที่เข้ากันได้กับบลูทู ธ สมาร์ท 4.2 เพื่อสร้างการเชื่อมต่อที่ถูกต้องหรือไม่?
  • ใครบ้างที่คุ้นเคยกับบลูซ์ที่สามารถแนะนำขั้นตอนเพิ่มเติมให้ลอง?

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก.

จอน

แก้ไข 1:

ฉันสามารถเชื่อมต่อนี้ได้ระหว่างกล่อง Ubuntu 14.04 และ Raspberry Pi โดยการติดตั้งเคอร์เนลที่สร้างไว้ล่วงหน้า 3.19 ดาวน์โหลดจากที่นี่: http://kernel.ubuntu.com/~kernel-ppa/mainline/linux-3.19 YZ คิว / 2016/01/07-Vivid /

ฉันยังไม่เข้าใจว่าทำไมมันไม่ทำงานระหว่าง Raspberry Pis สองอัน แต่ถ้าฉันหาวิธีแก้ปัญหาฉันจะโพสต์ไว้ที่นี่

แก้ไข 2:

Ubuntu 14.04 รัน Bluez 4 ในขณะที่ Raspberry Pis ทำงาน Bluez 5 เนื่องจากฉันไม่สามารถเชื่อมต่อ Raspberry Pis สองตัว (ทำงาน Bluez 5) ฉันคิดว่าฉันจะพยายามเชื่อมต่อสอง Fedora 23 อินสแตนซ์ที่ใช้ Bluez 5 เพื่อดูว่ามีบางอย่างผิดปกติหรือไม่ Bluez หรือ Raspberry Pis ในการทดลองของฉันฉันกำลังประสบกับพฤติกรรมเดียวกันกับอินสแตนซ์ Fedora 23 สองตัวที่ฉันทำกับ Raspberry pis สองอัน (ที่การเชื่อมต่อ 6lowpan ลดลงในเวลาน้อยกว่า 30 วินาทีหลังจากเชื่อมต่อ)

เวอร์ชัน bluez ที่รันบนอินสแตนซ์ของ Fedora 23 คือ 5.35 และเวอร์ชัน bluez ที่รันบน Raspberry Pis คือ 5.23

ใครมีความคิดว่าทำไมสิ่งนี้ถึงเกิดขึ้นกับ Bluez 5.x

ขอบคุณ

คำตอบ:


2

สารละลาย

ฉันเพิ่งแก้ไขปัญหา ปัญหาเกิดขึ้นกับเคอร์เนล ฉันติดตั้ง Ubuntu 15 แต่มีปัญหาเดียวกับ Raspberry Pis ฉันจึงดาวน์โหลดซอร์สสำหรับเคอร์เนล 4.4 กำหนดค่าและสร้างเคอร์เนลใหม่ เมื่อเคอร์เนลใหม่เข้าที่แล้ว ไม่แน่ใจว่าเป็นระดับแพตช์ของเคอร์เนลหรือการกำหนดค่า แต่ตอนนี้ใช้งานได้


1

ขอบคุณสำหรับการโพสต์ของคุณ ฉันทำงานกับ IPv6 ผ่าน BTLE เมื่อปีที่แล้วและฉันก็ประสบปัญหาเดียวกันกับคุณ หลังจากประมาณ 39 วินาทีลิงก์ IPv6 บน BLE ระหว่างอุปกรณ์หลักและอุปกรณ์ทาสของฉันจะถูกตัดการเชื่อมต่อ สิ่งนี้เกิดขึ้นกับฉันใน Linux kernel v4.1.x (สำหรับทั้ง master และ slave) ทั้งเจ้านายและทาสใช้แพลตฟอร์มเดียวกัน (ขออภัยฉันไม่สามารถเปิดเผยรายละเอียดใด ๆ ของแพลตฟอร์มได้เนื่องจากการรักษาความลับ) ทั้งหมดที่ฉันสามารถพูดได้ก็คือมันเป็นแพลตฟอร์ม x86_64 ที่ใช้ระบบปฏิบัติการ Linux ที่สร้างขึ้นโดยใช้แพลตฟอร์ม Yocto

จากนั้นน่าสนใจพอฉันจัดการเพื่อให้ได้ผลลัพธ์ที่มีแนวโน้มมากขึ้นในเคอร์เนล 3.19 จริง ๆ แล้วฉันใช้ uBuntu 14.04 LTS บนทั้งสองแพลตฟอร์มของฉัน ฉันสามารถอัพเกรดรุ่น BlueZ ด้วยตนเองจาก BlueZ v4.101 เป็น BlueZ v5.x ฉันจำไม่ได้ว่า BlueZ 5 รุ่นใดที่ฉันใช้งานอยู่ จากนั้นฉันทำตามขั้นตอนที่คล้ายกับของคุณและฉันสามารถเก็บมันไว้ได้เป็นเวลานาน ฉันจำได้ว่าจะไปทานอาหารเย็นหลังจากนั้นและมันก็ยังคงค้างอยู่หลังจาก 30 นาที จากนั้นฉันก็ทำการทดสอบต่อไปตลอดทั้งคืนและการเชื่อมต่อยังคงอยู่!

ขอบคุณที่ให้ข้อมูลนี้กับฉันซึ่งใช้เคอร์เนลเวอร์ชัน Linux เกี่ยวกับโปรแกรมแก้ไขที่ใช้อาจเกี่ยวข้องกับโปรแกรมปรับปรุงอย่างใดอย่างหนึ่งต่อไปนี้: https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/log/?id= refs / แท็ก / v4.4.27 และ QT = grep & q = 6LoWPAN


ฉันไม่สามารถเพิ่มความคิดเห็นได้เนื่องจากฉันไม่มีชื่อเสียง 50 คะแนนในขณะนี้ ดังนั้นฉันแค่อยากจะแบ่งปันสิ่งที่ฉันรู้
anandan111
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.