Определение файлсетов с используемыми драйверами в системе

Если сильно хочется удалить из системы лишние файлсеты с неиспользуемыми драйверами, то можно при помощи следующего one-liner’а определить необходимые для работы Вашей системы файлсеты. Все, что не попало в перечень и начинается с devices.*, Вам скорее всего не нужно.

for name in $(for i in $(lsdev | awk ‘{print $1}’) ; do drv=$(odmget -q name=$i CuDv | grep ddins | awk -F" ‘{print $2}’ ) ; [[ -n "$drv" ]] && echo $drv ; done | sort | uniq ) ; do [[ -f "/usr/lib/drivers/$name" ]] && ( lslpp -wc /usr/lib/drivers/$name | awk -F: ‘/^#/ {next} {print $2}’ ; done | sort | uniq

Краткое пояснение:

lsdev | awk ‘{print $1}’ – получаем список всех устройств, которые есть в системе

odmget -q name=$i CuDv – из ODM, базы сконфигурированных устройств, получаем информацию о каждом устройстве. Поле ddins содержит имя драйвера, который был загружен для данного устройства

Все драйвера находятся в /usr/lib/drivers. С помощью команды lslpp -wc /usr/lib/drivers/$name получаем имя файлсета, к которому относится загруженный драйвер.

Итог – список всех файлсетов, необходимых для работы устройств в системе. Все лишнее – от лукавого 😉

Оставьте комментарий