من چون سواد و اطلاعات زیادی از لینوکس ندارم (البته از ویندوز هم ندارم )شاید خیلی از مطالب شما رو متوجه نشدم
مشکلی نیست. باز هم میشه مشکل فعلی رو حل کرد. اون توضیحات رو میگم تا بدونید چرا دارید اون دستورات رو وارد میکنید.
فقط اینو فهمیدم که چون درایور وایرلس من مجوز نداره نمیشه رو uefi کار کنه در صورتیکه با یه دانگل وایرلس بدون مشکل کار میکنه
نه دقیقا.
درایور وایفای شما همراه کرنل نیست. (به خاطر مجوزش. broadcom یه مجوز سختگیر برای اون درنظر گرفته)
به دلیل اینکه همراه کرنل نیست، جدا کامپایل میشه.
وقتی که جدا کامپایل میشه، امضایی نداره.
وقتی که secure boot فعاله، کرنل ماژولهایی که امضای اونها رو معتبر نمیدونه (یا امضا ندارند) رو بارگذاری نمیکنه.
نتیجه اینه که وایفای شما کار نمیکنه.
اوبونتو سعی کرده با انجام یه سری کارها به صورت خودکار، کار رو برای کاربر راحتتر کنه.
به یه دلیلی اینکارها درست انجام نشده و کرنل امضای اون ماژول رو معتبر حساب نمیکنه. الان ماژولی که درایور وایفای شما رو داره، امضا شده هست. ولی کرنل امضای اون رو معتبر حساب نمیکنه.
شما میتونید secure boot رو خاموش کنید و اونوقت این ماژول هم بدون مشکل بارگذاری میشه و وایفای شما هم شروع به کار میکنه.
به دلیل اینکه میخواهید ویندوز ۱۱ نصب کنید، باید secure boot روشن باشه.
شما اصلا نمیتونید (یا نمیدونید چجوری) secure boot رو توی تنظیمات uefi خاموش کنید.
با کنار هم گذاشتن گزارههای بالا، به این نتیجه میرسیم که راه حل اینه که کاری کنیم تا کرنل، امضای اون ماژول رو معتبر حساب کنه.
راه حل باید جوری باشه که موقع بروزرسانیهای آینده، باز هم کار بده و یه مشکل دیگه ایجاد نکنه.
حالا امکان داره اگه من لپتاپ دیگه ای داشتم که همه درایورهاش توسط کرنل شناخته میشه این مشکل وجود نداشت
کرنل یه سری درایور (در قالب ماژول) همراه خودش داره که از تعداد زیادی از سختافزارها پشتیبانی میکنند.
این جمله دقیق نیست: "اگه من لپتاپ دیگه ای داشتم که همه درایورهاش توسط کرنل شناخته میشه این مشکل وجود نداشت".
این یکی بهتر و دقیقتره: "اگه من لپتاپ دیگه ای داشتم که همه درایورهاش همراه کرنل بود، این مشکل وجود نداشت.".
البته زمانیکه لینوکس رو تنهایی نصب میکنم هیچ مشکلی نیست و بعد از غیرفعال کردن سکیور بوت همه چیز اوکیه مشکل از زمان دوال بوت بوجود میاد . پس در واقع مشکل من بیشتر یه مشکل موردیه .
فکر نکنم مشکل خیلی عمیق باشه.
حالا یا باید تصمیم بگیرم کلا کوچ کنم رو لینوکس و شروع کنم یادگیری یا برم رو حالا legacy
حالا پیشنهاد میکنید به خاطر رفع مشکل کلا برم رو legacy ؟ و مزایای gpt رو از دست بدم ؟
اگه برید روی حالت legacy، نمیتونید ویندوز ۱۱ رو نصب کنید. ویندوز ۱۱ از نصب روی حالت legacy پشتیبانی نمیکنه.
این مشکل احتمالا به زودی حل میشه.
دیشب هم آپدیت کردم به 22.04 که دیدم فرقی نکرد و همه چیز مثل قبل موند.
اوبونتو فعلی رو ارتقا دادید یا جدید نصب کردید؟
خروجی این دستورات رو دوباره قرار بدید.
mokutil -l
modinfo wl
efibootmgr -v
ls -l /var/lib/shim-signed/mok/
openssl x509 -inform DER -in /var/lib/shim-signed/mok/MOK.der -noout -text
اگه دستور یکی به آخر چیزی نشون نداد، آخری هم کار نمیکنه.
reza@reza-SVF1521BYGB:~$ /var/lib/shim-signed/mok
bash: /var/lib/shim-signed/mok: Is a directory
reza@reza-SVF1521BYGB:~$ cd /var/lib/shim-signed/mok
reza@reza-SVF1521BYGB:/var/lib/shim-signed/mok$ ls
MOK.der MOK.priv
نگفتم که اینها رو همینجوری توی ترمینال کپی کنید. گفتم یه سری فایل توی اون دایرکتوری ذخیره میشن.
قبل از اینکه ادامه بدید، لازمه بدونید bash و فایل چیه.
توی سیستمعاملهای یونیکسی مثل mac os و شبه یونیکسی مثل همین اوبونتو یا freebsd، خیلی چیزها فایل هستند. حتی دایرکتوری هم یه نوع فایل به حساب میاد. کلا هرچیزی که ls میتونه نشون بده رو یه فایل به حساب بیارید.
میتونید دایرکتوری رو معادل پوشه یا فولدر (folder) توی ویندوز در نظر بگیرید.
bash یه برنامه هست. به طور ساده میتونید اون رو یه رابط بین خودتون و بقیه برنامهها بدونید. وقتی که ترمینال رو باز میکنید، اون چیزی که دستورات رو اجرا میکنه و خروجی اونها رو نمایش میده، bash هست. bash یه پوسته هست. پوستههای دیگهای هم هستند. مثل sh یا zsh یا csh یا ...
وقتی توی bash، مسیر یه فایل رو تایپ میکنید و کلید enter رو فشار میدید، bash سعی میکنه اون فایل رو اجرا کنه.
مثلا اگه این رو توی ترمینال بزنید، bash، فایل ls توی دایرکتوری /usr/bin/ رو اجرا میکنه.
/usr/bin/ls
بسته به اینکه مسیر فایلی که وارد میکنید کجاست، چه دسترسی داره و چه نوعی هست، ممکنه اون فایل واقعا اجرا بشه. ممکن هم هست خطا بگیرید.
مثلا اگه مسیر یه دایرکتوری رو بدید و enter رو بزنید، bash خطا میده که این چیز یه دایرکتوری هست. یا اگه اجازه اجاره کردن اون فایل رو نداشته باشید، باز هم خطا میگیرید.
root@reza-SVF1521BYGB:/sys/firmware/efi/efivars# /sys/firmware/efi/efivars/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c
bash: /sys/firmware/efi/efivars/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c: Permission denied
root@reza-SVF1521BYGB:/sys/firmware/efi/efivars#
اینجا با وارد کردن مسیر یه فایل، bash سعی کرده اون رو اجرا کنه. ولی این فایل دسترسی اجرایی نداره و نمیشه اجراش کرد. (تقریبا همیشه، چیزهایی که توی /sys/ هستند، دسترسی اجرایی ندارند)
حتی اگه دسترسی اجرایی هم داشت، باز هم bash اون رو اجرا نمیکرد چون اصلا یه فایلی که قابل اجرا باشه، نیست. یه فایلی که فقط یه سری اطلاعات داره و برای اجرا شدن، ساخته نشده.