etc:common_activities:zigbee
Table of Contents
Стек ZigBee для Linux
Проект linux-zigbee реализует стек протоколов ieee802.15.4 в виде набора драйверов ядра linux, драйвер трансивера zigbee, firmware для трансивера и набор утилит. Взаимодействие с транисивером идет через последовательный порт. Отладка выполняется в UserModeLinux.
Внешние ссылки
- страничка в группе 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/...
Установка и настройка
Первый шаг – получить исходники драйвера (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, который регистрирует новый протокол. Для него-то и нужен новый индекс)
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 1 /* sys_socket(2) */ #define SYS_BIND 2 /* 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
- на этапе сборки ядра, после 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:
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
Цели объявленные в группе
- реализовать диссектор для 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.txt · Last modified: 2008/09/14 15:26 by jcmvbkbc