У мене виникло це питання в Stack Overflow, але мені запропонували перенестись сюди. Це було позначено для уваги модератора, але я не впевнений, як працює цей процес, і я не отримав жодного відгуку, тому я подумав, що запитаю тут:
Я намагаюся встановити Bluetooth Smart з'єднання між двома малиновими ІП, де я можу використовувати IPSP (профіль підтримки Інтернет-протоколу), щоб я міг спілкуватися з протоколом IPv6 за допомогою 6LoWPAN.
Мені вдалося встановити цю комунікацію між Raspberry Pis та Nordic nRF51 набором для розробки, проте як доказ концепції я зараз намагаюся встановити цей зв’язок між двома коробками Raspberry Pi без набору для розвитку Nordic nRF51.
Тому моїм першим кроком було встановлення Raspberry Pis. Я зробив це за допомогою кроків у Nordic's nRF5 IoT SDK ( https://developer.nordicsemi.com ). Я знаю, що Raspberry Pis встановлені правильно, оскільки вони обидва працюють з платою nRF51. Я в змозі встановити зв'язок між Raspberry Pi і дошками nRF51 і ping6 дошкою nRF51 від Raspberry Pi.
Тепер, щоб встановити з'єднання Bluetooth між 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
На підлеглому пристрої я запускаю такі команди:
#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 завжди повертає "Handle Connection 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 починає прослуховувати інтерфейс bt0, коли він з'являється, а потім рівно через 39 секунд він виявляє, що інтерфейс відсутній, і випускає його. Я спробував призначити IPv6 адресу пристрою, коли він працює, використовуючи таку команду:
ifconfig bt0 inet6 add 2001:db8::5cf3:70ff:feXX:XXXX/64
Тоді я запустив ping6, щоб постійно пінг його, сподіваючись трохи продовжити інтерфейс, але інтерфейс все-таки знизився через 39 секунд.
Я використовую два моделі Raspberry Pi 2 Model B, і обидва адаптери Bluetooth - це пристрої Bluetooth 4.0 Broadcom Corp BCM20702A0 ( для отримання інформації про адаптер використовується lsusb ). Незважаючи на те, що адаптери перелічені як Bluetooth 4.0, я зміг успішно використовувати їх разом із комплектом розробки Nordic nRF51 для встановлення зв'язку 6LoWPAN.
Після всіх моїх експериментів ось питання, які у мене є:
- Чи можна робити те, що я намагаюся зробити?
- Хто-небудь зміг успішно встановити зв’язок 6LoWPAN між двома пристроями Linux, який міг би сказати мені, чого я не вистачаю в своїх кроках?
- Чи потрібно, щоб один із пристроїв Bluetooth був сумісний із Bluetooth Smart 4.2, щоб правильно встановити це з'єднання?
- Хтось знайомий з bluez, який може порекомендувати додаткові кроки, щоб спробувати?
Будь-яка допомога буде дуже вдячна.
Джон
EDIT 1:
Мені вдалося встановити це з'єднання, працюючи між коробкою Ubuntu 14.04 та Raspberry Pi, встановивши попередньо вбудоване ядро 3.19, завантажене звідси: http://kernel.ubuntu.com/~kernel-ppa/mainline/linux-3.19. yz-черга / 2016-01-07-vivid /
Я досі не розумію, чому це не працює між двома малиновими пісками, але якщо я знайду рішення, опублікую його тут.
EDIT 2:
Ubuntu 14.04 працює з Bluez 4, в той час як Raspberry Pis працює з Bluez 5. оскільки я не зміг з'єднати два Raspberry Pis (працює з Bluez 5), я зрозумів, що я спробую з'єднати два екземпляри Fedora 23 із запуском Bluez 5, щоб побачити, чи щось не так Блюз або Малина Піс. У своїх експериментах я відчуваю однакову поведінку з двома екземплярами Fedora 23, які я робив із двома письмами Raspberry (де з'єднання 6lowpan знижується менше ніж за 30 секунд після підключення).
Версія bluez, що працює на Fedora 23, становить 5,35, а версія bluez, що працює на Raspberry Pis, становить 5,23.
Хтось має уявлення, чому це відбувається з Bluez 5.x?
Дякую,