Panowie i zapewnie Panie, nikt z was nie jest w stanie pomóc? Chodzi tylko o kilka wskazówek od doświadczonych w OpenWRT osób, jakimi z pewnością jesteście.

Dzień dobry,

Poszukuje osoby która pomogła by mi przygotować środowisko do pisania programów działających na routerach LTE firmy Teltonika. Urządzenia te bazują na openWRT, producent udostępnia SDK umożliwiające kompilację własnego firmware. Urządzenia zależnie od modelu wersji posiadają "na pokładzie" interfejsy CAN, RS485, wejścia i wyjścia cyfrowe, oraz wejście analogowe.

Wstępnie program będzie miał za zadanie odczyt danych ze sterownika PLC i zapis raz na dobę, w postaci raportu w pliku CSV, który będzie udostępniony na lokalnym FTP routera openWRT, w późniejszej fazie zapis do lokalnej bazy mySQL (zabezpieczenie przed utratą danych) i dalsza synchronizacja z bazą centralną przy pomocy np MQTT lub innego mechanizmu. W tej chwili zakładam że sam się tym zajmę, ale kwestia do ustalenia.

Informacje nt. przykładowego routera Teltonika RUT955:
https://wiki.teltonika.lt/view/RUT955

Cele które chciałbym osiągnąć:
- środowisko programistyczne, z jakimś wygodnym edytorem, idealnie gdyby można było testować działanie bezpośrednio z maszyny, lub w wygodny sposób podczas pisania i testowania uruchamiać na docelowym urządzeniu. Jakiś zintegrowany system wersjonowania (GIT,SVN - do ustalenia) Całość najlepiej w postaci maszyny wirtualnej.
- możliwość pisania aplikacji w C z których można będzie docelowo przygotować pakiet pkg, aby aktualizować aplikację na routerze bez zmiany całego firmware, oraz użyć pakietu podczas kompilacji nowego firmware.
- działanie docelowych programów z pakietów jako usługa, czyli automatycznie po starcie openWRT
- uruchomienie biblioteki SNAP7 http://snap7.sourceforge.net do odczytu danych ze sterowników PLC Siemens, znalazłem wersję już przygotowaną dla openWRT https://github.com/chrisber/openwrt-ipkg-snap7
- ewentualne wsparcie podczas pracy z przygotowanym środowiskiem (pytania techniczne)

Oczywiście zakładam że taka pomoc jak i poświęcenie swojego czasu było by odpłatne, idealnie z możliwością wystawienia FV Szczegóły do omówienia

3

(21 odpowiedzi, napisanych Oprogramowanie / Software)

Cezary napisał/a:

Na oryginalnym sofcie? Zapomnij, tam nie ma zapisywalnego systemu plików.

A gdzie i jak jest zapisywana konfiguracja?


Nie wiem czy to interesujące, ale na konsoli przy starcie jest tak:



Jboot B311
JRecovery Version R1.2 2011/02/18 10:32

Flash MXIC-22C9 0xBF000000-0x800000 x16

CSID 6E23->6E24

.................
Starting kernel @80000000...


LINUX started...

THIS IS ASIC
Linux version 2.6.21 (abby@Dorami.homelinux.net) (gcc version 3.4.2) #1 PREEMPT Tue Nov 22 10:33:10 CST 2011

The CPU feqenuce set to 384 MHz
CPU revision is: 0001964c
Determined physical RAM map:
memory: 02000000 @ 00000000 (usable)
Built 1 zonelists.  Total pages: 8128
Kernel command line: console=ttyS1,57600n8 root=/dev/mtdblock3
Primary instruction cache 32kB, physically tagged, 4-way, linesize 32 bytes.
Primary data cache 16kB, 4-way, linesize 32 bytes.
Synthesized TLB refill handler (20 instructions).
Synthesized TLB load handler fastpath (32 instructions).
Synthesized TLB store handler fastpath (32 instructions).
Synthesized TLB modify handler fastpath (31 instructions).
Cache parity protection disabled
cause = a0800060, status = 1100ff00
PID hash table entries: 128 (order: 7, 512 bytes)
calculating r4koff... 00177000(1536000)
CPU frequency 384.00 MHz
Using 192.000 MHz high precision timer.
Console: colour dummy device 80x25
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Memory: 28768k/32768k available (2865k kernel code, 4000k reserved, 595k data, 132k init, 0k highmem)
Mount-cache hash table entries: 512
NET: Registered protocol family 16
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
NET: Registered protocol family 2
Time: MIPS clocksource has been installed.
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 1024 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
TCP reno registered
squashfs: version 3.2-r2 (2007/01/15) Phillip Lougher
squashfs: LZMA suppport for slax.org by jro
fuse init (API version 7.8)
io scheduler noop registered (default)
FLASH_API: MAN_ID=C2 DEV_ID=22C9 SIZE=8MB

------------------GPIO--------------------------
GPIOMODE:2df
SLIC INTR ==> gpio 0
Ralink gpio driver initialized
HDLC line discipline: version $Revision: 1.1.1.1 $, maxframe=4096
N_HDLC line discipline registered.
Serial: 8250/16550 driver $Revision: 1.3 $ 2 ports, IRQ sharing disabled
serial8250: ttyS0 at I/O 0xb0000500 (irq = 37) is a 16550A
serial8250: ttyS1 at I/O 0xb0000c00 (irq = 12) is a 16550A
loop: loaded (max 8 devices)
$rdm_major = 254
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
ralink flash device: 0x800000 at 0x1f000000
Ralink SoC physically mapped flash: Found 1 x16 devices at 0x0 in 16-bit bank
Amd/Fujitsu Extended Query Table at 0x0040
Ralink SoC physically mapped flash: Swapping erase regions for broken CFI table.
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
Creating 6 MTD partitions on "Ralink SoC physically mapped flash":
0x00000000-0x00800000 : "Whole"
0x00000000-0x00010000 : "Bootloader"
0x00010000-0x00150000 : "Kernel"
0x00150000-0x00710000 : "RootFS"
0x00710000-0x007f0000 : "UI"
0x007f0000-0x00800000 : "Config"
block2mtd: version $Revision: 1.1.1.1 $
usbcore: registered new interface driver usbhid
drivers/usb/input/hid-core.c: v2.6:USB HID core driver
u32 classifier
Netfilter messages via NETLINK v0.30.
nf_conntrack version 0.5.0 (256 buckets, 2048 max)
Register conntrack protocol helper for ESP...
IPv4 over IPv4 tunneling driver
GRE over IPv4 tunneling driver
Init IP_nat_proto_esp register.
ip_tables: (C) 2000-2006 Netfilter Core Team, Type=Restricted Cone
arp_tables: (C) 2002 David S. Miller
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 10
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>
GDMA1_MAC_ADRH -- : 0x00000000
GDMA1_MAC_ADRL -- : 0x00000000
Ralink APSoC Ethernet Driver Initilization. v2.00  256 rx/tx descriptors allocated, mtu = 1500!
GDMA1_MAC_ADRH -- : 0x0000000c
GDMA1_MAC_ADRL -- : 0x43288065
PROC INIT OK!
VFS: Mounted root (squashfs filesystem) readonly.
Freeing unused kernel memory: 132k freed
Algorithmics/MIPS FPU Emulator v1.5
Ralink HotFix
$switch register base addr to 0xb0180000
$write offset 0x500, value 0x31a65
$write offset 0x500, value 0x31b23
Inter-|   Receive                               
phy_tx_ring0 = 01e2a000, tx_ring0 = a1e2a000, size: 16 bytes

phy_tx_ring1 = 01e2b000, tx_ring1 = a1e2b000, size: 16 bytes

phy_tx_ring2 = 01e2c000, tx_ring2 = a1e2c000, size: 16 bytes

phy_tx_ring3 = 01e2d000, tx_ring3 = a1e2d000, size: 16 bytes

phy_rx_ring = 0x00000000, rx_ring = 0x00000000
RT305x_ESW: Link Status Changed
                CDMA_CSG_CFG = 81000007
|  Transmit
fGDMA1_FWD_CFG = 710000
ace |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
    lo:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
tunl0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
  gre0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
  eth2:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
dwc_otg: version 2.72a 24-JUN-2008
DWC_otg: Core Release: 2.66a
DWC_otg: Periodic Transfer Interrupt Enhancement - disabled
DWC_otg: Multiprocessor Interrupt Enhancement - disabled
DWC_otg: Using DMA mode
DWC_otg: Device using Buffer DMA mode
dwc_otg lm0: DWC OTG Controller
dwc_otg lm0: new USB bus registered, assigned bus number 1
dwc_otg lm0: irq 18, io mem 0x00000000
DWC_otg: Init: Port Power? op_state=1
DWC_otg: Init: Power Port (0)
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
Load RT2880 Timer Module(Wdg/Soft)
flash_open: flash_fd=3
Mount D Section.
flash_open: flash_fd=9
usb 1-1: new high speed USB device using dwc_otg and address 2
usb 1-1: config 1 has an invalid interface number: 7 but max is 5
usb 1-1: config 1 has no interface number 5
usb 1-1: configuration #1 chosen from 1 choice
Set gpio_range = gpio2300, dir = 1e0180
switch reg write offset=14, value=405555
switch reg write offset=50, value=2001
switch reg write offset=98, value=7f3f
switch reg write offset=e4, value=3f
switch reg write offset=40, value=1001
switch reg write offset=44, value=1001
switch reg write offset=48, value=1002
switch reg write offset=70, value=ffff506f
Set: phy[4].reg[0] = 3300
eth2.1: Setting MAC address to  00 50 18 66 c6 cb.
device eth2 entered promiscuous mode
VLAN (eth2.1):  Setting underlying device (eth2) to promiscious mode.
eth2.1: dev_set_promiscuity(master, 1)
device eth2.1 entered promiscuous mode
eth2.2: Setting MAC address to  00 50 18 66 c6 ca.
Init handler: lan
br0: port 1(eth2.1) entering learning state
Init handler: stp
Init handler: reset_btn
Init handler: watchdog
Init handler: wlanap
rt2860v2_ap: module license 'unspecified' taints kernel.
Length of MAC:6
mac:0:50:18:66:c6:cc:
----


=== pAd = c003f000, size = 425488 ===

<-- RTMPAllocAdapterBlock, Status=0
RX DESC a1f54000  size = 2048
<-- RTMPAllocTxRxRingMemory, Status=0
1. Phy Mode = 9
2. Phy Mode = 9
3. Phy Mode = 9
MCS Set = ff ff 00 00 01
Main bssid = 00:50:18:66:c6:cc
<==== rt28xx_init, Status=0
0x1300 = 00064380
usbnet0: register 'sierra_net' at usb-lm0-1, Sierra Wireless USB-Ethernet Modem, 42:90:b9:11:01:07
usbcore: registered new interface driver sierra_net
usbcore: registered new interface driver usbserial
drivers/usb/serial/usb-serial.c: USB Serial support registered for generic
usbserial_generic 1-1:1.0: generic converter detected
usb 1-1: generic converter now attached to ttyUSB0
usbserial_generic 1-1:1.1: generic converter detected
usb 1-1: generic converter now attached to ttyUSB1
usbserial_generic 1-1:1.2: generic converter detected
usb 1-1: generic converter now attached to ttyUSB2
usbserial_generic 1-1:1.3: generic converter detected
usb 1-1: generic converter now attached to ttyUSB3
usbserial_generic 1-1:1.4: generic converter detected
usb 1-1: generic converter now attached to ttyUSB4
usbcore: registered new interface driver usbserial_generic
drivers/usb/serial/usb-serial.c: USB Serial Driver core
device ra0 entered promiscuous mode
br0: port 2(ra0) entering learning state
Ralink DOT1X daemon, version = '2.4.0.0'
prefix_name = 'ra, argv[1] = (null)'
wps_status 1
ra0       ledstart:
ra0       ledstart:
Init handler: wan
Init handler: ondemand
Init handler: nat
==== NAT START (WAN:ALL Func:ALL) ====
wscd: SSDP UDP PORT = 1900
Init handler: dhcpsrv
Unable to open /var/run/udhcpd.leases for reading
udhcpd (v0.9.9-pre) started
Unable to open /var/run/udhcpd.leases for reading
Init handler: dnsrelay
Init handler: time
timezone:-60
dsttime:0
Init handler: schedule
Init handler: telnet
Init handler: wps_btn
Init handler: ddns
Init handler: routing
Init handler: upnp
============= AMIT UPNP Start =============
eth2.2 br0
WAN_IF=eth2.2,LAN_IF=br0
Init handler: autobak
Init handler: keepalive
Init handler: 3g_status
Init handler: gre
Init handler: pptp
Init handler: pptpserv
Init handler: l2tp
Init handler: l2tpserv
Init handler: ipsec
Init handler: vrrp
Init handler: sshd
Init handler: rbydom
Init handler: rbyip
Init handler: qos
=====Cross-Layer QoS START=====
Init handler: snmp
Init handler: spap
Init handler: ftp_alg
Init handler: sip_alg
Init handler: ate
Init handler: wps_status
Init handler: reboot
iptables: Chain already exists
/usr/bin/telnetd-action: Starting telnetd...

flash_open: flash_fd=7
flash_open: flash_fd=7
iptables: Chain already exists
/usr/bin/telnetd-action start ok
# ADDRCONF(NETDEV_UP): usbnet0: link is not ready
ERROR!!! RTMPCancelTimer failed, Timer hasn't been initialize!
Software Watchdog Timer: 0.07 initialized. soft_noboot=0 soft_margin=60 sec (nowayout= 0)

4

(21 odpowiedzi, napisanych Oprogramowanie / Software)

jarek7714 napisał/a:

To kiepsko jak na takiej klasy sprzęt. Producent nie dostarcza w nowych softach takich funkcjonalności? Watchdog w tym przypadku będzie działaniem na skutku, jeżeli modem ma dobre parametry sygnału to przyczyną jest przy braku transmisji schodzenie do czystego UMTS-"usypianie modemu". Rozwiązaniem zastępczym mógłby być inny router z openwrt/gargoyle który by generował transmisję w sieci. smile

Niestety nie ma tam takiej funkcjonalności, jest jedynie keepalive w postaci pingowania co ustawiony okres czasu. Problem objawia się tym że może nie tyle zawiesza się karta, ile wylogowuje z sieci. Na numer karty nie można się dodzwonić. Na routerze jest "disconnected" i nie daje się połączyć. Z tego co udało mi się zorientować to problem występuje w Tmobile i takiej karty używam.

5

(21 odpowiedzi, napisanych Oprogramowanie / Software)

No i masz racje, ruszyło. Generalnie w tym routerze brakuje mi tylko jednej rzeczy, jakiegoś watchdoga który by pingował IP. Czasem się zawiesza w nim karta sim i do czasu restartu nie ma internetu. Czy można takie coś dorzucić bez większych przeróbek?

6

(21 odpowiedzi, napisanych Oprogramowanie / Software)

Niestety ale żadna ze standardowych szybkości nie daje normalnych znaków, sprawdzałem też wiele z ręki i nic, najlepiej wszystko układa się w rejonach 50000baud. Czy jak bym zgrał flash 29LV640 to w środku można by pewnie znaleźć informacje dot. szybkości dla konsoli?

7

(21 odpowiedzi, napisanych Oprogramowanie / Software)

podłączyłem się pod konsolę na płycie routera, niestety nie mogę trafić w parametry transmisji, ciągle lecą mi "krzaki" czy prędkość może być ok, ale producent wymyślił sobie jakieś kodowanie znaków

8

(21 odpowiedzi, napisanych Oprogramowanie / Software)

Witam
Czy można zainstalować na tym sprzęcie openwrt i Gargoyle? z tego co udało mi się zorientować to sprzęt na to pozwala. Tylko najlepiej było by to zrobić poprzez update z poziomu oryginalnego firmware, a nie wiem czy jest to możliwe. Zamieszczam foto płytki i flasha

Pozdrawiam

http://obrazki.elektroda.pl/1905455600_1391617386_thumb.jpg http://obrazki.elektroda.pl/1224366700_1391617387_thumb.jpg