วิธีอัพเดต BIOS, UEFI หรือ Microcode จาก Linux

Die shot หรือ micrograph ของ Intel XEON E5

คุณรู้ วิธีอัปเดต BIOS จากพีซีของคุณ? ด้วยช่องโหว่เช่น Spectre, Meltdown และตัวแปรทั้งหมดและช่องโหว่ด้านความปลอดภัยอื่น ๆ ที่ตรวจพบในฮาร์ดแวร์โดยเฉพาะอย่างยิ่งในซีพียูแน่นอนว่าคุณได้อ่านหลายครั้งว่าหลาย ๆ คนได้รับการแก้ไขโดยรู้วิธีอัปเดต BIOS หรือ UEFI ของคอมพิวเตอร์ของคุณ เนื่องจากจำเป็นต้องมีการอัปเดตหรือแพตช์สำหรับไมโครโค้ดที่ใช้โดยซีพียูดังนั้นจึงเปลี่ยนวิธีการทำงานของหน่วยควบคุมซีพียูเพื่อไม่ให้เสี่ยงต่อภัยคุกคามดังกล่าว

นอกจากช่องโหว่แล้ว สามารถอัพเดตเฟิร์มแวร์ได้ ด้วยสาเหตุอื่น ๆ อีกมากมายเช่นความผิดปกติของอุปกรณ์ฮาร์ดแวร์ข้อผิดพลาดคงที่ในซอฟต์แวร์ในลักษณะที่อธิบายไม่ได้การอัปเดตเพื่อเพิ่มฟังก์ชันการทำงานบางอย่างเป็นต้น แต่อย่างที่บอกในช่วงไม่กี่เดือนที่ผ่านมาเราได้ยินคำนี้หลายครั้งเกินไปเนื่องจากปัญหาด้านความปลอดภัยที่ค่อนข้างสำคัญในบางกรณีและเกี่ยวข้องกับวิธีที่ไมโครโปรเซสเซอร์สมัยใหม่จัดการกับการกระโดดแคช FPU และการดำเนินการเก็งกำไร แม้ว่าในกรณีอื่นจะถูกตรวจพบในส่วนอื่น ๆ ของระบบเช่นชิปเซ็ตหรือโปรเซสเซอร์ความปลอดภัยบางตัวที่รวมอยู่ในแพลตฟอร์มเหล่านี้ ...

เฟิร์มแวร์คืออะไร?

ชิป BIOS ของเมนบอร์ด

เราทุกคนค่อนข้างชัดเจนว่าฮาร์ดแวร์ (ส่วนทางกายภาพและส่วนที่เห็นได้ชัดของคอมพิวเตอร์นั่นคืออุปกรณ์อิเล็กทรอนิกส์) และซอฟต์แวร์ (ส่วนตรรกะที่ไม่สามารถสัมผัสได้: โปรแกรม) คืออะไร แต่ระหว่างฮาร์ดแวร์และซอฟต์แวร์หรือระหว่างฮาร์ดแวร์และเคอร์เนลของระบบปฏิบัติการมีอย่างอื่น: เฟิร์มแวร์. เฟิร์มแวร์มีอยู่ในอุปกรณ์และชิ้นส่วนทั้งหมดของคอมพิวเตอร์ตั้งแต่เมาส์ออปติคัลไดรฟ์ไปจนถึง GPU และ CPU ที่ทำงานด้วยไมโครโค้ด

แต่มันคืออะไร? คุณสามารถพูดได้ว่า คือรหัสกล่าวคือซอฟต์แวร์และองค์ประกอบเชิงตรรกะ แต่คราวนี้มันไม่สามารถเปลี่ยนแปลงได้ ทำงานในระดับต่ำและควบคุมการทำงานของวงจรอิเล็กทรอนิกส์โดยตรง เฟิร์มแวร์นี้ด้วยความช่วยเหลือของคอนโทรลเลอร์หรือไดรเวอร์ช่วยให้เมื่อเคอร์เนลของระบบปฏิบัติการสั่งให้ฮาร์ดแวร์ทำงานมันจะดำเนินการ โปรแกรมหรือรหัสนี้ได้รับการบันทึกโดยผู้ผลิตอุปกรณ์ในหน่วยความจำที่มักจะเป็นแฟลชหรือ ROM บางประเภทเช่น EEPROM

แต่หนึ่งในเฟิร์มแวร์ที่เราสนใจมากที่สุดในบทความนี้คือ BIOS หรือ UEFI ของระบบเนื่องจากเป็นเฟิร์มแวร์ที่สำคัญมากซึ่งมีฟังก์ชั่นต่างๆในระหว่างการเริ่มต้นและการทำงานของอุปกรณ์ ตัวอย่างเช่นรหัสนี้มีหน้าที่ในการเปิดใช้งานเครื่องในระหว่างการเริ่มต้นระบบตรวจจับฮาร์ดไดรฟ์หรือสื่อที่มีระบบปฏิบัติการการตรวจสอบบางอย่างที่รบกวนเฟิร์มแวร์อื่น ๆ ของส่วนประกอบและอุปกรณ์ต่อพ่วงและให้การควบคุมเคอร์เนลเมื่อระบบเริ่มทำงาน เริ่ม ...

เหตุใดการอัปเดตจึงมีผลต่อ CPU?

หมุด CPU

... และสิ่งนี้เกี่ยวข้องกับ CPU ก็เพียงพอแล้ว ปรากฎว่าซีพียูมี ชุดควบคุม, ชุดควบคุมนี้เป็นวงจรที่มีหน้าที่ควบคุมส่วนที่เหลือของไมโครโปรเซสเซอร์หรือซีพียูเช่นการถอดรหัสคำสั่งและการทำให้ข้อมูลด้วยตัวถูกดำเนินการไปที่รีจิสเตอร์ที่เหมาะสมจากนั้นจึงเปิดใช้งานหน่วยการทำงานบางอย่างเช่น ALU หรือ FPU และดำเนินการบางอย่างกับข้อมูลขึ้นอยู่กับประเภทของคำสั่งที่กำลังดำเนินการ คำแนะนำเหล่านี้มาจากรหัสโปรแกรมหรือซอฟต์แวร์ที่กำลังประมวลผลในขณะนั้นเนื่องจากตามที่คุณควรทราบโปรแกรมประกอบด้วยชุดคำสั่งตามลำดับ

อย่างที่คุณสามารถจินตนาการได้ว่าชุดควบคุมนี้ทำงานในลักษณะที่ผู้ผลิตหรือผู้ออกแบบสร้างขึ้น ในบางกรณีชุดควบคุมอาจต่อสายได้นั่นคือมักจะค่อนข้างเร็ว แต่ไม่ยืดหยุ่นมากนักเนื่องจากมีการใช้งานโดยตรงกับวงจรที่เฉพาะเจาะจงมาก ในทางกลับกันยังมีวงจรที่ตั้งโปรแกรมได้นั่นคือวงจร "เปิด" ที่ค่อนข้างจะทำงานได้ไม่ทางใดก็ทางหนึ่งตาม ไมโครโค้ดหรือเฟิร์มแวร์. ดังนั้นหากเราเปลี่ยนเฟิร์มแวร์หรือไมโครโค้ดเราสามารถสร้างชุดควบคุมและซีพียูจึงทำงานแตกต่างกันหรือแก้ไขข้อบกพร่องหรือช่องโหว่บางอย่างได้

ฉันไม่ต้องการใช้เทคนิคมากเกินไปฉันต้องการให้บทความนี้เข้าถึงผู้คนให้มากที่สุดและทุกสิ่งที่ฉันต้องการจะพูดนั้นเข้าใจได้ง่าย ... และในหลาย ๆ เครื่องปรากฎว่ารหัสนี้มักจะรวมอยู่ใน BIOS หรือ UEFI แม้ว่าบางครั้งเคอร์เนลสามารถอัปเดตไมโครโค้ดได้ในระหว่างการบูตแต่ละครั้ง แต่การบันทึกการอัปเดตหรือการแก้ไขในหน่วยความจำที่ลบเลือนนั่นคือใน RAM โดยหลีกเลี่ยงความจำเป็นในการปรับเปลี่ยน BIOS / UEFI

จะอัพเดต BIOS / UEFI จาก Linux ได้อย่างไร?

อินเตอร์เฟซ UEFI ASUS

ในการอัปเดต BIOS / UEFI จาก Linux หรือไมโครโค้ดเรามาดูรายละเอียดกัน ทั้งสองขั้นตอน

ก่อนที่จะทำการอัปเดตไมโครโค้ดคุณจำเป็นต้องมี อัพเดตเฟิร์มแวร์ BIOS / UEFIมิฉะนั้นอาจไม่ทำงาน ดังนั้นตรวจสอบเว็บไซต์ของผู้ให้บริการ บริษัท ของคุณเช่น Phoenix, Award เป็นต้นหรือเว็บไซต์สนับสนุนด้านเทคนิคของเมนบอร์ดรุ่นของคุณซึ่งโดยปกติจะมีแพ็คเกจสำหรับอัปเดตระบบเหล่านี้

การอัปเดต BIOS / UEFI เป็นสิ่งที่ละเอียดอ่อนดังที่คุณเห็นในหัวข้อสุดท้ายเกี่ยวกับความเสี่ยง นั่นคือเหตุผลที่ฉันไม่แนะนำให้คุณทำหากคุณไม่แน่ใจว่ากำลังทำอะไรอยู่และ หากคุณต้องการอัปเดต หรือคุณต้องการ แต่คุณมีความรู้ไม่เพียงพอควรปรึกษาผู้เชี่ยวชาญเสมอ นอกจากนี้ฉันขอแนะนำให้คุณดูโครงการต่างๆเช่น fwupd, BIOSDisck, Flashrom เป็นต้นซึ่งเป็นเครื่องมือที่ใช้งานได้จริงซึ่งจะช่วยเราในกระบวนการนี้

หนึ่งในสิ่งที่ฉันชอบมากที่สุดคือ แฟลชรอมมันเกี่ยวกับ แพ็คเกจที่ให้เครื่องมือแก่เรา ที่ช่วยในการระบุอ่านเขียนตรวจสอบและลบชิปแฟลช สิ่งนี้ไม่เพียงทำหน้าที่ในการแฟลช BIOS / UEFI / CoreBoot เท่านั้น แต่ยังทำหน้าที่แก้ไขความทรงจำแฟลชอื่น ๆ ของการ์ดเครือข่าย GPU ฯลฯ ในอุปกรณ์อื่น ๆ ที่มีเฟิร์มแวร์ที่ปรับเปลี่ยนได้ นอกจากนี้ยังรองรับระบบปฏิบัติการที่หลากหลายและอุปกรณ์และบอร์ดรุ่นต่างๆมากมาย

  • ติดตั้งแพ็คเกจ flashrom ในการแจกจ่ายของคุณโดยใช้ตัวจัดการแพ็คเกจที่คุณใช้ตามปกติเนื่องจากเป็นเครื่องมือที่อยู่ท่ามกลางที่เก็บของการแจกแจงที่สำคัญที่สุด
  • ประเทศสหรัฐอเมริกา รูทหรือ sudoเนื่องจากในการใช้งานคุณต้องมีสิทธิพิเศษที่จะเป็นสิ่งที่ละเอียดอ่อน
  • ระบุเฟิร์มแวร์ ซึ่งเราใช้เพียงแค่เรียกใช้คำสั่ง:
flashrom

  • ฉันขอแนะนำให้คุณทำ สำรอง ROM ปัจจุบันของคุณในกรณีที่คุณพบว่าการอัปเดตใหม่ใช้งานไม่ได้และคุณต้องการย้อนกลับ สำหรับมัน:
flashrom -r copia_seguridad.bin

  • ใช่ฉันรู้ เรามี ROM ใหม่ ซึ่งเราดาวน์โหลดมาจากแหล่งที่เชื่อถือได้เราสามารถใช้คำสั่งต่อไปนี้เพื่อแฟลชตัวอย่างเช่นหากการอัปเดตใหม่ของเราเรียกว่า uefi-sm.bin:
flashrom -wv uefi-sm.bin

สำหรับข้อมูลเพิ่มเติมโปรดดูคู่มือกับ มนุษย์ flashrom.

อัปเดตไมโครโค้ด:

ในการอัปเดตไมโครโค้ดของ CPU ของเราโดยไม่ต้องสัมผัส BIOS / UEFI นั่นคือด้วยการปรับเปลี่ยนง่ายๆในเคอร์เนล Linux คุณสามารถเลือกติดตั้งแพ็คเกจที่จำเป็นสำหรับ CPU ของคุณได้ ตัวอย่างเช่นหากคุณมี CPU AMD ที่ทันสมัยสิ่งปกติก็คือ ติดตั้งแพคเกจ ที่เรียกว่า amd64-ไมโครโค้ดและสำหรับแพ็คเกจ Intel อินเทลไมโครโค้ด (ถ้าคุณใช้ openSUSE, SUSE, RHEL, CentOS ฯลฯ แพคเกจจะถูกเรียก ไมโครโค้ด_ctl, และสำหรับ Arch intel-ucode หรือ amd-ucode ... ) ที่คุณสามารถค้นหาได้ในเว็บไซต์ที่เชื่อถือได้ ... (นั่นคือถ้าเป็นเครื่อง x86 ถ้าเป็น ARM หรืออื่นให้ไปที่เว็บไซต์ของผู้ผลิต) Insisto a pesar de parecer un pesado, no descargues este tipo de paquetes desde fuentes desconocidas, es muy importante. Bien, ahora que ya lo tenemos descargado e instalado, puede que el procedimiento sea diferente en cada distribución y que implique activar algunos paquetes o actualizaciones restringidos como los propietarios…

เมื่อติดตั้งแพ็กเกจเหล่านั้นและการตั้งค่าระบบที่อ้างถึงการอัปเดตที่กำหนดค่าไว้เป็นอย่างดี lการอัปเดตความปลอดภัยของตัวเอง ที่ติดตั้งระบบปฏิบัติการจะรวมแพตช์ไมโครโค้ดประเภทนี้ไว้แล้วหากตรวจพบช่องโหว่ร้ายแรงเช่น Spectre, Meltdown เป็นต้น

หากคุณต้องการคุณสามารถรับข้อมูลไมโครโค้ดจาก distro ของคุณโดยใช้:

dmesg | grep microcode

และด้วยสิ่งที่เราจะได้รับ รายละเอียดไมโครโค้ดในความเป็นจริงหากเราดำเนินการคำสั่งนี้ก่อนติดตั้งแพ็คเกจที่ฉันกล่าวถึงก่อนหน้านี้ (หลังจากติดตั้งจำเป็นต้องรีสตาร์ท) และหลังจากนั้นเราจะเห็นว่ามันแสดงให้เราเห็นการเปลี่ยนแปลงหากมีการอัปเดตที่พร้อมใช้งานที่ติดตั้งไว้

บางครั้ง AMD, Intel และผู้ผลิตหรือนักออกแบบซีพียูรายอื่นจะจัดหา tarball ด้วย binary blobs เพื่ออัปเดตไมโครโค้ดหรือเฟิร์มแวร์ หากคุณดาวน์โหลดหนึ่งในแพ็คเกจเหล่านี้จากสถานที่ที่เชื่อถือได้ให้ทำตามคำแนะนำที่ผู้จัดจำหน่ายให้มาหรือดูไฟล์ README

อันตรายและคำแนะนำก่อนอัพเดต BIOS

เมนบอร์ดสำหรับการรีไซเคิล

การอัปเดตเฟิร์มแวร์หรือไมโครโค้ด ของ CPU หมายถึงในกรณีส่วนใหญ่การอัปเดตรหัสปิดที่จัดหาโดยผู้ให้บริการ CPU ที่เรามีไดรเวอร์เคอร์เนลแบบปิด (binary blobs) เป็นต้น ฉันต้องการทำให้เรื่องนี้ชัดเจนเนื่องจากไม่ทราบเนื้อหาและวิธีการดำเนินงานและดูเหมือนว่ามีเหตุผลที่คุณควรรู้ โดยหลักการแล้วหากคุณไม่ใช้ฮาร์ดแวร์ฟรีคุณไม่มีทางเลือกอื่นนอกจากไว้วางใจผู้ผลิตหรือผู้ออกแบบ CPU หรือเมนบอร์ดของคุณ แต่ใช่ไม่เคยดาวน์โหลดไมโครโค้ดหรือเฟิร์มแวร์จากเว็บไซต์ที่ไม่เป็นทางการเนื่องจากเป็นสิ่งที่ละเอียดอ่อนมาก

ในความเป็นจริงไม่เพียง มันละเอียดอ่อน ด้วยเหตุผลด้านความปลอดภัยเนื่องจากคุณอาจทำให้อุปกรณ์ใช้งานไม่ได้โดยสิ้นเชิง แม้ว่าคุณจะดาวน์โหลดเฟิร์มแวร์จากเว็บไซต์ที่มีชื่อเสียง แต่อาจมีบางอย่างผิดพลาดในระหว่างกระบวนการเช่นไฟดับและทำให้การติดตั้งอัปเดตและเฟิร์มแวร์เสียหายโดยสิ้นเชิงซึ่งหมายความว่าคุณอาจกำลังคิดที่จะใช้จ่ายเงินเพื่อซื้อ เมนบอร์ดใหม่

นี่คือสิ่งที่รู้จักกันในระยะ อิฐในคำแสลงฮาร์ดแวร์นั่นคือปล่อยให้ฮาร์ดแวร์ของคุณเป็นเหมือนอิฐโดยไม่มียูทิลิตี้ใด ๆ ด้วยเหตุนี้ฉันจึงอยากบอกคุณให้ระมัดระวังและเราจะไม่รับผิดชอบต่อสิ่งที่อาจเกิดขึ้นหากคุณตัดสินใจที่จะอัปเดตเฟิร์มแวร์หรือแฟลช BIOS / EFI แต่ระวังสิ่งนี้ไม่ได้หมายความถึงความเสี่ยงเสมอไปอย่างที่ฉันได้บอกคุณไปก่อนหน้านี้ไม่จำเป็นต้อง "แตะ" BIOS / EFI เสมอไปนอกจากนี้ยังมีการอัปเดตที่มีเฉพาะในระดับ OS เท่านั้นและไม่ได้หมายความถึงความเสี่ยงเหล่านั้น .. .

ฉันหวังว่าบทช่วยสอนนี้จะเป็นประโยชน์คำถามหรือข้อเสนอแนะอย่าลืมทิ้งไฟล์ แสดงความคิดเห็น...


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. รับผิดชอบข้อมูล: AB Internet Networks 2008 SL
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   รูเบน โฮราซิโอ สเปกอกญ่า dijo

    สวัสดีสวัสดีตอนเช้าฉันต้องการติดตั้ง xubuntu 14 บนโน้ตบุ๊กของฉันและดาวน์โหลดไฟล์ติดตั้ง แต่เมื่อมันขอให้รีสตาร์ทจากปุ่ม usb ฉันเข้าสู่ไบออสและฉันไม่พบหน่วยความจำแฟลชในเมนูบูตมีคนช่วยได้ ฉันจากไปแล้วขอบคุณมาก

  2.   โฆเซ่ หลุยส์ มาเตโอ dijo

    สวัสดีเพื่อน:

    บทความนี้ดูเหมือนว่าดีสำหรับฉันแม้ว่าจะ "อันตราย" สำหรับพวกเราที่เป็นมือใหม่และขี้กลัว

    ฉันพลาดบทความดีๆมานานที่ทำให้เราเข้าใจว่าระบบเครื่องพิมพ์มัลติฟังก์ชั่นอย่างของฉัน (Canon MG 7150) ทำงานผ่าน Wifi ได้อย่างไร

    ด้วย Linux ฉันไม่เคยทำให้มันทำงานได้เต็มที่ ฉันจัดการให้เครื่องพิมพ์เชื่อมต่อด้วย USB ทำงานได้แล้ว แต่ไม่เคยใช้สแกนเนอร์ไม่ว่าจะด้วย wifi หรือสายเคเบิล

    นั่นคือเหตุผลที่วันนี้ฉันหยิบยกเรื่องนี้ขึ้นมาและในขณะเดียวกันฉันก็ขอขอบคุณที่ให้บทความที่มีคุณภาพเช่นเดียวกับปัจจุบัน แต่ในขณะเดียวกันก็อยากให้มีคนที่รู้วิธีทำให้ระบบดังกล่าวทำงานได้ง่ายขึ้น

    ขอขอบคุณและขอแสดงความนับถือ

  3.   Gabriel dijo

    ขั้นแรกให้ดูใน BIOS หากมีตัวเลือก MULTIBOOT (ซึ่งคุณต้องเปิดใช้งาน) หากไม่มีอยู่เพื่อบูตด้วย USB โดยทั่วไปเมื่อเปิดเครื่องพีซีคุณต้องกดปุ่ม F8 ค้างไว้สักครู่ (ใน พีซีเครื่องอื่นมักจะเป็น F12) และมีเมนูบูตที่แสดงตัวเลือกต่างๆ: ฮาร์ดดิสก์, ซีดี, USB ในกรณีที่มี UEFI จะต้องสร้าง USB ด้วยตัวเลือก UEFI หากไม่รู้จัก USB