1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

USB Steckdosenleiste

Dieses Thema im Forum "Odys Allgemein" wurde erstellt von RainerWP, 12.01.2012.

  1. RainerWP, 12.01.2012 #1
    RainerWP

    RainerWP Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    111
    Erhaltene Danke:
    17
    Registriert seit:
    09.01.2012
    Hi,

    ich benötige dieses
    Programm auf dem Loox um eine USB-Steckdosenleiste zu steuern.
    Erkannt wird die Leiste zumindest teilweise:
    Code:
    <6>[113884.581910] usb 2-1: new low speed USB device using usb20_host and address 2
    <6>[113884.586216] DWC_OTG: dwc_otg_hcd_qh_init tt->hub null!
    <6>[113884.791885] DWC_OTG: dwc_otg_hcd_qh_init tt->hub null!
    <6>[113884.802265] usb 2-1: New USB device found, idVendor=04b4, idProduct=fd11
    <6>[113884.806209] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    <6>[113884.813428] usb 2-1: Product: Gembird Silver Shield PM
    <6>[113884.818591] usb 2-1: Manufacturer: Gembird Electronics
    <6>[113884.826054] usb 2-1: configuration #1 chosen from 1 choice
    <3>[113884.830945] usbhid 2-1:1.0: couldn't find an input interrupt endpoint
    Um es aber zu testen wird das o.a. Programm benötigt.
    Hat das schon mal jemand kompiliert, oder gibt es einige Links die mich auf dem richtigen Pfad zum selbst kompilieren bringen :)

    Danke und bis dann...........

    Rainer
     
    Zuletzt bearbeitet: 30.01.2012
  2. wusel, 12.01.2012 #2
    wusel

    wusel Android-Experte

    Beiträge:
    656
    Erhaltene Danke:
    231
    Registriert seit:
    27.12.2011
    Hi Rainer,
    kannste erstmal knicken - solange Du kein Device hast nutzt Dir das Programm auch nix; also mal bei den Kernelbauern nachfragen ... ;)
     
  3. Astralix, 19.01.2012 #3
    Astralix

    Astralix Android-Experte

    Beiträge:
    679
    Erhaltene Danke:
    411
    Registriert seit:
    25.12.2011
    Phone:
    bq Aquaris 5, bq Aquaris E5, bq Aquaris M5
    Tablet:
    Odys Iron, RK3288EVK, Sony Experia Z
    Als was meldet sich diese Leiste denn an einem PC an? Als virtuelle Serielle oder nutzen die eine eigene Definition?
    Hast Du das Ding auf einem normalen Linux-PC schon mal ans Laufen gebracht und von dort gesteuert, wenn ja, als was wird es dort registriert?
    Letzteres könnte dann Aufschluss darüber geben, was dem Loox für ein USB Modul fehlt.
     
  4. RainerWP, 20.01.2012 #4
    RainerWP

    RainerWP Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    111
    Erhaltene Danke:
    17
    Registriert seit:
    09.01.2012
    Wenn ich die Leiste am PC (Ubuntu) anschliesse werden folgende Module
    nachgeladen : hid, usbhid
    dmesg Meldung:
    Code:
    [ 1182.104283] usb 2-3.3.4: new low speed USB device using ehci_hcd and address 6
    [ 1182.203515] usb 2-3.3.4: configuration #1 chosen from 1 choice
    [ 1182.284867] usbcore: registered new interface driver hiddev
    [ 1182.285442] usbhid 2-3.3.4:1.0: couldn't find an input interrupt endpoint
    [ 1182.285482] usbcore: registered new interface driver usbhid
    [ 1182.286022] usbhid: v2.6:USB HID core driver
    
    Hier gibt es noch mehr Info über die Leiste, vielleicht hilft das ja weiter.

    Danke und bis dann..........

    Rainer
     
  5. Astralix, 20.01.2012 #5
    Astralix

    Astralix Android-Experte

    Beiträge:
    679
    Erhaltene Danke:
    411
    Registriert seit:
    25.12.2011
    Phone:
    bq Aquaris 5, bq Aquaris E5, bq Aquaris M5
    Tablet:
    Odys Iron, RK3288EVK, Sony Experia Z
    Oh, da muss erst mal die libusb auf dem Tablet laufen...
    Keine Idee ob das funktioniert. Wenn der kernel soweit ist, werde ich mir das mal ansehen.
     
    RainerWP bedankt sich.
  6. ropa, 28.01.2012 #6
    ropa

    ropa Junior Mitglied

    Beiträge:
    29
    Erhaltene Danke:
    8
    Registriert seit:
    11.01.2012
    Hi RainerWP,

    sispmctl

    ich habe das Programm einmal mit der arm-toolchain von Odys uebersetzt. Es ist static gelinkt, damit man die libs nicht auch noch installieren muss. Ich habe es nach /data/sysrw/bin kopiert. Es laesst sich starten und gibt folgende Meldung aus:
    Code:
    /mnt/storage/sdcard # cd /data/sysrw/bin/
    /data/sysrw/bin # ./sispmctl 
    
    SiS PM Control for Linux 3.1
    
    (C) 2004-2011 by Mondrian Nuessle, (C) 2005, 2006 by Andreas Neuper.
    (C) 2010 by Olivier Matheret for the plannification part
    This program is free software.
    ./sispmctl comes with ABSOLUTELY NO WARRANTY; for details 
    see the file INSTALL. This is free software, and you are welcome
    to redistribute it under certain conditions; see the file INSTALL
    for details.
    
    
    sispmctl -s
    sispmctl [-q] [-n] [-d 0...] [-D ...] -b <on|off>
    sispmctl [-q] [-n] [-d 0...] [-D ...] -[o|f|t|g|m] 1..4|all
    sispmctl [-q] [-n] [-d 0...] [-D ...] -[a|A] 1..4|all [--Aat '...'] [--Aafter ...] [--Ado <on|off>] ... [--Aloop ...]
       'v'   - print version & copyright
       'h'   - print this usage information
       's'   - scan for supported GEMBIRD devices
       'b'   - switch buzzer on or off
       'o'   - switch outlet(s) on
       'f'   - switch outlet(s) off
       't'   - toggle outlet(s) on/off
       'g'   - get status of outlet(s)
       'm'   - get power supply status outlet(s) on/off
       'd'   - apply to device 'n'
       'D'   - apply to device with given serial number
       'n'   - show result numerically
       'q'   - quiet mode, no explanations - but errors
       'a'   - get plannification for outlet
       'A'   - set plannification for outlet
               '-A<num>'        - select outlet
               '--Aat "date"'   - sets an event time as a date '%Y-%m-%d %H:%M'
               '--Aafter N'     - sets an event time as N minutes after the previous one
               '--Ado <on|off>' - sets the current event's action
               '--Aloop N'      - loops to 1st event's action after N minutes
    
    Webinterface features:
    sispmctl [-q] [-i <ip>] [-p <#port>] [-u <path>] -l
       'l'   - start port listener
       'i'   - bind socket on interface with given IP (dotted decimal, i.e. 192.168.1.1)
       'p'   - port number for listener (2638)
       'u'   - repository for web pages (default=/usr/local/share/httpd/sispmctl/doc)
    
    /data/sysrw/bin # 
    Also sollte es erst einmal funktionieren. Ich habe keine solche Steckdosenleiste, kann also nicht weiter helfen.

    Viele Gruesse
    ropa
     

    Anhänge:

    Oma7144, fluxflux und RainerWP haben sich bedankt.
  7. RainerWP, 28.01.2012 #7
    RainerWP

    RainerWP Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    111
    Erhaltene Danke:
    17
    Registriert seit:
    09.01.2012
    Hi ropa,

    you are my hero :cool2:
    Code:
    # sispmctl -g all
    Accessing Gembird #0 USB device 007
    Status of outlet 1:    off
    Status of outlet 2:    off
    Status of outlet 3:    off
    Status of outlet 4:    off
    # sispmctl -o 1
    Accessing Gembird #0 USB device 007
    Switched outlet 1 on
    # sispmctl -g all
    Accessing Gembird #0 USB device 007
    Status of outlet 1:    on
    Status of outlet 2:    off
    Status of outlet 3:    off
    Status of outlet 4:    off
    
    Einfach nur geil hier..............

    Danke und bis dann

    Rainer
     
  8. fluxflux, 28.01.2012 #8
    fluxflux

    fluxflux Android-Experte

    Beiträge:
    845
    Erhaltene Danke:
    265
    Registriert seit:
    30.11.2011
    Hi ropa,

    würdest du mir interessehalber die Optionen verraten, die du dem ./configure und dem make beim Erstellen des Programms mitgegeben hast?

    Ich habe bisher wenig darüber gefunden, lediglich eine Anleitung zum Kompilieren von MPlayer, der tatsächlich auf dem Loox gestartet ist, dann aber mit der Option dvb:// mit einem Segmetation fault ausgestiegen ist (liegt wohl an dem fehlenden v4l2-Modul, das für den Framebuffer notwendig ist).

    Danke,

    Thomas.
     
  9. ropa, 28.01.2012 #9
    ropa

    ropa Junior Mitglied

    Beiträge:
    29
    Erhaltene Danke:
    8
    Registriert seit:
    11.01.2012
    @fluxflux,

    so:
    fuer libusb-config vor dem configure
    export ac_cv_func_malloc_0_nonnull=yes
    wegen "undefined reference to `_rpl_malloc"
    und ansonten einfach
    ./configure --target=arm-none-linux-gnueabi --host=arm-none-linux-gnueabi

    mehr nicht.

    im Makefile zu sispmctl habe ich noch manuell

    -I/home/Projects/Loox/target/usr/local/include
    -L/home/Projects/Loox/target/usr/local/lib
    hinzugefuegt weil das mit

    --includedir=/home/Projects/Loox/target/usr/local/include

    als parameter fuer configure nicht geklappt hat und er sonst
    usb.h und libusb.a oder libusb.so nicht findet.

    Der Pfad zur toolchain steht mit im PATH.
    und dann
    make -I pfad_zur_toolchain/arm-none-linux-gnueabi/libc/usr/include/

    Viele Gruesse
    ropa
     
    Zuletzt bearbeitet: 28.01.2012
    fluxflux bedankt sich.
  10. RainerWP, 28.01.2012 #10
    RainerWP

    RainerWP Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    111
    Erhaltene Danke:
    17
    Registriert seit:
    09.01.2012
    Hi,

    nochmal ein dickes DANKESCHÖN an alle !
    Mein Loox lädt sich eigenständig auf :thumbup:
    Per cron überprüfe ich alle 15 Minuten den Batterylevel.
    Wenn der unter 15 % fällt, wird die Steckdose eingeschaltet.
    Ab 95 % wird die Steckdose wieder ausgeschaltet.
    Ein kleines Probleme habe ich aber noch :crying:
    Nach einem Neustart muss ich den crond per Hand wieder starten.
    Code:
    ln -s /system/bin/ /bin
    /system/bin/crond -c /data/cron -l /sdcard/logs/cron.log
    
    Wie kriege ich das automatisiert hin ??

    Danke und bis dann............

    Rainer
     
  11. fluxflux, 28.01.2012 #11
    fluxflux

    fluxflux Android-Experte

    Beiträge:
    845
    Erhaltene Danke:
    265
    Registriert seit:
    30.11.2011
    In die init.rc in der boot.img schreiben, boot.img neu packen und boot.img auf 0x00008000 neu flashen.

    Thomas.
     
  12. RainerWP, 28.01.2012 #12
    RainerWP

    RainerWP Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    111
    Erhaltene Danke:
    17
    Registriert seit:
    09.01.2012
    Hi Thomas,

    danke für die Info.
    Das heißt ich muss jedesmal die boot.img bearbeiten, neu packen und dann flashen wenn ich zusätzliche Skripte beim Neustart ausführen wil?
    Könnte man nicht in der init.rc einen hook einbauen der z.B. Skripte in /sdcard/etc/init.d/ ausführt.
    Wäre doch viel weniger Arbeit :unsure:

    Bis dann...........

    Rainer
     
  13. fluxflux, 28.01.2012 #13
    fluxflux

    fluxflux Android-Experte

    Beiträge:
    845
    Erhaltene Danke:
    265
    Registriert seit:
    30.11.2011
    Ja, geht auch. Hier hat ropa in einem anderen Thema eine Lösung aufgezeigt ...

    Thomas.

    Gesendet vom Loox mit der Android-Hilfe.de-App
     
    RainerWP bedankt sich.
  14. RainerWP, 29.01.2012 #14
    RainerWP

    RainerWP Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    111
    Erhaltene Danke:
    17
    Registriert seit:
    09.01.2012
    Dann werde ich mal auf die Suche gehen.................

    Bis dann,

    Rainer
     
  15. Oma7144, 29.01.2012 #15
    Oma7144

    Oma7144 Android-Guru

    Beiträge:
    2,914
    Erhaltene Danke:
    1,082
    Registriert seit:
    18.12.2011
    Cool, jetzt doch das Perpetuum Mobile ;-)

    Ist das die Leiste hier? 6-fach Steckdose Silvershield PMS über PC: Amazon.de: Computer & Zubehör

    Gibt es ein günstigeres Equivalent?

    Bei ELV deutlich günstiger: http://www.elv.de/output/controller...=34615&refid=zanox&zanpid=1598619314414904320

    Oder als Einzelversion noch günstiger: http://www.ebay.de/itm/Gembird-MSIS...uterzubehör_Kabel_Adapter&hash=item3a6f503c7c


    :thumbup:
     
    Zuletzt bearbeitet: 29.01.2012
  16. RainerWP, 29.01.2012 #16
    RainerWP

    RainerWP Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    111
    Erhaltene Danke:
    17
    Registriert seit:
    09.01.2012
    Hi,

    genau die ist es.
    Funktioniert bei mir 1a :thumbup:
    Sobald ich alles automatisiert habe und alles so läuft wie ich mir das vorstelle werde ich mal eine Anleitung zusammenschreiben.

    Bis dann...........

    Rainer
     
  17. RainerWP, 29.01.2012 #17
    RainerWP

    RainerWP Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    111
    Erhaltene Danke:
    17
    Registriert seit:
    09.01.2012
    Hi,

    hier mal meine Überlegungen für den hook beim Starten des Systemes.
    Man könnte es doch so ähnlich handeln wie die Kollegen von optware
    es auf meiner Buffalo Linkstation machen :)

    /etc/init.d/rc.optware

    Code:
    #!/system/bin/sh
    OPTWARE='/sdcard/opt/etc/init.d' 
    SH=/system/bin/sh
    if [ -d $OPTWARE ]
    then
            for script in $OPTWARE/S??*
            do
                    [ ! -f "$script" ] && continue # Keine Symlink Dateien ausfuehren
                    $SH $script start        
            done
    else
            exit
    fi
    
    Diese Skript muss fest ins System und dann beim Starten ausgeführt werden.

    Hier mein Skript zum starten von crond, benötigte Systemkommandos werden, falls nicht vorhanden als symbolische Links zu den relevanten busybox kommandos erstellt.

    /sdcard/opt/etc/init.d/S01cron
    Code:
    #!/system/bin/sh
    #	Starte Cron
    #
    case $1 in
    	start)
    	:
    	;;
    	*)
    	echo "Usage: $0 start"
    	exit
    	;;
    esac
    #	
    #       Symbolische Links auf Busybox Kommandos anlegen falls nicht vorhanden
    #
    BB="/system/bin/busybox"  
    
    if ! $BB test -e /system/bin/ln
    then                                 
            $BB ln -s $BB /system/bin/ln
    fi 
            
    if ! $BB test -e /system/bin/[ 
    then
    	/system/bin/ln -s $BB /system/bin/[
    fi
    	
    if ! $BB test -e /system/bin/] 
    then
    	/system/bin/ln -s $BB /system/bin/]
    fi
    
    if   [ !  -d /bin ]
    then
    	/system/bin/ln -s /system/bin /bin
    fi
    
    if   [ ! -f /system/bin/crond ]
    then
    	/system/bin/ln -s $BB /system/bin/crond
    fi
    
    if   [ ! -f /system/bin/crontab ]                             
    then                                                            
    	/system/bin/ln -s /system/bin/busybox /system/bin/crontab
    fi
    
    if [ ! -f /system/bin/grep ]                                          
    then                                                             
            /system/bin/ln -s /system/bin/busybox /system/bin/grep
    fi 
    
    if [ ! -f /system/bin/mkdir ]                                     
    then                        
            /system/bin/ln -s /system/bin/busybox /system/bin/mkdir
    fi
    #
    #	/data/cron anlegen falls nicht vorhanden
    #	
    if [ ! -d /data/cron ]
    then
    	/system/bin/mkdir /data/cron
    fi
    #
    #	Log Dir anlegen
    #
    if [ ! -d /sdcard/opt/var/log ]
    then
    	/system/bin/mkdir -p /sdcard/opt/var/log
    fi
    #	
    #	/etc/passwd anlegen falls nicht vorhanden
    #	und den user root hinzufuegen
    if ! grep root /etc/passwd > /dev/null
    then
            echo "root:x:0:0::/data/cron:/system/bin/bash" > /etc/passwd
    fi
    #
    #	/etc/group anlegen falls nicht vorhanden
    #	und die Gruppe root hinzufuegen
    #
    if ! grep root /etc/group > /dev/null
    then
    	echo "root:x:0:root" > /etc/group
    fi
    #################################################################
    #								#
    #	crond starten						#
    #								#
    #################################################################
    if ! ps | grep crond > /dev/null
    then
            echo "Starte crond......."
            /system/bin/crond -c /data/cron -L /sdcard/opt/var/log/cron.log
    else
    	echo "crond already running !"
    fi
    
    
    Und hier das "Perpetuum Mobile" :sneaky:

    /sdcard/opt/usr/local/bin/battery.sh

    Code:
    #!/system/bin/bash
    LEVEL=`cat /sys/class/power_supply/battery/capacity`
    DATE=`date`
    if [ $LEVEL -le 15 ]
    then
            echo -e "$DATE Schalte Steckdose ein" >>  /sdcard/opt/var/log/battery.log
            echo -e "$DATE Battery Level : $LEVEL" >> /sdcard/opt/var/log/battery.log
            /system/bin/sispmctl -o 1
            exit
    fi
    if [ $LEVEL -gt 95 ]
    then
            echo -e "$DATE Schalte Steckdose aus " >> /sdcard/opt/var/log/battery.log
            echo -e "$DATE Battery Level : $LEVEL" >> /sdcard/opt/var/log/battery.log
            /system/bin/sispmctl -f 1
            exit
    fi
    
    Was meint ihr dazu ?
    Das ganze geht zur Zeit natürlich nur mit root und r/w system !

    Bis dann.......

    Rainer
     
    ropa bedankt sich.
  18. ropa, 29.01.2012 #18
    ropa

    ropa Junior Mitglied

    Beiträge:
    29
    Erhaltene Danke:
    8
    Registriert seit:
    11.01.2012
    @RainerWP,

    wo issn der "Gefaellt Mir" Button ?
    Ich habe Dein script nur mal ueberflogen. Die Idee mit der Erweiterung der init.rc finde ich gut. Damit koennte man Einiges erschlagen ohne ewig am boot.img rumzubasteln.
    Was die symbolischen links betrifft, da wuerde ich eher einmal ein neues boot.img bauen, das die busybox mit allen functions und links enthaelt. Zumal man ja sowieso eines machen muss um die Erweiterung einzubauen.

    Viele Gruesse
    ropa

    Ach ja, nur so nebenbei. Die batch files zum Erstellen der Images funktionieren nicht, wenn die Tools auf dem Desktop platziert werden.
    Wegen: C:\Dokumente und Einstellungen.
    Die batch files verschlucken sich an den Leerzeichen.
     
    Zuletzt bearbeitet: 29.01.2012
  19. RainerWP, 29.01.2012 #19
    RainerWP

    RainerWP Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    111
    Erhaltene Danke:
    17
    Registriert seit:
    09.01.2012
    Bedanken ist doch auch ok ;)

    Genau das war mein Gedanke.

    Ja und nein, jeder möchte sein System evtl. ein bischen anders haben....
    So setze ich halt wirklich nur die Links die ich benötige.

    Ich will die Images auf einem Linux System erstellen, mit Windoofs muss ich mich beruflich schon genug herumärgern :lol:
    Muss mich da aber noch reinlesen und die Forensuche bemühen ........

    Bis dann,

    Rainer

    P.S. Wer auf dem Gerät die "bash" haben möchte, hier gibt es sie.
     
  20. RainerWP, 30.01.2012 #20
    RainerWP

    RainerWP Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    111
    Erhaltene Danke:
    17
    Registriert seit:
    09.01.2012
    Hi,

    da die USB Steckdosenleiste jetzt nutzbar ist, schlage ich vor diesen Thread zu schließen.
    Für das andere Thema mache ich einen neuen Thread auf.

    Bis dann...........

    Rainer
     
    Zuletzt bearbeitet: 30.01.2012

Diese Seite empfehlen