Standard Programm beim Booten Starten

Dieses Thema im Forum "Sonstige Linux Distributionen" wurde erstellt von donkhan, 30.01.2012.

  1. #1 donkhan, 30.01.2012
    donkhan

    donkhan Jungspund

    Dabei seit:
    30.01.2012
    Beiträge:
    11
    Zustimmungen:
    0
    Hallo.

    Ich bin noch nicht so erfahren bei dem Umgang mit Linux. Sry falls ich blöde fragen stelle.

    Ich nutze Debian. Ich habe hier ein Entwicklungsboard auf dem ich mit hilfe von Buildroot mein eigenes Programm drauf Spielen will.

    Nun will ich dieses Programm ausführen lassen. Am besten gleich wenn ich das Modul boote.

    Das Programm gibt nur eine Begrüßung aus.

    Auf dem Board ist die Version "Linux version 2.6.27.45"

    Ich habe unter etc/init.d schon geschaut, aber ich weiß nicht wie ich mein Programm beim starten ausführen soll.

    init.jpg

    Ich habe eine shell skript geschrieben, hilft auch nicht.

    Code:
    #! /bin/bash
    
    [ -x /opt/hello ] || exit 0    	# does the file exists? 
    
    case "$1" in
        start)
            echo "Starting hello"
            /opt/hello
            pidof hello > /var/run/hello.pid    # create pidfile
            echo "Done!"
            ;;
        stop)
            echo "Stopping hello"
            killall hello
            rm -f /var/run/hello.pid		# remove pidfile
            echo "Done!"
            ;;
            
        restart)
            $0 stop
            $0 start
            ;;  
        *)
            echo "usage:$(basename $0) start | stop | restart"
            exit 1
            ;;
    esac
    
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 marcellus, 30.01.2012
    marcellus

    marcellus Kaiser

    Dabei seit:
    09.05.2007
    Beiträge:
    1.392
    Zustimmungen:
    0
    Üblicherweise hast du ein script, wie du es geschrieben hast in /etc/init.d/ und machst dann links in alle /etc/rcX.d/[SK]YYName wobei X für die Runlevel steht in denen das Programm laufen soll, S/K für Start/Kill und YY eine Zahl ist für die Reihenfolge in der das Programm in dem Runlevel gestartet werden soll.

    zb

    Code:
    /etc/rc5.d/S99blah -> /etc/init.d/blah
    
    wäre ein Beispiel für ein init script, dass im runlevel 5 ausgeführt werden soll.

    Das war zumindest der Weg in sysvinit, du findest dort sicher genug init scripts, um dir Beispiele anzusehen.
     
  4. #3 donkhan, 30.01.2012
    donkhan

    donkhan Jungspund

    Dabei seit:
    30.01.2012
    Beiträge:
    11
    Zustimmungen:
    0
    Hallo

    danke für deine antwort.

    Ich habe nach dem /etc keine ordner für die Runlevels. Ich Poste mal ein Bild vom /etc verzeichniss.

    etc.jpg

    Ich weiß nun nicht, wo ich das Skript verlinken soll.

    Wo kann ich denn sysvinit finden?

    Lg
     
  5. #4 donkhan, 30.01.2012
    donkhan

    donkhan Jungspund

    Dabei seit:
    30.01.2012
    Beiträge:
    11
    Zustimmungen:
    0
    Hallo

    danke für deine antwort.

    Ich habe nach dem /etc keine ordner für die Runlevels. Ich Poste mal ein Bild vom /etc verzeichniss.

    etc.jpg

    Ich weiß nun nicht, wo ich das Skript verlinken soll.

    Wo kann ich denn sysvinit finden?

    Lg
     
  6. #5 marcellus, 30.01.2012
    marcellus

    marcellus Kaiser

    Dabei seit:
    09.05.2007
    Beiträge:
    1.392
    Zustimmungen:
    0
    Sysvinit ist vermutlich die Implementierung von init, die auf deinem System läuft. Die runlevel werden in buildroot scheinbar nicht debian typisch organisiert, post den Inhalt von /etc/inittab.
     
  7. #6 donkhan, 30.01.2012
    donkhan

    donkhan Jungspund

    Dabei seit:
    30.01.2012
    Beiträge:
    11
    Zustimmungen:
    0
    Code:
    ::sysinit:/etc/init.d/rcS
    ::sysinit:/etc/init.d/rcW
    ::shutdown:/etc/init.d/rcD
    ::shutdown:/bin/umount -r /
    
    ttyS2::respawn:/sbin/getty -L ttyS2 115200 vt100
    
     
  8. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.056
    Zustimmungen:
    8
    Tipp: Da es sich um eine Textdatei handelt darfst Du gerne den Inhalt per Copy-Paste hier posten - in
    Code:
    -Tags.
    
    Bilder einbinden für reine Textinformationen ist mehr oder weniger Bullshit...
     
  9. #8 marcellus, 30.01.2012
    marcellus

    marcellus Kaiser

    Dabei seit:
    09.05.2007
    Beiträge:
    1.392
    Zustimmungen:
    0
    @marce das sind screenshots von windows, diese dreckige cmd "shell" würd ich auch nicht angreifen

    @donkhan was steht in /etc/init.d/rcS und /etc/init.d/rcW?
     
  10. #9 donkhan, 30.01.2012
    donkhan

    donkhan Jungspund

    Dabei seit:
    30.01.2012
    Beiträge:
    11
    Zustimmungen:
    0
    in rcD steht

    Code:
    #!/bin/sh
    
    PATH=/sbin:/usr/sbin:/bin:/usr/bin
    
    # Tell udhcpc to terminate lease
    killall -q -SIGUSR2 udhcpc
    
    # Unload radio driver to reset the radio
    ifconfig wlan0 down
    rmmod ar6000.ko
    
    exit 0
    
    in rcS

    Code:
    #!/bin/sh
    
    PATH=/sbin:/usr/sbin:/bin:/usr/bin
    
    echo 'Mounting proc filesystem'
    mount -v proc /proc -n -t proc
    echo 'Mounting sysfs filesystem'
    mount -v sysfs /sys -n -t sysfs
    echo 'Remounting root filesystem'
    mount -v -n -o remount,rw,noatime,nodiratime /
    
    mount devpts /dev/pts -t devpts
    
    echo 'RAM disk startup'
    mount -t tmpfs -o size=8M tmpfs /tmp
    mount -t tmpfs -o size=250K tmpfs /var
    mkdir /var/run /var/log /var/etc /tmp/upload /tmp/empty
    cat /dev/null >/var/etc/resolv.conf
    
    echo 'Bringing Loopback device up'
    /sbin/ifconfig lo 127.0.0.1 up
    /sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
    
    exit 0
    und in rcW

    Code:
    #!/bin/sh
    
    PATH=/sbin:/usr/sbin:/bin:/usr/bin
    
    #
    # See if wired ethernet is installed on development board
    #
    if ifconfig eth0 >/dev/null ; then
       wired=1
       wlan=eth1
       echo 'Wired and Wireless'
    else
       wired=0
       wlan=eth0
       echo 'Wireless only'
    fi
     
    #
    # Load wireless kernel modules first since they take time to
    # initialize
    #
    insmod /lib/modules/sdio_lib.ko
    insmod /lib/modules/sdio_busdriver.ko RequestListSize=128
    insmod /lib/modules/sdio_s3c2412.ko
    insmod /lib/modules/ar6000.ko bmienable=1 debugdriver=0 fwmode=1 onebitmode=1
    
    #
    # Load GPIO driver
    #
    insmod /lib/modules/sx560_gpio.ko
    
    #
    # Load SPI driver
    #
    #insmod /lib/modules/spi-dev.ko
    #insmod /lib/modules/spi-s3c2412.ko
    
    #
    # Include IP configuration
    #
    if [ -e /etc/init.d/ipconfig ] ; then
      source /etc/init.d/ipconfig
    fi
    
    #
    # Load AR6002 firmware, MAC address, etc.
    #
    old_options=`bmiloader -i ${wlan} --quiet --set --address=0x180c0 --or=8`
    old_sleep=`bmiloader -i ${wlan} --quiet --set --address=0x40c4 --or=1`
    
    bmiloader -i ${wlan} --quiet --set --address=0x4020 --param=0
    
    ext_clk_detected=`bmiloader -i ${wlan} --quiet --get --address=0x50047c`
    if [ $ext_clk_detected = 0x0 ] ; then
       bmiloader -i ${wlan} --quiet --set --address=0x40e0 --param=0x100000
    fi
    
    # Loading eeprom.6002
    bmiloader -i ${wlan} --quiet --write --address=0x502070 --file=/lib/modules/eeprom.data 2> /dev/null
    bmiloader -i ${wlan} --quiet --write --address=0x5140f0 --file=/lib/modules/eeprom.bin 2> /dev/null
    
    bmiloader -i ${wlan} --quiet --execute --address=0x9140f0 --param=0 > /dev/null
    
    # Set the new begin address for the PC to jump to.
    bmiloader -i ${wlan} --quiet --begin --address=0x9140f0
    
    # Enable HI_OPTION_TIMER_WAR (timerwar)
    bmiloader -i ${wlan} --quiet --set --address=0x500410 --or=0x1 > /dev/null
    
    # Loading WLAN application
    bmiloader -i ${wlan} --quiet --write --address=0x502070 --file=/lib/modules/athwlan.bin.z77 --uncompress
    
    # Loading WLAN Patch DataSets
    bmiloader -i ${wlan} --quiet --write --address=0x52d6d0 --file=/lib/modules/data.patch.hw2_0.bin
    bmiloader -i ${wlan} --quiet --write --address=0x500418 --param=0x52d6d0
    
    # Restore System Sleep on AR6002
    bmiloader -i ${wlan} --quiet --set --address=0x40c4 --param=$old_sleep > /dev/null
    bmiloader -i ${wlan} --quiet --set --address=0x180c0 --param=$old_options > /dev/null
    
    # Leave BMI now and start the WLAN driver.
    bmiloader -i ${wlan} --quiet --done
    
    #
    # Wait until wireless device is ready
    #
    tries=10
    until ifconfig ${wlan} >/dev/null
    do
      let tries=$tries-1
      sleep 1
      if [ $tries -eq 0 ] ; then
        echo 'AR6000 initialization failure'
        exit 0
      fi
    done
    
    echo 'Radio initialized'
    #
    # Rename to wlan0 to distinguish between wired and wireless
    #
    ifrename -i ${wlan} -n wlan0 >/dev/null 2>&1
    wlan=wlan0
    
    #
    # Seed the random number generator with the radio's unique MAC address
    #
    ifconfig wlan0 > /dev/urandom
    active_if=wlan0
    
    #
    # If we have a wired interface, initialize it
    #
    if [ $wired -ne 0 ] ; then
      # Set MAC address
      fixmac
      # Bring interface up
      ifconfig eth0 0.0.0.0
      # Allow time to negotiate link
      sleep 2
      # See if link active
      if ifconfig eth0 | grep RUNNING >/dev/null ; then
         echo 'eth0 started'
         active_if=eth0
         ifconfig wlan0 0.0.0.0
      else
         ifconfig eth0 down
      fi
    fi
    
    hostname $HOSTNAME
    
    #
    # If wireless active, start supplicant
    #
    if [ "$active_if" == "wlan0" ] ; then
       wpa_supplicant -i ${wlan} -B -c /etc/wpa_supplicant.conf -W
       echo 'Supplicant started'
    fi
    
    #
    # Start SNMP agent
    #
    if [ $USESNMP -ne 0 ] ; then
      echo 'Starting SNMP agent'
      snmpd -c /etc/snmpd.conf
    fi
    
    #
    # Start device server application
    #
    if [ -e /opt/bb6k2 ] ; then
       ulimit -S -c 2048
       /opt/bb6k2 -d -i $active_if
    else
       if [ "$active_if" == "wlan0" ] ; then
          wpa_cli -i ${wlan} -a/etc/init.d/wpa_action.sh -B
       fi
    fi
    
    #
    # If wired, determine IP address
    #
    if [ "$active_if" == "eth0" ] ; then
       /etc/init.d/startip.sh $active_if
    fi
    
    #
    # Start monitoring for firmware updates
    #
    monupd -s/etc/init.d/startupd.sh -f/etc/init.d/stopupd.sh
    
    #
    # Start vsftpd
    #
    if [ $USEFTP -ne 0 ] ; then
      start-stop-daemon -S -b -x vsftpd
    fi
    
    #
    # Start TFTPd
    #
    if [ $USETFTP -ne 0 ] ; then
      inetd /etc/inetd.conf
    fi
    
    #
    # Start telnetd
    #
    if [ $USETELNET -ne 0 ] ; then
      telnetd
    fi
    
    exit 0
    
     
  11. #10 donkhan, 30.01.2012
    donkhan

    donkhan Jungspund

    Dabei seit:
    30.01.2012
    Beiträge:
    11
    Zustimmungen:
    0
    Hab es gepostet, muss von einem Mod freigeschaltet werden
     
  12. #11 marcellus, 30.01.2012
    marcellus

    marcellus Kaiser

    Dabei seit:
    09.05.2007
    Beiträge:
    1.392
    Zustimmungen:
    0
    was? warum?
     
  13. #12 donkhan, 30.01.2012
    donkhan

    donkhan Jungspund

    Dabei seit:
    30.01.2012
    Beiträge:
    11
    Zustimmungen:
    0
    stand so nach dem Post da, ich Probiere es nochmal

    also in rcW

    Code:
    #!/bin/sh
    
    PATH=/sbin:/usr/sbin:/bin:/usr/bin
    
    #
    # See if wired ethernet is installed on development board
    #
    if ifconfig eth0 >/dev/null ; then
       wired=1
       wlan=eth1
       echo 'Wired and Wireless'
    else
       wired=0
       wlan=eth0
       echo 'Wireless only'
    fi
     
    #
    # Load wireless kernel modules first since they take time to
    # initialize
    #
    insmod /lib/modules/sdio_lib.ko
    insmod /lib/modules/sdio_busdriver.ko RequestListSize=128
    insmod /lib/modules/sdio_s3c2412.ko
    insmod /lib/modules/ar6000.ko bmienable=1 debugdriver=0 fwmode=1 onebitmode=1
    
    #
    # Load GPIO driver
    #
    insmod /lib/modules/sx560_gpio.ko
    
    #
    # Load SPI driver
    #
    #insmod /lib/modules/spi-dev.ko
    #insmod /lib/modules/spi-s3c2412.ko
    
    #
    # Include IP configuration
    #
    if [ -e /etc/init.d/ipconfig ] ; then
      source /etc/init.d/ipconfig
    fi
    
    #
    # Load AR6002 firmware, MAC address, etc.
    #
    old_options=`bmiloader -i ${wlan} --quiet --set --address=0x180c0 --or=8`
    old_sleep=`bmiloader -i ${wlan} --quiet --set --address=0x40c4 --or=1`
    
    bmiloader -i ${wlan} --quiet --set --address=0x4020 --param=0
    
    ext_clk_detected=`bmiloader -i ${wlan} --quiet --get --address=0x50047c`
    if [ $ext_clk_detected = 0x0 ] ; then
       bmiloader -i ${wlan} --quiet --set --address=0x40e0 --param=0x100000
    fi
    
    # Loading eeprom.6002
    bmiloader -i ${wlan} --quiet --write --address=0x502070 --file=/lib/modules/eeprom.data 2> /dev/null
    bmiloader -i ${wlan} --quiet --write --address=0x5140f0 --file=/lib/modules/eeprom.bin 2> /dev/null
    
    bmiloader -i ${wlan} --quiet --execute --address=0x9140f0 --param=0 > /dev/null
    
    # Set the new begin address for the PC to jump to.
    bmiloader -i ${wlan} --quiet --begin --address=0x9140f0
    
    # Enable HI_OPTION_TIMER_WAR (timerwar)
    bmiloader -i ${wlan} --quiet --set --address=0x500410 --or=0x1 > /dev/null
    
    # Loading WLAN application
    bmiloader -i ${wlan} --quiet --write --address=0x502070 --file=/lib/modules/athwlan.bin.z77 --uncompress
    
    # Loading WLAN Patch DataSets
    bmiloader -i ${wlan} --quiet --write --address=0x52d6d0 --file=/lib/modules/data.patch.hw2_0.bin
    bmiloader -i ${wlan} --quiet --write --address=0x500418 --param=0x52d6d0
    
    # Restore System Sleep on AR6002
    bmiloader -i ${wlan} --quiet --set --address=0x40c4 --param=$old_sleep > /dev/null
    bmiloader -i ${wlan} --quiet --set --address=0x180c0 --param=$old_options > /dev/null
    
    # Leave BMI now and start the WLAN driver.
    bmiloader -i ${wlan} --quiet --done
    
    #
    # Wait until wireless device is ready
    #
    tries=10
    until ifconfig ${wlan} >/dev/null
    do
      let tries=$tries-1
      sleep 1
      if [ $tries -eq 0 ] ; then
        echo 'AR6000 initialization failure'
        exit 0
      fi
    done
    
    echo 'Radio initialized'
    #
    # Rename to wlan0 to distinguish between wired and wireless
    #
    ifrename -i ${wlan} -n wlan0 >/dev/null 2>&1
    wlan=wlan0
    
    #
    # Seed the random number generator with the radio's unique MAC address
    #
    ifconfig wlan0 > /dev/urandom
    active_if=wlan0
    
    #
    # If we have a wired interface, initialize it
    #
    if [ $wired -ne 0 ] ; then
      # Set MAC address
      fixmac
      # Bring interface up
      ifconfig eth0 0.0.0.0
      # Allow time to negotiate link
      sleep 2
      # See if link active
      if ifconfig eth0 | grep RUNNING >/dev/null ; then
         echo 'eth0 started'
         active_if=eth0
         ifconfig wlan0 0.0.0.0
      else
         ifconfig eth0 down
      fi
    fi
    
    hostname $HOSTNAME
    
    #
    # If wireless active, start supplicant
    #
    if [ "$active_if" == "wlan0" ] ; then
       wpa_supplicant -i ${wlan} -B -c /etc/wpa_supplicant.conf -W
       echo 'Supplicant started'
    fi
    
    #
    # Start SNMP agent
    #
    if [ $USESNMP -ne 0 ] ; then
      echo 'Starting SNMP agent'
      snmpd -c /etc/snmpd.conf
    fi
    
    #
    # Start device server application
    #
    if [ -e /opt/bb6k2 ] ; then
       ulimit -S -c 2048
       /opt/bb6k2 -d -i $active_if
    else
       if [ "$active_if" == "wlan0" ] ; then
          wpa_cli -i ${wlan} -a/etc/init.d/wpa_action.sh -B
       fi
    fi
    
    #
    # If wired, determine IP address
    #
    if [ "$active_if" == "eth0" ] ; then
       /etc/init.d/startip.sh $active_if
    fi
    
    #
    # Start monitoring for firmware updates
    #
    monupd -s/etc/init.d/startupd.sh -f/etc/init.d/stopupd.sh
    
    #
    # Start vsftpd
    #
    if [ $USEFTP -ne 0 ] ; then
      start-stop-daemon -S -b -x vsftpd
    fi
    
    #
    # Start TFTPd
    #
    if [ $USETFTP -ne 0 ] ; then
      inetd /etc/inetd.conf
    fi
    
    #
    # Start telnetd
    #
    if [ $USETELNET -ne 0 ] ; then
      telnetd
    fi
    
    exit 0
    
    in rcS

    Code:
    #!/bin/sh
    
    PATH=/sbin:/usr/sbin:/bin:/usr/bin
    
    echo 'Mounting proc filesystem'
    mount -v proc /proc -n -t proc
    echo 'Mounting sysfs filesystem'
    mount -v sysfs /sys -n -t sysfs
    echo 'Remounting root filesystem'
    mount -v -n -o remount,rw,noatime,nodiratime /
    
    mount devpts /dev/pts -t devpts
    
    echo 'RAM disk startup'
    mount -t tmpfs -o size=8M tmpfs /tmp
    mount -t tmpfs -o size=250K tmpfs /var
    mkdir /var/run /var/log /var/etc /tmp/upload /tmp/empty
    cat /dev/null >/var/etc/resolv.conf
    
    echo 'Bringing Loopback device up'
    /sbin/ifconfig lo 127.0.0.1 up
    /sbin/route add -net 127.0.0.0 netmask 255.0.0.0 lo
    
    exit 0
    
    
     
  14. #13 donkhan, 30.01.2012
    Zuletzt bearbeitet: 30.01.2012
    donkhan

    donkhan Jungspund

    Dabei seit:
    30.01.2012
    Beiträge:
    11
    Zustimmungen:
    0
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. #14 donkhan, 01.02.2012
    donkhan

    donkhan Jungspund

    Dabei seit:
    30.01.2012
    Beiträge:
    11
    Zustimmungen:
    0
    keiner da der mir helfen kann ^^
     
  17. #15 marcellus, 01.02.2012
    marcellus

    marcellus Kaiser

    Dabei seit:
    09.05.2007
    Beiträge:
    1.392
    Zustimmungen:
    0
    Schreib das, was du ausführen willst einfach in /etc/init.d/rcS rein.
     
Thema:

Standard Programm beim Booten Starten

Die Seite wird geladen...

Standard Programm beim Booten Starten - Ähnliche Themen

  1. Standard- Java Programm im Hintergrund (Pipes, Ports oder Argumente)

    Standard- Java Programm im Hintergrund (Pipes, Ports oder Argumente): Hi ihr, :) ich möchte ein Standard- Java- Programm "im Hintergrund" lauffähig machen. Dabei ist mir erstmal egal, ob es sich wie ein...
  2. Standard E-Mailprogramm ändern?

    Standard E-Mailprogramm ändern?: Moin, habe mit der Suchfunktion leider nicht herausfinden können, wie ich bei nem GNOME-Rechner (OpenSuse 10) den Standard-E-Mailclient ändern...
  3. 32-Bit als Standard in Wine // Wine komplett löschen

    32-Bit als Standard in Wine // Wine komplett löschen: Hallo, soweit ich das verstanden habe installiert man Windows-Programme unter Wine bei einem 64-Bit-Linux standardmäßig auch als 64-Bit-Prpgramm....
  4. Anfänger Frage: Welchen Standard wählen

    Anfänger Frage: Welchen Standard wählen: Hallo, früher wußte ich nie wie ich anfangen muß. Heute weiß ich einfach anfangen und mir alles selbst beibringen. Was ich mich aber noch...
  5. Fedora 24: Wayland nicht als Standard

    Fedora 24: Wayland nicht als Standard: Entgegen der ursprünglichen Planung wird Fedora 24 weiterhin auf X11 aufsetzen und nicht Wayland als Standard nutzen. Als Grund nennen die...