Moduł „ashmem” nie ładuje się przy włączonym Bezpiecznym rozruchu (ale „binder” ładuje się przy włączonym bezpiecznym rozruchu)

Aug 17 2020

Podsumowanie

Używam Ubuntu 20.04.1 z domyślnym jądrem 5.4.0-42-generic (instalowanym z Main) w systemie UEFI. Chcę załadować dwa moduły jądra („ ashmem ” i „ binder ”) z włączoną funkcją Secure Boot. Przynajmniej dla mnie „binder” ładuje się dobrze przy włączonym Bezpiecznym rozruchu, ale „ashmem” nie ładuje się przy włączonym Bezpiecznym rozruchu. Oba moduły są ładowane przy wyłączonym Bezpiecznym rozruchu.

Detale

Pakiety jądra (instalowane z poziomu głównego)

  • linux-headers-5.4.0-42

  • linux-headers-5.4.0-42-generic

  • linux-image-5.4.0-42-generic

  • linux-modules-5.4.0-42-generic

  • linux-modules-extra-5.4.0-42-generic

Bezpieczny rozruch wyłączony

Po wyłączeniu bezpiecznego rozruchu mogę załadować moduł „ashmem” w następujący sposób:

sudo modprobe ashmem_linux

Ponadto przy wyłączonym Bezpiecznym rozruchu mogę załadować "binder" modułu za pomocą:

sudo modprobe binder_linux

Tak więc wszystko jest w porządku z wyłączonym Bezpiecznym uruchamianiem .

Bezpieczny rozruch włączony

Przy włączonej funkcji Bezpieczne Boot, mogę nie załadować moduł „ashmem” przy użyciu następujących:

sudo modprobe ashmem_linux

Próbując to zrobić, otrzymuję następujące informacje:

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

Jednak nawet przy włączonym Bezpiecznym rozruchu nadal mogę bez problemu załadować „segregator” modułu, korzystając z:

sudo modprobe binder_linux

Zastanawiam się więc, dlaczego „binder” ładuje się przy włączonym Bezpiecznym rozruchu, ale „ashmem” nie ładuje się przy włączonym Bezpiecznym rozruchu.

I choć warto, nie miałem żadnych innych problemów z korzystaniem z Bezpiecznego rozruchu.

pytania

  1. Czy istnieje sposób, aby wymusić załadowanie „ashmem” przy włączonym Bezpiecznym rozruchu?

  2. Czy brak możliwości załadowania „ashmem” przy włączonym Bezpiecznym rozruchu jest funkcją czy błędem?

  3. A jeśli to błąd, gdzie na Launchpadzie byłoby najlepsze miejsce do zgłoszenia błędu?

Uzupełnienie

Do powyższego dodam, że włączyłem Bezpieczny rozruch (i zarejestrowałem MOK) podczas początkowej czystej instalacji Ubuntu 20.04. Mimo to, postępując zgodnie z doskonałą sugestią przedstawioną przezhttps://askubuntu.com/users/15811/rinzwind, Uruchomiłem następujące po pierwszej instalacji:

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

A po uruchomieniu powyższego ponownie uruchomiłem:

sudo modprobe ashmem_linux

sudo modprobe binder_linux

lsmod | grep -e ashmem_linux -e binder_linux

SUKCES! Załadowano „ashmem” i „binder”! Dziękihttps://askubuntu.com/users/15811/rinzwind!!

Co więcej, https://anbox.io/zaczyna się dla mnie teraz z włączonym Bezpiecznym rozruchem, co było moim końcowym celem. :)

Biorąc pod uwagę, że zarówno „ashmem”, jak i „binder” ładują się teraz przy włączonym Bezpiecznym rozruchu, oznaczam to pytanie jako ODPOWIEDZI. Zauważyłem jednak inny błąd dotyczący modułu „binder”. Dla zainteresowanych wysłałem pytanie związane z tym błędemhttps://askubuntu.com/questions/1267990/ls-1-dev-ashmem-binder-yields-anticipated-result-for-dev-ashmem-but-an-err.

Odpowiedzi

5 Rinzwind Aug 17 2020 at 07:40

Musisz podpisać moduł. Wygląda na to, że można to zrobić za pomocą:

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