Модуль «ashmem» не загружается при включенной безопасной загрузке (но «binder» загружается при включенной безопасной загрузке)

Aug 17 2020

Резюме

Я запускаю Ubuntu 20.04.1 с ядром по умолчанию 5.4.0-42-generic (устанавливается из Main) в системе UEFI. Я хочу , чтобы загрузить два модуля ядра ( « ashmem „и“ связующий ») с Secure включена загрузка. По крайней мере, для меня «binder» нормально загружается с включенной безопасной загрузкой , но «ashmem» не загружается с включенной безопасной загрузкой. Оба модуля загружаются с отключенной безопасной загрузкой.

Детали

Пакеты ядра (устанавливаются из Main)

  • заголовки Linux-5.4.0-42

  • Linux-заголовки-5.4.0-42-общий

  • Linux-образ-5.4.0-42-общий

  • Linux-модули-5.4.0-42-общий

  • Linux-модули-дополнительные-5.4.0-42-общий

Безопасная загрузка отключена

Когда безопасная загрузка отключена, я могу загрузить модуль ashmem, используя следующее:

sudo modprobe ashmem_linux

Кроме того, с отключенной безопасной загрузкой я могу загрузить модуль "binder", используя следующее:

sudo modprobe binder_linux

Итак, с отключенной функцией безопасной загрузки все в порядке .

Безопасная загрузка включена

При включенной безопасной загрузке я не могу загрузить модуль ashmem, используя следующее:

sudo modprobe ashmem_linux

При попытке сделать это я получаю следующее:

modprobe: ERROR: could not insert 'ashmem_linux': Operation not permitted

Однако даже при включенной безопасной загрузке я все еще могу без проблем загрузить модуль "binder", используя следующее:

sudo modprobe binder_linux

Итак, я озадачен, почему «binder» загружается с включенной безопасной загрузкой, а «ashmem» не загружается с включенной безопасной загрузкой.

И как бы то ни было, у меня не было других проблем с использованием Secure Boot.

Вопросы

  1. Есть ли способ принудительно загрузить "ashmem" с включенной безопасной загрузкой?

  2. Является ли невозможность загрузить "ashmem" с включенной функцией безопасной загрузки функцией или ошибкой?

  3. И если это ошибка, где на Launchpad лучше всего сообщить об ошибке?

Дополнение

К вышесказанному я добавлю, что я включил безопасную загрузку (и зарегистрировал MOK) во время первоначальной чистой установки Ubuntu 20.04. Даже в этом случае, следуя отличному предложению, предоставленномуhttps://askubuntu.com/users/15811/rinzwind, После начальной установки я выполнил следующее :

sudo kmodsign sha512 /var/lib/shim-signed/mok/MOK.priv /var/lib/shim-signed/mok/MOK.der /lib/modules/`uname -r`/kernel/drivers/staging/android/ashmem_linux.ko

И после выполнения вышеупомянутого я повторно запустил:

sudo modprobe ashmem_linux

sudo modprobe binder_linux

lsmod | grep -e ashmem_linux -e binder_linux

УСПЕХА! И «ашмем», и «связующее» загружены! Благодарностьhttps://askubuntu.com/users/15811/rinzwind!!

Более того, https://anbox.io/теперь начинается для меня с включенной безопасной загрузкой, что и было моей конечной целью. :)

Учитывая, что и «ashmem», и «binder» теперь загружаются для меня с включенной безопасной загрузкой, я помечаю этот вопрос как ОТВЕТ. Однако я заметил еще одну ошибку, касающуюся модуля «связывателя». Для тех, кому интересно, я разместил вопрос, связанный с этой ошибкой.https://askubuntu.com/questions/1267990/ls-1-dev-ashmem-binder-yields-anticipated-result-for-dev-ashmem-but-an-err.

Ответы

5 Rinzwind Aug 17 2020 at 07:40

Вам необходимо подписать модуль. Похоже, это можно сделать с помощью:

kmodsign sha512 /var/lib/shim-signed/mok/MOK.priv /var/lib/shim-signed/mok/MOK.der /lib/modules/`uname -r`/kernel/drivers/staging/android/ashmem_linux.ko