- เพื่อให้ HDMI dummy plug ราคาถูกที่เดิมถูกมองเป็นจอ 4K ดูเหมือนอุปกรณ์จับภาพ HDMI 1080p จึงทำการเขียน EDID EEPROM ภายในใหม่ด้วย Raspberry Pi
- dummy plug ทำให้คอมพิวเตอร์ตรวจพบการเชื่อมต่อจอภาพได้ด้วยเพียงตัวต้านทาน pull-up ที่ขา HPD และ I2C EEPROM เท่านั้น โดย EDID จะเป็นตัวกำหนดข้อมูลอุปกรณ์แสดงผล เช่น ความละเอียดที่รองรับ เสียง และ color space
- พอร์ต HDMI ของ Raspberry Pi มี I2C controller สำหรับ EDID เชื่อมต่ออยู่แล้ว จึงสามารถอ่านและเปรียบเทียบ EDID ของ dummy plug กับอุปกรณ์จับภาพได้ หากเลือกหมายเลขบัสให้ตรงกับรุ่น
- ขั้นตอนจริงประกอบด้วยการเปิดใช้ I2C, ติดตั้ง
i2c-tools, ตรวจสอบที่อยู่ 0x50, dump ด้วย get-edid และเขียน 256 ไบต์ ผ่านลูป i2cset
- หากใช้บัส I2C ผิดหรือรันคำสั่งเขียนกับจอจริง อาจทำให้ EDID หรือ EEPROM อื่นเสียหายได้ จึงต้อง parse และยืนยันอุปกรณ์เป้าหมายก่อนเขียนเสมอ
ทำให้ 4K dummy plug ดูเหมือนอุปกรณ์จับภาพ 1080p
- HDMI dummy plug ราคาถูกที่เคยซื้อจาก Amazon ทำงานเหมือนจอ 4K จึงต้องการปรับให้ดูเป็นอุปกรณ์ที่เรียบง่ายกว่าและไม่รองรับความละเอียด 4K
- เป้าหมายคือแทนที่ EDID ของ dummy plug ด้วย สำเนา EDID จากอุปกรณ์จับภาพ HDMI 1080p ตัวหนึ่งจากหลายตัวที่มีอยู่
- เมื่อเปลี่ยนเสร็จแล้ว คอมพิวเตอร์จะมองว่าเชื่อมต่ออุปกรณ์จับภาพ HDMI แทนจอ 4K
บทบาทของ HDMI dummy plug และ EDID
- dummy plug สำหรับ HDMI, DVI และแบบอื่น ๆ ไม่ได้ประมวลผลสัญญาณภาพจริง แต่มีเพียงวงจรขั้นต่ำที่ทำให้อุปกรณ์ส่งภาพอย่างคอมพิวเตอร์เชื่อว่ามีจอภาพเชื่อมต่ออยู่
- โดยทั่วไปองค์ประกอบที่ต้องมีมีสองอย่าง
- EDID มีข้อมูลอย่างผู้ผลิตจอ วันที่ผลิต ความละเอียดที่รองรับ ช่องสัญญาณเสียง และ color space
- dummy plug แบบนี้มีประโยชน์สำหรับเครื่อง headless เพราะทำให้ระบบปฏิบัติการคิดว่ามีจอภาพต่ออยู่
บัส HDMI I2C ของ Raspberry Pi
- พอร์ต HDMI ของ Raspberry Pi Zero มี I2C controller สำหรับอ่าน EDID เชื่อมต่ออยู่กับขาที่ถูกต้องแล้ว
- บัส I2C ที่ต้องใช้แตกต่างกันตามรุ่นของ Pi ดังนี้
- Pi 0-3:
/dev/i2c-2
- Pi 4:
/dev/i2c-20, /dev/i2c-21
- Pi 5:
/dev/i2c-11, /dev/i2c-12
- หากใช้ Raspberry Pi Zero ให้ตั้งค่า
edid_i2c=2
- หากใช้รุ่นอื่น ต้องเปลี่ยนหมายเลขบัสตามรายการข้างต้น
การเตรียมความพร้อม
- ใน Raspberry Pi OS Lite ที่ติดตั้งใหม่ ต้องเตรียมสภาพแวดล้อมสำหรับเข้าถึง I2C ก่อน
- รัน
sudo raspi-config แล้วเปิดใช้ I2C ใน Interface Options
- ติดตั้งเครื่องมือ I2C ด้วย
sudo apt install i2c-tools
- บน Pi Zero การเข้าถึงเครือข่ายอาจเป็นปัญหา จึงอาจต้องใช้อะแดปเตอร์ USB-Ethernet
- อีกทางเลือกคือเสียบ SD card เข้ากับเครื่องเดสก์ท็อป Debian/Ubuntu ติดตั้ง
binfmt-support และ qemu-user-static แล้ว chroot เข้า rootfs ของ SD card เพื่อรัน apt install
- ขึ้นอยู่กับสภาพแวดล้อมการทำงาน อาจต้องใช้อะแดปเตอร์ HDMI-to-Mini-HDMI ด้วย
การอ่านและตรวจสอบ EDID ต้นฉบับ
- ก่อนอื่นตรวจสอบว่า dummy plug ถูกมองเห็นเป็น EDID EEPROM หรือไม่
edid_i2c=2
i2cdetect -y $edid_i2c
- ผลลัพธ์ตรวจพบอุปกรณ์ I2C ที่ที่อยู่
0x50 ซึ่งเป็นที่อยู่ที่ใช้กับ EDID
- dummy plug ตัวนี้ตอบสนองที่
0x51 ถึง 0x57 ด้วย ซึ่งดูเหมือนจะเป็นสำเนาของ EDID เดียวกัน
- dummy plug ไม่ได้ทำงานแบบนี้ทุกตัว โดยอีกตัวหนึ่งตรวจพบเพียง
0x50 เท่านั้น
- จากนั้น dump EDID ต้นฉบับด้วยคำสั่งต่อไปนี้
get-edid -b $edid_i2c > edid-orig.bin
get-edid แสดงว่าสามารถอ่าน EDID ขนาด 256 ไบต์ จากบัส I2C 2 ได้สำเร็จ
- ทำ dump เดียวกันสองครั้งแล้วเปรียบเทียบว่าผลลัพธ์ตรงกันหรือไม่
- จากนั้นใช้
od แสดง hex dump แล้วนำไปวางใน edidreader.com เพื่อตรวจสอบว่าเป็น EDID ที่ถูกต้องหรือไม่
od -v -An -txC edid-orig.bin
เขียน EDID ของอุปกรณ์จับภาพลงใน dummy plug
- หลังจากสำรอง EDID เดิมของ dummy plug แล้ว ให้ถอด dummy plug ออกจากพอร์ต HDMI ของ Pi และเชื่อมต่ออุปกรณ์จับภาพ HDMI แทน
- จากนั้น dump EDID ของอุปกรณ์จับภาพด้วยวิธีเดียวกัน
get-edid -b $edid_i2c > edid-capture-card.bin
- ตรวจสอบว่า EDID ของอุปกรณ์จับภาพเป็น EDID ที่ถูกต้องเช่นกัน
- จากนั้นถอดอุปกรณ์จับภาพออก ต่อ dummy plug กลับเข้าไป แล้วเขียน EDID ของอุปกรณ์จับภาพลงใน EEPROM ของ dummy plug
edidbytes=($(od -v -An -txC edid-capture-card.bin))
for i in "${!edidbytes[@]}"; do
byte=0x${edidbytes[$i]}
echo Writing byte $i: $byte...
i2cset -f -y $edid_i2c 0x50 $i $byte
done
- สคริปต์นี้จะแปลง EDID ในไฟล์ dump ให้เป็นอาร์เรย์ของสตริงเลขฐานสิบหก 2 หลัก เติม
0x หน้าค่าแต่ละไบต์ แล้วเขียนลง EEPROM ตามลำดับด้วย i2cset
- มีเครื่องมืออย่าง edid-checked-writer เช่นกัน แต่แนวทางข้างต้นทำงานได้ด้วยเครื่องมือ I2C มาตรฐานใน userspace ของ Linux และเพียง bash หรือ dash
ตรวจสอบผลหลังการเขียน
- หลังเขียนแล้ว ให้อ่าน EDID จาก dummy plug อีกครั้งและเปรียบเทียบกับไฟล์ EDID ของอุปกรณ์จับภาพ
get-edid -b $edid_i2c > edid-test.bin
diff edid-test.bin edid-capture-card.bin
diff ไม่แสดงผลใด ๆ จึงยืนยันได้ว่า dump ใหม่ตรงกับ EDID ต้นฉบับของอุปกรณ์จับภาพทุกประการ
- EEPROM ของ dummy plug ถูก โปรแกรมใหม่ด้วย EDID ของอุปกรณ์จับภาพเรียบร้อยแล้ว
- หลังจากนั้นเมื่อนำไปเสียบกับคอมพิวเตอร์ทดสอบและบูตเครื่อง คอมพิวเตอร์ก็ทำงานเหมือนมีอุปกรณ์จับภาพ HDMI เชื่อมต่ออยู่แทนจอ 4K
ความเสี่ยงที่ต้องตรวจสอบก่อนเขียน
- หากรันขั้นตอนนี้ขณะมีจอจริงเชื่อมต่ออยู่ และ EDID ของจอนั้นไม่ได้มีการป้องกันการเขียน อาจทำให้จอเสียหายได้
- ต้องรันคำสั่งเขียนเฉพาะตอนที่ต่ออุปกรณ์แบบ เสียก็ไม่เป็นไร อย่าง dummy plug เข้ากับพอร์ต HDMI เท่านั้น
- ต้องมั่นใจว่าใช้บัส I2C ถูกต้อง และก่อนเขียนต้องอ่านและ parse EDID เพื่อตรวจสอบว่ามี EDID จริงอยู่ในอุปกรณ์
- หากรันคำสั่งเหล่านี้บนพีซี อาจเผลอแฟลชฮาร์ดแวร์ที่ไม่ใช่ EDID เช่น SPD EEPROM ของโมดูล RAM ได้
- การใช้ Raspberry Pi แทนการทดลองเขียน I2C บนพีซีจริง ช่วยลดความเสี่ยงในการทำให้เครื่องเดสก์ท็อปเสียหาย
- วิธีเดียวกันนี้ยังใช้ย้อนทางได้เช่นกัน เช่น ใส่ EDID ที่รองรับ 4K ลงใน dummy plug 1080p รุ่นเก่า
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ข้อควรระวังเล็กน้อยสำหรับคนที่อยากลองทำที่บ้าน: ปลั๊กดัมมี ราคาถูกแบบนี้มี EEPROM แค่ 256 ไบต์ จึงไม่พอสำหรับเก็บบล็อก EDID ส่วนขยายหลายบล็อกที่จำเป็นสำหรับการตั้งค่าความละเอียดสูงและรีเฟรชเรตสูง
ถ้าต้องการแค่ 1080p60 ก็ใช้ได้ แต่ใช้เพื่อเลียนแบบมอนิเตอร์ 4k240 ไม่ได้
อีกอย่าง บางรุ่นตรึงสาย write-protect ไว้เป็น high หรือ low ทำให้ถ้าจะเขียนจริง ๆ ต้องทำงานฮาร์ดแวร์เพิ่มเล็กน้อย
ข้อจำกัดอย่างหนึ่งของปลั๊กดัมมีแบบนี้คือไม่รองรับ HDCP
เหมาะดีสำหรับบังคับให้เครื่อง headless ส่งเอาต์พุตที่ความละเอียดเฉพาะ แต่จะล้มเหลวถ้าต้องรันอะไรบางอย่างที่ต้องการ HDCP
อยากรู้ว่ามีวิธีแก้ที่ดีไหม ซึ่งทำงานเหมือนปลั๊กดัมมี HDMI และยังเจรจา HDCP ให้ด้วย
ต้องทดสอบแอปสตรีมวิดีโอที่ต้องใช้ HDCP เพื่อเล่นที่ความละเอียดเต็ม แต่การวางทีวีไว้หนึ่งเครื่องสำหรับแต่ละการทดสอบนั้นไม่สะดวก
วิธีแก้ที่พบจนถึงตอนนี้คือ HDMI multiviewer ซึ่งดูเหมือนจะเจรจา HDCP แยกกันในแต่ละพอร์ต
สามารถใช้ EDID ที่ตั้งไว้ล่วงหน้า หรือเรียนรู้ EDID จากอุปกรณ์ที่ต่อกับ HDMI output 1 จากนั้นตราบใดที่ตัวแยกสัญญาณมีไฟเข้า ก็จะทำให้ดูเหมือนมีมอนิเตอร์เชื่อมต่ออยู่ แม้จะไม่มีอะไรต่ออยู่ที่เอาต์พุตก็ตาม
เท่าที่เข้าใจ มันเจรจา HDCP ระหว่างคอมพิวเตอร์หรือคอนโซลกับตัวแยกสัญญาณ แล้วส่งสัญญาณไปยังมอนิเตอร์เอาต์พุตโดยไม่มี HDCP
https://www.amazon.com/dp/B07VP37KMB
มี ระบบฝังตัว ที่ส่งเอาต์พุต HDMI และอยากสลับหน้าจอบูตให้เป็นสตรีม HDMI อื่น ภาพนิ่งก็เพียงพอแล้ว
ด้วยเหตุผลหลายอย่าง ไม่อยากแก้ไขตัวระบบฝังตัวเลย จึงสงสัยว่ามีวิธีทำให้ถูกและทนทานได้อย่างไร
แต่ต้อง ผู้ซื้อพึงระวัง
ถ้าต้องการรุ่นใหม่กว่า HDCP 1.4 ก็น่าจะเกือบเป็นไปไม่ได้
ในเรื่องที่เกี่ยวข้องกัน อยากรู้ว่ามีคลังเก็บ EDID binary ดี ๆ หรือโปรแกรมสร้างที่ดีกว่านี้ไหม
มีปลั๊ก EDID emulator แบบโปรแกรมได้ จึงสามารถโคลนมอนิเตอร์ของตัวเองหรือมอนิเตอร์อื่นได้ แต่บางครั้งไม่มีวิธีตั้งค่าความละเอียดหรือฟังก์ชันเฉพาะ เช่น 8K ที่มี DSC
รู้จัก https://github.com/bsdhw/EDID อยู่แล้ว แต่ฝั่งมอนิเตอร์รุ่นใหม่ค่อนข้างจำกัด
เคยลองสร้างเองด้วย https://www.analogway.com/products/aw-edid-editor แต่การปรับให้รายละเอียดความต่างของหลายโหมดหรือการตั้งลำดับความสำคัญให้ถูกต้อง อย่างน้อยสำหรับฉันก็ค่อนข้างยาก
คำแนะนำคือ: AW EDID Editor ที่กล่าวไปแล้ว, CRU ที่ใช้ได้เฉพาะ Windows, 010 Hex Editor ที่มีเทมเพลต EDID, บน Linux มี wxEDID แบบ Flatpak, และ edid-decode จาก v4l-utils
CRU ใช้แก้ไฟล์ EDID ที่ dump จากมอนิเตอร์ โดยลบดิสคริปเตอร์อย่างหมายเลขซีเรียลออกเพื่อสร้างพื้นที่สำหรับ detailed resolution แต่ก็ใช้งานได้ ไม่รันบน Wine
wxEDID เท่าที่จำได้ แพ็กเกจของดิสโทรเคย crash ที่ WxWidgets และไม่รู้ว่าสร้าง section ใหม่ได้หรือไม่
edid-decode ใช้เป็นเครื่องมือ textconv ของ git diff ได้ด้วย แต่ไม่ได้ช่วยเข้ารหัสไฟล์ EDID
ใน HDMI EDID เห็นว่ามี CEA extension block และใน DP EDID มี DisplayID extension block
ยังไม่เคยทำ EDID หลายหน้าที่เกิน 256 ไบต์ และไม่รู้ว่าควรใช้อีพรอมชิปแบบไหนมา emulate หรือโปรโตคอล/API สำหรับอ่านเขียนเป็นอย่างไร
https://www1.kramerav.com/au/product/edid%20designer
ทั้งสองตัวฟรี แต่ไม่ใช่ซอฟต์แวร์ที่แจกจ่ายต่อได้อย่างเสรี
ฝั่ง Extron อาจต้องทำงานในโปรเจกต์หรือองค์กรที่ใช้ฮาร์ดแวร์ของเขา
ซื้อ ซาวด์บาร์ 5.1 surround ราคาถูกที่รองรับถึง Dolby TrueHD ผ่าน HDMI แต่ประเด็นคือมันทำงานได้ดีเฉพาะกับอุปกรณ์ที่รองรับ eARC หรือก็คือทีวีรุ่นใหม่
ถ้าต่อกับ PC ต้องใช้ SPDIF หรือ AUX ทำให้คุณภาพลดลง
นอกจากซื้อ audio extractor หรือตัวแยกสัญญาณแล้ว ยังมีวิธีหลอก EDID ของ PC ให้ซาวด์บาร์มองว่าเป็น eARC
ยังอยู่ระหว่างทำ และน่าเสียดายที่ยังไม่มีแนวทางชัดเจน
เมื่อไม่นานมานี้ลองค้นดู แต่ไม่ชัดเจนว่าอุปกรณ์ไหนมีฟังก์ชันอะไร และในกลุ่มสินค้าราคาถูกกว่ามีตัวไหนที่ดีบ้าง
ผลิตภัณฑ์แบบนี้สามารถซื้อในรูปแบบที่มี passthrough ได้ด้วย และมีประโยชน์กับระบบเก่าที่มีปัญหากับจอความละเอียดสูง
ผมมีระบบ AMD FX8350 ราวปี 2011 อยู่ ชิปเซ็ตนอร์ทบริดจ์+วิดีโอ 880G ในตัวส่งภาพ HDMI ไปยังจอ 4K ได้ไม่ถูกต้อง
ถ้าเสียบอุปกรณ์แบบนี้คั่นกลางเพื่อบอกให้ส่งภาพ 1080p ก็จะทำงานได้ดี และจอจะอัปสเกลแบบจำนวนเต็ม 2 เท่าเป็น 4K ให้
ตัวที่ผมมีค่อนข้างไฮเอนด์ จึงอ่าน EDID จากจอและบันทึกไว้ จากนั้นนำไปใช้เป็น override สำหรับจออื่นได้
อีกอย่างที่ยอดเยี่ยมคือมันบังคับให้ระบบตรวจพบจออยู่เสมอได้
จอหนึ่งของผมเมื่อปิดแล้วจะทำตัวเหมือนถูกถอดการเชื่อมต่อไปเลย ทำให้เกิดปัญหาหลายอย่าง แต่ passthrough แก้ได้หมด
รุ่นที่ผมใช้คือ HD-EWB ของ THWT
ปลั๊ก HDMI dummy เป็นโซลูชันฮาร์ดแวร์สำหรับแก้ ปัญหาซอฟต์แวร์ ที่ไม่ควรมีอยู่ตั้งแต่แรก
สงสัยว่าทำไมถึงต้องใช้ปลั๊ก dummy
ไม่รู้ว่ามีอะไรที่ทำด้วยซอฟต์แวร์ไม่ได้และทำได้เฉพาะด้วยปลั๊ก dummy ผมถามในฐานะคนที่เคยใช้จอเสมือน 18 จอโดยไม่มี dummy และไม่มีปัญหา
คอมพิวเตอร์มี GPU สองตัว โดย GPU ของ AMD ใช้กับโฮสต์ Linux และ GPU ของ NVidia ถูก passthrough ไปยัง guest Windows
Looking Glass จับเอาต์พุตจาก GPU ของ NVidia แล้วแสดงในหน้าต่างบนเดสก์ท็อปของผม
ด้วยวิธีนี้จึงใช้ซอฟต์แวร์ Windows ใน VM ได้ และประสิทธิภาพก็ดีด้วย Windows ตั้งแต่รุ่น 7 เป็นต้นมา แทบต้องมีการเร่งกราฟิกถึงจะใช้งานได้ลื่น
ปัญหาคือถ้า GPU ของ NVidia ไม่ได้ต่อกับจอ มันจะไม่ทำอะไรเลย
GPU NVidia Quadro สามารถ dump EDID ของจอแล้ว map ไฟล์นั้นเข้ากับเอาต์พุตได้ แต่ GPU สำหรับผู้บริโภคไม่รองรับสิ่งนี้
ดังนั้นจึงต้องใช้ปลั๊ก dummy
ใช้หน้าจอของปลั๊ก dummy เป็นเอาต์พุต PowerPoint และใช้หน้าจอโน้ตบุ๊กเป็นโน้ตสำหรับผู้นำเสนอ
จากนั้นแชร์หน้าจอของปลั๊ก dummy ก็พอ
สำหรับผู้อ่าน Hacker News อาจไม่ใช่คำตอบที่ดีที่สุด แต่สำหรับครูหรือพนักงานขาย มันง่ายจริง ๆ
อาจจำเป็นเพราะการตั้งค่า OBS streaming หรือ game streaming อย่าง Steam, Parsec
เมื่อหลายปีก่อน บน Linux ที่ใช้ Xorg กับไดรเวอร์โอเพนซอร์ส และบน Windows กับ Nvidia ยังพอทำได้ระดับหนึ่ง แต่บน MacOS หรือ Windows+GPU AMD/Intel ทำงานได้ไม่ค่อยดีนัก
ถ้าหลอกระบบปฏิบัติการให้เห็นเหมือนมีจอต่ออยู่ จะเกิดตัวแปรใหม่ที่ไม่มีในสภาพแวดล้อม deployment จริงของผู้ใช้ ส่วนปลั๊ก dummy เป็นโซลูชันฮาร์ดแวร์ราคาถูก
มีโอกาสสูงว่าการซื้อมาเสียบจะคุ้มค่ากว่าการให้วิศวกรเขียน
echo on > /sys/whateverและลอจิกแวดล้อมมันผมเคยเพิ่มจอ 4K ปลอมบนเดสก์ท็อปด้วยซอฟต์แวร์เพื่อทำ remote game streaming แต่มันซับซ้อนกว่าที่คาดไว้มาก
https://pfy.ch/programming/4k-sunshine.html
ทิปที่น่าสนใจ: ขั้นตอนเดียวกันนี้ใช้แก้ EDID ที่เก็บอยู่ในจอทั่วไปหรือหน้าจอโน้ตบุ๊กได้ด้วย
บางครั้งยังเขียนไปยังที่อยู่ I2C อื่นเพื่อเปลี่ยนการตั้งค่าหลายอย่างของ TCON ได้ด้วย
ไม่จำเป็นต้องใช้ Raspberry Pi เท่านั้น คอมพิวเตอร์อะไรก็ทำได้
ตอนนั้นกำลังดัดแปลงให้ไฟแบ็กไลต์ LED ทำงานแบบ strobe เพื่อให้ภาพไร้เบลอเหมือน CRT
พบว่า DDC bus เปิดเผยรีจิสเตอร์อื่น ๆ ที่ควบคุมแบ็กไลต์และสิ่งต่าง ๆ ด้วย จึงต่อวงจรภายนอกเพื่อทำ strobing
ยังเห็นรีจิสเตอร์สำหรับอ่านและเขียน flash ROM ด้วย เลย dump ออกมา จากนั้นเขียน 8051 disassembler และทำ reverse engineering คร่าว ๆ สุดท้ายก็แก้ ROM ให้มีโหมด strobe
ผมทำให้โหมดนี้ใช้ช่วงล่างของการปรับความสว่าง เพื่อให้เปิดและปรับได้ผ่าน OSD หรือการควบคุมความสว่าง DDC ปกติ
ตอน flash ต้องเปิดเครื่องแล้วต่อสาย write line ภายใน
สะดวกตรงที่มี vblank interrupt และ timer ที่ควบคุมแบ็กไลต์ LED มีโหมดที่เปิดได้ก่อน interrupt ถัดไปพอดี แล้วปิดหลังจากเวลาที่ปรับได้
เป็นจังหวะที่พอดีสำหรับเปิดแบ็กไลต์ทันทีหลังจากการรีเฟรช LCD เสถียรแล้ว
เป้าหมายเดิมจริง ๆ แค่ต้องการเอาโลโก้บูตที่แสดงไม่กี่วินาทีออก และก็ทำสำเร็จ
น่าจะมีแต่สินค้าราคาถูกเท่านั้นที่ละไว้
ถ้าไม่มีการป้องกัน มันเสี่ยง เพราะ voltage glitch ระหว่างการอ่านอาจกลายเป็นการเขียนและทำให้แฟลชเสียได้
“ถ้าลองคำสั่งนี้บน PC อาจเผลอ flash ฮาร์ดแวร์ที่ไม่ใช่ EDID เช่น SPD EEPROM ของโมดูล RAM ได้”
ปกติคงซื้อ EEPROM ที่โปรแกรมไว้ล่วงหน้าแล้วนำไปติดตั้งบนบอร์ด และเดินสายไม่ให้ขา write enable ขึ้นเป็น high เด็ดขาด
การใส่ EEPROM ไว้ในผลิตภัณฑ์อย่างจอภาพแล้วปล่อยให้เขียนได้เป็นเรื่องแปลก แต่ก็เคยเห็นอะไรที่แปลกกว่านี้ในฮาร์ดแวร์ที่วางขายแล้วเหมือนกัน
งงนิดหน่อย
คิดว่าจะได้เห็นการต่อปลั๊กเข้ากับขา GPIO I2C แต่ดูเหมือนแค่เสียบเข้ากับ RPi ก็พอแล้ว
ถ้าอย่างนั้นสงสัยว่า HDMI เปิดเผยอินเทอร์เฟซ I2C โดยตรงหรือไม่
อย่างที่บทความกล่าวไว้ RPi มีคอนโทรลเลอร์ I2C ที่เชื่อมกับขาเหล่านั้นของพอร์ต HDMI เพราะต้องอ่าน EDID ผ่าน DDC
สงสัยว่ามีใครรู้จัก DisplayPort EDID emulator ราคาถูกสำหรับแก้ปัญหา KVM กับ Linux ไหม
เท่าที่เช็กล่าสุด มันแพงกว่า HDMI มากจนถึงขั้นซื้อ KVM ตัวใหม่ไปเลยน่าจะคุ้มกว่า
แต่ใช้บัส AUX ความเร็วสูงเฉพาะของ DisplayPort ที่จัดการได้ซับซ้อนกว่ามากแทน
ถ้าไม่ได้สมัครเป็นสมาชิก VESA และเซ็น NDA เป็นกอง ก็คงยากจะหาเอกสารที่ใช้ได้จริงด้วยซ้ำ
https://foosel.net/til/how-to-override-the-edid-data-of-a-mo...
แต่ถ้าต้องการเพิ่มจอเสมือน ก็ไม่แน่ใจว่า https://askubuntu.com/questions/453109/add-fake-display-when... จะใช้ได้หรือไม่
สงสัยว่าสามารถใช้ dummy plug เพื่อเปลี่ยน การติดตามด้วยลายนิ้วมือของอุปกรณ์ ได้ด้วยหรือเปล่า