Sie sind hier : Homepage →  > Linux (12) Technik des NAS-540→  Versuch 5 Teil 2 (NAS-540)

Diese Seiten sind unsere internen Protokolle aus dem Labor.

Aufgrund der fortlaufenden Protokollierung der Ergänzungen sowie der Verbesserungen ist die Reihenfolge / Chronologie der Seiten aus dem Ruder gelaufen - leicht durcheinander geraten.

.

Was habe ich bis hierhin erreicht ?

.

  1. Einen Teil der Boot-Prozedur analysiert und aufgeschrieben
  2. den Kommandozeilen-Paketmanager "entware-ng" (opkg) resident installiert
  3. mit opkg den Linux-Arm7 "midnight-commander" installiert
  4. mit opkg ein Hilfs-Prgramm Namens "screen" (hilfsweise) für den "mc" installiert
  5. mit opkg das Prozess-Monitor - das Anzeigeprogramm "htop" installiert
  6. mit opkg den Text-Editor "joe" installiert

.
Jedenfalls war das bereits sehr erfreulich. Jetzt kann ich endlich anfangen "zu arbeiten".
.

Zusammenstellung :
Wo werden Umgebungsvariablen resident gespeichert ?

.

Es gibt zwei "profile" Dateien .....

Die erste "profile" Datei wird (aus dem Firmware-Image oder aus dem spi-flash ?) in die RAM-Disk kopiert und ist erstmal - nach jedem Neustart - im Originalzustand. Alleine eine (Pfad-)Zeile wird von einem der neuen Scripte temporär hinzugefügt :

"export PATH=$PATH:/opt/bin:/opt/sbin."

In "/i-data/e1e0ed3c/opt/etc/" gibt es jetzt noch eine zweite "profile" Datei für das Login mit putty. Doch da stimmt etwas nicht bei der Ausführung.
.

Die 2. "profile" Datei in "/i-data/e1e0ed3c/opt/etc/"

#!/bin/sh

  • # Please note - it's not a system-wide settings, it's only for a current terminal session. Point your f\w (if necessery) to execute /opt/etc/profile at console logon.


is_substring(){
    case "$2" in
        *$1*) return 0;;
        *) return 1;;
    esac
}

  • # Set CHECK_OPT_PATH to 1 to check /opt/bin and /opt/sbin in PATH


CHECK_OPT_PATH=0
if [ $CHECK_OPT_PATH = 1 ]; then
    is_substring "/opt/bin" $PATH
    [ $? == 1 ] && export PATH=/opt/bin:$PATH
    is_substring "/opt/sbin" $PATH
    [ $? == 1 ] && export PATH=/opt/sbin:$PATH
else
    export PATH=/opt/bin:/opt/sbin:$PATH
fi
export TERMINFO=/opt/share/terminfo
export TERM=xterm
export TMP=/opt/tmp
export TEMP=/opt/tmp
unset LD_PRELOAD
unset LD_LIBRARY_PATH

  • # auch diese Zeile habe ich veraendert


alias mc="screen mc -c"

# You may define localization
#export LANG='ru_RU.UTF-8'
#export LC_ALL='ru_RU.UTF-8'

export LANG='en_US.UTF-8'
export LC_ALL='en_US.UTF-8'

  • # dieses Teil hier stammt aus meiner opensuse profile.local


export PS1="\[\e[0;32m\][NAS-542-Test1- \u] \w \$ "

.

Meine Modifikation dieser 2. "profile"-Datei

Diese 2. Datei "profile" war nach dem anfänglichen initialen Firmware-Reset noch gar nicht da und diese Datei enthält weitere vorbesetze Variablen, die wir auch für den "mc" brauchen könnten. Dort fügen wir noch die "promt-"Variable PS1 hinzu und exportieren die in unser Environment :

export PS1="\[\e[0;32m\][NAS-542-Test1- \u] \w \$ "
.
Da habe ich leider Pech: Die Datei "/i-data/e1e0ed3c/opt/etc/profile" wird so nicht ausgeführt ???? Warum nicht ? - So habe ich in die ausführbare Datei "entware" eine Zeile eingefügt laut diesem Vorschlag:

Point your f\w (if necessery) to execute /opt/etc/profile at console logon.
.
Das wird auch nicht ausgeführt.
.
mit  "/info_printenv" bekommt man das aktuelle "Boot-Environment"
und mit "/env" bekommt man die aktuellen Variablen angezeigt.

Jetzt kann man den Fehler suchen. - habe ihn gefunden, trivialblöd natürlich !
.

Es geht erst mal hier weiter :
Der Step (5) ist gelaufen und jetzt fehlt noch Step (6)

Schon mal vorweg - Im Nachhinen war es ein Fehler, Step (5) und Step (6) wegen des Fehlers zu überspringen. - (Ich weiß auch nicht mehr, warum ich diesen Weg gewählt hatte.)

Zurück zum Original-Text - bei mir ist das Step 5:

Der Step (5) ist auf dieser verlinkten Seite ausgeführt und hat funktioniert und ist hier ausführlich beschrieben >>>
.

Der Step 6

Es geht deshalb weiter mit dem ehemals übersprungenen Step (6)

(6) Next, you need to create the shutdown script. The following commands will do so:
.

  • #Create "USRPKG_DEPS_SHUTDOWN"

 .

  1. touch /i-data/.system/zy-pkgs/USRPKG_DEPS_SHUTDOWN
  2. echo sdentware >> /i-data/.system/zy-pkgs/USRPKG_DEPS_SHUTDOWN
  3. chmod +x /i-data/.system/zy-pkgs/USRPKG_DEPS_SHUTDOWN

 .

  • #Create "sdentware" and fill it in

  1. touch /i-data/.system/zy-pkgs/sdentware
  2. echo '#!/bin/sh' >> /i-data/.system/zy-pkgs/sdentware
  3. echo '/opt/etc/init.d/rc.unslung stop' >> /i-data/.system/zy-pkgs/sdentware
  4. chmod +x /i-data/.system/zy-pkgs/sdentware

.
Im Fenster sieht es so aus :
/i-data/4b253d0d # touch /i-data/.system/zy-pkgs/USRPKG_DEPS_SHUTDOWN
/i-data/4b253d0d # echo sdentware >> /i-data/.system/zy-pkgs/USRPKG_DEPS_SHUTDOWN
/i-data/4b253d0d # chmod +x /i-data/.system/zy-pkgs/USRPKG_DEPS_SHUTDOWN
/i-data/4b253d0d # touch /i-data/.system/zy-pkgs/sdentware
/i-data/4b253d0d # echo '#!/bin/sh' >> /i-data/.system/zy-pkgs/sdentware
/i-data/4b253d0d # echo '/opt/etc/init.d/rc.unslung stop' >> /i-data/.system/zy-pkgs/sdentware
/i-data/4b253d0d # chmod +x /i-data/.system/zy-pkgs/sdentware
/i-data/4b253d0d #

Alle 7 Kommandos sind auf der Kommandozeile erfolgreich ausgeführt worden.
.
Und darum erstmal wieder ein "reboot" ........ sicher ist sicher.
.

Mit diesen Ergänzungen kann ich erstmal leben.

Noch sind keine weiteren Icons im App-Berich auf der Web-Oberfläche angelegt. Auf der Kommandozeile sind noch ein paar Verbesserungen wünschenswert, zum Beispiel der "promt" und die Konfiguration von "sreenrc".

Weiterhin habe ich mir eine triviale Hilfskrücke (einen kleinen Trick) eingebaut, um zu sehen, ob alle Scripte der Reihe nach zumindest aufgerufen wurden - mit Zeitstempel.
.

Der "mc" muss hier mit "screen" aufgerufen werden

Konträr zu meinen ganzen opensuse VMs (virtuellen Severn) hat der "mc" hier keine Pfeiltatsen und keine Sondertasten. Und darum muß er mit "screen mc" aufgerufen werden und in "/opt/etc/screenrc" sollte hier stehen :
.

  • startup_message off
  • termcapinfo xterm Z0=\E[?3h:Z1=\E[?3l:is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l

.
( https://www.gnu.org/software/screen/manual/screen.html )
.
Weiterhin ist der "promt" auf der Komandozeile einfach zu primitiv. Dabei fällt auf, daß mein verändertes zweites "profile" Script bislang nicht funktioniert.
.

Es geht hier noch weiter mit den restlichen Zusatzprogrammen und wie das Zyxel- Boot-System wirklich funktioniert.

.
Diese Absätze kommen noch ............
.

.

.

Startseite -- © 2001/2022 - Copyright by Dipl.-Ing. Gert Redlich / Germany - D-65191 Wiesbaden - Telefon-Nummer - Impressum