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

Next revision
Previous revision
etc:common_activities:zigbee [2008/07/06 18:08] – создано jcmvbkbcetc:common_activities:zigbee [2008/09/14 15:26] (current) jcmvbkbc
Line 1: Line 1:
 ====== Стек ZigBee для Linux ====== ====== Стек ZigBee для Linux ======
  
-Задачи: +Проект linux-zigbee реализует стек протоколов ieee802.15.4 в виде набора драйверов ядра linux, драйвер трансивера zigbee, firmware для трансивера и набор утилит. 
-  * разобраться с драйвером ZigBee и предоставляемым им интерфейсом; +Взаимодействие с транисивером идет через последовательный порт. 
-  * разобраться с User Mode Linux -- как устанавливать/запускать; +Отладка выполняется в UserModeLinux.
-  * разобраться с Ethereal -- как написать свой анализатор протокола;+
  
 +===== Внешние ссылки =====
 +  * страничка в группе google: http://groups.google.ru/group/osll/web/linux-zigbee
 +  * исходники драйвера на 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.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/...]]
 +
 +===== Установка и настройка =====
 +
 +Первый шаг -- получить исходники драйвера (svn co https://zigbee-stack-t.svn.sourceforge.net/svnroot/zigbee-stack-t zigbee-stack-t). Дальше -- zigbee-stack-t/trunk/README.txt с небольшими исправлениями:
 +
 +  * перед компиляцией ядра пропатчить файлы 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;
 +
 +-#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>
 +
 +[[.:zigbee:sample_setup|Как это выглядит у меня]]
 +
 +===== Цели объявленные в группе =====
 +  - реализовать диссектор для 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).
etc/common_activities/zigbee.1215353282.txt.gz · Last modified: 2008/07/06 18:08 by jcmvbkbc