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
etc:common_activities:zigbee [2008/07/20 01:49] – дополнения в список задач jcmvbkbcetc:common_activities:zigbee [2008/09/14 15:26] (current) 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 
-    * выяснить, с какими устройствами может работать существующий диссектор;+    страничка на wiki wireshark по ieee802.15.4: http://wiki.wireshark.org/IEEE_802.15.4 
 +  * мануал на процессор отладочной платы: [[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 ==== +
-Входит в ядра серии 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.+Первый шаг -- получить исходники драйвера (svn co https://zigbee-stack-t.svn.sourceforge.net/svnroot/zigbee-stack-t zigbee-stack-t). Дальше -- zigbee-stack-t/trunk/README.txt с небольшими исправлениями:
  
-Образ http://uml.nagafix.co.uk/FedoraCore5/FedoraCore5-x86-root_fs.bz2 хорош. Однакоскомпилированные под F8 бинарники говорят на нем "Floating point exception"В source/tools/Makefile добавить LDFLAGS +-pthread -static.+  * перед компиляцией ядра пропатчить файлы 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;
  
-==== Драйвер ZigBee ====+-#define NPROTO         34              /* should be enough for now..   */ 
 ++#define NPROTO         35              /* should be enough for now..   */
  
-Собирается и устанавливается. В readme написано modprobe zb_tty dev_name="my_dev1" mac_addr=1, однако последний модуль называется zb-ldisc и параметр mac_addr он не поддерживает.+ #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.*/
  
-==== Отладочная плата ====+ /* 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>
  
-Пытался установить взаимодействие с отладочной платой по USB и по RS-232. Ожидал, что при получении команды (например, "zb\x1") загорится первый светодиод.+[[.:zigbee:sample_setup|Как это выглядит у меня]]
  
-Вопросы: +===== Цели объявленные в группе ===== 
-  * на отладочной плате есть интерфейс USB, в readme тоже указан /dev/ttyUSB, должно ли оно так работать (было бы проще чем через COM, однако, у меня не получилось -- нет реакции, вообще никакой); +  - реализовать диссектор для Wireshark -- [[.:zigbee:wireshark|решение]] 
-  * при подключении через RS-232, каким должен быть кабель? (подозреваю, что прямым); по скольки линиям идет взаимодействие? (судя по тому, что тестовые программы включают аппаратный flow-control, 3-проводного кабеля мало); +  - сделать чтобы все уровни (LDISC, IEEE 802.15.4, ZigBee NWK) были независимы друг от друга 
-  * тестовые программы через RS-232 запускаются однократно. при следующем запуске они повисают на открытии /dev/ttyS. почему? как (и можно ли) протестировать отладочную плату без драйвера, просто посылая команды в /dev/ttyS?+  определить и реализовать интерфейс сокетов на уровне IEEE 802.15.4 и ZigBee NWK 
 +  - реализовать ZigBee APL в пользовательском коде
  
-==== Wireshark ==== +===== Текущие результаты =====
- +
-Начало где-то здесь: http://www.wireshark.org/docs/wsdg_html_chunked/PartDevelopment.html +
- +
-Уже существует анализатор IEEE802.15.4: wireshark/epan/dissectors/packet-ieee802154.*+
  
 +Тестовый набор патчей для достижения первой цели:
 +  * патч для драйвера (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).
etc/common_activities/zigbee.1216504153.txt.gz · Last modified: 2008/07/20 01:49 by jcmvbkbc