حل مشکل برید شدن گوشه تصویر تلویزیون در گنولینوکس اوبونتو

اگر از بریده شدن گوشه‌های تصویر لپ‌تاپ روی تلوزیون رنج می‌برید، یک راه حل ساده را در این مقاله معرفی می‌کنم.

یکی از مشکلات رایج در اتصال لپ‌تاپ به تلویزیون، از دست رفتن تصویر در حاشیه‌ها است. این مشکل شاید برای دیدن فیلم، خیلی جدی نباشد اما قطعا اگر جزئیات صفحه برای کاربر مهم باشد، حذف شده گوشه‌های تصویر مشکلی جدی می‌شود. این مشکل که گاهی با عنوان overscan شناخته می‌شود در تنظیمات برخی تلویزیون‌ها قابل رفع است اما اگر چنین تنظیمی وجود نداشته باشد چه باید کرد؟

خوب من مدت‌ها بود که چنین مشکلی را داشتم. با شناخت مختصری که از دستور xrandr داشتم حدس می‌زدم که با این دستور بتوان مشکل را رفع کرد اما موفقیتی به دست نیاوردم. جستجوهایم را ادامه دادم تا نهایتا به بسته intel-gpu-tools رسیدم که برای گرافیک‌های اینتل است. این بسته را با این دستور روی اوبونتو می‌توان نصب کرد:

➜  ~ sudo apt install intel-gpu-tools

با نصب این برنامه می‌توان با دستور intel_panel_fitter کار کرد. این دستور امکان اعمال تغییرات روی خروجی‌های تصویری را می‌دهد. اولین کار، پیدا کردن مسیر لوله‌کشی تصویری است. لوله‌ها با حروف A و B شناخته می‌شوند و اگر از پردازنده‌های Ive Bridge و جدیدتر از آن استفاده کنید، لوله C هم خواهید داشت. برای دیدن اینکه کدام لوله‌ها فعال هستند از دستور زیر استفاده می‌کنیم:

➜  ~ sudo intel_panel_fitter -l
WARNING:
This tool is a workaround for people that don't have a Kernel with overscan compensation properties: it is just a temporary solution that may or may not work. Use it at your own risk.

Pipe A:
- enabled
- progressive
- pf disabled

Pipe B:
- enabled
- progressive
- pf disabled

Pipe C:
- disabled

روی دستگاه من، A مربوط به صفحه نمایش لپ‌تاپ و B مربوط به خروجی HDMI بود (که با قطع و وصل کردن کابل، متوجه این شدم). پس از تشخیص اینکه کدام خط لوله به تلویزیون‌تان مربوط می‌شود (که احتمالا همین B باشد) می‌توان عرض و ارتفاع محدوده‌ای که باید در آن تصویر نمایش داده شود را تنظیم کنیم. با این کار، تصویر در ابعاد جدید و در وسط تلویزیون نمایش پیدا خواهد کرد. از آن جایی که کیفیت پخش من روی تلویزیون ۱۲۸۰ در ۷۲۰ بود با چند بار آزمون و خطا به به ابعاد ۱۲۰۰ در ۶۷۰ رسیدم که نهایتا با دستور زیر تغییرات اعمال شد:

➜  ~ sudo intel_panel_fitter -p B -x 1200 -y 670
WARNING:
This tool is a workaround for people that don't have a Kernel with overscan compensation properties: it is just a temporary solution that may or may not work. Use it at your own risk.
Changing size for pipe B:
- width:  1280 -> 1200
- height: 720 -> 670
- pos: 40x25

هر زمان هم که خواستید این پالایه را حذف کنید می‌توانید از دستور زیر استفاده کنید:

sudo intel_panel_fitter -p B -d

چند یادآوری مهم:

  • در مواردی که نیاز به تغییر است، به گزینه p که لوله را انتخاب می‌کند دقت کنید.
  • این تغییرات دائمی نیستند. در نتیجه با هر بار راه‌اندازی سامانه، تنظیمات به حالت اولیه باز می‌گردند. اگر همیشه نیاز به اجرا چنین کدی دارید، شاید بهتر باشد آن را بسته به سیستم‌عاملی که استفاده می‌کنید، در جایی بگذارید که در هر بار راه‌اندازی، اجرا شود.