Tomando ejemplo de Ubuntu, ¿podemos decir si el kernel fue compilado a medida en lugar de lo que viene con la distribución?
ubuntu
linux-kernel
bytefire
fuente
fuente
Respuestas:
Claro, solo verifique si lo
dpkg
sabe.Primero verifique la versión del kernel que está ejecutando.
Luego diga
dpkg
que busque el archivo de imagen del núcleo en ladpkg
base de datos.O, mejor, usar
dlocate
deldlocate
paquete.dlocate
primero crea un caché a partir de ladpkg
base de datos y lo usa. Entonces es rápido.Finalmente, verifique que los archivos de Debian contengan este paquete.
Si no lo hacen, entonces es un paquete personalizado. Por supuesto, si dpkg no conoce el archivo de imagen, su núcleo no forma parte de un paquete, sino que se ha compilado localmente.
Tenga en cuenta que
apt
puede notar la diferencia entre un paquete en el archivo de Debian y uno compilado localmente del mismo nombre. Creo que comprueba el md5sum del paquete, pero olvido los detalles de cómo lo hace. Los paquetes binarios contienen información sobre hashes, consulte la parte inferior deapt-cache show linux-image-3.2.0-4-amd64
, por ejemplo. p.ejfuente
apt-cache show ...
funciona. Veo que escribí mal. Corrigiendo ahora.Mínimamente,
uname -r
dará la versión kernal, como3.18.6
. Sin embargo, cuando se compila el núcleo, se puede configurar una cadena adicional y adjuntarla, y las distribuciones generalmente hacen esto para indicar su propio nivel de parche (después de un guión) y sabor, como3.18.6-32-generic
. Esa es una pista; obviamente, usar su propia cadena cuando crea un núcleo personalizado puede ser otra.uname -v
da una cadena que por defecto es algo como estoEl número es arbitrario en el sentido de que es la cantidad de veces que se construyó este kernel utilizando un árbol de origen específico sin que se reinicie el árbol; esto podría ser útil cuando está construyendo el suyo propio.
SMP
indica un núcleo multitarea (es decir, no en tiempo real) y PREEMPT es otra opción de configuración relacionada con el "modelo de preferencia" del planificador. Pero la gran pista aquí es probablemente el momento en que se construyó. Esto podría usarse para hacer coincidir la marca de tiempo de modificación / cambio en el núcleo mismo, teniendo en cuenta que se puede cambiar, por ejemplo, contouch
. Por ejemplo,stat
en ese núcleo se ve así:Lo cual está bastante en línea con
Mon Mar 9 13:55:25 EDT 2015
.fuente
Igual que cualquier otro
es la versión instalada a través del administrador de paquetes y
compara las versiones
para mi es
y
que indican la misma versión
fuente
/boot
. Mi punto es que no veo por qué esperarías que la salida deuname
cambie si solo vuelves a compilar mientras cambias algunas opciones. En ese caso, esperaría esoapt-cache
yuname -r
devolveré la misma información, a pesar del hecho de que ha compilado localmente.Yo diría que la respuesta más verdadera en general es "no, no puedes". Existen varios métodos que pueden ayudar en ciertos casos y estos ya se han sugerido, pero todos parecen perder de vista cómo surgió esta situación. En verdad, si está utilizando un kernel personalizado, ese kernel puede hacer cualquier cosa, incluso ocultar su presencia o parecer un kernel diferente.
Me preocuparía si realmente está ejecutando un núcleo personalizado y no lo sabía. La única forma confiable de saber qué kernel se está utilizando es realizar un seguimiento cuidadoso de qué kernel compila e instala.
Si realmente no está seguro de qué núcleo está ejecutando el sistema o de qué fuentes se construyó este núcleo o de dónde proviene, consideraría seriamente reinstalar el sistema operativo desde una buena imagen conocida y ser más cuidadoso en el futuro sobre qué núcleos intentará arrancar de o uso.
fuente