Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Laitealue => Aiheen aloitti: ilu - 06.08.16 - klo:20.47
-
Eli on tälläinen laite jonka ohjelma haluaa nähdä laitteen COM portissa ja liitäntä johto on usb, lsusb komento antaa tälläisen päätteessä.
Bus 002 Device 002: ID 0665:5161 Cypress Semiconductor USB to Serial
Miten tämä nyt täytyisi tehdä että laitteen ohjelma näkee com portin, ilmeisesti virtuaalisena kun jotain juttua löysin aiheesta, mutta ei ratkaisua ?
Eli selvennyksenä vielä pitäisi siis saada tässä ikkunassa näkymään.
http://aijaa.com/xxtegC
-
Erittäin suurella todennäköisyydellä Linux näkee laitteesi sarjaporttina.
Asian voi varmistaa...
Aluksi antaa komento ilman, että laite on kiinni koneessa:
ls /dev >dev.txt
Sitten laite kiinni USB-porttiin...
ls -l /dev |diff -rup dev.txt /dev/stdin
Lisäksi kannattaa liittää itsesi dialout-ryhmään, jotta ei tartte ajella roottina, mikäli siis et jo kuulu kyseiseen ryhmään.
Edit - Onko kyseessä Windows-ohjelma ?
-
Eka kometo ei tehnyt mitään ja toinen tulosti pitkän rimpsun tekstiä.
Mikä on dialout ryhmä ? en ilmeisesti kuulu...
Asennus levyllä oli myös windows versio jota en myöskään saanut toimimaan win7 ja tämä on linux versio .bin päätteinen asennustiedosto.
-
Sori bugi oli tuossa ekassa komennossa:
ls -l /dev >dev.txt
Edit - Se ei tosiaan tee kuin dev.txt-tiedoston kyseiseen hakemistoon.
Toinen komento pitäisi olla sama laitteen kiinni koneessa ollessa:
ls -l /dev |diff -rup dev.txt /dev/stdin
Anna tuloste tänne.
Seuraavalla käskyllä näet, oletko dialout-ryhmässä:
groups
-
--- dev.txt 2016-08-06 22:38:56.375437294 +0300
+++ /dev/stdin 2016-08-06 22:40:21.952718997 +0300
@@ -6,7 +6,7 @@ drwxr-xr-x 2 root root 80 elo
crw------- 1 root root 10, 234 elo 6 20:32 btrfs-control
drwxr-xr-x 3 root root 60 elo 6 2016 bus
lrwxrwxrwx 1 root root 3 elo 6 20:32 cdrom -> sr0
-drwxr-xr-x 2 root root 3520 elo 6 22:38 char
+drwxr-xr-x 2 root root 3580 elo 6 22:39 char
crw------- 1 root root 5, 1 elo 6 20:32 console
lrwxrwxrwx 1 root root 11 elo 6 2016 core -> /proc/kcore
drwxr-xr-x 2 root root 60 elo 6 2016 cpu
@@ -19,6 +19,7 @@ crw-rw---- 1 root video 29, 0 elo
lrwxrwxrwx 1 root root 13 elo 6 2016 fd -> /proc/self/fd
crw-rw-rw- 1 root root 1, 7 elo 6 20:32 full
crw-rw-rw- 1 root root 10, 229 elo 6 20:32 fuse
+crw------- 1 root root 251, 0 elo 6 22:39 hidraw0
crw------- 1 root root 10, 228 elo 6 20:32 hpet
drwxr-xr-x 3 root root 240 elo 6 20:32 input
crw-r--r-- 1 root root 1, 11 elo 6 20:32 kmsg
@@ -42,7 +43,7 @@ crw-rw-rw- 1 root root 1, 3 elo
crw-r----- 1 root kmem 1, 4 elo 6 20:32 port
crw------- 1 root root 108, 0 elo 6 20:32 ppp
crw------- 1 root root 10, 1 elo 6 20:32 psaux
-crw-rw-rw- 1 root tty 5, 2 elo 6 22:38 ptmx
+crw-rw-rw- 1 root tty 5, 2 elo 6 22:40 ptmx
drwxr-xr-x 2 root root 0 elo 6 2016 pts
brw-rw---- 1 root disk 1, 0 elo 6 20:32 ram0
brw-rw---- 1 root disk 1, 1 elo 6 20:32 ram1
@@ -180,6 +181,7 @@ crw-rw---- 1 root dialout 4, 73 elo
crw------- 1 root root 10, 239 elo 6 20:32 uhid
crw------- 1 root root 10, 223 elo 6 20:32 uinput
crw-rw-rw- 1 root root 1, 9 elo 6 20:32 urandom
+drwxr-xr-x 2 root root 60 elo 6 22:39 usb
crw-rw---- 1 root tty 7, 0 elo 6 20:32 vcs
crw-rw---- 1 root tty 7, 1 elo 6 20:32 vcs1
crw-rw---- 1 root tty 7, 2 elo 6 20:32 vcs2
groups komento sanoi -> adm cdrom sudo dip plugdev lpadmin sambashare
-
Miltäs näyttää...
ls -l /dev/usb
Tee kyseiset käskyt ennen ja jälkeen laitteen ollessa päällä. Niin näet löytyykö olettamani laite /dev/usb:n alta.
-
Ilman laitetta sanoi
ls: tiedostoa /dev/usb ei voi käsitellä: Tiedostoa tai hakemistoa ei ole
ja laite kytkettynä
yhteensä 0
crw------- 1 root root 180, 0 elo 6 23:00 hiddev0
-
Näyttää olevan niin, että kyseistä laitetta joutuu käyttämään root:tina ... ei hyvä.
No, laitteesi on kuitenkin:
/dev/usb/hiddev0 tai /dev/hidraw0
Tämä nyt ei ole kovin fiksu idea, mutta ...
Kokeile ajaa roottina kyseistä ohjelmaa laitteen ollessa päällä...
... Ja configuration-välilehdestä pitäisi löytyä paikka, jossa määritellään kyseinen laite.
-
Mikä laite on kyseessä? Pikainen haku laitenumerolla viittasi UPS-laitteeseen. Onko se sellainen? Linuxissa UPS:t toimivat NUT-ohjelmalla ja itse olen ainakin EATONin UPS:n saanut toimimaan. Pitäisi selvittää, että toimiiko se myös tuollaisten laitteiden kanssa.
Lisäksi kokeilisin vielä lisätä sen käyttäjän sinne dialoutiin, kun ei siitä pahemmin haittaakaan ole:
sudo usermod -G dialout -a $USER
($USER on muuttuja, jonka arvo siis asetetaan automaattisesti eli kopioi tuo sellaisenaan)
Auttaa jos laite näkyy sarjaporttina eikä ole HID-laite. Komennon antamisen jälkeen tulee kirjautua uudestaan sisään.
Samalla laitenumerolla vaikuttaisi olevan useidenkin eri valmistajien laitteita, joten välttämättä oman laitteen mallilla ei vielä löydy tietoja.
-
Juu sen tyylinen nimenomaan mallia pip2424msx
Mut miten ohjelmaa ajetaan roottina ?
Toi koodi ei tehnyt muuta kuin kysyi salasanaa.
Mites toi käyttäjä lisätään dialouttiin ?
-
Mut miten ohjelmaa ajetaan roottina ?
Ubuntussa root-oikeudet saa pääkäyttäjä komennolla sudo <komento>.
Toi koodi ei tehnyt muuta kuin kysyi salasanaa.
Nimenomaan. Ohjelma tehdään vasta, kun pääkäyttäjä antaa salasanansa eli sallii ohjelman ajettavaksi.
Mites toi käyttäjä lisätään dialouttiin ?
Jos graafisia kilkkeitä ei välitä käyttää, on käytettävissä komentorivikomentoja. Näistä ehkä nimenomaan groupadd olisi paikallaan.
groupadd
tai nimenomaan man groupadd
-
Mites toi käyttäjä lisätään dialouttiin ?
Jos graafisia kilkkeitä ei välitä käyttää, on käytettävissä komentorivikomentoja. Näistä ehkä nimenomaan groupadd olisi paikallaan.
groupadd luo uuden ryhmän. Tomin esitti jo usermod-syntaksin, jolla voi lisätä itsensä olemassa olevaan dialout-ryhmään, kun vain syöttää salasanansa pyydettäessä.
-
Juu jos oikein ymmärsin niin sudo komennon eteen niinkuin tähänkin mennessä niin sillä pärjää.
Mutta milläs tempulla me saadaan nyt se com portti näkymään tossa ohjelman com port plug and play setting ikkunassa ?
-
Mutta milläs tempulla me saadaan nyt se com portti näkymään tossa ohjelman com port plug and play setting ikkunassa ?
Oliko se joku Windows-ohjelma, jota ajat Winellä? Millaista toiminnallisuutta tarkalleen kaipaat, eli millaista seurantaa haluat tehdä? Ehkä joku natiivi ohjelma tarjoaisi saman helpommin.
-
Laiteen mukana tulleella cd-levyllä on windows ja linux versot eli .bin päätteinen asennustiedosto.
Hassua vaan ettei ohjeissa puhuta mitään miten usb sarjaportti pitäis saada toimimaan, ei siis onnistu multa kummallakaan win/linux.
Youtubessa on kuitenkin videoita joissa tätä laitteen mukana tullutta ohjelmaa käytetään eli pitäisihän se jotenkin saada toimimaan, vai pitääkö olla joku raketti insinööri jo näissä nykyajan laitteissa et osaa käyttää ?
-
Itselläni ei ole moista laitetta, mutta yritetään auttaa kaveria...
Oletko kokeillut painaa Refresh-nappulaa? Mikä versio sinulla on tuosta WatchPowerista (tieto löytyy valikosta Help-> About)? Netistä löytyy versio 1.09, joka kylläkin tehty Javalla (kaikki Java kilkkeet mukana paketissa), täältä http://www.giantpower.com.au/downloads/ (http://www.giantpower.com.au/downloads/).
Giant Powerin sivuilta FAQ:ista (http://www.giantpower.com.au/technical-faq (http://www.giantpower.com.au/technical-faq)) löytyy tieto, että Windows-version käynnistys vaatii järjestelmänvalvoja oikeudet ja tämän https://www.youtube.com/watch?v=XO1Oskf3HHA (https://www.youtube.com/watch?v=XO1Oskf3HHA) Youtube-videon mukaan pitäisi ladata COM:ia varten ajuri (tämä Windows 10:lle, myös tämä WatchPower-versio näyttää Java-ohjelmalta). Huom.: Videon loppuosassa jotain Windows seiskasta, mutta valitettavasti video tältä osin on korruptoitunut (jotain ihme säröääniä ja kuva jumittuu (näin ainakin minulla kävi).
Oletko kokeillut ajaa ohjelmaa Linuxissa terminaalissa? (Oletan ohjelman nimen olevan WatchPower tuossa sinun bin-versiossa)
./WatchPower
Tällöin ohjelma saattaa tulostaa terminaaliin jotain, josta voisi olla apua ongelman ratkaisussa.
-
Juu refresh nappula ei auta ja uusin versio on, toi sama video on tullut katottua ja tässä koneessa on win7 et kun edes tietäs minkälaista ajuria tarvitsee ladata.
Mut palataas tähän parempaan käyttöjärjestelmään, nyt koitin ajaa ohjelman terminaalissa ja lähti käyntiin ja terminaalin tuli tälläiset rivit, mittä sitten tarkoittaa ?
strings: ’/lib/libc.so.6’: Tiedostoa ei löydy
Experimental: JNI_OnLoad called.
-
Juu refresh nappula ei auta ja uusin versio on, toi sama video on tullut katottua ja tässä koneessa on win7 et kun edes tietäs minkälaista ajuria tarvitsee ladata.
Windows-ajuri ja asennusohje-PDF on joonas60:n linkittämällä sivulla.
Mut palataas tähän parempaan käyttöjärjestelmään, nyt koitin ajaa ohjelman terminaalissa ja lähti käyntiin ja terminaalin tuli tälläiset rivit, mittä sitten tarkoittaa ?
strings: ’/lib/libc.so.6’: Tiedostoa ei löydy
Experimental: JNI_OnLoad called.
giantpower.com.au:sta ladattu versio 1.0.9 ei ainakaan minulla herjaa libc:stä, mutta voit tarvittaessa luoda symbolisen linkin kirjastoon:
64-bittisessä Ubuntussa:
sudo ln -s /lib/x86_64-linux-gnu/libc.so.6 /lib/libc.so.6
32-bittisessä Ubuntussa:
sudo ln -s /lib/i386-linux-gnu/libc.so.6 /lib/libc.so.6
-
Tämä mun laite on eri merkkinen MPPSolar mut ilmeisesti samat sisäkalut kuin Giant Power, tämän sivulta löytyvä RS232 to USB Driver Software ei ainakaan windowsin puolella auttanut mitään ja ubuntun puolella sudo ln -s /lib/i386-linux-gnu/libc.so.6 /lib/libc.so.6 poisti herjan, mutta edelleenkin com port plug and play setting ikkuna pysyy tyhjänä kummassakin käyttöjärjestelmässä....
-
Noniin nyt homma eteni laitoin valmistajalle sähköpostia ja sain sielä tälläisen latauslinkin ja nyt toimii win7 :)
http://www.mppsolar.com/manual/Watchpower/
Mutta kerran sain toimimaan lubuntussa kun piti oikeusia muutella ja en enään muista mitä kaikkea tein, mutta lähti toimimaan ja pääteeseen tuli jopa yksi rivi kiinalaisia kirjaimia, mutta ei lähde enään uudestaan lukemaan tietoja, ohjelma kyllä käynnistyy, eli mites toi nyt pitäs tehdä että homma toimii ?
-
Ratkaisu on jo lähellä, nyt keksin pitää kirjoittaa joka kerta sudo su ja ./WatchPower1.09/WatchPower/WatchPower päätteeseen niin lähtee ohjelma käyntiin, annoin tuolle käynnistys skriptille oikeudet, mutta pitääkö noilla muillakin kansioilla ja tiedostoilla olla oikeudet ja saako niitä kaikkia kerralla vai pitääkö yksitellen antaa jokaiselle ?
Olisi vaan helpompaa kun lähtis suoraan ohjelma käyntiin ettei päätteessä tarvi laittaa noita rimpsuja.
Tälläiset tekstit laitto päätteeseen kun käynnisti päättestä, vai onko tässä jotain outoa ?
托盘启动!
文件不存在
Java HotSpot(TM) Client VM warning: You have loaded library /home/ilu/WatchPower1.09/WatchPower/jre/lib/i386/librxtxSerial.so which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
Experimental: JNI_OnLoad called.
Stable Library
=========================================
Native lib Version = RXTX-2.1-7
Java lib Version = RXTX-2.1-7
java.lang.ArrayIndexOutOfBoundsException: 25
at cn.com.voltronic.solar.comusbprocessor.P30ComUSBProcessor.queryDefaultData(P30ComUSBProcessor.java:1814)
at cn.com.voltronic.solar.system.ProtocolProcessorItem.getMatchProcess(ProcessorCategories.java:59)
at cn.com.voltronic.solar.system.ProcessorCategories.getUsbMonitor(ProcessorCategories.java:120)
at cn.com.voltronic.solar.work.SearchDevice.searchLocalUsb(SearchDevice.java:200)
at cn.com.voltronic.solar.work.SearchDevice$SearchUsbDevice.run(SearchDevice.java:413)
-
托盘启动!
文件不存在
Englanniksi...
Tray start !
file does not exist
-
Onko sinulla ilu 32- vai 64-bittinen Lubuntu käytössä? Ajat 32-bittistä versiota WatchPowerista ?
Tuo varoitus tulee käsittääkseni siitä, että WatchPower yrittää käyttää 64-bittisessa ympäristössä 32-bittistä Java RXTX-kirjastoa.
-
32 bittinen on lubuntu ja toi watchpower ohjelma, ikivanha läppäri niin ei sais edes 64 bittistä
-
Asenna repoista uudempi Java RXTX-kirjasto:
sudo apt-get install librxtx-java
Poista tai pistä jonnekin talteen vanha librxtxSerial.so-tiedosto ja luo softalinkki asentamaasi tiedostoon:
ln -s /usr/lib/jni/librxtxSerial.so ~/WatchPower1.09/WatchPower/jre/lib/i386/librxtxSerial.so
Edit: Toivottavasti tuo polku asennettuun librxtxSerial.so-tiedostoon on sama kuin kuin yllä. Sen voi tarkistaa esim. komennolla:
dpkg -L librxtx-java | grep librxtxSerial.so
Watchpower-ohjelman voi käynnistää myös näin:
sudo ~/WatchPower1.09/WatchPower/WatchPower
-
Juu ei se asentunu herjaa tuli, mut lähtee ohjelma käyntiin myös tuolla rivillä -> sudo ~/WatchPower1.09/WatchPower/WatchPower
Eli onko parasta lopettaa säätäminen ja käynnistää ohjelma aina päätteessä, vai voiko WatchPower skriptiin lisätä jonkuin rivin et lähtee siitä käyntiin kun valitsee suorita ?
skripti näyttää tälläiseltä
#!/bin/sh
#get current dir
userdir=$(cd "$(dirname "$0")"; pwd)
#access jre
chmod -R 774 $userdir/jre
#export PATH=.:$userdir/jre/bin
#class path that WatchPower is depended on
export CLASSPATH=.:$userdir/lib/commons-lang.jar:$userdir/lib/commons-logging.jar:$userdir/lib/derby.jar:$userdir/lib/dom4j-1.6.1.jar:$userdir/lib/iText-5.0.6.jar:$userdir/lib/iTextAsian.jar:$userdir/lib/jaxen-full.jar:$userdir/lib/jcommon-1.0.0-rc1.jar:$userdir/lib/jfreechart-1.0.0-rc1.jar:$userdir/lib/jpcap.jar:$userdir/lib/JTattoo.jar:$userdir/lib/jxl.jar:$userdir/lib/log4j-1.2.14.jar:$userdir/lib/mail.jar:$userdir/lib/RXTXcomm.jar:$userdir/lib/saxpath.jar:$userdir/lib/snmp4j-1.11.jar:$userdir/lib/SoftewareUpgrade.jar:$userdir/lib/spring-beans.jar:$userdir/lib/spring-core.jar:$userdir/lib/volModbus.jar:$userdir/lib/volUtil.jar:$userdir/lib/WatchPower.jar:
#Launch WhatchPower
cd $userdir
jre/bin/WatchPower cn.com.voltronic.solar.console.linux.LinuxWatchPower &
-
Juu ei se asentunu herjaa tuli, mut lähtee ohjelma käyntiin myös tuolla rivillä -> sudo ~/WatchPower1.09/WatchPower/WatchPower
Siis librxtx-java ei asennu? Mikä herja tulee? Kyllä se on ollut jakeluissa (universe) mukana buntuissa 12.04:sta lähtien, myös 32-bittinen.
-
Kyllä se asentui eka komentorivi, mutta kun laitoin vanhan muualle talteen niin toinen komento softalinkki ei onnistunut, en muista sanatarkkaan jotain ei ole...mutta mihin toi librxtx-java sitten vaikuttaa ?
-
Kyllä se asentui eka komentorivi, mutta kun laitoin vanhan muualle talteen niin toinen komento softalinkki ei onnistunut
Siirsitkö librxtxSerial.so kopioimalla se johonkin muualle? Tällöin hakemistoon jäi se alkuperäinen tiedosto, jolloin softalinkkiä ei voida luoda:
ln: failed to create symbolic link 'jre/lib/i386/librxtxSerial.so': File exists
Tai loit "kuollen" linkin (librxtxSerial.so ei ollutkaan siellä missä linkin luonnissa sanottiin), jolloin WatchPower antaa jotain tämmöistä viestiä:
Exception in thread "Thread-7" java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path
Tarkista polku komennolla:
dpkg -L librxtx-java | grep librxtxSerial.so
Poista väärä linkki ja luo uusi komennolla:
ln -s se/polku/minkä/dpkg/kertoi/librxtxSerial.so ~/WatchPower1.09/WatchPower/jre/lib/i386/librxtxSerial.so
mutta mihin toi librxtx-java sitten vaikuttaa
Minusta tämä librxtx-java on koko homman pihvi, mutta voin olla toki väärässä. Aikoinaan kokeilin ohjelmoida Arduino Unoa Eclipse-ympäristössä, mutta Arduinon Serial Terminalin käyttö ei onnistunut ennen kuin asensin tuoreemman version librxtx-javasta. Arduino Unossa on samantapainen Serial USB-systeemi kuin tässä sinun laitteessa, mutta ei näitä kannata mennä vertailemaan tässä tapauksessa.
Edit: Tarkistin tuon Arduino-keissin. librxtxSerial.so-tiedostossa oli bugi, joka esti terminaalin toiminnan. Tuolloin joutui käyttämään epävirallista versiota librxtx-javasta, mutta nykyisin tuosta on korjattu versio olemassa suoraan Ubuntun jakeluissa. Se herja, jonka ilu sai:
Java HotSpot(TM) Client VM warning: You have loaded library /home/ilu/WatchPower1.09/WatchPower/jre/lib/i386/librxtxSerial.so which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
ainakin minulla hävisi, kun kokeilin tuoreempaa versiota librxtxSerial.so WatchPowerin 32-bittisellä versiolla.
-
Mutta ohjelma toimii kuitenkin ihan ok, vain käynnistämisen joutuu tekemään päätteen kautta....tähän ei varmaan toi librxtx vaikuta ?
Tai on näissä sen verran eroa et win7 puolella tiedot päivittyy nopeammin kuin lubuntulla, varsinkin kun ottaa päivityksen sekunnin välein.
Niin ja sen verran vielä havaintoa et ohjelma antaa kummallakin käyttöjärjestelmällä kerran käynnistyksessä warning message -> communication restore mut homma pyörii silti
-
Mutta ohjelma toimii kuitenkin ihan ok, vain käynnistämisen joutuu tekemään päätteen kautta....tähän ei varmaan toi librxtx vaikuta ?
Siis WatchPower toimii siten, että kommunikointi pelaa eli com.port plug and play näyttää portin ja data kulkee laitteelta? Hieno homma!
Jotenkin olin sinun viesteistäsi ymmärtäväni, ettei homma vielä toimi halutulla tavalla...
voiko WatchPower skriptiin lisätä jonkuin rivin et lähtee siitä käyntiin kun valitsee suorita ?
Jos ajattelt, että suoraan tiedostonhallinnasta graafisesti, niin ainakin tämän saa Ubuntussa toimimaan, mutta mitenkähän onnistuu Lubuntussa (eri tiedostonhallintasysteemi)? Tästä voisi tehdä ihan oman keskustelun, ei ihan ole otsikon mukainen kysymys.
-
Juu ei tullu vissiin tarpeeksi selvästi kirjoitettua et toimii, aloin vain ihmetellä tota kun päätteen kautta joutuu käynnistämään, mut ei se mitään ei toi iso vaiva ole.
Windowsin puolella tosiaan tiedot päivittyy nopeammin, tiedä sitten mistä johtuu, prosessori ei kuitenkaan käy kuin 12% mut ei taida olla järkevä enempiä säädellä vaikka jotain tiedoston puuttumista se herjaa käynnistyksessä niinkuin tuolla ylempänä lukee.
Mut suuret kiitokset neuvoista, pistän ratkaistuksi.
-
Ei sen käynnistyskuvakkeen tekeminen ole kovinkaan suuri urakka.
Tee seuraavanmukainen teksti-tiedosto ja tallenna se .desktop-päätteisenä ja anna oikea Exec-käsky ja nimi (name) sille:
[Desktop Entry]
Version=1.0
Name=Tähän kuvakkeen otsikko
Comment=Tähän sisällöstä kertova kommentti
Exec=Tähän suorituskäsky
Terminal=false
Type=Application
Tuon sisältöinen saattaa toimia tai sitten ei. En nyt kerkeä testaamaan itse...