Mythbuntu 12.04は、オンになっているときに EDID 情報のみを提供するテレビで使用しています。コンピューターはMythTVを介してビデオを録画するために使用されるため、コンピューターの実行中は常にテレビをオンにしたくありません。
EDIDをファイルに保存し、/ lib/firmwareに入れ、drm_kms_helper.edid_firmware=DVI-I-1:LT26-A.VGA.EDID.bin
をカーネルコマンドラインに追加しました。カーネルはこのファイルからEDIDをロードし、Xは適切な解像度で起動します。ただし、カーネルは引き続きデバイスからEDIDを読み取ろうとし、次のようなメッセージでログをスパムします。
[ 31.926373] [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder is 128
[ 31.927144] Raw EDID:
[ 31.927352] ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 31.927882] ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 31.928454] ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 31.928984] ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 31.929513] ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 31.930042] ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 31.930569] ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 31.931097] ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[ 31.931630] radeon 0000:01:00.0: DVI-I-1: Ignoring invalid EDID block 1.
[ 31.990143] i2c i2c-3: sendbytes: NAK bailout.
[ 31.993215] [drm:radeon_dvi_detect] *ERROR* DVI-I-1: probed a monitor but no|invalid EDID
[ 32.023802] [drm] Got external EDID base block and 0 extensions from "LT26-A.VGA.EDID.bin" for connector "DVI-I-1"
[ 32.774355] i2c i2c-3: sendbytes: NAK bailout.
Drm_kms_helper.edid_firmwareオプションを追加すると、シャットダウンまたは再起動時に長い遅延が発生します。モニターの電源が入っていても起こります。その一部は、plymouth
のすべての呼び出しがしばらくハングしたためであり、おそらくplymouthd
がハングしたためです。これにより、シャットダウン時に実行されるスクリプトがしばらくハングします。シャットダウン時にplymouthd
を実行しないと役立ちますが、まだ遅延があります。
遅延後、私は見ます:
[drm:edid_load] *ERROR* Requesting EDID firmware "LT26-A.VGA.EDID.bin" failed (err=-2)
これは非常に速く点滅し、スプラッシュ画面または再起動が続きます。カメラでしか録画できませんでした。遅延の間、コンピューターはSSHを介して完全に使用可能であったため、私には意味がありません。カーネルはファイルを読み取れるはずです。
これはプリマスの問題だとは思わない。おそらくハングしているのは、要求するビデオモードの変更がハングしているためです。ただし、プリマスに通常のVGAテキストモードを常に維持するように指示できるようになりたいです。
drm_kms_helper.poll=0
およびdrm_kms_helper.poll=N
カーネルオプションも試しました。/sysに従ってオプションを設定できますが、それによる変更は見当たりません。
nomodeset
カーネルパラメーターを追加すると、これらの問題が解消されます。ただし、Xサーバーのradeonドライバーの現在のバージョンは正しく機能せず、新しいバージョンは実行を拒否します。
更新:--tty=/dev/console
のシャットダウン時のplymouthdの呼び出しに/etc/init/plymouth.conf
を追加すると、テレビがオフになっていてもシャットダウンのハングが修正されました。
まったく同じ問題はありませんが、開いているセッション間でユーザーを切り替えると、xorgで問題が見つかりました。
問題:1600x1050とのセッションがあり、同じ1600x1050解像度で以前に設定された別のユーザーのセッションに切り替えます。しかし、このセッションに切り替えると、画面は1280x1024になり、何らかの理由でセッションのサイズが非常に間違っています(画面の解像度よりも大きく、ほとんどのものを移動またはクリックできないため、再起動する必要がありますすべてのXorg)。
回避策:幸いなことに、私はそれをトリッキーな方法で解決する方法を見つけました:解決ファイルで解決ファイル名を変更してください。
Get-edidコマンドをインストールします。
Sudo apt-get install read-edid
Edid情報を含むbinファイルを作成します。
Sudo get-edid > 1600x1050.bin
このファイルを保存するフォルダーを作成します。
Sudo mkdir /lib/firmware/edid
ファイルをコピーします。
Sudo cp 1600x1050.bin /lib/firmware/edid
Grubを編集してlinuxコマンドを編集し、このファイルをkmsでロードします。
sudoedit /etc/default/grub
行を編集:
GRUB_CMDLINE_LINUX_DEFAULT="drm_kms_helper.edid_firmware=edid/1600x1050.bin quiet"
Name.binファイルを変更して実行します
Sudo update-grub
何らかの理由で、それは私にとって非常にうまくいきました。このカードとドライバーがあります:
fglrxinfo
display::0 screen:0
OpenGLベンダー文字列:Advanced Micro Devices、Inc.
OpenGLレンダラー文字列:AMD Radeon HD 6450
OpenGLバージョン文字列:4.2.12002互換性プロファイルコンテキスト9.012
コマンドを実行した後に表示される以下の私のedid情報# parse-edid < 1600x1050.bin
:
parse-edid: parse-edid version 2.0.0
parse-edid: EDID checksum passed.
# EDID version 1 revision 3
Section "Monitor"
# Block type: 2:0 3:fc
Identifier "22T41-H-AN"
VendorName "KTC"
ModelName "22T41-H-AN"
# Block type: 2:0 3:fc
# Block type: 2:0 3:fd
HorizSync 15-68
VertRefresh 49-61
# Max dot clock (video bandwidth) 150 MHz
# DPMS capabilities: Active off:no Suspend:no Standby:no
Mode "1280x720" # vfreq 60.000Hz, hfreq 45.000kHz
DotClock 74.250000
HTimings 1280 1390 1430 1650
VTimings 720 725 730 750
Flags "+HSync" "+VSync"
EndMode
Mode "1680x1050" # vfreq 59.883Hz, hfreq 64.674kHz
DotClock 119.000000
HTimings 1680 1728 1760 1840
VTimings 1050 1053 1059 1080
Flags "-HSync" "+VSync"
EndMode
# Block type: 2:0 3:fc
# Block type: 2:0 3:fd
EndSection
kernel.log:
2139 Oct 2 21:45:06 dans679-computer kernel: [ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.8.0-30-generic root=UUID=939b3111-4906-46ae-9ad7-7faa783d490d ro drm_kms_helper.edid_firmware=edid/1600x1050.bin quiet
ランチパッドで同様のバグレポートを探していましたが、まだ正しいものを探していました。この問題は、ユーザーセッション間の切り替えだけでなく、KMS(カーネルモードスイッチ)の多くのことに影響を与えると思います。
この問題を報告する正しい方法を見つけるのは非常に困難です。Xorg/ Kernelチームの助けを借りたいです。
これは何らかの低レベルで修正できると思いますが、この種の回避策ではユーザーにとってより簡単な方法で修正できると思います:たとえば、edidが検出されたかどうかをテストするスクリプトを追加し、ユーザーにスクリプトがedid情報を取得し、それをカーネルコマンドに渡し、それが正常に機能していたかどうか、ユーザーがこれらの設定を保持するかどうかを尋ねます。
この情報のほとんどは Arch wikiカーネルモード設定ページ で見つかりました。
私はそれを投稿しています:
https://askubuntu.com/posts/352978
https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-ATI/+bug/579292
Edidで始まる必要があります
00 FF FF FF FF FF FF 00
fFの128倍にはなりません。
EDIDがありません。おそらく、EDIDを備えたチップではないか、モニターまたはビデオカード間のEDIDインターフェイスの物理的な接触が壊れているためです。または、モニター内でも。