RaspberryPi-LOGO

កម្មវិធីបញ្ជាក្រាហ្វិកលទ្ធផល RaspberryPi KMS HDMI

RaspberryPi-KMS-HDMI-Output-Graphics-Driver-PRODACT-IMG

កូឡូផុន

2020-2023 Raspberry Pi Ltd (អតីត Raspberry Pi (Trading) Ltd.) ឯកសារនេះត្រូវបានផ្តល់អាជ្ញាប័ណ្ណក្រោមអាជ្ញាប័ណ្ណ Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0) ។ កាលបរិច្ឆេទបង្កើត៖ 2023-02-10 កំណែសាងសង់៖ githash: c65fe9c-ស្អាត

សេចក្តីជូនដំណឹងអំពីការបដិសេធផ្នែកច្បាប់

ទិន្នន័យបច្ចេកទេស និងភាពអាចជឿជាក់បានសម្រាប់ផលិតផល RASPBERRY PI (រួមទាំងឯកសារទិន្នន័យ) ដូចដែលបានកែប្រែពីពេលមួយទៅពេលមួយ ("ធនធាន") ត្រូវបានផ្តល់ដោយ RASPBERRY PI LTD ("RPL") "ដូចបច្ចុប្បន្ន" និងមិនទាន់មានកំណត់ OT មានកំណត់ ដល់ ការធានាជាលាយលក្ខណ៍អក្សរនៃពាណិជ្ជកម្ម និងសមភាពសម្រាប់គោលបំណងពិសេសមួយត្រូវបានបដិសេធ។ ក្នុងវិសាលភាពអតិបរមាដែលត្រូវបានអនុញ្ញាតដោយច្បាប់ជាធរមាន ក្នុងករណីណាក៏ដោយ RPL នឹងត្រូវទទួលខុសត្រូវចំពោះការខូចខាតដោយផ្ទាល់ ដោយផ្ទាល់ ដោយអចេតនា ឧប្បត្តិហេតុ ពិសេស គំរូ ឬការខូចខាតជាផលវិបាក (រួមទាំងផលប៉ះពាល់។ ) ការខាតបង់នៃការប្រើប្រាស់, ទិន្នន័យ ឬប្រាក់ចំណេញ ឬការរំខានអាជីវកម្ម) ទោះបីជាបានបង្កឡើង និងនៅលើទ្រឹស្ដីនៃទំនួលខុសត្រូវណាមួយ ទោះជាស្ថិតក្នុងកិច្ចសន្យា ទំនួលខុសត្រូវយ៉ាងតឹងរ៉ឹង ឬទារុណកម្ម (រួមទាំងការធ្វេសប្រហែស ឬការមិនដូច្នេះទេ) នៃករណីនេះកើតឡើងនៅពេលក្រោយ។ ISED នៃលទ្ធភាព នៃការខូចខាតបែបនេះ។ RPL រក្សាសិទ្ធិក្នុងការធ្វើឱ្យប្រសើរឡើង ការកែលម្អ ការកែតម្រូវ ឬការកែប្រែផ្សេងទៀតចំពោះធនធាន ឬផលិតផលណាមួយដែលបានពិពណ៌នានៅក្នុងពួកវាគ្រប់ពេលវេលា និងដោយគ្មានការជូនដំណឹងបន្ថែម។ ធនធានត្រូវបានបម្រុងទុកសម្រាប់អ្នកប្រើប្រាស់ដែលមានជំនាញដែលមានកម្រិតសមស្របនៃចំណេះដឹងផ្នែករចនា។ អ្នកប្រើប្រាស់ទទួលខុសត្រូវទាំងស្រុងចំពោះការជ្រើសរើស និងការប្រើប្រាស់ធនធានរបស់ពួកគេ និងកម្មវិធីណាមួយនៃផលិតផលដែលបានពិពណ៌នានៅក្នុងពួកគេ។ អ្នកប្រើប្រាស់យល់ព្រមសងសំណង និងរក្សាទុក RPL ដោយមិនបង្កគ្រោះថ្នាក់ចំពោះរាល់បំណុល ការចំណាយ ការខូចខាត ឬការខាតបង់ផ្សេងទៀតដែលកើតចេញពីការប្រើប្រាស់របស់ពួកគេនៃ RESOURCES.RPL ផ្តល់ឱ្យអ្នកប្រើប្រាស់នូវការអនុញ្ញាតក្នុងការប្រើប្រាស់ធនធានតែមួយគត់ដោយភ្ជាប់ជាមួយផលិតផល Raspberry Pi ។ ការប្រើប្រាស់ផ្សេងទៀតទាំងអស់នៃធនធានត្រូវបានហាមឃាត់។ គ្មានអាជ្ញាប័ណ្ណណាមួយត្រូវបានផ្តល់ទៅឱ្យ RPL ឬសិទ្ធិកម្មសិទ្ធិបញ្ញាភាគីទីបីផ្សេងទៀត។ សកម្មភាពដែលមានហានិភ័យខ្ពស់។ ផលិតផល Raspberry Pi មិនត្រូវបានរចនា ផលិត ឬមានបំណងសម្រាប់ប្រើប្រាស់ក្នុងបរិយាកាសគ្រោះថ្នាក់ដែលតម្រូវឱ្យដំណើរការមិនដំណើរការប្រកបដោយសុវត្ថិភាព ដូចជានៅក្នុងប្រតិបត្តិការនៃកន្លែងនុយក្លេអ៊ែរ ប្រព័ន្ធរុករកតាមយន្តហោះ ឬប្រព័ន្ធទំនាក់ទំនង ការគ្រប់គ្រងចរាចរណ៍ផ្លូវអាកាស ប្រព័ន្ធអាវុធ ឬកម្មវិធីសុវត្ថិភាព (រួមទាំងជំនួយដល់អាយុជីវិត។ ប្រព័ន្ធ និងឧបករណ៍វេជ្ជសាស្ត្រផ្សេងទៀត) ដែលការបរាជ័យនៃផលិតផលអាចនាំទៅដល់ការស្លាប់ របួសផ្ទាល់ខ្លួន ឬការខូចខាតរាងកាយ ឬបរិស្ថានធ្ងន់ធ្ងរ ("សកម្មភាពហានិភ័យខ្ពស់")។ RPL ជាពិសេសបដិសេធការធានាជាក់លាក់ណាមួយនៃកាយសម្បទាសម្រាប់សកម្មភាពដែលមានហានិភ័យខ្ពស់ ហើយមិនទទួលខុសត្រូវចំពោះការប្រើប្រាស់ ឬការរួមបញ្ចូលផលិតផល Raspberry Pi នៅក្នុងសកម្មភាពដែលមានហានិភ័យខ្ពស់។ ផលិតផល Raspberry Pi ត្រូវបានផ្តល់ជូនតាមលក្ខខណ្ឌស្តង់ដាររបស់ RPL ។ ការផ្តល់ធនធានរបស់ RPL មិនពង្រីក ឬកែប្រែលក្ខខណ្ឌស្តង់ដាររបស់ RPL រួមទាំង ប៉ុន្តែមិនកំណត់ចំពោះការបដិសេធ និងការធានាដែលបានបង្ហាញនៅក្នុងពួកគេ។

ប្រវត្តិនៃកំណែឯកសារ

RaspberryPi-KMS-HDMI-Output-Graphics-Driver-FIG-1

វិសាលភាពនៃឯកសារ

ឯកសារនេះអនុវត្តចំពោះផលិតផល Raspberry Pi ខាងក្រោម

RaspberryPi-KMS-HDMI-Output-Graphics-Driver-FIG-2

សេចក្តីផ្តើម

ជាមួយនឹងការណែនាំអំពីកម្មវិធីបញ្ជាក្រាហ្វិក KMS (Kernel Mode Setting) Raspberry Pi Ltd កំពុងផ្លាស់ប្តូរឆ្ងាយពីការគ្រប់គ្រងកម្មវិធីបង្កប់ចាស់នៃប្រព័ន្ធលទ្ធផលវីដេអូ និងឆ្ពោះទៅរកប្រព័ន្ធក្រាហ្វិកប្រភពបើកចំហបន្ថែមទៀត។ ទោះយ៉ាងណាក៏ដោយ នេះបានមកជាមួយនឹងបញ្ហាប្រឈមផ្ទាល់ខ្លួនរបស់វា។ ឯកសារនេះមានគោលបំណងជួយដោះស្រាយបញ្ហានានាដែលអាចកើតឡើងនៅពេលផ្លាស់ទីទៅប្រព័ន្ធថ្មី។ ក្រដាសសនេះសន្មត់ថា Raspberry Pi កំពុងដំណើរការ Raspberry Pi OS ហើយមានភាពទាន់សម័យពេញលេញជាមួយនឹងកម្មវិធីបង្កប់ និងខឺណែលចុងក្រោយបង្អស់។

វាក្យសព្ទ

DRM៖ Direct Rendering Manager ដែលជាប្រព័ន្ធរងនៃខឺណែលលីនុចដែលប្រើដើម្បីទំនាក់ទំនងជាមួយអង្គភាពដំណើរការក្រាហ្វិក (GPUs)។ ប្រើក្នុងភាពជាដៃគូជាមួយ FKMS និង KMS ។
DVI៖ ជំនាន់មុនរបស់ HDMI ប៉ុន្តែមិនមានសមត្ថភាពសំឡេង។ ខ្សែ HDMI ទៅ DVI និងអាដាប់ទ័រមានដើម្បីភ្ជាប់ឧបករណ៍ Raspberry Pi ទៅនឹងអេក្រង់ដែលបំពាក់ដោយ DVI ។
EDID៖ ទិន្នន័យកំណត់អត្តសញ្ញាណការបង្ហាញបន្ថែម។ ទម្រង់​ទិន្នន័យ​មេតា​សម្រាប់​ឧបករណ៍​បង្ហាញ​ដើម្បី​ពណ៌នា​អំពី​សមត្ថភាព​របស់​ពួកគេ​ចំពោះ​ប្រភព​វីដេអូ។ រចនាសម្ព័ន្ធទិន្នន័យ EDID រួមមានឈ្មោះក្រុមហ៊ុនផលិត និងលេខស៊េរី ប្រភេទផលិតផល ទំហំបង្ហាញរូបវន្ត និងពេលវេលាដែលគាំទ្រដោយការបង្ហាញ រួមជាមួយនឹងទិន្នន័យដែលមិនសូវមានប្រយោជន៍មួយចំនួន។ អេក្រង់មួយចំនួនអាចមានប្លុក EDID ដែលខូច ដែលអាចបណ្តាលឱ្យមានបញ្ហាប្រសិនបើពិការភាពទាំងនោះមិនត្រូវបានគ្រប់គ្រងដោយប្រព័ន្ធបង្ហាញ។
FKMS (vc4-fkms-v3d)៖ ការកំណត់របៀបខឺណែលក្លែងក្លាយ។ ខណៈពេលដែលកម្មវិធីបង្កប់នៅតែគ្រប់គ្រងផ្នែករឹងកម្រិតទាប (សម្រាប់ឧample, ច្រកចំណុចប្រទាក់ពហុព័ត៌មាននិយមន័យខ្ពស់ (HDMI) ចំណុចប្រទាក់ Display Serial Interface (DSI) ។ល។) បណ្ណាល័យលីនុចស្តង់ដារត្រូវបានប្រើនៅក្នុងខឺណែលខ្លួនវាផ្ទាល់។ FKMS ត្រូវ​បាន​ប្រើ​តាម​លំនាំដើម​នៅ​ក្នុង Buster ប៉ុន្តែ​ឥឡូវ​នេះ​ត្រូវ​បាន​គេ​បដិសេធ​ចំពោះ KMS ក្នុង Bullseye ។
HDMI៖ High-Definition Multimedia Interface គឺជាចំណុចប្រទាក់អូឌីយ៉ូ/វីដេអូដែលមានកម្មសិទ្ធិសម្រាប់ការបញ្ជូនទិន្នន័យវីដេអូដែលមិនបានបង្ហាប់ និងទិន្នន័យអូឌីយ៉ូឌីជីថលដែលបានបង្ហាប់ ឬមិនបានបង្ហាប់។
HPD៖ ឧបករណ៍ចាប់សញ្ញា Hotplug ។ ខ្សែភ្លើងដែលត្រូវបានអះអាងដោយឧបករណ៍បង្ហាញដែលភ្ជាប់ដើម្បីបង្ហាញថាវាមានវត្តមាន។
KMS៖ ការកំណត់របៀបខឺណែល; ឃើញ https://www.kernel.org/doc/html/latest/gpu/drm-kms.html សម្រាប់ព័ត៌មានលម្អិត។ នៅលើ Raspberry Pi vc4-kms-v3d គឺជាកម្មវិធីបញ្ជាដែលអនុវត្ត KMS ហើយជារឿយៗត្រូវបានគេហៅថា "កម្មវិធីបញ្ជា KMS" ។ ជង់ក្រាហ្វិកចាស់៖ ជង់ក្រាហ្វិកដែលបានអនុវត្តទាំងស្រុងនៅក្នុងប្លុកកម្មវិធីបង្កប់ VideoCore ដែលលាតត្រដាងដោយកម្មវិធីបញ្ជាស៊ុមសតិបណ្ដោះអាសន្នលីនុច។ ជង់ក្រាហ្វិកចាស់ត្រូវបានប្រើប្រាស់នៅក្នុងឧបករណ៍ Raspberry Pi Ltd ភាគច្រើនរហូតមកដល់ពេលថ្មីៗនេះ។ ឥឡូវនេះវាត្រូវបានជំនួសដោយ (F)KMS/DRM ជាបណ្តើរៗ។

ប្រព័ន្ធ HDMI និងកម្មវិធីបញ្ជាក្រាហ្វិក

ឧបករណ៍ Raspberry Pi ប្រើស្តង់ដារ HDMI ដែលជារឿងធម្មតានៅលើម៉ូនីទ័រ LCD និងទូរទស្សន៍ទំនើបសម្រាប់លទ្ធផលវីដេអូ។ Raspberry Pi 3 (រួមទាំង Raspberry Pi 3B+) និងឧបករណ៍មុនៗមានរន្ធ HDMI តែមួយ ដែលមានសមត្ថភាពទិន្នផល 1920 × 1200 @ 60Hz ដោយប្រើឧបករណ៍ភ្ជាប់ HDMI ទំហំពេញ។ Raspberry Pi 4 មានរន្ធ micro HDMI ចំនួនពីរ ហើយមានសមត្ថភាពបញ្ចេញ 4K នៅលើច្រកទាំងពីរ។ អាស្រ័យលើការដំឡើង ច្រក HDMI 0 នៅលើ Raspberry Pi 4 មានសមត្ថភាពរហូតដល់ 4kp60 ប៉ុន្តែនៅពេលប្រើឧបករណ៍ទិន្នផល 4K ពីរអ្នកត្រូវបានកំណត់ត្រឹម p30 នៅលើឧបករណ៍ទាំងពីរ។ ជង់កម្មវិធីក្រាហ្វិក ដោយមិនគិតពីកំណែ ទទួលខុសត្រូវចំពោះការសួរចម្លើយឧបករណ៍ HDMI ដែលភ្ជាប់មកជាមួយសម្រាប់លក្ខណៈសម្បត្តិរបស់ពួកគេ និងរៀបចំប្រព័ន្ធ HDMI ឱ្យបានត្រឹមត្រូវ។ Legacy និង FKMS stacks ទាំងពីរប្រើកម្មវិធីបង្កប់នៅក្នុងដំណើរការក្រាហ្វិក VideoCore ដើម្បីពិនិត្យមើលវត្តមាន និងលក្ខណៈសម្បត្តិរបស់ HDMI ។ ផ្ទុយទៅវិញ KMS ប្រើប្រភពបើកចំហទាំងស្រុង ការអនុវត្តផ្នែកខាង ARM ។ នេះមានន័យថា មូលដ្ឋានកូដសម្រាប់ប្រព័ន្ធទាំងពីរគឺខុសគ្នាទាំងស្រុង ហើយក្នុងកាលៈទេសៈខ្លះ វាអាចបណ្តាលឱ្យមានឥរិយាបទខុសគ្នារវាងវិធីសាស្រ្តទាំងពីរ។ ឧបករណ៍ HDMI និង DVI កំណត់អត្តសញ្ញាណខ្លួនឯងទៅនឹងឧបករណ៍ប្រភពដោយប្រើផ្នែកនៃទិន្នន័យមេតាដែលហៅថាប្លុក EDID ។ នេះត្រូវបានអានដោយឧបករណ៍ប្រភពពីឧបករណ៍បង្ហាញតាមរយៈការតភ្ជាប់ I2C ហើយវាមានតម្លាភាពទាំងស្រុងចំពោះអ្នកប្រើប្រាស់ចុងក្រោយ ដូចដែលវាត្រូវបានធ្វើដោយជង់ក្រាហ្វិក។ ប្លុក EDID មានព័ត៌មានជាច្រើន ប៉ុន្តែវាត្រូវបានប្រើជាចម្បងដើម្បីបញ្ជាក់គុណភាពបង្ហាញដែលគាំទ្រ ដូច្នេះ Raspberry Pi អាចត្រូវបានរៀបចំឡើងដើម្បីបញ្ចេញគុណភាពបង្ហាញសមស្រប។

របៀបដែល HDMI ត្រូវបានដោះស្រាយក្នុងអំឡុងពេលចាប់ផ្ដើម

នៅពេលបើកដំណើរការដំបូង Raspberry Pi ឆ្លងកាត់ចំនួន stages ដែលត្រូវបានគេស្គាល់ថាជា boot stages:

  1. ទីមួយ - សtage, កម្មវិធីចាប់ផ្ដើមប្រព័ន្ធដែលមានមូលដ្ឋានលើ ROM ចាប់ផ្តើម VideoCore GPU ។
  2. ទីពីរ - សtage bootloader (នេះគឺជា bootcode.bin នៅលើកាត SD នៅលើឧបករណ៍មុន Raspberry Pi 4 និងនៅក្នុង SPI EEPROM នៅលើ Raspberry Pi 4):
    1. នៅលើ Raspberry Pi 4 ទីពីរtage bootloader នឹងចាប់ផ្តើមប្រព័ន្ធ HDMI, សួរចម្លើយការបង្ហាញសម្រាប់របៀបដែលអាចធ្វើបាន បន្ទាប់មករៀបចំការបង្ហាញឱ្យបានត្រឹមត្រូវ។ នៅចំណុចនេះ ការបង្ហាញត្រូវបានប្រើដើម្បីផ្តល់ទិន្នន័យវិនិច្ឆ័យជាមូលដ្ឋាន។
    2. ការបង្ហាញរោគវិនិច្ឆ័យកម្មវិធីចាប់ផ្ដើមប្រព័ន្ធ (ថ្ងៃទី 07 ខែធ្នូ ឆ្នាំ 2022 តទៅ) នឹងបង្ហាញស្ថានភាពនៃអេក្រង់ដែលភ្ជាប់មកជាមួយ (ថាតើមាន Hotplug Detect (HPD) និងថាតើប្លុក EDID ត្រូវបានសង្គ្រោះពីអេក្រង់ដែរឬទេ)។
  3. កម្មវិធីបង្កប់ VideoCore (start.elf) ត្រូវបានផ្ទុក និងដំណើរការ។ វានឹងគ្រប់គ្រងប្រព័ន្ធ HDMI អានប្លុក EDID ពីអេក្រង់ដែលបានភ្ជាប់ណាមួយ និងបង្ហាញអេក្រង់ឥន្ទធនូនៅលើអេក្រង់ទាំងនោះ។
  4. ខឺណែលលីនុចចាប់ផ្ដើម
    1. កំឡុងពេលចាប់ផ្ដើមខឺណែល KMS នឹងគ្រប់គ្រងប្រព័ន្ធ HDMI ពីកម្មវិធីបង្កប់។ ជាថ្មីម្តងទៀតប្លុក EDID ត្រូវបានអានពីការបង្ហាញដែលបានភ្ជាប់ណាមួយ ហើយព័ត៌មាននេះត្រូវបានប្រើដើម្បីដំឡើងកុងសូលលីនុច និងកុំព្យូទ័រលើតុ។

បញ្ហានិងរោគសញ្ញាដែលអាចកើតមាន

រោគសញ្ញាបរាជ័យទូទៅបំផុតដែលជួបប្រទះនៅពេលផ្លាស់ទីទៅ KMS គឺជាការចាប់ផ្ដើមល្អដំបូង ដោយអេក្រង់កម្មវិធីចាប់ផ្ដើមប្រព័ន្ធ ហើយបន្ទាប់មកអេក្រង់ឥន្ទធនូលេចឡើង បន្ទាប់មកពីរបីវិនាទីដោយអេក្រង់នឹងខ្មៅ ហើយមិនត្រលប់មកវិញទេ។ តាមពិតចំនុចដែលអេក្រង់ប្រែជាខ្មៅ គឺជាចំណុចកំឡុងពេលដំណើរការចាប់ផ្តើមខឺណែល នៅពេលដែលកម្មវិធីបញ្ជា KMS ឆ្លងកាត់ការដំណើរការការបង្ហាញពីកម្មវិធីបង្កប់។ Raspberry Pi បច្ចុប្បន្នកំពុងដំណើរការក្នុងគ្រប់ទិដ្ឋភាពទាំងអស់ លើកលែងតែលទ្ធផល HDMI ដូច្នេះប្រសិនបើ SSH ត្រូវបានបើក នោះអ្នកគួរតែអាចចូលទៅឧបករណ៍តាមផ្លូវនោះ។ LED ចូលប្រើកាត SD ពណ៌បៃតងជាធម្មតានឹងភ្លឹបភ្លែតៗម្តងម្កាល។ វាអាចទៅរួចផងដែរដែលអ្នកនឹងឃើញគ្មានលទ្ធផល HDMI ទាល់តែសោះ។ គ្មានការបង្ហាញកម្មវិធីចាប់ផ្ដើមប្រព័ន្ធ និងគ្មានអេក្រង់ឥន្ទធនូ។ នេះជាធម្មតាអាចត្រូវបានសន្មតថាជាកំហុសផ្នែករឹង។

ការធ្វើរោគវិនិច្ឆ័យកំហុស

មិនមានលទ្ធផល HDMI ទាល់តែសោះ
វាអាចទៅរួចដែលថាឧបករណ៍នេះមិនបានចាប់ផ្ដើមទាល់តែសោះ ប៉ុន្តែនេះគឺនៅក្រៅការផ្ទេរក្រដាសសនេះ។ ដោយសន្មតថាឥរិយាបថដែលបានសង្កេតគឺជាបញ្ហានៃការបង្ហាញ ការខ្វះខាតនៃទិន្នផល HDMI ក្នុងអំឡុងពេលផ្នែកណាមួយនៃដំណើរការចាប់ផ្ដើមគឺជាធម្មតាដោយសារតែបញ្ហាផ្នែករឹង។ មានជម្រើសជាច្រើនដែលអាចធ្វើបាន៖

  • ខ្សែ HDMI ខូច
  • សាកល្បងខ្សែថ្មី។ ខ្សែមួយចំនួន ជាពិសេសខ្សែដែលមានតម្លៃថោកបំផុត ប្រហែលជាមិនមានខ្សែទំនាក់ទំនងដែលត្រូវការទាំងអស់ (ឧ. hotplug) សម្រាប់ Raspberry Pi ដើម្បីរកឃើញអេក្រង់ដោយជោគជ័យ។
  • រន្ធ HDMI ខូចនៅលើ Raspberry Pi
  • ប្រសិនបើអ្នកកំពុងប្រើ Raspberry Pi 4 សូមសាកល្បងរន្ធ HDMI ផ្សេងទៀត។
  • រន្ធ HDMI ខូចនៅលើម៉ូនីទ័រ
  • ពេលខ្លះរន្ធ HDMI នៅលើម៉ូនីទ័រ ឬទូរទស្សន៍អាចអស់។ សាកល្បងច្រកផ្សេងប្រសិនបើឧបករណ៍មានមួយ។
  • កម្រណាស់ ឧបករណ៍បង្ហាញអាចផ្តល់តែទិន្នន័យ EDID នៅពេលបើក ឬនៅពេលច្រកត្រឹមត្រូវត្រូវបានជ្រើសរើស។ ដើម្បីពិនិត្យមើល សូមប្រាកដថាឧបករណ៍បានបើក ហើយច្រកបញ្ចូលត្រឹមត្រូវត្រូវបានជ្រើសរើស។
  • បង្ហាញ​ឧបករណ៍​មិន​អះអាង​ពី​បន្ទាត់​រក​ឃើញ​ចំណុច​ក្តៅ

លទ្ធផលដំបូង បន្ទាប់មកអេក្រង់ខ្មៅ
ប្រសិនបើការបង្ហាញចេញមក ប៉ុន្តែបន្ទាប់មកនឹងរលត់កំឡុងពេលចាប់ផ្ដើមខឺណែលលីនុច វាមានមូលហេតុជាច្រើនដែលអាចកើតមាន ហើយទាំងនេះជាធម្មតាទាក់ទងនឹងបញ្ហាក្នុងការអាន EDID ពីឧបករណ៍បង្ហាញ។ ដូចដែលអាចមើលឃើញពីផ្នែកខាងលើដែលទាក់ទងនឹងលំដាប់ចាប់ផ្ដើម EDID ត្រូវបានអាននៅចំណុចផ្សេងៗគ្នាក្នុងអំឡុងពេលដំណើរការចាប់ផ្ដើម ហើយការអាននីមួយៗនេះត្រូវបានធ្វើដោយផ្នែកផ្សេងៗនៃកម្មវិធី។ ការអានចុងក្រោយ នៅពេលដែល KMS គ្រប់គ្រង ត្រូវបានអនុវត្តដោយកូដខឺណែលលីនុចដែលមិនផ្លាស់ប្តូរ ហើយវាមិនដោះស្រាយទម្រង់ EDID ដែលខូច ក៏ដូចជាកម្មវិធីកម្មវិធីបង្កប់មុននោះទេ។ នេះជាមូលហេតុដែលការបង្ហាញអាចឈប់ដំណើរការបានត្រឹមត្រូវនៅពេលដែល KMS គ្រប់គ្រង។ មានវិធីជាច្រើនដើម្បីបញ្ជាក់ថាតើ KMS បរាជ័យក្នុងការអាន EDID ដែរឬទេ ហើយមានពីរយ៉ាងដូចខាងក្រោម។
ពិនិត្យអេក្រង់វិនិច្ឆ័យកម្មវិធីចាប់ផ្ដើមប្រព័ន្ធ (Raspberry Pi 4 តែប៉ុណ្ណោះ)

ចំណាំ
ការវិនិច្ឆ័យកម្មវិធីចាប់ផ្ដើមប្រព័ន្ធត្រូវការកម្មវិធីចាប់ផ្ដើមប្រព័ន្ធថ្មីៗ។ អ្នកអាចដំឡើងកំណែទៅកំណែចុងក្រោយបំផុតដោយប្រើការណែនាំទាំងនេះ៖ https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#updating-the-bootloader ដកកាត SD ហើយចាប់ផ្ដើម Raspberry Pi ឡើងវិញ។ ចុច ESC នៅលើអេក្រង់ដំឡើង OS ហើយអេក្រង់វិភាគគួរតែបង្ហាញនៅលើឧបករណ៍បង្ហាញ។ វាគួរតែមានបន្ទាត់នៅលើការបង្ហាញដែលចាប់ផ្តើមជាមួយនឹងការបង្ហាញ: — សម្រាប់ឧampលេ៖

  • បង្ហាញ៖ DISP0៖ HDMI HPD=1 EDID=ok #2 DISP1: HPD=0 EDID=គ្មាន #0

លទ្ធផលនេះពី Raspberry Pi 4 បង្ហាញថាប្រព័ន្ធបានរកឃើញការបង្ហាញ HDMI នៅលើរន្ធ HDMI 0 ការរកឃើញ hotplug ត្រូវបានអះអាង ហើយ EDID ត្រូវបានអានថាយល់ព្រម។ រកមិនឃើញអ្វីនៅលើរន្ធ HDMI 1 ។

ពិនិត្យមើលថាតើប្រព័ន្ធ KMS បានរកឃើញ EDID ដែរឬទេ
ដើម្បីពិនិត្យមើលវា អ្នកនឹងត្រូវចូលទៅឧបករណ៍ Raspberry Pi តាមរយៈ SSH ពីកុំព្យូទ័រផ្សេង។ SSH អាចត្រូវបានបើកនៅពេលបង្កើតរូបភាពកាត SD ជាមួយ Raspberry Pi Imager ដោយប្រើជម្រើសការកំណត់កម្រិតខ្ពស់។ ការបើកដំណើរការ SSH នៅលើកាត SD ដែលត្រូវបានរូបភាពរួចហើយគឺមានភាពស្មុគស្មាញបន្តិច៖ អ្នកនឹងត្រូវប្រើកុំព្យូទ័រផ្សេងទៀតដើម្បីបន្ថែម file ដាក់ឈ្មោះ ssh ទៅភាគថាសចាប់ផ្ដើម។ ជំនួសកាត SD នៅក្នុង Raspberry Pi ដើម ហើយបើកថាមពលវា។ នេះគួរតែបើក SSH ជាមួយនឹងអាសយដ្ឋាន IP ដែលបែងចែកដោយ DHCP ។ នៅពេលចូល វាយបញ្ចូលដូចខាងក្រោមនៅប្រអប់បញ្ចូលស្ថានីយ ដើម្បីបង្ហាញមាតិកានៃ EDID ណាមួយដែលបានរកឃើញ (អ្នកប្រហែលជាត្រូវផ្លាស់ប្តូរ HDMI-A-1 ទៅ HDMI-A-2 អាស្រ័យលើរន្ធ HDMI នៅលើ Raspberry Pi ឧបករណ៍បង្ហាញត្រូវបានភ្ជាប់។ ទៅ): cat /sys/class/drm/card?-HDMI-A-1/edid ប្រសិនបើមិនមានថតដែលមានឈ្មោះកាតទេ?-HDMI-A-1 ឬស្រដៀងគ្នានោះទំនងជាមិនមាន EDID អាចត្រូវបានអានពីអេក្រង់នោះទេ។ ឧបករណ៍។

ចំណាំ
ក្នុងករណីដែល EDID ត្រូវបានអានដោយជោគជ័យ មាននិម្មិតដែលមានប្រយោជន៍ file នៅក្នុងថតដូចគ្នា ហៅថារបៀប ដែលនៅពេលបង្ហាញបង្ហាញទម្រង់ដែលអាចធ្វើបានទាំងអស់ដែល EDID អះអាងថាឧបករណ៍នេះគាំទ្រ។

ការបន្ធូរបន្ថយ

Hotplug រកឃើញការបរាជ័យ ប្រសិនបើទាំងកម្មវិធីបង្កប់ និង KMS បរាជ័យក្នុងការស្វែងរកម៉ូនីទ័រដែលបានភ្ជាប់ វាអាចជាការបរាជ័យក្នុងការរកឃើញ hotplug — ពោលគឺ Raspberry Pi មិនដឹងថាឧបករណ៍មួយត្រូវបានដោតចូលទេ ដូច្នេះវាមិនពិនិត្យរក EDID ទេ។ នេះអាចបណ្តាលមកពីខ្សែមិនល្អ ឬឧបករណ៍បង្ហាញដែលមិនអះអាង hotplug ត្រឹមត្រូវ។ អ្នកអាចបង្ខំឱ្យរកឃើញ hotplug ដោយផ្លាស់ប្តូរបន្ទាត់ពាក្យបញ្ជាខឺណែល។ file (cmdline.txt) ដែលត្រូវបានរក្សាទុកក្នុងភាគថាសចាប់ផ្ដើមរបស់ Raspberry Pi OS SD កាត។ អ្នកអាចកែសម្រួលវាបាន file នៅលើប្រព័ន្ធមួយផ្សេងទៀត ដោយប្រើកម្មវិធីនិពន្ធណាមួយដែលអ្នកពេញចិត្ត។ បន្ថែមខាងក្រោមទៅចុងបញ្ចប់នៃ cmdline.txt file: video=HDMI-A-1:1280×720@60D ប្រសិនបើអ្នកកំពុងប្រើរន្ធ HDMI ទីពីរ សូមជំនួស HDMI-A-1 ជាមួយ HDMI-A-2។ អ្នកក៏អាចបញ្ជាក់គុណភាពបង្ហាញ និងអត្រាស៊ុមផ្សេងគ្នាបានផងដែរ ប៉ុន្តែត្រូវប្រាកដថាអ្នកជ្រើសរើសឧបករណ៍បង្ហាញដែលគាំទ្រ។

ចំណាំ
ឯកសារនៅលើការកំណត់បន្ទាត់ពាក្យបញ្ជាខឺណែលសម្រាប់វីដេអូអាចរកបាននៅទីនេះ៖ https://www.kernel.org/doc/Documentation/fb/modedb.txt

ព្រមាន
ជង់ក្រាហ្វិកចាស់បានគាំទ្រការប្រើប្រាស់ធាតុ config.txt ដើម្បីកំណត់ hotplug detect ប៉ុន្តែនៅពេលសរសេរវាមិនដំណើរការជាមួយ KMS ទេ។ វាអាចត្រូវបានគាំទ្រនៅក្នុងការចេញផ្សាយកម្មវិធីបង្កប់នាពេលអនាគត។ ធាតុ config.txt គឺ hdmi_force_hotplug ហើយអ្នកអាចបញ្ជាក់រន្ធ HDMI ជាក់លាក់ដែល hotplug អនុវត្តចំពោះការប្រើ hdmi_force_hotplug:0=1 ឬ hdmi_force_hotplug:1=1។ ចំណាំថានាមត្រកូលសម្រាប់ KMS សំដៅលើរន្ធ HDMI ជា 1 និង 2 ខណៈដែល Raspberry Pi ប្រើ 0 និង 1 ។

បញ្ហា EDID
ឧបករណ៍បង្ហាញមួយចំនួនតូចមិនអាចត្រឡប់ EDID វិញបានទេ ប្រសិនបើពួកវាត្រូវបានបិទ ឬនៅពេលដែលការបញ្ចូល AV ខុសត្រូវបានជ្រើសរើស។ នេះអាចជាបញ្ហានៅពេលដែល Raspberry Pi និងឧបករណ៍បង្ហាញនៅលើបន្ទះថាមពលដូចគ្នា ហើយឧបករណ៍ Raspberry Pi ចាប់ផ្ដើមលឿនជាងអេក្រង់។ ជាមួយនឹងឧបករណ៍បែបនេះ អ្នកប្រហែលជាត្រូវផ្តល់ EDID ដោយដៃ។ កាន់តែមិនធម្មតា ឧបករណ៍បង្ហាញមួយចំនួនមានប្លុក EDID ដែលត្រូវបានធ្វើទ្រង់ទ្រាយមិនល្អ និងមិនអាចញែកដោយប្រព័ន្ធ KMS EDID បានទេ។ ក្នុងកាលៈទេសៈទាំងនេះ វាអាចអាន EDID ពីឧបករណ៍ដែលមានគុណភាពបង្ហាញស្រដៀងគ្នា ហើយប្រើវា។ ក្នុងករណីណាក៏ដោយ ការណែនាំខាងក្រោមកំណត់ពីរបៀបអាន EDID ពីឧបករណ៍បង្ហាញ ហើយកំណត់រចនាសម្ព័ន្ធ KMS ដើម្បីប្រើវា ជំនួសឱ្យ KMS ព្យាយាមសួរចម្លើយឧបករណ៍ដោយផ្ទាល់។

ចម្លង EDID ទៅ ក file
ការបង្កើត ក file ការផ្ទុកទិន្នន័យមេតារបស់ EDID ពីដំបូងគឺមិនអាចទៅរួចនោះទេ ហើយការប្រើទិន្នន័យដែលមានស្រាប់គឺងាយស្រួលជាង។ ជាទូទៅវាអាចទៅរួចក្នុងការទទួលបាន EDID ពីឧបករណ៍បង្ហាញ ហើយរក្សាទុកវានៅលើកាត SD របស់ Raspberry Pi ដូច្នេះវាអាចត្រូវបានប្រើប្រាស់ដោយ KMS ជំនួសឱ្យការទទួលបាន EDID ពីឧបករណ៍បង្ហាញ។ ជម្រើសដ៏ងាយស្រួលបំផុតនៅទីនេះគឺត្រូវធានាថាឧបករណ៍បង្ហាញឡើង និងដំណើរការ ហើយនៅលើការបញ្ចូល AV ត្រឹមត្រូវ ហើយ Raspberry Pi បានចាប់ផ្តើមប្រព័ន្ធ HDMI យ៉ាងត្រឹមត្រូវ។ ពីស្ថានីយ ឥឡូវនេះអ្នកអាចចម្លង EDID ទៅ a file ដោយប្រើពាក្យបញ្ជាខាងក្រោម៖ sudo cp /sys/class/drm/card?-HDMI-A-1/edid /lib/firmware/myedid.dat ប្រសិនបើសម្រាប់ហេតុផលមួយចំនួនដែល EDID មិនមានវត្តមាន អ្នកអាចចាប់ផ្ដើមឧបករណ៍ដោយមិនមាន -KMS mode ដែលជោគជ័យក្នុងការចាប់ផ្ដើមទៅកាន់កុំព្យូទ័រលើតុ ឬកុងសូល បន្ទាប់មកចម្លង EDID ដែលកម្មវិធីបង្កប់នឹង (សង្ឃឹមថា) អានដោយជោគជ័យទៅ file.

  1. ចាប់ផ្ដើមទៅរបៀបក្រាហ្វិកចាស់។
    1. កែសម្រួល config.txt ក្នុងភាគថាសចាប់ផ្ដើម ត្រូវប្រាកដថាដំណើរការកម្មវិធីនិពន្ធរបស់អ្នកដោយប្រើ sudo ហើយប្តូរបន្ទាត់ដែលនិយាយថា dtoverlay=vc4-kms-v3d ទៅ #dtoverlay=vc4-kms-v3d ។
    2. ចាប់ផ្ដើមឡើងវិញ។
  2. ឥឡូវនេះ កុងសូលការចូលផ្ទៃតុ ឬចូលគួរតែលេចឡើង។
    1. ដោយប្រើស្ថានីយ សូមចម្លង EDID ពីឧបករណ៍បង្ហាញដែលបានភ្ជាប់ទៅ a file ជាមួយនឹងពាក្យបញ្ជាដូចខាងក្រោមៈ
  • tvservice -d myedid.dat sudo mv myedid.dat /lib/firmware/

ការប្រើប្រាស់ ក file-based EDID ជំនួសឱ្យការសួរចម្លើយឧបករណ៍បង្ហាញ កែសម្រួល /boot/cmdline.txt ត្រូវប្រាកដថាដំណើរការកម្មវិធីនិពន្ធរបស់អ្នកដោយប្រើ sudo ហើយបន្ថែមដូចខាងក្រោមទៅបន្ទាត់ពាក្យបញ្ជាខឺណែល៖ drm.edid_firmware=myedid.dat អ្នកអាចអនុវត្ត EDID ទៅ រន្ធ HDMI ជាក់លាក់ដូចខាងក្រោម៖ drm.edid_firmware=HDMI-A-1:myedid.dat បើចាំបាច់ សូមចាប់ផ្ដើមចូលទៅក្នុងរបៀប KMS ដោយធ្វើដូចខាងក្រោម៖

  1. កែសម្រួល config.txt ក្នុងភាគថាសចាប់ផ្ដើម ត្រូវប្រាកដថាដំណើរការកម្មវិធីនិពន្ធរបស់អ្នកដោយប្រើ sudo ហើយប្តូរបន្ទាត់ដែលនិយាយថា #dtoverlay=vc4-kms-v3d ទៅ dtoverlay=vc4-kms-v3d ។
  2. ចាប់ផ្ដើមឡើងវិញ។

ចំណាំ
ប្រសិនបើអ្នកប្រើ a file-based EDID ប៉ុន្តែនៅតែមានបញ្ហាជាមួយ hotplug អ្នកអាចបង្ខំឱ្យរកឃើញ hotplug ដោយបន្ថែមដូចខាងក្រោមទៅបន្ទាត់ពាក្យបញ្ជាខឺណែល: video=HDMI-A-1:D ។

ឯកសារ/ធនធាន

កម្មវិធីបញ្ជាក្រាហ្វិកលទ្ធផល RaspberryPi KMS HDMI [pdf] សៀវភៅណែនាំអ្នកប្រើប្រាស់
KMS, កម្មវិធីបញ្ជាក្រាហ្វិកលទ្ធផល HDMI, KMS HDMI Output, កម្មវិធីបញ្ជាក្រាហ្វិក, កម្មវិធីបញ្ជាក្រាហ្វិកលទ្ធផល KMS HDMI, កម្មវិធីបញ្ជា

ឯកសារយោង

ទុកមតិយោបល់

អាសយដ្ឋានអ៊ីមែលរបស់អ្នកនឹងមិនត្រូវបានផ្សព្វផ្សាយទេ។ វាលដែលត្រូវការត្រូវបានសម្គាល់ *