Wie übergebe ich einen Wert beim Booten an das eingebaute Linux Kernel Modul?

9

Ich möchte beim Booten einen benutzerdefinierten Parameter an den Kernel übergeben, was mein neuer Code verwenden wird. Dieser Parameter ist eine Zahl.

Ich weiß, wie man dem Kernel-Modul über die Kernel-Befehlszeile, d. h. module_param() , einen Wert übergibt. Jetzt möchte ich Wert von U-Boot übergeben.

Gibt es eine Möglichkeit, dies während oder nach dem Booten zu tun?

    
vm18553 15.07.2013, 17:06
quelle

3 Antworten

5

Ändern Sie Ihre Board-Datei in include / config / board_xxx.h von U-Boot, ändern Sie $ bootargs ähnlich der letzten in diesem Beispiel gesetzten Variable:

%Vor%

control ist der Name des integrierten Treibermoduls, das ich nicht insmodieren kann, weil ich es brauche, um vollständig zur Linux-Eingabeaufforderung zu booten.

cmd1 ist die globale Variable, die ich in dem Modul definiert habe, in dem ich verwendet habe:

%Vor%

Also, Ihre $ bootargs var muss einfach mit etwas wie zB angehängt werden:

<your_mod_name>.<your_mod_parameter_var_name>=<an_appropriate_value>

    
Prashant Chikhalkar 16.07.2013, 18:07
quelle
7

Wenn Sie wissen, wie Sie einen Wert an ein Kernelmodul übergeben, wissen Sie genug:)

insmod my_module param=value

Wenn Ihr Modul im Kernel integriert ist, können Sie Ihren Parameter zu den Kernel-Parametern hinzufügen

vmlinux ... my_module.param=value ...

Hier eine Referenz: kernel-parameters.txt

    
Federico 15.07.2013 17:55
quelle
0

Linux-Quelldokumentation

Ich bevorzuge es aus dem Mund des Pferdes v4.12 / Dokumentation / admin-guide / kernel-parameter.rst :

%Vor%

Einfacher Weg, es auszuprobieren

%Vor%

dann in der Befehlszeile:

%Vor%

und wenn der Kernel bootet, siehst du:

%Vor%

welches von init von dummy-irq.c gedruckt wird.

Codepfad

Ich habe es noch nicht geschafft, dem vollständigen Codepfad zu folgen, aber ich denke, dass . in Ссылка :

%Vor%

wird im module_param -Makro-Wasserfall erweitert, wobei ein Schritt einen Kommentar von Linus enthält, der angibt, wie klar dieser Code ist:

%Vor%

Die QEMU GDB watch Rückverfolgung, die für dummy-irq.c:irq endet, ist:

%Vor%     
quelle