چون این قضیه ی گرافیک لپتاپ ها تو گنو/لینوکس خیلی سوال میشه و به نظرم واسه خیلی ها مبهمه، یه توضیحی میدم شاید به درد خیلی ها بخوره
همون روز اول که اوبونتو نصب کردم اولین مشکلی که برام پیش اومد نصب گرافیک ATI بود . یه دو سه هفته ای گوگل کردم تا به یه چیزایی رسیدم.
وقتی تقاضا واسه لپتاپ ها بیشتر از دسکتاپ ها شد، قضیه ی power saving مطرح میشه. در واقع همین hybrid graphics یه راه حله واسه این مشکل مصرف انرژی لپتاپ ها. لپتاپ های hybrid از دوتا graphic card استفاده میکنن .
بخوام دقیق تر بگم، اوایل تکنولوژی hybrid بود که amd و NVIDIA همزمان ارائه دادن. یعنی هر دو گرافیک با هم کار میکردند (که مصرف باتری زیاد بود)
اما بعدش switchable graphic اومد. مثل خیلی از لپتاپ های الان. که این قابلیت رو داشت بین دو کارت گرافیک سوییچ کنیم. در این حالت مصرف انرژی بهتر بود. مثلا وقتی لپتاپ رو از برق بکشیم، به حالت power saving میرفت و اون کارت گرافیک intel که قدرت کمتری در پردازش داشت فعال می شد.
واسه سوییچ کردن قاعدتا نیاز به درایور داریم.
خب این swithable بودن گرافیک تو ویندوز خیلی خوب پشتیبانی میشه. چون AMD درایور catalyst رو واسه دانلود گذاشته و خیلی خوب کار میکنه. NVIDIA هم optimus
متاسفانه تو گنو/لینوکس هنوز راه حل درست حسابی واسش نیست !
این مطلب یه توضیحی درباره ی گرافیک های ATI است (ربطی به NVIDIA نداره )اول لازمه که لیست گرافیک های switchable رو بذارم :
http://www.amd.com/us/products/technologies/switchable-graphics/Pages/switchable-graphics.aspxخود گرافیک های switchable/hybrid دو دسته ان :
MUXed and MUX-less(MUX = multiplexer)
تکنولوژی قدیمیتر همون muxed ها هستند. از اسمش معلومه، واسه سوییچ کردن بین دو گرافیک، از یه multiplexer به صورت سخت افزاری استفاده میکنه. (مثلا بعضی لپتاپ ها هستند که توی bios میشه مشخص کرد سیستم عامل از کدوم کارت گرافیک استفاده کنه)
* به اون گرافیک پایه (که قدرت پردازش پایین تری داره) integrated graphic process یا IGP میگن واسه power saving
* به گرافیک دوم dedicated graphic process همون DGP میگن واسه high performance
اما اکثر لپتاپ ها الان دیگه MUX-less هستند . (عمل سوییچ به صورت نرم افزاری انجام میشه) در سیستم های MUX-less همیشه IGP روشنه . مثلا وقتی میخوایم کارهای سنگین مثل GAME انجام بدیم، DGP فعال میشه و اون عملیات rendering به عهده ی همین کارت گرافیک دوم است.
نکته : معمولا کارت گرافیک های ati HD 4xxx به قبل ، muxed هستند . اما ati HD 6xxx و ati HD 7xxx و جدیدتر سیستم های mux-less هستند
اما تو گنو/لینوکس چه اتفاقی می افته؟وقتی سیستم شروع به کار میکنه، کرنل (لینوکس) از IGP برای ارتباط با بعضی برنامه ها استفاده میکنه. بعد از اون X server اجرا میشه تا یک محیط گرافیکی به وجود بیاد. بعد از اون دیگه خودتون میدونین یه صفحه ی login میاد و ادامه ی ماجرا !
این روند برای سیستم هایی که فقط 1 کارت گرافیک دارن طراحی شده.
مشکل دقیقا از اونجایی شروع میشه که X server از گرافیک های hybrid پشتیبانی نمیکنه (فعلا)
دقیق بخوام بگم میشه این که خود سایت x.org نوشته :
On MUX-less systems, the discrete card is
solely for rendering, not display. At the moment the X server does not
support rendering and display from different cards
حالا چه راه حل هایی داریم؟ ** اگه سیستم MUXed است، پس میشه با استفاده از بعضی برنامه ها از طریق همون multiplerxer بین دو گرافیک سوییچ کرد.
1: vga_switcheroo
فکر میکنم از کرنل 2.6 به بعد امکان سوییچ تو خود لینوکس قرار گرفته. یعنی همون vga_switcheroo
واسه استفاده از vga_switcheroo کافیه پکیجش رو دانلود کنین. نصب کنین و خیلی شیک و تمیز از دکمه های گرافیکیه switch استفاده کنین:
2: acpi_call
این لینک طریقه ی استفاده از acpi_call رو کامل و راحت توضیح داده :
linux-hybrid-graphics.blogspot.com/2010/07/using-acpicall-module-to-switch-onoff.html ** اگر که سیستم MUX-less است :
تو این حالت یه مقدار دردسر زیاده.
راه اول:
اینه که گرافیک ati رو خاموش کنین ینی کلا بی خیال این DGP بشین! اوبونتو برای کارهای روزمره نیازی به کارت گرافیک قدرتمند نداره. (حداقل واسه من)
راه دوم:
از اونجایی که X server همزمان از دو کارت گرافیک پشتیبانی نمی کنه، وقتی سیستم بوت میشه، کرنل از IGP یا همون گرافیک intel برای ارتباط با display استفاده میکنه.اما با استفاده از نصب درایورهای خصوصی X server از DGP استفاده میکنه.
این دقیقا همون کاری هست که پروژه ی bumblebee برای nvidia انجام میده . (تو سایت azadrah.net کامل توضیح داده، میتونین پیداش کنین)
یعنی شما تنها کاری که واسه نصب درایور ATI باید انجام بدی لینک پایینه (مسئولیتش هم با خودتون، شاید کار نکرد)
اگر مدل گرافیک لپتاپ از این دو سری باشه : ati HD 6xxx یا ati HD 7xxx پس این روشی که تو این لینک گفته شده جواب میده.
http://ubuntuforums.org/showthread.php?t=1930450
نکته : کلا اگر از درایور های open source استفاده بشه خیلی بهتره . اما اگه کسی خواست از درایور های خود AMD استفاده کنه 2 تا راه داره: میشه از اوبونتو کمک گرفت. توی additional driver که برین خودش دنبال گرافیک شما میگرده و چیزی که به شما پیشنهاد میکنه اینه : fglrx
راه دوم دانلود catalyst از سایت AMD است که این کارو نکنین بهتره (با توجه به اینکه اکثر درایور های amd از X server پشتیبانی نمیکنه )
نکته:
این مطلب بیشتر واسه اینه که مشکل رو بشناسین. جواب آماده نداره، واسه همین خیلی کلی توضیح دادم در واقع خودم 2 هفته فقط درگیر این بودم که باید دنبال چی بگردم، یا چی سرچ کنم.
وقتی سوال رو کامل متوجه بشین، پیدا کردن جوابش دیگه خیلی آسون میشه. کافیه با اطلاعات بالا برین 1 روز سرچ کنین. الان مثلا یه نفر که گرافیکش ati mobility HD 4xxx است، با این چیزایی که گفتم راحت میفهمه سیستمش muxed است و باید بره با vga_switcheroo مشکلشو حل کنه، به همین راحتی
ویرایش :این لینک هم حتما بخونین . توضیحی در رابطه با گرافیک های 4xxx و ورژن xorg 1.13 در اوبونتو ۱۲.۱۰
http://forum.ubuntu.ir/index.php/topic,54252.msg426767.html#msg426767