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/07/14 00:51] jcmvbkbcetc:common_activities:zigbee [2008/09/13 22:59] jcmvbkbc
Line 1: Line 1:
 ====== Стек ZigBee для Linux ====== ====== Стек ZigBee для Linux ======
  
-===== Задачи ===== +Проект linux-zigbee реализует стек протоколов ieee802.15.4 в виде набора драйверов ядра linux, драйвер трансивера zigbee, firmware для трансивера и набор утилит. 
-  * разобраться с драйвером ZigBee и предоставляемым им интерфейсом; +Взаимодействие с транисивером идет через последовательный порт. 
-  * разобраться с User Mode Linux -- как устанавливать/запускать; +Отладка выполняется в UserModeLinux.
-  * разобраться с Wireshark -- как написать свой анализатор протокола;+
  
-===== Результаты ===== +===== Внешние ссылки ===== 
-==== User Mode Linux ==== +  * страничка в группе google: http://groups.google.ru/group/osll/web/linux-zigbee 
-Входит в ядра серии 2.6. Должен собираться и работать по make ARCH=um defconfig ; make ARCH=umОднако, [[http://en.wikipedia.org/wiki/Linux_kernel#Versions|ванильные]] 2.6.21, 2.6.21.7, 2.6.23.14 не собрались. Собралось 2.6.25. Готовлю статистику по собираемости.+  * исходники драйвера на sourceforge: https://sourceforge.net/projects/zigbee-stack-t/ 
 +  * сайт проекта UserModeLinux: http://user-mode-linux.sourceforge.net/ 
 +  * файловые системы для UML: http://uml.nagafix.co.uk/ 
 +  * исходники wireshark: http://www.wireshark.org/download.html 
 +    * страничка на wiki wireshark по ieee802.15.4: http://wiki.wireshark.org/IEEE_802.15.
 +  * мануал на процессор отладочной платы: [[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/...]]
  
-Статистика такова: 2.6.17-2.6.23 не собирается ни одно. 2.6.24-2.6.25 собираются все.+===== Установка и настройка =====
  
-==== Драйвер ZigBee ==== +Первый шаг -- получить исходники драйвера (svn co https://zigbee-stack-t.svn.sourceforge.net/svnroot/zigbee-stack-t zigbee-stack-t). Дальше -- zigbee-stack-t/trunk/README.txt с небольшими исправлениями:
-Не собирается. Помимо глюков в Makefile (не уверен, надо продолжать разбираться с системой сборки ядра) есть ссылки на поля, отсутствующие в структурах.+
  
-==== Wireshark ====+  * перед компиляцией ядра пропатчить файлы 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://www.wireshark.org/docs/wsdg_html_chunked/PartDevelopment.html+-#define NPROTO         34              /* should be enough for now..   */ 
 ++#define NPROTO         35              /* should be enough for now..   */ 
 + 
 + #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=1 
 +modprobe zb_ldisc dev_name="my_dev1" 
 +modprobe af_zigbee 
 +</file> 
 + 
 +===== Цели объявленные в группе ===== 
 +  - реализовать диссектор для Wireshark -- [[.:zigbee:wireshark|решение]] 
 +  - сделать чтобы все уровни (LDISC, IEEE 802.15.4, ZigBee NWK) были независимы друг от друга 
 +  - определить и реализовать интерфейс сокетов на уровне IEEE 802.15.4 и ZigBee NWK 
 +  - реализовать ZigBee APL в пользовательском коде 
 + 
 +===== Текущие результаты ===== 
 + 
 +Тестовый набор патчей для достижения первой цели: 
 +  * патч для драйвера (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).
  
-Уже существует анализатор IEEE802.15.4: wireshark/epan/dissectors/packet-ieee802154.* 
etc/common_activities/zigbee.txt · Last modified: 2008/09/14 15:26 by jcmvbkbc