लिनक्स में मल्टी-मॉनीटर / मल्टी-जीपीयू के लिए हार्डवेयर त्वरण और झेनराम को सक्षम करना


10

मेरा वर्तमान सेटअप तीन मॉनिटर से जुड़ा है जो निम्नानुसार है (मॉनिटर बाएं से दाएं सूचीबद्ध है):

GPU0 (nVidia GTX 280):
- Dell 2405FPW (1920x1200)
- Dell U2410 (1920x1200)
GPU1 (nVidia 210):
- Dell 2405FPW (1920x1200)

विंडोज 7 में एक आकर्षण की तरह काम करता है, लिनक्स में इतना नहीं। मुझे लगता है कि केवल तीन वास्तविक विकल्प हैं:

  1. एक अलग एक्स स्क्रीन के रूप में सभी तीन मॉनिटरों को चलाएं, मुझे हार्डवेयर त्वरण मिलता है, लेकिन जैसा कि वे सभी स्वतंत्र एक्स सत्र हैं मैं उन दोनों के बीच विंडोज़ को स्थानांतरित नहीं कर सकता और किसी भी समय केवल एक पर फ़ायरफ़ॉक्स खोल सकता हूं।
  2. GPU0 पर दो को ट्विन व्यू मोड में चलाएं और एक अलग एक्स स्क्रीन के रूप में GPU1 है। एक ही सीमा के रूप में 1 लेकिन कम से कम दो मॉनिटर एक साथ काम करते हैं ठीक है। मेरे पास एक ऐसा मुद्दा था जहां कभी-कभार लिनक्स एक ही बड़े मॉनिटर के रूप में GPU0 पर दोनों मॉनिटरों को देखता था।
  3. शिनरामा को सक्षम करें और सब कुछ काम करें जैसा कि मैं चाहता हूं, लेकिन हार्डवेयर त्वरण चला गया है और प्रदर्शन विंडोज 95 शैली तड़का हुआ है।

मेरा आदर्श समाधान यह होगा कि सभी स्क्रीन काम करें क्योंकि वे हार्डवेयर एक्सेलेरेशन अक्षम होने की सीमा के बिना झिनेरमा के तहत करते हैं। मुझे इस बात से भी कोई सरोकार नहीं है कि इसका मतलब है कि GPU0 पर तीनों को रेंडर करना और किसी भी तरह से मॉनिटर के तीसरे मॉनिटर को GPU1 पर पेश करना, जो भी काम करता है।

मेरा प्रश्न यह है: क्या इसे पूरा करने का कोई तरीका है? मुझे ऐसा नहीं लगता कि मेरा उपयोग मामला ऐसा है, जिसमें कम से कम कुछ प्रकार का समर्थन नहीं होना चाहिए (ऊपर प्रस्तुत तीन सीमित विकल्पों से परे), या मेरा सबसे अच्छा विकल्प सिर्फ इसे चूसना और चुनना है दोनों को बदलने के लिए एक बेहतर कार्ड है जो अपने आप तीन आउटपुट को संभाल सकता है?


1
क्या यह आपके प्रश्न का उत्तर देता है?
नौफुली क्यु

जवाबों:


1

यह एक स्क्रिप्ट है जिसे मैंने लिनक्स मिंट पर XFCE के साथ उसी तरह के सेटअप के लिए बनाया है। झिनराम का उपयोग नहीं। मेरा सेटअप 1 मॉनिटर पोर्ट्रेट, 2 और 3, लैंडस्केप था। एक जादू की तरह काम किया। शुरुआत में 5 सेकंड का ठहराव इसलिए था क्योंकि इसे सत्र के साथ शुरू करने के लिए निर्धारित किया गया था, और यदि इसे बहुत जल्दी चलाया जाता था, तो यह सही ढंग से काम नहीं कर रहा था।

ध्यान दें कि मेरे विशिष्ट उदाहरण में, मुझे स्क्रीन को नीचे की ओर संरेखित करना था क्योंकि एक दूसरों की तुलना में अधिक था। शीर्ष पर संरेखित करना अपेक्षित व्यवहार नहीं दे रहा था।

अंत में, ज़ेंडर का उपयोग करना ही एकमात्र तरीका था जिससे मुझे वह काम मिल गया जिस तरह से मैं चाहता था।

इसे अपनी सेटिंग्स के साथ आज़माएं

#!/bin/bash
sleep 5
xrandr --size 5040x1920 --output HDMI-0 --mode 1920x1080 --pos 1200x840 --primary \
--output DVI-1-1 --mode 1920x1080 --pos 3120x840 \
--output DVI-0 --mode 1920x1200 --pos 0x0 --rotate left

मैंने अपने ब्लॉग पर एक लेख बनाया है, हालाँकि यह फ्रेंच में है: https://akim.sissaoui.com/linux-attitude/un-bureau-etendu-sur-trois-ecrans-avec-deux-cartes-graphiques/


0

आपने मूल रूप से खुद को जवाब दिया है। लिनक्स में फिलहाल यह संभव नहीं है क्योंकि लिनक्स में कई GPU के लिए कोई उचित समर्थन नहीं है।

लिनक्स के लिए मल्टीपल जीपीयू सपोर्ट को गूगल समर ऑफ कोड के प्रोजेक्ट के रूप में सुझाया गया है । लेकिन अगर आप मुझसे पूछेंगे तो बहुत जल्द ही प्राइम-टाइम के लिए तैयार होने की संभावना नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.