Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ฮาร์ดแวร์ >> ฮาร์ดแวร์

Lenovo Ideapad G50-70: NVRAM กลายเป็น Read-Only ระหว่างทดสอบ Linux

ถ้ามีคนคนหนึ่งที่จะผลักดันฮาร์ดแวร์ไปขอบเขต มันคือผม ในต้นปี 2015 ผมซื้อ Lenovo Ideapad G50-70 ซึ่งผมอุทิศให้กับการทดสอบซอฟต์แวร์อย่างเต็มที่ รวมถึง Linux distro หลายร้อยรุ่น ผ่านไปสองปีครึ่ง สิ่งต่างๆ เปลี่ยนไป

เกิดอะไรขึ้น? ตามที่ผมทำเสมอ ผมดาวน์โหลด distro ISO ใหม่ เขียนลง thumb drive แล้ว cycle แล็ปท็อป เพื่อให้บูทจากอุปกรณ์ภายนอก เพียงแค่นี้ไม่เกิด อุปกรณ์ไม่ถูก recognize What. Me no likely คิดว่ามีปัญหากับ Etcher version เฉพาะ โปรแกรมที่เลือกสำหรับเขียนข้อมูล ผมลองเวอร์ชันเก่ากว่า ผลลัพธ์เหมือนกัน ลอง thumb drive ตัวอื่น ไม่ได้ ลอง 3 distro ต่างกัน สองตัวติดตั้งอยู่บนกล่องแล้ว ไม่ได้อะไร

การสืบสวน

เรื่องราวซับซ้อนขึ้น ผมไม่จำลำดับความคิดและไอเดียที่เกิดขึ้นเต็มที่ แตผมตัดสินใจโฟกัสที่ฝั่งซอฟต์แวร์ก่อน ก่อนทำ troubleshooting ฮาร์ดแวร์เพิ่มเติม

ตอนนี้ distro ที่ควบคุมการตั้งค่า multi-boot ที่ซับซ้อนบนเครื่องคือ openSUSE Leap 42.3 ผมจำได้ว่า ระหว่างติดตั้ง มันถามว่าอยาก enable Secure Boot support ไหม และอาจเป็นเหตุผลที่ระบบปฏิเสธอุปกรณ์บูทใหม่ ไมเหมือนจะเป็นเพราะมี distro อื่นที่มี image ที่ signed valid แต่ก็ลอง เปลี่ยนการตั้งค่า reboot ไม่ได้อะไร

โอเค ผมตัดสินใจตั้งค่า Kubuntu Zesty เป็น distro ที่ควบคุม multi-boot ของแล็ปท็อป เพื่อให้แน่ใจว่าไม่ใช่ openSUSE ที่ทำให้ทุกอย่างเสีย แม้มีฟิลแล้วว่าจะไม่ช่วย แต่คุณต้องทำงานช้าและอดทน เพื่อไม่ให้พลาดอะไร ไปเลย ตอนที่ผมทำ GRUB & EFI recovery tutorial แล้ว มีหลายวิธี restore bootloader และขณะทำ ผมเห็นนี้:

Installing for x86_64-efi platform.
Could not delete variable: Interrupted system call
Could not add entry to BootOrder: Interrupted system call
Installation finished. No error reported.

ไม่ดี ผมลองใช้ efibootmgr โดยตรง ได้ error เหมือนกัน ณ จุดนี้ ผมไปออนไลน์ พบ reference หลายแห่งถึงปัญหานี้ แปลกหรือไม่แปลก กลุ่มผู้ใช้ openSUSE จะร้องเรียนเรื่องนี้เหมือนกัน และว่าพวกเขาไม่สามารถเปลี่ยนแปลง UEFI setup ได้ นำไปสู่ความหงุดหงิดคล้ายผม แต่ไม่ได้แค่นั้น Arch, Debian, Fedora ใดๆ ก็ตาม

ผมตัดสินใจ troubleshoot และลองเปลี่ยน boot manager หลายวิธี ลอง efibootmgr ลอง bcdedit ผ่าน Windows 10 ที่นั่นก็ได้ error คล้ายกัน:

bcdedit.exe /import newbcd /clean
The store import operation has failed.
The request was aborted.

ผมลองเปลี่ยนอะไรก็ได้ในเมนู UEFI ดูว่าจะทำให้ต่างออกไปไหม ทายแล้ว ไม่ว่าจะทำอะไร การเปลี่ยนแปลงไม่ stick หลัง reboot ดูเหมือน NVRAM กลายเป็น read only

ขั้นตอนต่อไป ... และไม่ได้

ผมลอง hardware tricks เล็กน้อย — ถอดแบตเตอรี่ กดปุ่มพาวเวอร์ค้าง ไม่ได้ ลอง re-flash UEFI น่าเสียดาย BIOS versions ตรงกัน และ Lenovo utility ไม่อนุญาตให้ flash ผมติดต่อ support ขอ diagnostic tools เพิ่มเติม แต่พวกเขาแค่ให้ KB articles ที่ public อยู่แล้ว และลิงก์ดาวน์โหลดสิ่งที่คุณโหลดได้เอง

ผมหา BIOS tool เวอร์ชันเก่าเจอ — แม้จะยากในการค้นหา แต utility ไม่อนุญาตให้ flash เวอร์ชันที่เก่ากว่าปัจจุบัน ผมหาวิธีบังคับ process ไม่ได้ ไม่ไป

ตอนนี้ทำไง

ตอนนี้ ผมมีแล็ปท็อปที่ทำงานเต็มที่แตมีการตั้งค่าคงที่ หมายถึงไม่สามารถใช้ทดสอบ distro ใหม่ได้ — สามารถใช้ทดสอบ in-vivo upgrade และ tutorial เรื่องซอฟต์แวร์จริงๆ แท้จริงก็ทำได้ แตเป็นหัวข้อบทความแยก และค่อนข้างอันตราย อีกเรื่องหนึ่ง ตอนนี้ setup คงที่ และรวมในลำดับ partition:

  • Windows 10 Home (/dev/sda5)
  • Xubuntu 17.04 Zesty Zorba (/dev/sda6)
  • Ubuntu 16.04 Xenial Xerus (/dev/sda7)
  • CentOS 7.2 KDE (/dev/sda8)
  • Manjaro 17.0.1 Gellivara Xfce (/dev/sda9)
  • OpenSUSE Leap 42.3 Plasma (/dev/sda13)
  • Kubuntu 17.04 Zesty Zeus (/dev/sda14)
  • Fedora 25 Workstation Gnome (/dev/sda15)

ดังนั้นผมมี eight-boot setup ที่น่าสนใจ ไม่ใช่สิ่งที่คนส่วนใหญ่จะทำหรือตั้งค่า และผมติดตั้ง distro instances ประมาณ 200-300 รอบใน 2.5 ปี เพิ่ม bootloader updates, bootloader order changes และข้อเท็จจริงว่า data ถูก flash ลง NVRAM หลายชิ้น แต่ละชิ้นทำให้ memory strip น้อยลง เราพูดถึงประมาณ 1000 flashes หรือมากกว่า ดังนั้นผมคงทำให้ semiconductor band ใส่จนไม่เหลือ electron

Techies ส่วนใหญ่ (คนทั่วไปใช้แค่สิ่งที่มี) อาจส่งแล็ปท็อปในอายุการใช้งานปกติ 3-5 ปี ผ่านการติดตั้งเพียงน้อยมาก ไม่เกิน 10 ครั้ง ผมเกินจำนวนนี้ประมาณสองออเดอร์ของ magnitude เราพูดถึง 300-500 laptop years ของ UEFI abuse และน่าจะเป็นเหตุผลของความล้มเหลวเล็กนี้นี้

นี่ยังหมายถึง — ชั่วคราว — จนกว่าผมจะตัดสินใจซื้อเครื่องทดสอบใหม่ ผมจะทดสอบ distro ใหม่บน LG RD510 เก่าของผม ตามที่เห็นกับ Antergos และบางตัวอื่น แค่ dual boot กับ processor เก่า แต่อาจน่าสนใจกว่าเพราะข้อจำกัดประสิทธิภาพและการมีการ์ด Nvidia ผมยังคงทำ cool bits และ pieces ทั้งหมด ไม่มี UEFI และน่าจะไม่มีปัญหา hardware กับ network แต่ผมจะพยายามให้รีวิวที่ละเอียด จริงใจ และขจัดใจ Queue เขียนของผมยาวมาก พูดถึง 3 เดือนของบทความที่เขียนแล้ว บางส่วนเสร็จตอน G50 ทำงานดี จดจำไว้ ควรจะน่าสนใจ และสนุก

อีกอย่าง — ผมขอถาม คุณมีไอเดียไหมว่าทำต่อไง ผมไม่keen ที่จะแยกแล็ปท็อป อาจไม่มี CMOS battery และการเปลี่ยนแปลงแล็ปท็อปอย่างรุนแรงอาจนำไปสู่ bricked device ดังนั้น ถ้าคุณมีคำแนะนำ และอย่าค้นออนไลน์ ผมทำไปแล้ว ถ้าคุณมีความเชี่ยวชาญทางเทคนิقส่วนตัวจริงๆ โปรด email มาบอกความคิดและทริก อย่างที่ไม่ทำลาย เป้าหมายคือพยายาม revive NVRAM โดยไม่ฆ่าแล็ปท็อป แสดงออกมา

สรุป

ขณะเขียนบทความนี้ ผมมีความคิด หรือถ้าทำการทดสอบมากมายกับ firmware flashing หลายๆ ครั้ง การใช้ Legacy mode อาจช่วย หมายถึงไม่มี UEFI mode แต่นั่นอาจไม่แย่ ในทั่วไป ทั้ง flashy สิ่งนี้ใช้กับ router ทุกครั้งที่เปลี่ยน config cell ตาย จดจำไว้ G50 กลายเป็น special test case และ oldster LG กลับมาด้วยเสียงดัง จนกว่าจะพบผู้สืบราชินาสมควร Tux Vivat!

Cheers.