¿API del nombre de la distribución de Linux para obtener el nombre de la distribución de Linux en un código de controlador?

¿API del nombre de la distribución de Linux para obtener el nombre de la distribución de Linux en un código de controlador?

Estoy escribiendo un código común en un controlador para obtener el nombre de la distribución y el nombre del host. nombre de host que estoy tomando struct utsname{nodename[]}, pero ¿cómo obtengo el nombre de la distribución?

Respuesta1

La mayoría de los programas y scripts que he visto analizan los archivos habituales /etc, AFAIK, no hay otra manera:

On Redhat, look for /etc/redhat-release
On Debian, look for /etc/debian_version
Mandriva has /etc/version
and Slackware has /etc/slackware-version

También puede utilizar unamepara obtener ARCHo, probablemente la forma más sensata, utilizar lsb_release.

Respuesta2

Puedes echar un vistazo a cómo lo hace facter.aquí.

Como dijo Jan, lsb_release es probablemente el mejor camino a seguir, pero no puede ser el único. Por ejemplo, lsb_release no está presente de forma predeterminada en ninguno de mis servidores RHEL:

[damaya@damaya-sandbox script]$ lsb_release
-bash: lsb_release: command not found
[damaya@damaya-sandbox script]$ yum provides "*/lsb_release"
redhat-lsb-core-4.0-7.el6.centos.i686 : LSB base libraries support for CentOS
Repo        : base
Matched from:
Filename    : /usr/bin/lsb_release

Entonces, si lsb_release no está presente en el sistema, el siguiente paso es obtener la información del archivo /etc/*-release. Sin embargo, si eso tampoco está presente en el sistema, no tendrá suerte. Desafortunadamente, no existe una manera 100% confiable de obtener esta información.

Respuesta3

El alcance para obtener el nombre de la distribución no está dentro del alcance del desarrollo del kernel. Por lo tanto, actualmente no existe ningún método específico. Estoy solicitando el parámetro del módulo en mi controlador para esto. También puede solicitar una variable ENV mientras compila.

Gracias por tu ayuda...

información relacionada