viitoare persoană cu aceeași problemă.
Am aflat care era problema. Cardul meu WIFI este MediaTek Wi-Fi 6 MT7921, care este suportat în prezent de kernel-ul linux 5.16, este slab acceptat de kernel-ul 5.13, care este cel livrat cu Ubuntu 21.10.De fapt, la prima pornire funcționează foarte prost, iar pentru următoarea pornire nu va funcționa deloc.
Astfel, soluția este să faceți upgrade la noul nucleu cu comenzile:
# descărcați fișierele kernelului, antetele, modulele... etc
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16/amd64/linux-headers-5.16.0-051600_5.16.0-051600.202201092355_all.deb
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16/amd64/linux-headers-5.16.0-051600-generic_5.16.0-051600.202201092355_amd64.deb
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16/amd64/linux-image-unsigned-5.16.0-051600-generic_5.16.0-051600.202201092355_amd64.deb
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16/amd64/linux-modules-5.16.0-051600-generic_5.16.0-051600.202201092355_amd64.deb
acum instalați nucleul în sistemul dvs.:
sudo dpkg -i *.deb
remediați dependențe rupte:
sudo apt install -f
Puteți reporni acum și ar putea funcționa dacă nu utilizați boot sigur.
Cu toate acestea, dacă sunteți, atunci trebuie să îl dezactivați sau să semnați singur nucleul.
Am urmat asta ghid.
Dar pasul de bază al semnării nucleului este:
faceți un fișier numit mokconfig.cnf
cu textul:
# Această definiție oprește eșecul următoarelor linii dacă HOME nu este
# definit.
ACASĂ = .
RANDFILE = $ENV::HOME/.rnd
[ solicitat ]
nume_distins = req_distinguished_name
x509_extensions = v3
string_mask = utf8only
prompt = nu
[ req_distinguished_name ]
countryName = <CODUL TĂRĂRII>
stateOrProvinceName = <STATUL TĂU>
localityName = <Orașul TĂU>
0.organizationName = <organizația DVS.>
commonName = Cheie de semnare de pornire sigură
Adresa de e-mail = <Adresa ta de e-mail>
[v3]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = critic, CA:FALSE
extendedKeyUsage = codeSigning,1.3.6.1.4.1.311.10.3.6
nsComment = „Certificat generat OpenSSL”
fișier <> părți cu informațiile dvs. Asigurați-vă că utilizați doar două caractere pentru țară, stat și oraș, de exemplu: US CA LA
Creați cheia publică și privată pentru semnarea nucleului:
openssl req -config ./mokconfig.cnf \
-new -x509 -newkey rsa:2048 \
-nodes -days 36500 -outform DER \
-keyout „MOK.priv” \
-out „MOK.der”
Convertiți cheia și în format PEM (mokutil are nevoie de DER, sbsign are nevoie de PEM):
openssl x509 -in MOK.der -inform DER -outform PEM -out MOK.pem
Înregistrați cheia pentru instalarea lamei:
sudo mokutil --import MOK.der
Reporniți sistemul. Veți întâlni un ecran albastru al unui instrument numit MOKManager. Selectați „Enroll MOK” și apoi „View key”. Asigurați-vă că este cheia creată de dvs. la pasul 2. Apoi continuați procesul și trebuie să introduceți parola pe care ați furnizat-o la pasul 4. Continuați cu pornirea sistemului.
Verificați cheia dvs. este înregistrată prin:
sudo mokutil --list-enrolled
Semnează-ți kernel-ul instalat (ar trebui să fie la /boot/vmlinuz-[KERNEL-VERSION]:
sudo sbsign --key MOK.priv --cert MOK.pem /boot/vmlinuz-[KERNEL-VERSION]-surface-linux-surface --output /boot/vmlinuz-[KERNEL-VERSION]-surface-linux-surface. semnat
sudo cp /boot/initrd.img-[KERNEL-VERSION]-surface-linux-surface{,.signed}
sudo update-grub
acum poti reporni =)