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/30 00:20] 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 ==== +Первый шаг -- получить исходники драйвера (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 он не поддерживает.+[[.:zigbee:sample_setup|Как это выглядит у меня]]
  
-==== Отладочная плата ====+===== Цели объявленные в группе ===== 
 +  - реализовать диссектор для Wireshark -- [[.:zigbee:wireshark|решение]] 
 +  - сделать чтобы все уровни (LDISC, IEEE 802.15.4, ZigBee NWK) были независимы друг от друга 
 +  - определить и реализовать интерфейс сокетов на уровне IEEE 802.15.4 и ZigBee NWK 
 +  - реализовать ZigBee APL в пользовательском коде
  
-Пытался установить взаимодействие с отладочной платой по USB и по RS-232. Ожидал, что при получении команды (например, "zb\x1") загорится первый светодиод.+===== Текущие результаты =====
  
-Вопросы+Тестовый набор патчей для достижения первой цели: 
-  * на отладочной плате есть интерфейс USB, в readme тоже указан /dev/ttyUSB, должно ли оно так работать (было бы проще чем через COM, однако, у меня не получилось -- нет реакции, вообще никакой); +  * патч для драйвера (http://groups.google.ru/group/osll/web/zigbee-stack-t_for-wshark_mac.patch) добавляющий утилиту tools/zbcap захватывающую пакеты ieee802.15.4 уровня MAC с указанного сетевого интерфейса в файл и функции перенаправления входящих и исходящих пакетов стека с уровня MAC в пакетный сокет
-  * при подключении через RS-232, каким должен быть кабель? (подозреваю, что прямым); по скольки линиям идет взаимодействие? (судя по тому, что тестовые программы включают аппаратный flow-control, 3-проводного кабеля мало)+  * патч для драйвера (http://groups.google.ru/group/osll/web/zigbee-stack-t_for-wshark_phy.patch) добавляющий утилиту tools/zbcap захватывающую пакеты ieee802.15.4 уровня PHY с указанного сетевого интерфейса в файл и функции перенаправления входящих и исходящих пакетов стека с уровня PHY в пакетный сокет; 
-  * тестовые программы через RS-232 запускаются однократно. при следующем запуске они повисают на открытии /dev/ttySпочемукак (и можно ли) протестировать отладочную плату без драйверапросто посылая команды в /dev/ttyS? +  * патч для wireshark-1.0.2 (http://osll.googlegroups.com/web/wireshark-1.0.2-zigbee-phy.patch) добавляющий чтение и разбор пакетов ieee802.15.4 уровня PHY (работает и для 1.0.3).
- +
-==== Wireshark ==== +
- +
-Начало где-то здесь: http://www.wireshark.org/docs/wsdg_html_chunked/PartDevelopment.html +
- +
-Уже существует анализатор IEEE802.15.4: wireshark/epan/dissectors/packet-ieee802154.*+
etc/common_activities/zigbee.1217362854.txt.gz · Last modified: 2008/07/30 00:20 by jcmvbkbc