Как собрать определенный модуль ядра?

find sale con éxito ya sea que haya encontrado archivos o no. Su definición de éxito es que los parámetros de la línea de comando son válidos y no hubo errores de entrada/salida. Si desea saber si encontró algunos archivos, imprima algo y verifique si la salida no está -vacía.

Si desea que findimprima el nombre de un archivo que encuentra, inserte -printcomo una acción. Puede encadenar varias acciones (, p. -print, -execy -prunesimplemente poniéndolos uno tras otro ).

find /path/to/files -type d -mtime +2 -name '[0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]' -print -exec rm -rf {} \; -prune

Tenga en cuenta que necesita comillas alrededor del patrón pasado a -name. De lo contrario, si hay un archivo coincidente en el directorio actual, el shell expandirá ese patrón antes de que findlo vea.

Si desea imprimir el nombre de cada archivo eliminado y no solo del directorio de nivel superior de cada copia de seguridad, y está en Linux (más precisamente, si está usando GNU coreutils ), puede pase el indicador -va rm.

Tenga en cuenta que el comando que publicó busca directorios coincidentes en todas partes bajo /path/to/filesde forma recursiva, no solo en el nivel superior. No estoy seguro de si eso es lo que pretendías; por ejemplo, buscaría dentro de las copias de seguridad recientes. Si solo desea hacer coincidir los directorios de nivel superior, la forma más fácil es pasar -maxdepth 1, y luego no necesita -prune.

find /path/to/files -maxdepth 1 -type d -mtime +2 -name '[0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]' -print -exec rm -rf {} \;

Alternativamente, puede dejar que el shell coincida con los nombres de los directorios y decirle a findque nunca recurra a nada aplicando -pruneantes de la coincidencia.

find /path/to/files/[0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9] -prune -type d -mtime +2 -print -exec rm -rf {} \;

Pero esto generará un error si no hay archivos que coincidan con el patrón, o si hay tantos archivos coincidentes que sus nombres combinados sobrepasan la longitud máxima de una línea de comando. El enfoque -maxdepthno tiene estos defectos.

Si desea registrar qué archivos se eliminaron, redirija la salida a un archivo.

{
  echo "# Deletions on $(date)"
  find /path/to/files -type d -mtime +2 -name '[0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]' -print -exec rm -rf {} \; -prune
  echo
} >>backup-deletions.log

Si le preocupa eliminar algo incorrecto,registrar lo que eliminó solo le informará una vez que sea demasiado tarde. Puede hacer una eliminación por etapas moviendo primero las cosas a una "papelera" y vaciando la papelera más tarde.

# Move things to trash. Use whatever criteria you want.
find /path/to/files -type d -mtime +2 -name '[0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]' -exec mv {} /path/to/trash \; -prune
# Delete directories from the trash can if they were moved more than
# a week ago.
find /path/to/trash -mindepth 1 -maxdepth 1 -ctime +7 -exec rm -rf {} \;
1
11.07.2019, 14:19
1 ответ

Первый шаг — определить, какие параметры конфигурации необходимо установить для построения модуля. Я использую

make menuconfig

для этого; /, за которым следует нужный параметр конфигурации, подскажет, где его найти и каковы его зависимости. Для ECHAINIVвам нужно включить CRYPTO, а затем включитьECHAINIV(как модуль, поскольку это то, что вам нужно — в make menuconfigзапись должна показывать <M>, а не <*>).

Чтобы собрать модуль, найдите каталог, содержащий соответствующий исходный код:

find. -name echainiv\*

Код находится в crypto, поэтому

make crypto/echainiv.ko

(из каталога верхнего уровня -)создаст для вас модуль.

Чтобы установить модуль, предполагая, что вы используете целевое ядро, запустите

sudo mkdir -p /lib/modules/$(uname -r)/kernel/crypto
sudo cp -i crypto/echainiv.ko /lib/modules/$(uname -r)/kernel/crypto
4
27.01.2020, 23:17

Теги

Похожие вопросы