1

Тема: Умный дом и управление по USB с помощью keenetic

Допустим есть некоторое простое устройство USB с драйвером под linux (исходник), например это USB реле для управления нагрузкой по интернету.
И есть собственный web сервер (php+) на keenetic.

Хочется создать страничку с кнопкой "Пуск-Стоп" для управления какой-либо нагрузкой, например включать свет, водопроводные клапаны и т.п. через второй USB. В устройствах keenetic c двумя USB портами - один порт занят HDD или Flash, а второй может быть использован.

Для начала предлагаю скомпилировать драйвер для USB устройства MP751 от Masterkit по следующей ссылке, а затем через php запускать по кнопке скрипт с параметром для включения и выключения данного устройства.

Для управления малыми нагрузками (ток до 0.5 A и напряжением 5В) по USB достаточно управлять включением питания USB без всяких дополнительных устройств.

Очень хочется также передавать данные из php в USB и получать обратно от устройств по протоколу Z-modem (serial port).
Это просто находка для построения систем "Умный дом": легко получать данные с датчиков и управлять системами работающими по serial интерфейсу.

У самого не хватает достаточных знаний linux, gcc и php.

Отредактировано Geniuser (2014-02-16 02:18:58)

2

Re: Умный дом и управление по USB с помощью keenetic

Geniuser, более перспективным представляется, например:
- шлюз modbus/tcp-modbus/rtu (rs485), подключаемый к свичу ethernet кинетика
- к шлюзу на rs485 - большое кол-во мелких устройств - дискретные вх/вых, аналоговые вх/вых и тп, а не пара реле, как в случае подключения к USB

rs485 здесь для примера, может использоваться любая полевая шина.

Тогда не требуются никакие драйверы, все аппаратно- и программно- независимо, используются только готовые реализации modbus для php, perl и др.

Такая схема со шлюзом modbus/tcp (ethernet) - modbus/rtu (rs485) и устройствами на rs485 у меня уже давно работает на одном из кинетиков...

3

Re: Умный дом и управление по USB с помощью keenetic

c61 :

схема со шлюзом modbus/tcp (ethernet) - modbus/rtu (rs485)

К роутеру за 100$ подключать промышленный преобразователь TCP->RS485 за 660$ кажется неоправданным.
Меня интересуют как раз USB преобразователь, например на микросхеме FTDI.
Программный протокол RS485 от RS232 (COM порт) не отличается.
Для USB сервера под управлением linux (keenetic) - это виртуальный COM-port или z-modem.
Драйвера под linux и инструкция по компиляции имеются здесь.
Там пишут, что драйвер под виртуальный COM (VCOM) входит в состав kernel linux. Более того, 3G и 4G модемы, которые поддерживает keenetic роутером общаются с ним по VCOM.
Есть вероятность, что FTDI устройство само определится и примонтируется.
Цена USB адаптера не превышает 10$ на ebay с доставкой.

Отредактировано Geniuser (2014-02-16 18:28:57)

4

Re: Умный дом и управление по USB с помощью keenetic

Насчёт 660$ это Вы конечно крутовато взяли, но совершенно правы насчет того, что они дорогие. Мне правда пофиг по той причине, что мы их сами производим ))

Про usb - через hub можно попробовать много реле наподключать, но я не проверял, самому интересно. Особенно с FTDI.

Программный протокол rs485 и rs232 в полудуплексном режиме не отличаются, но для управления направлением передачи обычно используется сигнал rts на rs232 (если нет автоопределения направления передачи). rs485 в полнодуплексном - экзотика, обычно только два провода используются.

5

Re: Умный дом и управление по USB с помощью keenetic

Если VCOM порт поднимется, то работать с ним из php можно примерно так:

<?php

    print '<form action="#" method="post">'.
    '<input type="submit" name="submit" value="Wake Up!">'.
    '</form>';

if(isset($_POST['submit']))
{
    // выполняем виндовую команду по настройке параметров COM-порта
    exec("mode COM5 BAUD=9600 PARITY=N data=8 stop=1 xon=off");
    // открываем COM порт, у меня #5, у Вас может быть другой
    $fp = fopen ("COM5", "w+");
    if (!$fp) {
       echo "Not open";
    } else {
    // Передаем arduino необходимые данные
        fwrite($fp,date("m F").", ".date("H:i")."\r    Wake up!");
    }
    fclose($fp);
}

?>

Пример взят отсюда.

6

Re: Умный дом и управление по USB с помощью keenetic

Подключил устройство FTDI в системном журнале появилась запись:

23 мар 13:15:43    kernel    usb 2-2: new full speed USB device using rt3xxx-ohci and address 2
23 мар 13:15:43    kernel    usb 2-2: configuration #1 chosen from 1 choice

Осталось дело за малым установить usb-serial драйвер.

выполнил команду:

/media/DISK_A1/system # opkg list | grep usb

получил:

busybox - 1.19.4-6 - The Swiss Army Knife of embedded Linux. It slices, it dices, it makes Julian Fries. This package is built for usb.
dropbear - 2012.55-2 - A small SSH2 server/client designed for small memory environments. This package is built for usb.
kmod-usb-audio - 2.6.22-tc-1 - Kernel support for USB audio devices
kmod-usb-hid - 2.6.22-tc-1 - Kernel support for USB HID devices such as keyboards and mice
kmod-usb-serial-cp2101 - 2.6.22-tc-1 - Support for Silicon Labs cp210x devices
kmod-usbip - 2.6.22-tc+1-1 - Kernel module for USB/IP support
libusb-1.0 - 1.0.8-2 - libusb is a C library that gives applications easy access to USB devices on many different operating systems.
usb_ups_apc_smart - 1.0.5-1 - USB UPS APC Smart-UPS monitor.
usb_ups_powercom_wow - 1.0.5-1 - USB UPS Powercom WOW monitor.
usbip - 0.1.7-2 - USB-over-IP (common)
usbip-client - 0.1.7-2 - USB-over-IP (client)
usbip-server - 0.1.7-2 - USB-over-IP (server)
usbutils - 007-1 - USB devices listing utilities

Обратил внимание на эту строку:
kmod-usb-serial-cp2101 - 2.6.22-tc-1 - Support for Silicon Labs cp210x devices

Драйвер usb-serial есть, но только чип не ftdi. ((
Кто может скомпилировать  kmod-usb-serial-ftdi драйвер?

Отредактировано Geniuser (2014-03-23 13:06:45)

7

Re: Умный дом и управление по USB с помощью keenetic

Для кучи типов дрова прямо в ядре.

8

Re: Умный дом и управление по USB с помощью keenetic

Zyxmon :

Для кучи типов дрова прямо в ядре.

Как это понимать?
Как я понимаю, что USB устройство определилось ядром, но теперь надо как-то открыть виртуальный COM-port.
Как это сделать?
Я предположил, что для этого нужно установить модуль kmod-usb-serial-ftdi.
Где его взять?

Отредактировано Geniuser (2014-03-28 01:42:16)

9

Re: Умный дом и управление по USB с помощью keenetic

Geniuser :

Как это понимать?

Понимать так, что если нужные модули уже включены в ядро, то ничего подгружать не потребуется.

Geniuser :

Как я понимаю, что USB устройство определилось ядром, но теперь надо как-то открыть виртуальный COM-port.
Как это сделать?

Посмотреть в syslog на наличие соответствующих строк и дерево /dev/ на предмет новых устройств. Кроме приведённых вам строчек syslog'а больше ничего нет?

Geniuser :

Я предположил, что для этого нужно установить модуль kmod-usb-serial-ftdi.
Где его взять?

kmod-usb-serial-ftdi — не модуль, это всего лишь название пакета OpenWRT, в котором упакован одноимённый ядерный модуль. Если модуль уже есть в ядре, то пакет вам точно не нужен, а если нет, то ищите в первую очередь соответствующий модуль, а не пакет.

Со всеми вытекающими...

10

Re: Умный дом и управление по USB с помощью keenetic

Ядро собирается со следующим конфигом (это для белых моделей, для черных - аналогично).

CONFIG_USB_SERIAL=y
# CONFIG_USB_SERIAL_AIRCABLE is not set
CONFIG_USB_SERIAL_AIRPRIME=y
# CONFIG_USB_SERIAL_ARK3116 is not set
# CONFIG_USB_SERIAL_BELKIN is not set
CONFIG_USB_SERIAL_CONSOLE=y
CONFIG_USB_SERIAL_CP2101=m
# CONFIG_USB_SERIAL_CYBERJACK is not set
# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
# CONFIG_USB_SERIAL_DEBUG is not set
# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
# CONFIG_USB_SERIAL_EDGEPORT is not set
# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
# CONFIG_USB_SERIAL_EMPEG is not set
CONFIG_USB_SERIAL_FTDI_SIO=y
# CONFIG_USB_SERIAL_FUNSOFT is not set
# CONFIG_USB_SERIAL_GARMIN is not set
CONFIG_USB_SERIAL_GENERIC=y
# CONFIG_USB_SERIAL_HP4X is not set
# CONFIG_USB_SERIAL_IPAQ is not set
# CONFIG_USB_SERIAL_IPW is not set
# CONFIG_USB_SERIAL_IR is not set
# CONFIG_USB_SERIAL_KEYSPAN is not set
# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
# CONFIG_USB_SERIAL_KLSI is not set
# CONFIG_USB_SERIAL_KOBIL_SCT is not set
# CONFIG_USB_SERIAL_MCT_U232 is not set
# CONFIG_USB_SERIAL_MOS7720 is not set
# CONFIG_USB_SERIAL_MOS7840 is not set
# CONFIG_USB_SERIAL_NAVMAN is not set
# CONFIG_USB_SERIAL_OMNINET is not set
CONFIG_USB_SERIAL_OPTION=y
# CONFIG_USB_SERIAL_OTI6858 is not set
CONFIG_USB_SERIAL_PL2303=y
# CONFIG_USB_SERIAL_SAFE is not set
# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
# CONFIG_USB_SERIAL_TI is not set
# CONFIG_USB_SERIAL_VISOR is not set
# CONFIG_USB_SERIAL_WHITEHEAT is not set
# CONFIG_USB_SERIAL_XIRCOM is not set

Значение =y говорит, что драйвер входит в ядро, подгружать его не нужно. Один из USB_SERIAL модулей (=m) - внешний.

11

Re: Умный дом и управление по USB с помощью keenetic

Кроме приведённых вам строчек syslog'а больше ничего нет?

Пробовал несколько раз отсоединять и соединять - кроме этих строчек ничего. Данные syslog'а  взяты из файла var/log/messages.

30 мар 07:47:29    kernel    usb 2-2: USB disconnect, address 2
30 мар 07:47:34    kernel    usb 2-2: new full speed USB device using rt3xxx-ohci and address 3
30 мар 07:47:34    kernel    usb 2-2: configuration #1 chosen from 1 choice
30 мар 07:47:59    kernel    usb 2-2: USB disconnect, address 3
30 мар 07:48:23    kernel    usb 2-2: new full speed USB device using rt3xxx-ohci and address 4
30 мар 07:48:23    kernel    usb 2-2: configuration #1 chosen from 1 choice

По команде dmesg:

/media/DISK_A1/system/root # dmesg
Linux version 2.6.22.15 (developers@ndmsystems.com) (gcc version 4.1.2) #1 SMP Wed Jun 12 18:05:09 MSK 2013
ISPRAM0: PA=00308000,Size=00008000,enabled
Enable SRAM=1c000001
Ralink RT6856 SOC prom init
console [early0] enabled
CPU revision is: 00019555
Determined physical RAM map:
 memory: 10000000 @ 00000000 (usable)
On node 0 totalpages: 65536
  Normal zone: 512 pages used for memmap
  Normal zone: 0 pages reserved
  Normal zone: 65024 pages, LIFO batch:15
3 available secondary CPU TC(s)
Built 1 zonelists.  Total pages: 65024
Kernel command line: console=ttyS0,57600n8 root=/dev/mtdblock4 rootfstype=squashfs noinitrd es=1
Primary instruction cache 64kB, physically tagged, 4-way, linesize 32 bytes.
Primary data cache 32kB, 4-way, linesize 32 bytes.
Synthesized TLB refill handler (23 instructions).
Synthesized TLB load handler fastpath (37 instructions).
Synthesized TLB store handler fastpath (37 instructions).
Synthesized TLB modify handler fastpath (36 instructions).
Cache parity protection disabled
PID hash table entries: 1024 (order: 10, 4096 bytes)
CPU frequency 699.00 MHz
Using 250.000 MHz high precision timer.
console handover: boot [early0] -> real [ttyS0]
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 255488k/262144k available (3008k kernel code, 6440k reserved, 652k data, 156k init, 0k highmem)
SLUB: Genslabs=17, HWalign=32, Order=0-1, MinObjects=4, CPUs=4, Nodes=1
Calibrating delay loop... 465.30 BogoMIPS (lpj=2326528)
Mount-cache hash table entries: 512
34K sync es set to 1.
Config7: 0x80080500
FPU Affinity set after 1548 emulations
Limit of 4 TCs set
TLB of 64 entry pairs shared by 2 VPEs
VPE 0: TC 0 1 2, VPE 1: TC 3
IPI buffer pool of 32 buffers
CPU revision is: 00019555
Calibrating delay loop... 349.79 BogoMIPS (lpj=1748992)
TC 1 going on-line as CPU 1
CPU revision is: 00019555
Calibrating delay loop... 349.79 BogoMIPS (lpj=1748992)
TC 2 going on-line as CPU 2
CPU revision is: 00019555
Calibrating delay loop... 348.97 BogoMIPS (lpj=1744896)
TC 3 going on-line as CPU 3
Brought up 4 CPUs
migration_cost=10000
NET: Registered protocol family 16
Start PCIe register access for RT685x/RT6336x
registering PCI controller with io_map_base unset
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
PCI: Bridge: 0000:00:00.0
  IO window: disabled.
  MEM window: 20000000-200fffff
  PREFETCH window: disabled.
PCI: Setting latency timer of device 0000:00:00.0 to 64
NET: Registered protocol family 2
Time: MIPS clocksource has been installed.
IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
TCP established hash table entries: 8192 (order: 4, 98304 bytes)
TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
TCP: Hash tables configured (established 8192 bind 8192)
TCP reno registered
TC3162 hardware watchdog initialized
TC3162 hardware watchdog module loaded.
squashfs: version 3.0 (2006/03/15) Phillip Lougher
devfs: 2004-01-31 Richard Gooch (rgooch@atnf.csiro.au)
devfs: boot_options: 0x1
JFFS2 version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
fuse init (API version 7.8)
io scheduler noop registered
io scheduler deadline registered (default)
Ralink gpio driver initialized
ttyS0 at I/O 0xbfbf0003 (irq = 1) is a TC3162
loop: module loaded
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
PPP BSD Compression module registered
MPPE/MPPC encryption/compression module registered
NET: Registered protocol family 24
PPTP driver version 0.8.5.1
IMQ starting with 2 devices...
IMQ driver loaded successfully.
        Hooking IMQ after NAT on PREROUTING.
        Hooking IMQ before NAT on POSTROUTING.
usbcore: registered new interface driver cdc_ether
usbcore: registered new interface driver rndis_host
tc3162: flash device 0x01000000 at 0x10000000
tc3162: Found SPIFLASH 16MiB MX25L12805D
Creating 7 MTD partitions on "tc3162":
0x00000000-0x00030000 : "U-Boot"
0x00030000-0x00040000 : "U-Config "
0x00040000-0x00050000 : "RF-EEPROM"
0x00050000-0x001a0000 : "Kernel"
0x001a0000-0x00ef0000 : "RootFS"
0x00ef0000-0x00f00000 : "Config"
0x00f00000-0x01000000 : "Storage"
ohci_hcd: 2006 August 04 USB 1.1 'Open' Host Controller (OHCI) Driver
RT3xxx EHCI/OHCI init.
rt3xxx-ehci rt3xxx-ehci: Ralink EHCI Host Controller
rt3xxx-ehci rt3xxx-ehci: new USB bus registered, assigned bus number 1
rt3xxx-ehci rt3xxx-ehci: irq 18, io mem 0x1fbb0000
rt3xxx-ehci rt3xxx-ehci: USB 0.0 started, EHCI 1.00, driver 10 Dec 2004
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
rt3xxx-ohci rt3xxx-ohci: RT3xxx OHCI Controller
rt3xxx-ohci rt3xxx-ohci: new USB bus registered, assigned bus number 2
rt3xxx-ohci rt3xxx-ohci: irq 18, io mem 0x1fba0000
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 2 ports detected
usb 1-1: new high speed USB device using rt3xxx-ehci and address 2
usb 1-1: configuration #1 chosen from 1 choice
usbcore: registered new interface driver cdc_acm
drivers/usb/class/cdc-acm.c: v0.25:USB Abstract Control Model driver for USB modems and ISDN adapters
usbcore: registered new interface driver usblp
drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver
Initializing USB Mass Storage driver...
scsi0 : SCSI emulation for USB Mass Storage devices
usbcore: registered new interface driver usb-storage
usb-storage: device found at 2
usb-storage: waiting for device to settle before scanning
USB Mass Storage support registered.
usbcore: registered new interface driver usbserial
drivers/usb/serial/usb-serial.c: USB Serial support registered for generic
usbcore: registered new interface driver usbserial_generic
drivers/usb/serial/usb-serial.c: USB Serial Driver core
drivers/usb/serial/usb-serial.c: USB Serial support registered for airprime
usbcore: registered new interface driver airprime
drivers/usb/serial/usb-serial.c: USB Serial support registered for FTDI USB Serial Device
usbcore: registered new interface driver ftdi_sio
drivers/usb/serial/ftdi_sio.c: v1.4.3:USB FTDI Serial Converters Driver
drivers/usb/serial/usb-serial.c: USB Serial support registered for GSM modem (1-port)
usbcore: registered new interface driver option
drivers/usb/serial/option.c: USB Driver for GSM modems: v0.7.1
drivers/usb/serial/usb-serial.c: USB Serial support registered for pl2303
usbcore: registered new interface driver pl2303
drivers/usb/serial/pl2303.c: Prolific PL2303 USB to serial adaptor driver
Netfilter messages via NETLINK v0.30.
nf_conntrack version 0.5.0 (2048 buckets, 16384 max)
ctnetlink v0.93: registering with nfnetlink.
nf_conntrack_rtsp v0.6.21 loading
nf_nat_rtsp v0.6.21 loading
ip_tables: (C) 2000-2006 Netfilter Core Team
Type NAT: Restricted Cone
ClusterIP Version 0.8 loaded successfully
TCP westwood registered
NET: Registered protocol family 1
NET: Registered protocol family 10
IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
decode /dev/mtdblock4
VFS: Mounted root (squashfs filesystem) readonly.
Mounted devfs on /dev
Freeing unused kernel memory: 156k freed
LED driver vers. 1.10 loaded.
Ralink APSoC Ethernet Driver Initilization. v2.1  512 rx/tx descriptors allocated, mtu = 1500!
NAPI enable, weight = 32, Tx Ring = 512, Rx Ring = 512
MAC_ADRH -- : 0x0000ec43
SMACCR1 -- : 0x0000ec43
MAC_ADRL -- : 0xf6dba0f0
SMACCR0 -- : 0xf6dba0f0
PROC INIT OK!
IPP2P v0.8.2 loading
Start powerstat module.
tntfs: module license 'Commercial. For support email ntfs-support@tuxera.com.' taints kernel.
Tuxera NTFS driver 3012.12.31 [Flags: R/W MODULE].
drivers/usb/serial/usb-serial.c: USB Serial support registered for Sierra USB modem (1 port)
drivers/usb/serial/usb-serial.c: USB Serial support registered for Sierra USB modem (3 port)
usbcore: registered new interface driver sierra
Linux video capture interface: v2.00
usbcore: registered new interface driver uvcvideo
USB Video Class driver (v0.1.0)
L2TP kernel driver, v1.04
scsi 0:0:0:0: Direct-Access     Seagate  Expansion        060E PQ: 0 ANSI: 6
sd 0:0:0:0: [sda] 976773167 512-byte hardware sectors (500108 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 4f 00 00 00
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] 976773167 512-byte hardware sectors (500108 MB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 4f 00 00 00
sd 0:0:0:0: [sda] Assuming drive cache: write through
 /dev/scsi/host0/bus0/target0/lun0: p1
sd 0:0:0:0: [sda] Attached SCSI disk
sd 0:0:0:0: Attached scsi generic sg0 type 0
usb-storage: device scan complete
PCI: Setting latency timer of device 0000:01:00.0 to 64
tntfs info: NTFS volume version 3.1 (cluster_size 4096, PAGE_CACHE_SIZE 4096).
Adding 131064k swap on /media/DISK_A1/system/.swapfile.  Priority:-1 extents:1 across:131064k

phy_tx_ring = 0x0c3f2000, tx_ring = 0xac3f2000

phy_rx_ring0 = 0x0c3f4000, rx_ring0 = 0xac3f4000
RTL8367RB Giga Switch init...
MAC_ADRH -- : 0x0000ec43
SMACCR1 -- : 0x0000ec43
MAC_ADRL -- : 0xf6dba0f0
SMACCR0 -- : 0xf6dba0f0
ESW: Link Status Changed - Port5 Link UP
CDMA_CSG_CFG = 81000000
GDMA1_FWD_CFG = C0010000
device eth2.1 entered promiscuous mode
eth2.1: dev_set_promiscuity(master, 1)
device eth2 entered promiscuous mode
eth2.1: add 33:33:00:00:00:01 mcast address to master interface
eth2.1: add 01:00:5e:00:00:01 mcast address to master interface
Get WiFi MAC from RF-EEPROM: EC:43:F6:DB:A0:F0
0x1300 = 00064380
device ra0 entered promiscuous mode
eth2.2: Setting MAC address to EC:43:F6:DB:A0:F1.
eth2.2: add 33:33:00:00:00:01 mcast address to master interface
eth2.2: add 01:00:5e:00:00:01 mcast address to master interface
br0: port 2(ra0) entering learning state
br0: port 1(eth2.1) entering learning state
Start swlink module, WAN port 4.
Run Fast NAT.
fast vpn init, v1.01
br0: topology change detected, propagating
br0: port 2(ra0) entering forwarding state
br0: topology change detected, propagating
br0: port 1(eth2.1) entering forwarding state
Adding 131064k swap on /media/DISK_A1/minidlna/.swapfile.  Priority:-2 extents:2 across:4467732k
Adding 131064k swap on /media/DISK_A1/transmission/.swapfile.  Priority:-3 extents:2 across:4672000k
usb 2-2: new full speed USB device using rt3xxx-ohci and address 2
usb 2-2: configuration #1 chosen from 1 choice
tntfs error (device sda1, pid 1161): ntfs_lookup(): Failed to convert name to Unicode.
usb 2-2: USB disconnect, address 2
usb 2-2: new full speed USB device using rt3xxx-ohci and address 3
usb 2-2: configuration #1 chosen from 1 choice
usb 2-2: USB disconnect, address 3
usb 2-2: new full speed USB device using rt3xxx-ohci and address 4
usb 2-2: configuration #1 chosen from 1 choice
/media/DISK_A1/system/root #

В папке dev из новых файлов +usbdev2.4
http://www.imageup.ru/img95/1706356/mc.jpg
Содержимое файла proc/tty/drivers
http://www.imageup.ru/img95/1706358/mc1.jpg

Устройства ttyUSB в папке dev нет.

Что еще где проверить?

Отредактировано Geniuser (2014-03-30 08:09:00)

12

Re: Умный дом и управление по USB с помощью keenetic

Спасибо за участие, кто пытался найти решение. Прояснилось следующее.
Я купил это устройство здесь.
В описании у продавца сказано:

This FTDI based USB to RS422 / RS485 Serial Adapter Supports multiple terminals up to a maximum of 32 RS-485 devices provides an external plug & play RS422/RS485 serial connection with your computer via a spare USB port.

Подключил я его к ПК и посмотрел сведения о драйвере. И к моему удивлению, чип оказался вовсе не FTDI, а CH340.
Либо придется заказывать новое устройство на FTDI, либо пытаться скомпилировать модуль для CH340:

kmod-usb-serial-ch341

Кто может помочь?

13

Re: Умный дом и управление по USB с помощью keenetic

Geniuser :

Кто может помочь?

Спасение утопающих - дело рук самих утопающих. Имеется 2 проблемы.
1. В исходниках ядра ZyXEL нет исходников для ch340 - ищите отдельные для ядер 2.6.
2. Китайцы запросто могут делать железки с нестандартными PID/VID - поэтому скорее всего в стандартные драйвер PID/VID нужно будет добавить.
3. По сборке пакетов есть отдельная тема. Как решите пп. 1,2 - пишите в нее. Помогу.

14

Re: Умный дом и управление по USB с помощью keenetic

По п.1
Нашел ссылку на исходники драйвера для ядра 2.6. здесь.
С make и config файлами - здесь.
Ссылку нашел на этом форуме.
По поводу п.2, посмотрел в свойствах драйвера на Windows PC и чтобы убедиться, что они стандартные погуглил.

USB-Serial adapter, type CH-340 or HL-340.
Vendor ID: 1A86
Product ID: 7523

Отредактировано Geniuser (2014-03-31 22:53:49)

15

Re: Умный дом и управление по USB с помощью keenetic

Продолжайте искать. Вы нашли ядро с дровами (для асусов на бродкоме), а не сами дрова. Может они и подойдут, а может и нет. Потом переходите к самостоятельной сборке.

16

Re: Умный дом и управление по USB с помощью keenetic

Zyxmon :

Продолжайте искать. Вы нашли ядро с дровами (для асусов на бродкоме), а не сами дрова. .

2Geniuser Исходники драйвера - /drivers/usb/serial/ch341.c в указанном патче. Надо их вручную вытащить плюс  поправить конфиги. Скопируйте патч в отдельную папку и примените к нему:

patch -p0 <805-ch341.patch    

17

Re: Умный дом и управление по USB с помощью keenetic

ludovig, там бекпорт дров из ядра 2.6.38.2 в модифицированное ядро 2.6.22. Могут подойти, а могут и потребовать модификации. Если отдельных дров нет, то правильнее сделать бекпорт самому. Пример теперь есть перед глазами.

18

Re: Умный дом и управление по USB с помощью keenetic

http://keenetic.zyxmon.org/files/341.tar.gz
Тут все нужное для сборки и готовый модуль для белых кинетиков. Пришлось перетащить функцию u16 get_unaligned_le16 из бродкомовского ядра в исходники модуля (в ядре для белого кинетика ее не было).

19

Re: Умный дом и управление по USB с помощью keenetic

Тут все нужное для сборки и готовый модуль для белых кинетиков

У меня кинетик черный GIGA II. Не понимаю как собрать тулчейн. Нет последовательной инструкции для keenetic, чтобы справился начинающий программист под linux. До сборки драйвера мне тем более далеко.

20

Re: Умный дом и управление по USB с помощью keenetic

Geniuser :

Тут все нужное для сборки и готовый модуль для белых кинетиков

У меня кинетик черный GIGA II. Не понимаю как собрать тулчейн.

О каком тулчейне идет речь? Все есть в SDK Keenetic II - й - http://l10n.ndl.ru/firmwares/SDK/SDK_V1 … 052013.lnx По поводу инструкций - смотрите WIKI OpenWRT или у Zyxmonа на googlecode

21

Re: Умный дом и управление по USB с помощью keenetic

Geniuser :

У меня кинетик черный GIGA II.

Все должны были по телепатической связи с Вами это вычислить? Теперь следует телепатически понять - какая прошивка у Вас с SMTC или без. Мой тулчейн настроен на сборку модулей для прошивки без SMTC.

ludovig :

Все есть в SDK Keenetic II

Для последних прошивок следует использовать новые хедеры. Я их интегрировал в свой тулчейн. Единственный нюанс для черных моделей - для прошивок с SMTC нужно ручками переключить конфиг до сборки.
Тут - http://zyxel-keenetic-packages.googleco … eeneticII/
и тут - http://zyxel-keenetic-packages.googleco … x/generic/

Geniuser, по вопросам самостоятельной сборки пишите в прикрепленную тему - http://forum.zyxmon.org/topic369-sobira … istov.html

22

Re: Умный дом и управление по USB с помощью keenetic

Geniuser, по вопросам самостоятельной сборки пишите в прикрепленную тему - http://forum.zyxmon.org/topic369-sobira … istov.html

По поводу инструкций - смотрите WIKI OpenWRT или у Zyxmonа на googlecode

Написал в прикрепленную тему *** по поводу инструкций.

Теперь следует телепатически понять - какая прошивка у Вас с SMTC или без. Мой тулчейн настроен на сборку модулей для прошивки без SMTC.

Не знаю, есть ли ответ в этих строках:

Текущая версия ПО:    V1.10.B.RU.NDMS 17-июн-2013 22:36

Тулчейн собирать не буду, понял что с такими инструкциями - гиблое дело.
МУТЬ УДАЛЕНА

А себе решил заказать устройство на чипе FTDI.

Отредактировано Geniuser (2014-04-03 03:28:59)

23

Re: Умный дом и управление по USB с помощью keenetic

Geniuser, а Вы прошивку на 1.11 не собираетесь обновить? Только в последней есть варианты с SMTC и без. Как собирать модули ядра для Вашей древней прошивке я уже и не подскажу.

На моем форуме запрещен поиск призов и вознаграждений. Еще раз увижу - бан!

24

Re: Умный дом и управление по USB с помощью keenetic

Geniuser, а Вы прошивку на 1.11 не собираетесь обновить?

Обновил:
Текущая версия ПО:    V1.11.B.RU.NDMS 17-дек-2013 12:46

25

Re: Умный дом и управление по USB с помощью keenetic

Geniuser :

Обновил:

Последняя датирована 8 января 2014. Есть 2 варианта с SMTC и без. Модули ядра разные для них.