Open Source & Linux Lab

It's better when it's simple

User Tools

Site Tools


etc:common_activities:zigbee

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
etc:common_activities:zigbee [2008/08/05 00:28] jcmvbkbcetc:common_activities:zigbee [2008/09/13 22:59] jcmvbkbc
Line 1: Line 1:
 ====== Стек ZigBee для Linux ====== ====== Стек ZigBee для Linux ======
  
-https://sourceforge.net/projects/zigbee-stack-t/+Проект linux-zigbee реализует стек протоколов ieee802.15.4 в виде набора драйверов ядра linux, драйвер трансивера zigbee, firmware для трансивера и набор утилит. 
 +Взаимодействие с транисивером идет через последовательный порт. 
 +Отладка выполняется в UserModeLinux.
  
-===== Задачи ===== +===== Внешние ссылки ===== 
-  * [+] установить связь с отладочной платой; [[http://www.freescale.com/files/microcontrollers/doc/data_sheet/MC9S08GB60A.pdf?fsrch=1&WT_TYPE=Data%20Sheets&WT_VENDOR=FREESCALE&WT_FILE_FORMAT=pdf&WT_ASSET=Documentation|мануал на процессор]]; -- готово, работает; +  * страничка в группе google: http://groups.google.ru/group/osll/web/linux-zigbee 
-    [+] выяснить, можно ли это сделать по USB? -- результат отрицательный; +  исходники драйвера на sourceforge: https://sourceforge.net/projects/zigbee-stack-t/ 
-    [+] если по USB -- нет, выяснить, каким должен быть кабель RS-232; -- кабель обычный, прямой; +  * сайт проекта UserModeLinux: http://user-mode-linux.sourceforge.net/ 
-  * разобраться с драйвером ZigBee и предоставляемым им интерфейсом; +  * файловые системы для UML: http://uml.nagafix.co.uk/ 
-  * разобраться с Wireshark -- как написать свой анализатор протокола; +  * исходники wireshark: http://www.wireshark.org/download.html 
-    * научиться получать файл с link encap=wpan, чтобы скормить его существующему диссектору; +    страничка на wiki wireshark по ieee802.15.4: http://wiki.wireshark.org/IEEE_802.15.4 
-    * [?] создать сетевой интерфейс, из которого можно получать пакеты wpan;+  * мануал на процессор отладочной платы: [[http://www.freescale.com/files/microcontrollers/doc/data_sheet/MC9S08GB60A.pdf?fsrch=1&WT_TYPE=Data%20Sheets&WT_VENDOR=FREESCALE&WT_FILE_FORMAT=pdf&WT_ASSET=Documentation|http://www.freescale.com/...]]
  
-===== Результаты =====+===== Установка и настройка =====
  
-==== User Mode Linux ==== +Первый шаг -- получить исходники драйвера (svn co https://zigbee-stack-t.svn.sourceforge.net/svnroot/zigbee-stack-t zigbee-stack-t)Дальше -- zigbee-stack-t/trunk/README.txt с небольшими исправлениями:
-Входит в ядра серии 2.6. Должен собираться и работать по make ARCH=um defconfig ; make ARCH=um. Однако, статистика такова: 2.6.17-2.6.23 не собирается ни одно. 2.6.24-2.6.25 собираются все.+
  
-Для текущей версии драйвера make defconfig недостаточенПосле make defconfig стоит выполнить make menuconfig и поставить M в Library routines/CRC* functions.+  * перед компиляцией ядра пропатчить файлы include/linux/net.h и include/linux/socket.h: (для запуска sock-coord и sock-router требуется поддержка PF_ZIGBEEДля этого следует modprobe af_zigbee, который регистрирует новый протокол. Для него-то и нужен новый индекс) 
 +<file> 
 +diff -bur linux-2.6.25-org/include/linux/net.h linux-2.6.25/include/linux/net.h 
 +--- linux-2.6.25-org/include/linux/net.h        2008-04-17 06:49:44.000000000 +0400 
 ++++ linux-2.6.25/include/linux/net.h    2008-08-10 00:58:00.000000000 +0400 
 +@@ -26,7 +26,7 @@ 
 + struct inode; 
 + struct net;
  
-Образ http://uml.nagafix.co.uk/FedoraCore5/FedoraCore5-x86-root_fs.bz2 хорошОднако, скомпилированные под F8 бинарники говорят на нем "Floating point exception". В source/tools/Makefile добавить LDFLAGS += -pthread -static.+-#define NPROTO         34              /* should be enough for now..   */ 
 ++#define NPROTO         35              /* should be enough for now..   */
  
-Альтернативный вариант -- http://uml.nagafix.co.uk/Fedora8/Fedora8-x86-root_fs.bz2И вообще, занятный сайт -- http://uml.nagafix.co.uk/+ #define SYS_SOCKET                   /* sys_socket(2)                */ 
 + #define SYS_BIND                     /* sys_bind(2)                  */ 
 +diff -bur linux-2.6.25-org/include/linux/socket.h linux-2.6.25/include/linux/socket.h 
 +--- linux-2.6.25-org/include/linux/socket.h     2008-04-17 06:49:44.000000000 +0400 
 ++++ linux-2.6.25/include/linux/socket.h 2008-08-10 00:57:47.000000000 +0400 
 +@@ -189,7 +189,7 @@ 
 + #define AF_BLUETOOTH   31      /* Bluetooth sockets            */ 
 + #define AF_IUCV                32      /* IUCV sockets                 */ 
 + #define AF_RXRPC       33      /* RxRPC sockets                */ 
 +-#define AF_MAX         34      /* For now.. */ 
 ++#define AF_MAX         35      /* For now.. */
  
-==== Драйвер ZigBee ====+ /* Protocol families, same as address families. */ 
 + #define PF_UNSPEC      AF_UNSPEC 
 +</file> 
 +  * на этапе сборки ядра, после make defconfig ARCH=um выполнить make menuconfig ARCH=um и поставить M в Library routines/CRC* functions; 
 +  * вместо http://uml.nagafix.co.uk/FedoraCore5/FedoraCore5-x86-root_fs.bz2 удобнее использовать http://uml.nagafix.co.uk/Fedora8/Fedora8-x86-root_fs.bz2, особенно, если host-система -- такая же. Иначе все может закончиться Floating Point Exception при запуске утилит (если версия glibc host-системы сильно отличается от той что в FedoraCore5), добавлением LDFLAGS+=-static и перекомпиляцией утилит; 
 +  * после загрузки в uml отредактировать /etc/inittab, убрав последнюю строку (что-то заканчивающееся на ttyS0, через который мы работаем с устройством); 
 +  * список загружаемых модулей должен быть длиннее чем указано в README.txt: 
 +<file> 
 +depmod 
 +dmesg -n8 
 +modprobe ieee80215_lib 
 +modprobe zb 
 +modprobe dbg_print 
 +modprobe ieee80215 debug_opts=20 ts=
 +modprobe zb_ldisc dev_name="my_dev1" 
 +modprobe af_zigbee 
 +</file>
  
-Собирается и устанавливается. В readme написано modprobe zb_tty dev_name="my_dev1" mac_addr=1, однако последний модуль называется zb-ldisc и параметр mac_addr он не поддерживает.+===== Цели объявленные в группе ===== 
 +  - реализовать диссектор для Wireshark -- [[.:zigbee:wireshark|решение]] 
 +  - сделать чтобы все уровни (LDISC, IEEE 802.15.4, ZigBee NWK) были независимы друг от друга 
 +  - определить и реализовать интерфейс сокетов на уровне IEEE 802.15.4 и ZigBee NWK 
 +  - реализовать ZigBee APL в пользовательском коде
  
-==== Отладочная плата ====+===== Текущие результаты =====
  
-Пытался установить взаимодействие с отладочной платой по USB и по RS-232Ожидал, что при получении команды (например, "zb\x1") загорится первый светодиод.+Тестовый набор патчей для достижения первой цели: 
 +  * патч для драйвера (http://groups.google.ru/group/osll/web/zigbee-stack-t_for-wshark_mac.patch) добавляющий утилиту tools/zbcap захватывающую пакеты ieee802.15.4 уровня MAC с указанного сетевого интерфейса в файл и функции перенаправления входящих и исходящих пакетов стека с уровня MAC в пакетный сокет; 
 +  * патч для драйвера (http://groups.google.ru/group/osll/web/zigbee-stack-t_for-wshark_phy.patch) добавляющий утилиту tools/zbcap захватывающую пакеты ieee802.15.4 уровня PHY с указанного сетевого интерфейса в файл и функции перенаправления входящих и исходящих пакетов стека с уровня PHY в пакетный сокет
 +  * патч для wireshark-1.0.2 (http://osll.googlegroups.com/web/wireshark-1.0.2-zigbee-phy.patch) добавляющий чтение и разбор пакетов ieee802.15.4 уровня PHY (работает и для 1.0.3).
  
-Вопросы: 
-  * на отладочной плате есть интерфейс USB, в readme тоже указан /dev/ttyUSB, должно ли оно так работать (было бы проще чем через COM, однако, у меня не получилось -- нет реакции, вообще никакой); 
-  * при подключении через RS-232, каким должен быть кабель? (подозреваю, что прямым); по скольки линиям идет взаимодействие? (судя по тому, что тестовые программы включают аппаратный flow-control, 3-проводного кабеля мало); 
-  * тестовые программы через RS-232 запускаются однократно. при следующем запуске они повисают на открытии /dev/ttyS. почему? как (и можно ли) протестировать отладочную плату без драйвера, просто посылая команды в /dev/ttyS? 
- 
-==== Wireshark ==== 
- 
-Начало где-то здесь: http://www.wireshark.org/docs/wsdg_html_chunked/PartDevelopment.html 
- 
-Уже существует анализатор IEEE802.15.4: wireshark/epan/dissectors/packet-ieee802154.* 
- 
-Страничка на wiki wireshark: http://wiki.wireshark.org/IEEE_802.15.4 
etc/common_activities/zigbee.txt · Last modified: 2008/09/14 15:26 by jcmvbkbc