D-Link DNS-323 NAS

Moderator: Telldus

Jaxån
Posts: 199
Joined: Fri Mar 17, 2023 9:45 am

Post by Jaxån »

Du kan inte installera gcc och källkoden i din maskin?
Vilken distribution av Linux kör du i din burk? Helst skulle du ju se om du inte kan köra en mer vanlig distribution, Debian, Ubuntu etc. Dessa kan man kompilera på maskinen direkt, och behöver inte korskompilering.

Du kan prova att titta på loggarna när du sätter i stickan första gången. Prova kommandot: tail -D /var/log/message
Det kan behöva justeras för din maskin, detta fungerar på Debian och Ubuntu.
Jaxån
Posts: 199
Joined: Fri Mar 17, 2023 9:45 am

Post by Jaxån »

Hänt något?
Bull
Posts: 4
Joined: Fri Mar 17, 2023 9:45 am

Jag har fått en ftdio_sio-modul att funka, tror jag?

Post by Bull »

Jag plockade in källkoden, ftdio_sio.c/.h från 2.6.14.7 i källkodsträdet för 2.6.12.6 från D-link och korskompilerade jag kärnan.
Sedan flyttade jag över modulerna usbserial.ko och ftdi_sio.ko till min DNS-323.
Körde insmod ./usbserial.ko och insmod ./ftdi_sio.ko vendor=0x1781 product=0x0c30 med min TellStick ansluten.
Detta ger följande med dmesg:
drivers/usb/serial/usb-serial.c: USB Serial support registered for FTDI USB Serial Device
ftdi_sio 1-1.3:1.0: FTDI USB Serial Device converter detected
drivers/usb/serial/ftdi_sio.c: Detected FT232BM
usb 1-1.3: FTDI USB Serial Device converter now attached to ttyUSB0
usbcore: registered new driver ftdi_sio
drivers/usb/serial/ftdi_sio.c: v1.4.3:USB FTDI Serial Converters Driver

Sedan har jag korskompilerat rfcmd men när jag försöker köra den så kan den inte öppna /dev/ttyUSB0.
> ./rfcmd /dev/ttyUSB0 NEXA A 1 0
rfcmd - Error opening /dev/ttyUSB0

Några idéer för hur jag kan gå vidare?
Bull
Posts: 4
Joined: Fri Mar 17, 2023 9:45 am

Hmm, /dev/ttyUSB0 finns inte

Post by Bull »

Jag upptäckte just att /dev/ttyUSB0 inte finns!
Man kanske måste skapa den först?
Någonstans i bakhuvudet känns mknod bekant, återkommer...
micke.prag
Site Admin
Posts: 2243
Joined: Fri Mar 17, 2023 9:45 am
Location: Lund
Contact:

Post by micke.prag »

Kör den udev så borde den skapas automatiskt. Körs inte udev måste du skapa den manuellt med mknod...
Micke Prag
Software
Telldus Technologies
Bull
Posts: 4
Joined: Fri Mar 17, 2023 9:45 am

Ingen udev

Post by Bull »

Jag tror inte udev körs, det finns i alla fall ingen udev under /etc. Jag har inte tillgång till maskinen nu så jag kan inte kolla mera.
Hursomhelst, hur tar man reda på vilket major- och minornumber man ska använda till mknod?
Bull
Posts: 4
Joined: Fri Mar 17, 2023 9:45 am

Nu funkar det!

Post by Bull »

Jag körde mknod /dev/ttyUSB0 c 188 0
Nu kan jag köra rfcmd och styra mina mottagarre, yippiii :lol:
Jaxån
Posts: 199
Joined: Fri Mar 17, 2023 9:45 am

Post by Jaxån »

Grattis! Kul.

Tips: Tydligen så stöds D-Link DNS-323 av Debian/Lenny.
Se http://www.cyrius.com/debian/orion/
mab
Posts: 5
Joined: Fri Mar 17, 2023 9:45 am

tdtool?

Post by mab »

Bull wrote:...
Sedan har jag korskompilerat rfcmd ..
försöker mig på samma sak som Bull lyckats med fast med mindre lycka och antagligen mindre unix bakgrund. Jag har lyckats korskompilera FTDI drivrutinen som funkar på min DNS-323 men Telldus-core och således td_tool och rfcmd går mindre bra i kompileringssammanhang.
Första felen jag fick var ett par type casts i DeviceNexa.cpp som jag har försökt fixa och ger inga kompileringsfel längre. Ex:
strCode.append( 1, 5 ); -> strCode.append( 1, (char)5 );

Nästa problem var att korskompilera libconfuse.so vilket slutade med att jag tankade ner denna:
http://packages.debian.org/sv/lenny/arm/libconfuse0

och länkningen av telldus-core gick igenom iaf. Men nu detta:

Code: Select all

 90% Built target telldus-core
Linking CXX executable tdtool
../driver/libtelldus-core/libtelldus-core.so.2.0.4: undefined reference to `dcgettext'
../driver/libtelldus-core/libtelldus-core.so.2.0.4: undefined reference to `__strdup'
../driver/libtelldus-core/libtelldus-core.so.2.0.4: undefined reference to `_IO_getc'
../driver/libtelldus-core/libtelldus-core.so.2.0.4: undefined reference to `__assert_fail'
../driver/libtelldus-core/libtelldus-core.so.2.0.4: undefined reference to `__strndup'
../driver/libtelldus-core/libtelldus-core.so.2.0.4: undefined reference to `bindtextdomain'
jag antar att det har med den nedtankade versionen av libconfuse som ger detta men de versioner som jag försökt kompilera själv ger bara nåt i stilen "skipping incompatible something when looking for -lconfuse". Om någon har någon idé/förslag/tips på hur man kan klara sig utan libconfuse så mottages det varmt.

ps. vet inte riktigt vad mer för info ni behöver så fråga gärna. Tänkte detta kanske är av hjälp:

user@ubuntu:~/dns323_GPL/dns323_GPL/telldus-core-2.0.4$ $CC -v
Reading specs from /home/user/dns323_GPL/dns323_GPL/uclibc-toolchain-src-20040609/gcc-3.3.x/toolchain_arm/lib/gcc-lib/arm-linux-uclibc/3.3.3/specs
Configured with: /home/user/dns323_GPL/dns323_GPL/uclibc-toolchain-src-20040609/gcc-3.3.x/toolchain_build_arm/gcc-3.3.3/configure --prefix=/home/user/dns323_GPL/dns323_GPL/uclibc-toolchain-src-20040609/gcc-3.3.x/toolchain_arm --build=i386-pc-linux-gnu --host=i386-pc-linux-gnu --target=arm-linux-uclibc --enable-languages=c,c++ --enable-shared --with-gxx-include-dir=/home/user/dns323_GPL/dns323_GPL/uclibc-toolchain-src-20040609/gcc-3.3.x/toolchain_arm/arm-linux-uclibc/include/c++ --disable-__cxa_atexit --enable-target-optspace --with-gnu-ld --disable-nls --enable-multilib --enable-sjlj-exceptions
Thread model: posix
gcc version 3.3.3

/Tack på förhand
mab
Posts: 5
Joined: Fri Mar 17, 2023 9:45 am

Re: D-Link DNS-323 NAS

Post by mab »

..har nu lyckats kompilera tdtool från version telldus-core-2.0.3 (testade denna version i allt mitt felsökande). Får nu ett problem som jag inte kan hitta lösning på, hoppas någon här har nån idé.

lsmod

Code: Select all

Module                  Size  Used by    Not tainted
ftdi_sio               26664  0
usbserial              23856  1 ftdi_sio
usblp                  10976  0
sd_mod                 14484  7
dmesg

Code: Select all

usb 1-1: new full speed USB device using ehci_platform and address 2
usbcore: registered new driver usbserial
drivers/usb/serial/usb-serial.c: USB Serial support registered for Generic
usbcore: registered new driver usbserial_generic
drivers/usb/serial/usb-serial.c: USB Serial Driver core v2.0
drivers/usb/serial/usb-serial.c: USB Serial support registered for FTDI USB Serial Device
ftdi_sio 1-1:1.0: FTDI USB Serial Device converter detected
drivers/usb/serial/ftdi_sio.c: Detected FT232BM
usb 1-1: FTDI USB Serial Device converter now attached to ttyUSB0
usbcore: registered new driver ftdi_sio
drivers/usb/serial/ftdi_sio.c: v1.4.3:USB FTDI Serial Converters Driver
lsusb

Code: Select all

Bus 002 Device 001: ID 0000:0000
Bus 001 Device 002: ID 1781:0c30 Multiple Vendors
Bus 001 Device 001: ID 0000:0000
/etc/tellstick.conf

Code: Select all

deviceNode = "/dev/ttyUSB0"
device
{
  id = 1
  name = "test"
  protocol = "arctech"
  model = "selflearning-dimmer"
  parameters
  {
    house = "28536"
    unit = "1"
  }
}
./tdtool -l

Code: Select all

/etc/tellstick.conf:2: no such option 'device'
Number of devices: 0
./tdtool -n 1

Code: Select all

/etc/tellstick.conf:2: no such option 'device'
Turning on device 1,  - The method you tried to use is not supported by the device
Segmentation fault
./tdtool -e 1

Code: Select all

/etc/tellstick.conf:2: no such option 'device'
Learning device: 1  - The method you tried to use is not supported by the device
Segmentation fault
Jag har läst att '/etc/tellstick.conf:2: no such option' felmeddelande kan lösas med att tömma /var/state/telldus-core.conf vilket jag testat utan framgång. Oavsett så reagerar inte mottagaren, en Nexa LCMR-300. Parametrarna i conf filen är tagna från TelldusCenter på min windows burk, på vilken jag "lärde upp" mottagaren och där funkar allt finfint.
:help:
micke.prag
Site Admin
Posts: 2243
Joined: Fri Mar 17, 2023 9:45 am
Location: Lund
Contact:

Re: D-Link DNS-323 NAS

Post by micke.prag »

Testa att ta bort den extra radbrytningen efter "device" och måsvingen. Dvs ha dom på samma rad. Detsamma gäller även på "parameters".

Jag vet inte på rak arm hur känslig libconfuse är på sådant men det är värt ett försök.
Micke Prag
Software
Telldus Technologies
mab
Posts: 5
Joined: Fri Mar 17, 2023 9:45 am

Re: D-Link DNS-323 NAS

Post by mab »

micke.prag wrote:Testa att ta bort den extra radbrytningen efter "device" och måsvingen. Dvs ha dom på samma rad. Detsamma gäller även på "parameters".

Jag vet inte på rak arm hur känslig libconfuse är på sådant men det är värt ett försök.
Jag skrev conf filen så först och det funkade inte heller tyvärr. Men när du skriver att det är libconfuse som är inblandad i läsningen av filen så är jag nåt på spåren igen, som du kan se i posten ovan så har jag trixat en hel del för att få tdtool kompilerat, har nog tyvärr blandat libconfuse.so från olika versioner i kompileringen och under körning. Ska starta om med en orörd source och hålla stenkoll på vilken .so fil som används när.

En annan fråga: vilka bibliotek krävs av telldus-core och tdtool? dom jag har stöt på är libconfuse, librt och libc. Jag antar att QT-grejer endast har med cmake att göra och är inte kopplade på nåt sätt till telldus-core.so och tdtool?

Tackar varmast för input'en
micke.prag
Site Admin
Posts: 2243
Joined: Fri Mar 17, 2023 9:45 am
Location: Lund
Contact:

Re: D-Link DNS-323 NAS

Post by micke.prag »

Förutom confuse så ska inga andra bibliotek behövas förutom vad som brukar ingå i ett standard Linux-system.

Vi gjorde en rensning i 2.0.4 så att den t.ex. inte letar efter Qt (som bara behövs på Mac OS X).
Micke Prag
Software
Telldus Technologies
mab
Posts: 5
Joined: Fri Mar 17, 2023 9:45 am

Re: D-Link DNS-323 NAS

Post by mab »

:clap: fick det att funka till slut och det var nog inga konstigheter egentligen, var bara tvungen att sätta sökvägar till länkare och andra verktyg i cmake och kompilera confuse-2.5 och hitta det skapade biblioteket i en dold mapp. Lite dålig linux vana gjorde processen lite längre än vad den borde ha tagit.

Micke, tänkte dock på type cast felen jag får i kompilatorn, jag kanske har en extra känslig kompilator eller nåt men det skadar väl inte att skriva explicita type casts?
Det första var i DeviceNexa.cpp rad 71:
strCode.append( 1, 5 );
vilket jag ändrade till:
strCode.append( 1, (char)5 );

samma dyker upp 4 gånger till i samma fil och en gång i DeviceRisingSun.cpp

tack tack
taliz
Posts: 9
Joined: Fri Mar 17, 2023 9:45 am

Re: D-Link DNS-323 NAS

Post by taliz »

mab wrote:var bara tvungen att sätta sökvägar till länkare och andra verktyg i cmake och kompilera confuse-2.5 och hitta det skapade biblioteket i en dold mapp.
Och hur gjorde du det? Jag har spenderat minst 10 timmar nu på att sätta upp en openwrt build miljö och gjort otaliga försök att kompilera skiten, men det går åt pipan.

Code: Select all

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
CONFUSE_LIBRARY
    linked by target "telldusd" in directory /home/mw/openwrt/backfire/build_dir/target-mips_r2_uClibc-0.9.30.1/telldus-core-2.1.0/service
FTDI_LIBRARY
    linked by target "telldusd" in directory /home/mw/openwrt/backfire/build_dir/target-mips_r2_uClibc-0.9.30.1/telldus-core-2.1.0/service

-- Configuring incomplete, errors occurred!
Jag har libconfuse, libconfuse-dev, libftdi osv installerat i min ubuntu.. men inte fan hjälper det. Hur satte du "sökvägar till länkare och andra verktyg i cmake"? När jag bygger paket via buildmiljön så kör jag ju make package/telldus-core(där jag länkat in det) och inte cmake(men det gör den själv sen tror jag?).

PS. Ursäkta svordomarna men det här känns betydligt mer besvärligt än det borde behöva vara. Openwrt lär väl ändå vara hyffsat vanligt bland tellsticks användare..
Post Reply