歡迎您光臨本站 註冊首頁

多顯卡+多鍵鼠用linux

←手機掃碼閱讀     火星人 @ 2014-03-25 , reply:0

Linux的多重的本地的XFree用戶
你總能從得到這文件的最新的版本http://cambuca.ldhs.cetuc.puc-rio.br/multiuser
有需要被提出以便為了支持多重的XFree實例(和用戶)的一些問題:
VT處理-- Linux核心實際上的終端計劃近日來是一種巨大出租。 它在過去使用是好的來有屏幕當方法多重,但是現在正是某樣東西需要完全再書面(若干Linux開發者已顯示對發展2.5.x系列的一個好的計劃的興趣)。 主要的問題是那個VT代碼不理解我們可能有多重因此,可以是完全獨立的的輸入和輸出設備。 對每一硬體沒有是如此與一給的套VT聯繫的方法Linux核心將了解VT能同時被使用哪一種。 如果我們發送XFree86的多重的實例他們將在不同的VTs和Linux核心上將告知他們關於所有人VT的交換的素材之事宜。 轉換(圖表) VT不可使用硬體當它將與其它活躍的VT正常弄亂,但是我們有兩張獨立的視頻卡片當,這是不再真實的。
鍵盤支持--在上的多重的老鼠X當我們可能為了每一個規定「設備」選擇,已經是現實。 遺憾地,鍵盤駕駛員在XFree86核心仍然深深地根深蒂固在XFree86核心,它不是一種分開的模塊和接近控制台輸入輸出發揮作用閱讀scancodes。 每一XFree86實例將有他們的鍵盤通過交換的VT訪問停止。 此外,Linux仍然缺乏多重的鍵盤的支持按照一種充分定義的方法。 讓我們等候2.5.x樹看到意志被完成的...
我的解決

我的出租肯定地最最好的一個,我知道能是XFree86和Linux核心中的好的工具的成千上萬的事情支持真實雙重頭(和雙重輸入)按照一種清潔的方法。 但是它為了我工作。 不要責備我如果你花費你的錢和時間購買videocards,監視器,鍵盤,和它老鼠不工作。 你被警告。

雖然我將愛看見XFree86支持同時的布局(沒有另一個實例)和商標新的鍵盤駕駛員,我不有對項目進行必要的理解靠自己執行它。 無論如何,這種巨大塊的軟體的XFree86開發者的我的關係!

我的想法是XFree86的兩個實例。 第一將使用一個正常的XFree86伺服器,它將初始化主要的視頻卡片並且把它附加到VT。 它也將在鍵盤使用標準系統而某樣東西( PS/2,連續,USB作為PS/2仿效,你想要無論什麼)是老鼠。

XFree的第二個實例將是我修改X伺服器。 它不全然支持交換的VT因為它被用來控制被任何其它VT正常不是使用的硬體。 閱讀我的嘴唇,這是十分重要的: 視頻卡片不能是主要的,老鼠不能是的同樣的使用gpm和鍵盤必須是USB和不可產生正常的Linux控制台的scancodes!

當鍵盤在鍵盤(標準的控制台的沒有鑰匙)不看起來象正常修改X我的鍵盤駕駛員伺服器必須照料把他們翻譯成為正常的scancodes的USB事件。
過程(逐步地)


1)你需要得到XFree 4.0.x ( RedHat 7.0和許多最近的distros以它來)並且為了兩個視頻卡片和監視器構成它。 我建議你首先以下列的Xinerama擴展嘗試它這HowTo
: http://linuxdocs.org/HOWTOs/Xinerama-HOWTO.html
然後修改你的XF86Config或者XF86Config-4在兩個布局中以Xinerama擴展使用他們分開你的屏幕,代替。 不知道我所是的談論? 然後,該閱讀XF86Config了,做「人XF86Config」

兩個布局你的XF86Config應該看起來象這個:
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0"
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection

Section "ServerLayout"
Identifier "Layout1"
Screen 0 "Screen1"
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection

Section "InputDevice"
Identifier "Keyboard0"
Driver "keyboard"
# this is for supporting deadkeys
Option "XkbRules" "xfree86"
Option "XkbModel" "pc101"
Option "XkbLayout" "us_intl"
EndSection

Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Device" "/dev/mouse"
Option "Protocol" "IMPS/2"
Option "Emulate3Buttons" "off"
Option "ZAxisMapping" "4 5"
EndSection

Section "Monitor"
Identifier "Plex17"
VendorName "Unknown"
ModelName "Unknown"
HorizSync 31.5 - 79.0
VertRefresh 50-190
EndSection

Section "Monitor"
Identifier "Syncmaster3"
HorizSync 31.5 - 79.0
VertRefresh 50-170
EndSection

Section "Device"
Identifier "FireGL 1000 PRO"
Driver "glint"
BusID "pci:1:0:0"
BoardName "Unknown"
EndSection

Section "Device"
Identifier "Voodoo"
Driver "glide"
BusID "pci:0:12:0"
EndSection

Section "Screen"
Identifier "Screen0"
Device "FireGL 1000 PRO"
Monitor "Plex17"
DefaultDepth 16
Subsection "Display"
Depth 16
Modes "1024x768" "800x600"
EndSubSection
EndSection

Section "Screen"
Identifier "Screen1"
Device "Voodoo"
Monitor "SyncMaster 3"
DefaultDepth 16
SubSection "Display"
Depth 16
Modes "1024x768" "800x600"
EndSubSection
EndSection
這應該微不足道做因為它幾乎與Xinerama配置一樣但是兩個布局。 然後,把你的機器轉換成為runlevel並且3 ( init 3 )嘗試兩個布局,一個一次:
# XFree86 -layout Layout0
# XFree86 -layout Layout1
如在howto中所說的注意BusID設置。 注意到,dualhead板(像Matrox G400一樣)當我們將使用2個實例,不應該通過下一步工作對同樣的硬體談話。 但是我未嘗試我自己(如果任何讀者想要捐獻這樣視頻卡片,我將高興嘗試它... )。

2)將你第二隻老鼠塞堵在系統上並且構成XF86Config在第二個布局中使用它。 這隻老鼠不可被任何其它計劃使用,像gpm一樣。 XF86Config將看起來象這個(僅僅改變的段):
Section "ServerLayout"
Identifier "Layout1"
Screen 0 "Screen1"
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection


Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Device" "/dev/ttyS1"
Option "Protocol" "Microsoft"
EndSection
再一次,測試這個布局確保它工作。


3)如此得到Linux核心2.4.0我們能以USB支持玩。 一些2.2.x核心可能工作當他們有backported USB支持.
在核心配置中,使USB支持( CONFIG-USB )和鍵盤(任一個CONFIG-USB-掩藏或者CONFIG-USB-KBD如果不需要USB老鼠支持你)能夠。 你必須使「輸入核心支持」( CONFIG-輸入)能夠和當我們不想要USB是系統鍵盤,不可使「鍵盤支持」( CONFIG-輸入KEYBDEV )能夠一個。 當我將使用它來收到scancodes,也使「事件介面」( CONFIG-輸入EVDEV )能夠。

編輯並且安裝核心。 現在塞堵你的USB鍵盤,一次核心進入你不應該在控制台從它看見任何所壓的鑰匙。 現在嘗試閱讀鍵盤事件(假定鍵盤是你有的唯一的USB設備):
# cat /dev/input/event0
當你打出,你應該在屏幕上看見一些廢物。 那好,你的鍵盤工作。 如果你不看見任何事物或者得到「沒有這樣設備」,你的USB系統出了點毛病。 在你的核心來源中為了更多信息閱讀文件/ usb。
,你不需要再編輯你的核心,
#cat /etc/modules.conf

probeall usb-interface hid usb-ohci
post-install keybdev rmmod keybdev
above usb-ohci evdev

4)得到你的XFree86 4.0.x的來源如果你已經這樣做未。 來源由www.xfree86.org提供。 應該有3或者4個大的.tgz文件,但是你將僅僅需要頭個。

擴充樹並且運用我的碎片,這能被下載http://cambuca.ldhs.cetuc.puc-ri ... 4.0.2-2nd-0.9.patch
從包裝到遵循指令建造X伺服器(做世界)。 你應該在目錄xc /計劃與Xserver上得到新XFree86可執行。 以另一個名稱(像第XFREE86-2一樣)複製它到你的 /usr/X11R6/bin
或者如果你喜歡容易的方法,嘗試一我第XFREE86-2個伺服器(對著glibc-2.1編輯):
http://cambuca.ldhs.cetuc.puc-ri ... Free86-4.0.2-2nd.gz
這個伺服器僅僅支持USB鍵盤和不奪取VT。 唯一的VT編碼它有通過第XFREE86-2個vtxx參數轉換成為一個給的控制台。

運用碎片為了能幫助我改進這個計劃的開發者僅僅被計劃。 它也將要求你盤空間的成千的MB。 如果伺服器用你的系統不工作我提供X有少量我能做這個。 如果你固定它能,發現問題的試圖並且。


5)修改第二個布局使用USB鍵盤。 這將要求你使用規約「usbev」我建立並且規定/ dev與輸入/ eventx你作為設備喜歡。 XF86Config應該現在看起來象這個(僅僅改變的段):

Section "ServerLayout"
Identifier "Layout1"
Screen 0 "Screen1"
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
EndSection

Section "InputDevice"
Identifier "Keyboard1"
Driver "keyboard"
Option "Protocol" "usbev"
Option "Device" "/dev/input/event0"
EndSection
現在以命令嘗試這個X伺服器:
# XFree86-2nd -layout Layout1
它應該沒有干擾你的控制台初始化你第二張視頻卡片,第二隻老鼠和usb鍵盤。 甚至你能在你運行X伺服器的內部從xterm窗口做這個。
6)如果你使用gdm作為和提供你圖形顯示經理登錄,你能編輯文件與等等與X11 / gdm / gdm.conf如下:
[servers]
0=/usr/bin/X11/XFree86-2nd -delay -layout layout1 vt07
1=/usr/bin/X11/X vt07
使這個工作可以是一種主要的挑戰。 它拿我,直到我得到這種穩定的配置許多試錯法。 我不得不一伺服器增加選擇「--延遲」(我的出租)如此造成10種第二種延遲他們將同時不初始化硬體。 我不了解,為什麼這是需要的。 以他們被初始化(交換0=和1= )的秩序玩也做詭計。
已知的錯誤


這種的事情混亂我的正文控制台。 在正文再一次看上去好之前,我不得不在VT之間轉換幾個次。 更新: 這不再是最新的碎片的問題。 我現在(二進位下面)精細地運行RH9和VT交換的工作。

一個主要的問題同時可以是整個事情不用其它硬體工作和你能是浪費你的時間讀物所有這一切。 但是想法在這裡和我能保證它為了我工作。 因此,它必須是我將某一地方被另一個開發者迅速解決的一些少量問題` m明確....
更新

Brad Midgley指那種支持,因為Matrox G400和類似的dualhead卡片應該是可能的使用的framebuffer介面。 我仍然不有硬體在這個上做任何檢驗,但是如果你想要嘗試請注意到我可能已從init日常事務中除去某些重要對於framebuffer東西。 請檢查碎片可能有的任何錯誤。 任何這種問題的更新大大地被讚賞的注意到: 閱讀我的G450頁下面!



Daniel Tarbuck與XFree86以一種附加的碎片報告成功4.1.0:
「我已在XF86上執行你的碎片4.1.0和我發現我不得不評論下列的線:
/*((pciArg*)arg)->func(((pciArg*)arg)->tag, PCI_CMD_STAT_REG, ((pciArg*)arg)->ctrl); */
in xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c. (pciIoAccessDisable function)
我不知道問題所是的,和我不了解,為什麼固定我為了我工作。 我也不知道由於是否將有嚴重的問題我固定。
這裡是關於我的設置的一些細節:
primary card: ATI Mach64 GT+ (PCI)
secondary card: S3 VirgeDX (AGP)
kernel 2.4.5 (Redhat 7.0)"
「Yenya」Kasprzak以Daniel的碎片做一些檢驗並且使兩種硬體配置工作的一月:
S3 ViRGE VX PCI (primary)
SIS 6xxx AGP (secondary - USB keyb.)
I was not able to set up the AGP card as primary.

Matrox G450 AGP (primary)
S3 ViRGE VX PCI (secondary - USB keyb.)
我不是作為能夠建立S3卡片主要。

Yenya寫: 「我仍然有一個問題: IMHO上述的碎片也應該被運用於主要X伺服器,因為否則它鎖次要的卡片當的主要的顯示報告上的用戶」。



另一個成功報告,為了信息感謝Nathan的Hoult:

Geforce2pro 64meg AGP ( MSI ) --辛勤努力,AGP」「和「梯恩梯16 meg (鑽石Viper550 ) --掌握,PCI」
Nathan寫: 「我太使用官方NVIDIA駕駛員並且使OpenGL兩個都從事於相當的好好...除之外i到處有允許問題但是僅僅得到它無論如何工作」。 (Mandrake8.1, XFree 4.1,Linux 2.4.16 )

我再建造碎片對著XFree86-4.1.0 (從rawhide來源XFree86-4.1.0-0.9.11.src.rpm )。 運用Daniel的的碎片兩個都X伺服器,現在我們有第XFREE86-1和第XFREE86-2 (我希望每個人知道如何使用them! )。

通常(由於Vojtech Pavlik幫助現在我們應該有鍵盤領導工作),第二個伺服器使用usbev鍵盤。 請注意到,你需要glibc >=的二進位的文件在RedHat下被編輯7.1,如此2.2.2。
http://cambuca.ldhs.cetuc.puc-ri ... Free86-4.1.0-1st.gz
http://cambuca.ldhs.cetuc.puc-ri ... Free86-4.1.0-2nd.gz
http://cambuca.ldhs.cetuc.puc-ri ... .1.0-1st-0.92.patch
http://cambuca.ldhs.cetuc.puc-ri ... .1.0-2nd-0.92.patch
筆記:
1)這二進位被測試遍及RedHat Linux 7.1。 被ximian的gnome桌面提供的gdm拒絕以我雙重工作登錄,我不得不降級到RH7.1 gdm包裝。
2)我的usbev鍵盤為錯誤得到鑰匙繪製地圖是否我不規定XkbModel和XkbLayout。 某樣東西似乎自從4.0.2以來改變,也是如此忘記這些設置(特殊如果你沒有鍵盤得到一個工作的伺服器... )。
3)當我得到xauthorization的差錯時在第一個實例的內部測試第XFREE86-4.1.0-2。 把第二個伺服器以「-- ac」稱為可能幫助。
4) Usb鍵盤發光二極體仍然不工作。 一旦我度過時間,我將調試它這樣做,一定有一些錯誤。



這些為了XFree86-4.2.0-8 ( RedHat 7.3 )被修改二進位。 抱歉,我不有我accidentaly擦除我的XFree86 sources.,的碎片然而它對這種版本的港口4.1.0種碎片是容易的。
一月的新的報告「Yenya」Kasprzak:
「我有XFree86-4.2.99.3 (從紅的帽子測試版"phoebe" )與ATI Radeon 8500LE AGP作為一個主要的頭工作,和作為一個次要的頭的S3 ViRGE VX PCI。釋放 我將一旦我得到更多一些時間,適用於XFree86 4.2.99.3張快照(和當它被釋放時,將有可能適用於4.3個來源)的將碎片發送給你」。


Kevin Crudup寫:
「我已為了你建立XFree86 4.3個碎片文件。 他們附加。 同時在之下能被添加到modules.conf,這樣當模塊和keybdev將自動地被移去,所有usb能被編輯。 在Mandrake上我使用G550 9.1和所有一直工作罰金。 你的幫助的謝謝,現在我給我的。 讓我知道你是否需要和更多信息」。
http://cambuca.ldhs.cetuc.puc-ri ... e86-4.3.0-1st.patch
http://cambuca.ldhs.cetuc.puc-ri ... e86-4.3.0-2nd.patch
http://cambuca.ldhs.cetuc.puc-rio.br/multiuser/modules.conf-mdk91
注意到,在碎片之上可能改進在以前的版本(變化從借上的硬體兼容性的使附加的PCI命令喪失能力http://startx.times.lv/eng-down.html 人們)。 由於花費他的時間更新碎片的Kevin Crudup。 因為附加的討論看見http://village.flashnet.it/users/fn048069/multiuser.html
前編輯4.3.0種版本(在Mandrake上以glibc 2.3.1 10mdk建立9.1 ):
http://cambuca.ldhs.cetuc.puc-ri ... -4.3.0-mdk91-1st.gz
http://cambuca.ldhs.cetuc.puc-ri ... -4.3.0-mdk91-2nd.gz
前編輯4.3.0種版本(在RedHat上建立9 ):
http://cambuca.ldhs.cetuc.puc-ri ... 86-4.3.0-rh9-1st.gz
http://cambuca.ldhs.cetuc.puc-ri ... 86-4.3.0-rh9-2nd.gz

Dennis Vshivkov將XFree86碎片的一種統一的和改進的版本發送給我。 他增加兩個新的參數不同可執行(第一和第二)的如此兩個再不是需要。 這是某樣東西我想要做很長時間但是我太懶惰... 感謝許多Dennis! ;)

引證他原來信息: 「使用是容易的因為沒有需要有單獨的奉獻的二進位兩種新的選擇--可能代替被使用。 如果你不使用他們,伺服器就象沒有碎片一個,但是它仍然支持usbev的鍵盤類型,和設備預設/ dev與輸入/ event0。 同時,` --延遲'選擇現在接受可選的十進位爭論」。
http://cambuca.ldhs.cetuc.puc-ri ... 4.3.0-unified.patch
在之後已最近把我的系統更新成為fedora核心1,我決定包括Dennis的碎片再建造的原來XFree86 rpms。 通常,這對我自己使用是恰好的但是如我所知一些人們擔任可能太在這裡喜歡它他們是:
http://cambuca.ldhs.cetuc.puc-ri ... 4.3.0-42mf.i386.rpm
http://cambuca.ldhs.cetuc.puc-ri ... -4.3.0-42mf.src.rpm
你可以需要安裝你的舊的XFree86 rpm (暗示: 在安裝這個之前的使用-- nodeps )。 我不得不保持避免從屬問題的fedora喜歡的同樣的版本號與是的!
( Hacky )核心2.6種支持
很好,人們繼續不斷問我大約核心2.6種支持。 我決定把試圖給它並且注意到2.6有檢查和許多清潔工輸入層。 這個輸入層基於「設備」和「管理者」的概念。 鍵盤是管理者,它將改變事件它收到鑰匙壓控制台。 因此,是一般的事件管理者,負責在暴露事件
/dev/input/event這個新的輸入層被假定是十分聰明的因為,當一種新的設備被連接時,它將自己單獨地演算出管理者應該一定它。 因此,當你應該從得到某樣東西時用2個鍵盤運行2.6個核心像那一點一樣 /proc/bus/input:
I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
H: Handlers=kbd event1
B: EV=120003
B: KEY=4 2000000 3802078 f840d001 f2ffffdf ffefffff ffffffff fffffffe
B: LED=7

I: Bus=0003 Vendor=05c7 Product=2011 Version=0112
N: Name="QTRONIX USB Keyboard and Mouse"
P: Phys=usb-0000:00:10.0-1/input0
H: Handlers=kbd event2
B: EV=120003
B: KEY=10000 7 ff87207a c14057ff febeffdf ffefffff ffffffff fffffffe
B: LED=7
這裡是獲取: usb鍵盤是對系統的鍵盤管理者的automaticaly的境界。 ,出租仍然工作第二個鍵盤將產生的*except*關鍵兩個頭的壓。 我能想雙向workarounding這個問題:

1)有配有上述的統一的碎片的XFree86碎片。 然後,「usbev」規約可能在上被使用兩個都領導和沒有核心碎片將需要,偉大! 不,並非如此快... 即使沒有任何人從那裡閱讀,兩個鍵盤仍然被鍵盤管理者連接,關鍵壓。 弊端是鍵盤發光二極體將共同被弄亂十分不好。
2)我不可以發現方法迫使從設備釋放管理者,因此我決定碎片我的核心。 核心的碎片2.6.2 (漂亮簡單,也應該以其它版本工作)是可供使用的
http://cambuca.ldhs.cetuc.puc-ri ... -usb-keyboard.patch 當然,碎片核心從不是一種理想的解決方案。 讓我知道你是否有一種較好的的想法。

[火星人 ] 多顯卡+多鍵鼠用linux已經有585次圍觀

http://coctec.com/docs/linux/show-post-155746.html