X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=board%2Flwmon%2FREADME.keybd;h=5e5144e56974aed3a7f442da8a897e2da691e48d;hb=a53ef5e4bac750d0e84cd2b79f9f7855382b561d;hp=788c8644514332ad33a38bc6e5806ad97f030a8e;hpb=8bde7f776c77b343aca29b8c7b58464d915ac245;p=u-boot diff --git a/board/lwmon/README.keybd b/board/lwmon/README.keybd index 788c864451..5e5144e569 100644 --- a/board/lwmon/README.keybd +++ b/board/lwmon/README.keybd @@ -5,44 +5,44 @@ Die Implementierung / Decodierung beruht auf den Angaben aus dem Do- kument "PIC LWE-Tastatur" in der Fassung vom 9. 3. 2001, insbesonde- re Tabelle 3 im Kapitel 4.3 Tastencodes. In U-Boot werden die vom Keyboard-Controller gelesenen Daten hexadezimal codiert in der auto- -matisch angelegten Environment-Variablen "keybd" übergeben. Ist kei- -ne Taste gedrückt worden, steht dort: +matisch angelegten Environment-Variablen "keybd" übergeben. Ist kei- +ne Taste gedrückt worden, steht dort: keybd=000000000000000000 Der decodierte Tastencode ("keybd") kann mit den "bootargs" an den -Linux-Kernel übergeben und dort z. B. in einem Device-Treiber oder +Linux-Kernel übergeben und dort z. B. in einem Device-Treiber oder einer Applikation ausgewertet werden. Sonderfunktionen beim Booten: Es lassen sich eine oder mehrere (beliebig viele) Tasten oder Tasten- -kombinationen definieren, die Sonderfunktionen auslösen, wenn diese -Tasten beim Booten (Reset) gedrückt sind. +kombinationen definieren, die Sonderfunktionen auslösen, wenn diese +Tasten beim Booten (Reset) gedrückt sind. Wird eine eingestellte Taste bzw. Tastenkombination erkannt, so wird in U-Boot noch vor dem Start des "Countdown" und somit vor jedem an- deren Kommando der Inhalt einer dieser Taste bzw. Tastenkombination -zugeordneten Environment-Variablen ausführen. +zugeordneten Environment-Variablen ausführen. Die Environment-Variable "magic_keys" wird als Liste von Zeichen ver- -standen, die als Suffix an den Namen "key_magic" angefügt werden und +standen, die als Suffix an den Namen "key_magic" angefügt werden und so die Namen der Environment-Variablen definieren, mit denen die Tasten (-kombinationen) festgelegt werden: Ist "magic_keys" NICHT definiert, so wird nur die in der Environment- -Variablen "key_magic" codierte Tasten (-kombination) geprüft, und -ggf. der Inhalt der Environment-Variablen "key_cmd" ausgeführt (ge- +Variablen "key_magic" codierte Tasten (-kombination) geprüft, und +ggf. der Inhalt der Environment-Variablen "key_cmd" ausgeführt (ge- nauer: der Inhalt von "key_cmd" wird der Variablen "preboot" zugewie- -sen, die ausgeführt wird, unmittelbar bevor die interaktive Kommando- +sen, die ausgeführt wird, unmittelbar bevor die interaktive Kommando- interpretation beginnt). -Enthält "magic_keys" z. B. die Zeichenkette "0123CB*", so werden -nacheinander folgende Aktionen ausgeführt: +Enthält "magic_keys" z. B. die Zeichenkette "0123CB*", so werden +nacheinander folgende Aktionen ausgeführt: - prüfe Tastencode ggf. führe aus Kommando + prüfe Tastencode ggf. führe aus Kommando in Variable in Variable ----------------------------------- key_magic0 ==> key_cmd0 @@ -55,43 +55,43 @@ nacheinander folgende Aktionen ausgef key_magic* ==> key_cmd* Hinweis: sobald ein aktivierter Tastencode erkannt wurde, wird die -Bearbeitung abgebrochen; es wird daher höchstens eines der definier- -ten Kommandos ausgeführt, wobei die Priorität durch die Suchreihen- +Bearbeitung abgebrochen; es wird daher höchstens eines der definier- +ten Kommandos ausgeführt, wobei die Priorität durch die Suchreihen- folge festgelegt wird, also durch die Reihenfolge der Zeichen in der Varuiablen "magic_keys". -Die Codierung der Tasten, die beim Booten gedrückt werden müssen, um -eine Funktion auszulösen, erfolgt nach der Tastaturtabelle. +Die Codierung der Tasten, die beim Booten gedrückt werden müssen, um +eine Funktion auszulösen, erfolgt nach der Tastaturtabelle. Die Definitionen => setenv key_magic0 3a+3b => setenv key_cmd0 setenv bootdelay 30 -bedeuten dementsprechend, daß die Tasten mit den Codes 0x3A (Taste -"F1") und 0x3B (Taste "F2") gleichzeitig gedrückt werden müssen. Sie -können dort eine beliebige Tastenkombination eintragen (jeweils 2 -Zeichen für die Hex-Codes der Tasten, und '+' als Trennzeichen). +bedeuten dementsprechend, daß die Tasten mit den Codes 0x3A (Taste +"F1") und 0x3B (Taste "F2") gleichzeitig gedrückt werden müssen. Sie +können dort eine beliebige Tastenkombination eintragen (jeweils 2 +Zeichen für die Hex-Codes der Tasten, und '+' als Trennzeichen). Wird die eingestellte Tastenkombination erkannt, so wird in U-Boot noch vor dem Start des "Countdown" und somit vor jedem anderen Kom- -mando das angebene Kommando ausgeführt und somit ein langes Boot- +mando das angebene Kommando ausgeführt und somit ein langes Boot- Delay eingetragen. -Praktisch könnten Sie also in U-Boot "bootdelay" auf 0 setzen und -somit stets ohne jede User-Interaktion automatisch booten, außer, -wenn die beiden Tasten "F1" und "F2" beim Booten gedrückt werden: -dann würde ein Boot-Delay von 30 Sekunden eingefügt. +Praktisch könnten Sie also in U-Boot "bootdelay" auf 0 setzen und +somit stets ohne jede User-Interaktion automatisch booten, außer, +wenn die beiden Tasten "F1" und "F2" beim Booten gedrückt werden: +dann würde ein Boot-Delay von 30 Sekunden eingefügt. Hinweis: dem Zeichen '#' kommt innerhalb von "magic_keys" eine beson- dere Bedeutung zu: die dadurch definierte Key-Sequenz schaltet den -Monitor in den "Debug-Modus" - das bedeutet zunächst, daß alle weite- -ren Meldungen von U-Boot über das LCD-Display ausgegeben werden; -außerdem kann man durch das mit dieser Tastenkombination verknüpfte +Monitor in den "Debug-Modus" - das bedeutet zunächst, daß alle weite- +ren Meldungen von U-Boot über das LCD-Display ausgegeben werden; +außerdem kann man durch das mit dieser Tastenkombination verknüpfte Kommando z. B. die Linux-Bootmeldungen ebenfalls auf das LCD-Display -legen, so daß der Boot-Vorgang direkt und ohne weitere Hilfsmittel +legen, so daß der Boot-Vorgang direkt und ohne weitere Hilfsmittel analysiert werden kann. Beispiel: @@ -100,27 +100,27 @@ In U-Boot werden folgende Environment-Variablen gesetzt und abgespei- chert: (1) => setenv magic_keys 01234#X -(2) => setenv key_cmd# setenv addfb setenv bootargs \\$(bootargs) console=tty0 console=ttyS1,\\$(baudrate) -(3) => setenv nfsargs setenv bootargs root=/dev/nfs rw nfsroot=\$(serverip):\$(rootpath) -(4) => setenv addip setenv bootargs \$(bootargs) ip=\$(ipaddr):\$(serverip):\$(gatewayip):\$(netmask):\$(hostname)::off panic=1 -(5) => setenv addfb setenv bootargs \$(bootargs) console=ttyS1,\$(baudrate) +(2) => setenv key_cmd# setenv addfb setenv bootargs \\${bootargs} console=tty0 console=ttyS1,\\${baudrate} +(3) => setenv nfsargs setenv bootargs root=/dev/nfs rw nfsroot=\${serverip}:\${rootpath} +(4) => setenv addip setenv bootargs \${bootargs} ip=\${ipaddr}:\${serverip}:\${gatewayip}:\${netmask}:\${hostname}::off panic=1 +(5) => setenv addfb setenv bootargs \${bootargs} console=ttyS1,\${baudrate} (6) => setenv bootcmd bootp\;run nfsargs\;run addip\;run addfb\;bootm Hierbei wird die Linux Commandline (in der Variablen "bootargs") im -Boot-Kommando "bootcmd" (6) schrittweise zusammengesetzt: zunächst -werden die für Root-Filesystem über NFS erforderlichen Optionen ge- +Boot-Kommando "bootcmd" (6) schrittweise zusammengesetzt: zunächst +werden die für Root-Filesystem über NFS erforderlichen Optionen ge- setzt ("run nfsargs", vgl. (3)), dann die Netzwerkkonfiguration an- -gefügt ("run addip", vgl. (4)), und schließlich die Systemconsole +gefügt ("run addip", vgl. (4)), und schließlich die Systemconsole definiert ("run addfb"). Dabei wird im Normalfall die Definition (5) verwendt; wurde aller- -dings beim Reset die entsprechende Taste gedrückt gehalten, so wird -diese Definition bei der Ausführung des in (2) definierten Kommandos -überschrieben, so daß Linux die Bootmeldungen auch über das Frame- +dings beim Reset die entsprechende Taste gedrückt gehalten, so wird +diese Definition bei der Ausführung des in (2) definierten Kommandos +überschrieben, so daß Linux die Bootmeldungen auch über das Frame- buffer-Device (=LCD-Display) ausgibt. Beachten Sie die Verdoppelung der '\'-Escapes in der Definition von "key_cmd#" - diese ist erforderlich, weil der String _zweimal_ inter- pretiert wird: das erste Mal bei der Eingabe von "key_cmd#", das -zweite Mal, wenn der String (als Inhalt von "preboot") ausgeführt +zweite Mal, wenn der String (als Inhalt von "preboot") ausgeführt wird.