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
dpkgsabe.Primero verifique la versión del kernel que está ejecutando.
Luego diga
dpkgque busque el archivo de imagen del núcleo en ladpkgbase de datos.O, mejor, usar
dlocatedeldlocatepaquete.dlocateprimero crea un caché a partir de ladpkgbase 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
aptpuede 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 -rdará 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 -vda 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.
SMPindica 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,staten 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 deunamecambie si solo vuelves a compilar mientras cambias algunas opciones. En ese caso, esperaría esoapt-cacheyuname -rdevolveré 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