Isasalin ko itong artikulong isinulat ni James Bottomley , teknikal na tagapayo ng Linux Foundation , na nagsimula sa paggawa ng isang pre-bootloader upang makapag-boot ang Linux.
Gaya ng ipinaliwanag ko sa nakaraang post ko, mayroon na tayong code para sa pre-bootloader ng Linux Foundation. Gayunpaman, nagkaroon ng pagkaantala habang nakakakuha tayo ng access sa signing system ng Microsoft.
Ang unang bagay na kailangan mong gawin ay magbayad ng $99 na bayad sa Verisign (ngayon ay Symantec) at kumuha ng Verisign-verified key. Ginawa namin ito para sa Linux Foundation, at ang gusto lang nilang gawin ay tawagan ang headquarters para i-verify ito. Ang key ay ibinabalik sa pamamagitan ng isang URL na ini-install sa iyong browser, ngunit maaaring gamitin ang mga karaniwang Linux SSL tool para kunin ito at lumikha ng isang regular na PEM certificate at key. Wala itong kinalaman sa UEFI signing, ngunit ginagamit ito para i-validate sa sysdev system ng Microsoft na ikaw ay kung sino ka na sinasabi mong ikaw. Bago ka makagawa ng sysdev account, kailangan mo itong subukan sa pamamagitan ng pagpirma sa isang executable na ibinibigay nila at pag-upload nito . Mahigpit ang kanilang mga kinakailangan na pipirmahan mo ito sa isang partikular na platform ng Windows, ngunit kahit papaano ay gumana ang sbsign, at bingo, nagawa na ang ating account.
Kapag nakagawa ka na ng account, hindi ka pa rin makakapag-upload ng mga UEFI binary para sa pagpirma nang hindi muna pumipirma ng kontratang papel . Napakabigat ng mga kasunduan, kabilang ang maraming hindi kasama na lisensya (kabilang ang lahat ng GPL para sa mga driver, ngunit hindi para sa mga bootloader). Ang pinakamabigat na bahagi ay tila lumalampas ang mga kasunduan sa mga bagay na UEFI na iyong pinipirmahan . Napagpasyahan ng mga abogado ng Linux Foundation na halos hindi ito nakakapinsala sa LF dahil hindi kami nagbebenta ng mga produkto, ngunit maaaring hindi ito katanggap-tanggap sa ibang mga kumpanya. Ayon kay Matthew Garrett, handa ang Microsoft na makipagnegosasyon sa mga espesyal na kasunduan sa mga distribusyon upang mabawasan ang ilan sa mga problemang ito.
Kapag napirmahan na ang mga kasunduan, magsisimula na ang tunay na teknikal na kasiyahan . Hindi ka basta-basta maaaring mag-upload ng UEFI binary at asahan na ito ay mapirmahan. Una, kailangan mo itong balutin sa isang .cab file . Mabuti na lang at may isang open-source na proyekto na maaaring lumikha ng mga cabinet file na tinatawag na lcab. Pagkatapos, kailangan mong lagdaan ang .cab file gamit ang Verisign key . Muli, may isa pang open-source na proyekto na maaaring gawin iyon: ang osslsigncode. Para sa sinumang nangangailangan ng mga tool na iyon, makukuha ang mga ito sa aking openSUSE UEFI Build Service repository. Ang huling balakid ay ang pag-upload ng file ay nangangailangan ng Silverlight . Sa kasamaang palad, tila hindi gumagana ang Moonlight, at kahit na sa version 4 preview, nananatiling blangko ang upload box, kaya oras na para gamitin ang Windows 7 sa ilalim ng isang KVM (kernel-based virtual machine). Kapag nakarating ka na sa bahaging iyon, kailangan mo ring patunayan na ang binary na "pipirmahan ay hindi dapat lisensyado sa ilalim ng GPLv3 o katulad na open-source na mga lisensya ." Ipinapalagay ko na ito ay dahil sa takot na mabunyag ang susi, ngunit hindi ito malinaw (ganito rin ang para sa "mga katulad na lisensyang open source").
Kapag nakumpleto na ang pag-upload, ang cabinet file ay dadaan sa pitong yugto. Sa kasamaang palad, ang unang pagsubok sa pag-upload ay natigil sa yugto 6 (ang yugto ng paglagda ng file). Pagkatapos ng anim na araw, nag-email ako sa suporta ng Microsoft at nagtanong kung ano ang nangyayari. Ang tugon: “Ang error code na ibinalik ng proseso ng paglagda ay ang iyong file ay hindi isang wastong Win32 application . Ito ba ay isang wastong Win32 application?” Ang sagot: malinaw na hindi, ito ay isang wastong 64-bit UEFI binary. Wala nang karagdagang mga tugon …
Sinubukan ko ulit. Sa pagkakataong ito, nakatanggap ako ng email para sa pag-download ng nilagdaang file, ngunit sinabi ng dashboard na nabigo ang pagpirma . Na-download at na-verify ko ito. Gumagana ang binary sa Secure Boot platform at nilagdaan gamit ang key.
paksa = / C = US / ST = Washington / L = Redmond / O = Microsoft Corporation / OU = MOPR / CN = Publisher ng Driver ng Microsoft Windows UEFI
nagbigay = / C = US / ST = Washington / L = Redmond / O = Microsoft Corporation / CN = Microsoft Corporation UEFI CA 2011Tinanong ko ang support kung bakit nagpapahiwatig ng error ang proseso, pero mayroon akong valid na download. Pagkatapos ng sunod-sunod na email, sumagot sila, "Huwag gamitin ang file na iyan; mali ang pagkakapirma nito . Babalikan kita." Hindi pa rin ako sigurado kung ano ang problema, pero kung titingnan mo ang Subject ng signing key, walang nakalagay sa key na nagpapahiwatig ng Linux Foundation . Kaya naman, pinaghihinalaan kong ang problema ay ang binary ay nakapirma gamit ang isang generic na Microsoft key sa halip na isang partikular (at maaaring bawiin) na key na naka-link sa Linux Foundation.
Gayunpaman, ito ang katayuan: Patuloy kaming maghihintay para sa Microsoft na bigyan ang Linux Foundation ng isang naka-sign at napatunayan na pre-bootloader. Kapag nangyari iyon, mai-upload ito sa site ng Linux Foundation para magamit ng lahat.
Pinagmulan: http://blog.hansenpartnership.com/adventures-in-microsoft-uefi-signing/
Gumuhit ng iyong mga konklusyon, ngunit magtatagal ito.