Linux Driver hw_random

Gast #4564602
Lesenswert?
• ▲
▼
Hallo,

ich möchte gerne meinen eigenen hw_random Treiber für Linux schreiben.

https://github.com/torvalds/linux/blob/master/drivers/char/hw_random

Am liebsten hätte ich das in einem separaten Projekt und nicht im Linux 
Kernel eingefügt.
Hier bin ich mir allerdings unsicher, ob das überhaupt möglich oder 
empfehlenswert ist.

Kurz, ich habe Probleme, die Makefile 100% zu verstehen.
1
obj-$(CONFIG_HW_RANDOM) += rng-core.o
2
rng-core-y := core.o
3
obj-$(CONFIG_HW_RANDOM_TIMERIOMEM) += timeriomem-rng.o
4
obj-$(CONFIG_HW_RANDOM_INTEL) += intel-rng.o


Alle Random-Module brauchen wohl rng-core.o, das als obere Schicht 
fungiert.
Bsp intel-rng:
1
err = hwrng_register(&intel_rng);

Nur wie ist das, sind das zwei verschiedene Module (rng-core & 
intel-rng) die erst im Kernel verlinkt werden? Oder wird intel-rng mit 
rng-core zu einem Linux Module verschmolzen?

Könnte ich intel-rng in ein separates Projekt auslagern und dort 
kompilieren?
Etwa so:
1
obj-m += intel-rng.o
2

3
all:
4
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
5
clean:
6
    make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

Wird das dann noch sauber mit rng-core gelinkt?
#4564682
Lesenswert?
• ▲
▼
olpo schrieb:
> Nur wie ist das, sind das zwei verschiedene Module (rng-core &
> intel-rng) die erst im Kernel verlinkt werden?

Ja. Symbole, die mit EXPORT_SYMBOL(_GPL) exportiert sind, wie auch 
hwrng_(un)register, werden zur Ladezeit verlinkt.

> Könnte ich intel-rng in ein separates Projekt auslagern und dort
> kompilieren?

Ja.
Aber warum willst du das tun? Du solltest dein Modul für deinen RNG 
(welcher ist es überhaupt) in den Upstream-Kernel integrieren.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren