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/08/10 03:46] – добавил roadmap по граблям 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/ 
-    * [?] какие типы сокетов можно создать в PF_ZIGBEE? +  исходники wireshark: http://www.wireshark.org/download.html 
-    [?] как посылать через сокеты команды разным уровням стека протоколов zigbee? +    * страничка на 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/...]]
-  * разобраться с Wireshark -- как написать свой анализатор протокола; +
-    * научиться получать файл с link encap=wpan, чтобы скормить его существующему диссектору; +
-    * [-] создать сетевой интерфейс, из которого можно получать пакеты wpan; -- интерфейс создается при активизации ldisc; wpan не распознается dumpcap;+
  
-===== Результаты =====+===== Установка и настройка =====
  
-==== 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 собираются все.+
  
-Вместо http://uml.nagafix.co.uk/FedoraCore5/FedoraCore5-x86-root_fs.bz2 стоит использовать http://uml.nagafix.co.uk/Fedora8/Fedora8-x86-root_fs.bz2. И вообще, занятный сайт -- http://uml.nagafix.co.uk/ +  * перед компиляцией ядра пропатчить файлы include/linux/net.h и include/linux/socket.h: (для запуска sock-coord и sock-router требуется поддержка PF_ZIGBEE. Для этого следует modprobe af_zigbee, который регистрирует новый протокол. Для него-то и нужен новый индекс)
- +
-==== Драйвер ZigBee ==== +
- +
-Собирается и устанавливается. В readme написано modprobe zb_tty dev_name="my_dev1" mac_addr=1, однако последний модуль называется zb-ldisc и параметр mac_addr он не поддерживает. +
- +
-=== roadmap по граблям === +
-  - на этапе сборки ядра, после make defconfig ARCH=um выполнить make menuconfig ARCH=um и поставить M в Library routines/CRC* functions; +
-  - после загрузки в uml отредактировать /etc/inittab, убрав последнюю строку (что-то заканчивающееся на ttyS0, через который мы работаем с устройством); +
-  - для запуска sock-coord и sock-router требуется поддержка PF_ZIGBEE. Для этого следует modprobe af_zigbee. А предварительно поменять include/linux/net.h и include/linux/socket.h:+
 <file> <file>
 diff -bur linux-2.6.25-org/include/linux/net.h linux-2.6.25/include/linux/net.h diff -bur linux-2.6.25-org/include/linux/net.h linux-2.6.25/include/linux/net.h
Line 55: Line 44:
  /* Protocol families, same as address families. */  /* Protocol families, same as address families. */
  #define PF_UNSPEC      AF_UNSPEC  #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> </file>
  
-==== Отладочная плата ==== +[[.:zigbee:sample_setup|Как это выглядит у меня]]
- +
-Пытался установить взаимодействие с отладочной платой по USB и по RS-232Ожидал, что при получении команды (например, "zb\x1") загорится первый светодиод. +
- +
-Вопросы: +
-  * на отладочной плате есть интерфейс USB, в readme тоже указан /dev/ttyUSB, должно ли оно так работать (было бы проще чем через COM, однако, у меня не получилось -- нет реакции, вообще никакой); +
-  * при подключении через RS-232, каким должен быть кабель? (подозреваю, что прямым); по скольки линиям идет взаимодействие? (судя по тому, что тестовые программы включают аппаратный flow-control, 3-проводного кабеля мало); +
-  * тестовые программы через RS-232 запускаются однократно. при следующем запуске они повисают на открытии /dev/ttyS. почему? как (и можно ли) протестировать отладочную плату без драйвера, просто посылая команды в /dev/ttyS? +
- +
-==== Wireshark ====+
  
-Начало где-то здесь: http://www.wireshark.org/docs/wsdg_html_chunked/PartDevelopment.html+===== Цели объявленные в группе ===== 
 +  реализовать диссектор для Wireshark -- [[.:zigbee:wireshark|решение]] 
 +  - сделать чтобы все уровни (LDISC, IEEE 802.15.4, ZigBee NWK) были независимы друг от друга 
 +  - определить и реализовать интерфейс сокетов на уровне IEEE 802.15.4 и ZigBee NWK 
 +  - реализовать ZigBee APL в пользовательском коде
  
-Уже существует анализатор IEEE802.15.4: wireshark/epan/dissectors/packet-ieee802154.*+===== Текущие результаты =====
  
-Страничка на wiki wireshark: http://wiki.wireshark.org/IEEE_802.15.4+Тестовый набор патчей для достижения первой цели: 
 +  * патч для драйвера (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.1218325617.txt.gz · Last modified: 2008/08/10 03:46 by jcmvbkbc