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/19 20:48] – вопросы по железке 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.
  
-===== Задачи ===== +===== Внешние ссылки ===== 
-  * разобраться с драйвером ZigBee и предоставляемым им интерфейсом; +  * страничка в группе google: http://groups.google.ru/group/osll/web/linux-zigbee 
-  * разобраться с User Mode Linux -- как устанавливать/запускать; +  * исходники драйвера на sourceforge: https://sourceforge.net/projects/zigbee-stack-t/ 
-  * разобраться с Wireshark -- как написать свой анализатор протокола;+  * сайт проекта 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.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. Однако, [[http://en.wikipedia.org/wiki/Linux_kernel#Versions|ванильные]] 2.6.21, 2.6.21.7, 2.6.23.14 не собрались. Собралось 2.6.25. Готовлю статистику по собираемости.+
  
-Статистика такова: 2.6.17-2.6.23 не собирается ни одно. 2.6.24-2.6.25 собираются все.+Первый шаг -- получить исходники драйвера (svn co https://zigbee-stack-t.svn.sourceforge.net/svnroot/zigbee-stack-t zigbee-stack-t)Дальше -- zigbee-stack-t/trunk/README.txt с небольшими исправлениями:
  
-Для текущей версии драйвера 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;
  
-==== Драйвер 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") загорится первый светодиод.+===== Цели объявленные в группе ===== 
 +  - реализовать диссектор для Wireshark -[[.:zigbee:wireshark|решение]] 
 +  - сделать чтобы все уровни (LDISC, IEEE 802.15.4, ZigBee NWK) были независимы друг от друга 
 +  - определить и реализовать интерфейс сокетов на уровне IEEE 802.15.4 и ZigBee NWK 
 +  - реализовать ZigBee APL в пользовательском коде
  
-Вопросы: +===== Текущие результаты =====
-  * на отладочной плате есть интерфейс USB, в readme тоже указан /dev/ttyUSB, должно ли оно так работать (было бы проще чем через COM, однако, у меня не получилось -- нет реакции, вообще никакой); +
-  * при подключении через RS-232, каким должен быть кабель? (подозреваю, что прямым); по скольки линиям идет взаимодействие?удя по тому, что тестовые программы включают аппаратный flow-control, 3-проводного кабеля мало); +
-  * тестовые программы через RS-232 запускаются однократно. при следующем запуске они повисают на открытии /dev/ttyS. почему? как (и можно ли) протестировать отладочную плату без драйвера, просто посылая команды в /dev/ttyS?+
  
-==== Wireshark ==== +Тестовый набор патчей для достижения первой цели: 
- +  * патч для драйвера (http://groups.google.ru/group/osll/web/zigbee-stack-t_for-wshark_mac.patch) добавляющий утилиту tools/zbcap захватывающую пакеты ieee802.15.4 уровня MAC с указанного сетевого интерфейса в файл и функции перенаправления входящих и исходящих пакетов стека с уровня MAC в пакетный сокет; 
-Начало где-то здесь: http://www.wireshark.org/docs/wsdg_html_chunked/PartDevelopment.html +  * патч для драйвера (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.4wireshark/epan/dissectors/packet-ieee802154.*+
  
etc/common_activities/zigbee.txt · Last modified: 2008/09/14 15:26 by jcmvbkbc