³Ì²³æªº¤èªk´N¬O¦b¦w¸Ë¨t²Îªº®ÉÔ¤@¨Ö¦w¸Ë¡C
µM«á¬Ý¬Ý xorgconfig(1) ªº¤å¥ó¡A³oÓµ{¦¡¥i¥H À°±z³]©w Xorg ¬ÛÃö³]©w¡A¨Ï¥¦¯à°÷¥¿½T¹B¥Î±zªºÅã¥Ü¥d¡B·Æ¹«µ¥¶gÃä¡C¦¹¥~¡AÁÙ¥i¥H¥Î xorgcfg(1) ªº¹Ï§Î¤¶±¨Ó°µ¬ÛÃö³]©w¡C
±z©Î³\¤]·Q¸Õ¸Õ¬Ý Xaccel server¡C¸Ô±¡½Ð¬Ý Xi Graphics ³o¤@¬q¡C
11.2. §Ú ¸ÕµÛ n°õ¦æ X, ¦ý¬O·í§ÚÁä¤J startx ®É¡A±o¨ì ¡§KDENABIO failed (Operation not permitted)¡¨ ¿ù»~¡C§Ú¸Ó«ç»ò¿ì¡H
¦pªG±z¥Îªº¬O syscons (¤º©wªº console ÅX°Êµ{¦¡) ªº¸Ü¡A±z¥i¥H ¸g¥Ñ³]©w FreeBSD ¨ÓÅý¥¦¤ä´©¦b¨CÓ virtual console ¨Ï¥Î·Æ¹«¡C¬°¤F Á×§K©M X ²£¥Í½Ä¬ð¡Asyscons ¨Ï¥Î¤F¤@Ó¥s°µ /dev/sysmouse ªºµêÀÀ¸Ë¸m¡C©Ò¦³·Æ¹«²£¥Íªº event ³£·|§Q¥Î moused ¨Ó¼g¨ì sysmouse ³oӸ˸m¡C¦pªG±z§Æ±æ¦b¤@Ó ©Î¥H¤Wªº virtual console ¤W¨Ï¥Î·Æ¹«¡A¨Ã¥B ¯à°÷¨Ï¥Î X ªº¸Ü¡A½Ð°Ñ¦Ò Q: 4.4.4. ¨Ã¥B³]©w¦n moused¡C
µM«á½s¿è /etc/XF86Config ³oÓÀɮסA ¨Ã¥B½T»{§A¦³¥H¤U³o´X¦æªº³]©w¡C
Section Pointer Protocol "SysMouse" Device "/dev/sysmouse" ....
¥H¤Wªº¨Ò¤l¡A¾A¥Î©ó XFree86 3.3.2 ¤Î¨ä«áªºª©¥»¡C¥Î©ó§ó¦ªº ª©¥»ªº¡A¨ä Protocol À³¬° MouseSystems¡C
¦³¨Ç¤H¤ñ¸û³ßÅw¦b³]©w X ªº®ÉԥΠ/dev/mouse ³oӸ˸m¡C¦pªG±znÅý¥¦¯à°÷ ¥¿±`¤u§@ªº¸Ü¡A±z´N¥²¶·§â /dev/mouse ³sµ²¨ì /dev/sysmouse (½Ð°Ñ¦Ò sysmouse(4)):
# cd /dev # rm -f mouse # ln -s sysmouse mouse
¥i¥H¡C¤£¹L»Ýn³]©w X client ºÝµ{¦¡¡C ½Ð°Ñ¦Ò Colas Nahaboo ªººô¶ (http://www.inria.fr/koala/colas/mouse-wheel-scroll/) .
¦pªG§An¨Ï¥Î imwheel µ{¦¡¡A ¥un¸òµÛ¤U¦C¨BÆJ§@§Y¥i¡C
Âà´«ºu½ü event Translate the Wheel Events
imwheel µ{¦¡ªº¹B§@ì²z¡A ¬O±N·Æ¹«ªº²Ä¥|Áä»P²Ä¤ÁäÂà´«¦¨«öÁä event¡C¦]¬°¦p¦¹¡A©Ò¥H §A¥²¶·Åý·Æ¹«ÅX°Êµ{¦¡±N·Æ½ü¨Æ¥óÂà´«¦¨²Ä¥|Áä»P²Ä¤Áä event¡C ¦³¨âºØ¤èªk¥i¥H¹F¨ì¥Øªº¡A¤@¬OÅý moused(8) §@Âà´«¡A¤G¬O Åý X ¥»¨¥h§@ event Âà´«¡C
¨Ï¥Î moused(8) ¨ÓÂà´«ºu½ü Event
nÅý moused(8) ¨Ó§@ event
Âà´«¡A¥un¦b °õ¦æ moused(8) ªº©R¥O¦C¤¤¥[¤W
-z 4
§Y¥i¡CÁ|Ó¨Ò¤l¡A¦pªG§A¤@¯ë³£¬O¥H moused -p /dev/psm0 ¨Ó°_°Ê moused(8) ªº¸Ü¡A¥un§ï¦¨
moused -p /dev/psm0 -z 4 §Y¥i¡C¦pªG§A¬O¦b¶}¾÷¹Lµ{¤¤§Q¥Î
/etc/rc.conf ¨Ó°_°Ê moused(8)¡A §A¥i¥H¦b
/etc/rc.conf ¤¤±N moused_flags
¤W¥[ -z 4
§Y¥i¡C
§A²{¦b»ÝnÅý X ª¾¹D§Aªº·Æ¹«¦³¤Ó«öÁä¡A¥un¦b /etc/XF86Config ¤¤ªº ¡§Pointer¡¨ °Ï¶ô¤¤¥[¤W Buttons 5 ³o¤@¦æ§Y¥i¡C¨Ò¦p¡A §A¥i¯à¦b /etc/XF86Config ¤¤¦³ ¥H¤Uªº ¡§Pointer¡¨ °Ï¶ô¡G
Example 11-1. ¦b XFree86 3.3.x ¨t¦Cªº XF86Config ³]©wÀɪº ¡§Pointer¡¨ °Ï¶ô¤¤¡A¥H moused §@Âà´« ªººu½ü¹«ªº³]©w½d¨Ò
Section "Pointer" Protocol "SysMouse" Device "/dev/sysmouse" Buttons 5 EndSection
§Q¥Î§Aªº X Server ¨Ó§@ºu½ü Event Âà´«
¦pªG§A¨S¦³°õ¦æ moused(8)¡A©Î¬O§A¤£·Q§Q¥Î
moused(8) ¥h§@ºu½ü event
Âà´«¡A§A¥i¥H§ï¥Î X server ¨Ó§@³o¼Ëªº event Âà´«¡C§A±o¦b /etc/XF86Config Àɮפ¤§@´XÓ§ó°Ê¡C²Ä¤@¡A
§An¬°§Aªº·Æ¹«¿ï¾Ü¾A·íªº³q°T¨ó©w¡C¤j¦h¼Æªººu½ü¹«³£ ¨Ï¥Î ¡§IntelliMouse¡¨ ¨ó©w¡A¤£¹L
XFree86 ¤]¤ä´©¨ä¥¦ªº³q°T¨ó©w¡A¨Ò¦pù§Þªº MouseMan+ ·Æ¹«©Ò¥Îªº
¡§MouseManPlusPS/2¡¨¡C·í§A¿ï¦n¤§«á¡A¥un ¥[¶i¤@¦æ ¡§Pointer¡¨ °Ï¶ôªº Protocol
ÅܼƧY¥i¡C
²Ä¤G¡A§An§i¶D X server ±N±²°Ê¨Æ¥ó«·s¹ï¬M¦Ü·Æ¹«ªº ²Ä¥|©M²Ä¤Áä¡C³o¥i¥H§Q¥Î
ZAxisMapping
¿ï¶µ¿ì¨ì¡C
Á|Ó¨Ò¤l¡A¦pªG§A¨S¦³¨Ï¥Î moused(8)¡A¦Ó§A¦³¤@Ó IntelliMouse ¦w¸Ë¦b PS/2 ·Æ¹«°ðªº¸Ü¡A§A¥i¥H¦b /etc/XF86Config ¸Ì¨Ï¥Î¥H¤Uªº³]©w¡C
Example 11-4. ¦b XF86Config ³]©wÀɪº ¡§Pointer¡¨ °Ï¶ô¤¤¡A¥H X Server §@Âà´«ªººu½ü¹«ªº³]©w½d¨Ò
Section "Pointer" Protocol "IntelliMouse" Device "/dev/psm0" ZAxisMapping 4 5 EndSection
¦w¸Ë imwheel
±µ¤U¨Ó¡A±q Ports ¸Ì¦w¸Ë imwheel ¡C¦b x11 Ãþ§O¸Ì¥i¥H§ä¨ì¥¦¡A¥¦¥i¥H±N ºu½ü event ¹ï¬M¨ìÁä½L event¡CÁ|Ó¨Ò¤l¡A¥¦¥i¥H¦b§A ±Nºu½ü©¹«e±À®É¡A°e¥X¤@Ó Page Up ¨ì§AªºÀ³¥Îµ{¦¡¥h¡CImwheel §Q¥Î¤@Ó³]©wÀÉ¡A¥H«K¹ïÀ³ºu½ü event ¦ÜÁä½L event¡A³o¼Ë ¥¦´N¥i¥H¦b¤£¦PªºÀ³¥Îµ{¦¡¤¤¡A°e¥X¤£¦PªºÁä½L«öÁä¡C¹w³]ªº imwheel ³]©wÀɬO¦b /usr/X11R6/etc/imwheelrc¡A¦pªG§A·Q ½s¿è¦Ûqªº³]©wÀɪº¸Ü¡A¥i¥H±N¥¦½Æ»s¨ì ~/.imwheelrc¡AµM«á¨Ì§Aªº»Ýnק復¡C ³]©wÀɪº®æ¦¡¦b imwheel(1) ¸Ì±¦³¸Ô²Óªº»¡©ú¡C
³]©w Emacs »P Imwheel ¨ó¦P¤u§@ (¿ï¾Ü©Ê)
¦pªG§A¨Ï¥Î emacs ©Î¬O Xemacs ªº¸Ü¡A¨º§A»Ýn¦b§Aªº ~/.emacs Àɮ׸̥[¤W¤@¤p¬q³]©w¡C emacs ½Ð¥[¤W³o¤@¬q¡G
Example 11-7. Imwheel ªº Emacs ³]©w
;;; For imwheel (setq imwheel-scroll-interval 3) (defun imwheel-scroll-down-some-lines () (interactive) (scroll-down imwheel-scroll-interval)) (defun imwheel-scroll-up-some-lines () (interactive) (scroll-up imwheel-scroll-interval)) (global-set-key [?\M-\C-\)] 'imwheel-scroll-up-some-lines) (global-set-key [?\M-\C-\(] 'imwheel-scroll-down-some-lines) ;;; end imwheel section
Xemacs «h¦b ~/.emacs Àɸ̥[¤W³o¤@¬q¡G
Example 11-8. Imwheel ªº Xemacs ³]©w
;;; For imwheel (setq imwheel-scroll-interval 3) (defun imwheel-scroll-down-some-lines () (interactive) (scroll-down imwheel-scroll-interval)) (defun imwheel-scroll-up-some-lines () (interactive) (scroll-up imwheel-scroll-interval)) (define-key global-map [(control meta \))] 'imwheel-scroll-up-some-lines) (define-key global-map [(control meta \()] 'imwheel-scroll-down-some-lines) ;;; end imwheel section
°õ¦æ Imwheel
¦w¸Ë¤§«á¡A§A¥i¥Hª½±µ¦b xterm ¸ÌÁä¤J imwheel ©R¥O¥H°_°Ê¥¦¡C¥¦·|¥HI´º°õ¦æ¡A¨Ã¥B°¨¤Wµo´§®Ä¥Î¡C ¦pªG§A½T©wnª½±µ¨Ï¥Î imwheel¡A ¥un§â¥¦¥[¶i§A¦Û¤vªº .xinitrc ©Î .xsession ¤ºÀÉ®×§Y¥i¡C§A¥i¥H¤£ºÞ imwheel ©Ò°e¥X¨Ó¦³Ãö PID ÀÉ®× Äµ§i¡C¨º¨Çĵ§i¥u¹ï Linux ª©ªº imwheel ¦³®Ä¦Ó¤w¡C
§â Num Lock Ãö±¼¸Õ¸Õ¡C
¦pªG±zªº Num Lock ¦b¶}¾÷®Éªº¹w³]ȬO¶}µÛªº¸Ü¡A±z¥²¶·§â¤U¦C ³o¦æ©ñ¨ì XF86Config ³]©wÀɤ¤ªº Keyboard ³¡¥÷¡C
# Let the server do the NumLock processing. This should only be # required when using pre-R6 clients ServerNumLock
²³æ¨Ó»¡¡Avirtual console ´N¬O¥i¥HÅý±z¤£¥²°µ¤Ó¦h½ÆÂøªº³]©w ¦p¨Ï¥Îºô¸ô©Î°õ¦æ X ¡A¦Ó¦b¦P¤@»O¾÷¾¹¤W¦P®É°µ¦n´X¥ó¨Æªº¤èªk¡C
·í±Ò°Ê¨t²Î¨ÃÅã¥Ü§¹©Ò¦³¶}¾÷°T®§¤§«á¡A±z´N·|¦b¿Ã¹õ¤W¬Ý¨ì¤@Ó login ªº´£¥Ü²Å¸¹¡C¦b³oÓ®ÉÔ±z´N¥i¥H¿é¤J±zªº login name ¥H¤Î password ¡AµM«á´N¥i¥H¦b²Ä¤@Ó virtual console ¤W¶}©l¤u§@¤F (©ÎªÌ¶}©lª±¡I) ¡C
¦b¬Y¨Ç±¡ªp¤U¡A±z¥i¯à·|·Qn§@¨ä¥Lªº¤u§@¡A¨Ò¦p»¡¬O¬Ý¬Ý±z¥¿¦b °õ¦æªºµ{¦¡ªº»¡©ú¤å¥ó¡A©Î¬O·í±z¦b FTP ¶Ç¿éªºµ¥«Ý®É¶¡¤¤¬Ý¬Ý±zªº ¶l¥ó¡C±z¥u»Ýn«ö Alt-F2 («ö¦í Alt Á䤣©ñ¡A¨Ã«ö¤U F2 Áä) ¡AµM«á ±z´N·|¦b²Ä¤GÓ ¡§virtual console¡¨ ¤W¬Ý¨ì¤@Ó login ´£¥Ü²Å¸¹¡I·í±z·Qn¦^¨ìì¨Óªº¤u§@®É¡A½Ð«ö Alt-F1¡C
FreeBSD ¦b¦w¸Ë®Éªº¹w³]ȬO¨Ï¥Î¤TÓ virtual console (3.3-RELEASE «á¬°¤KÓ)¡A±z¥i¥H¥Î Alt-F1¡AAlt-F2¡A¥H¤Î Alt-F3 ¦b¥¦Ì¤§¶¡°µ¤Á´«¡C
¦pªG±z·Qn¦h¤@ÂI virtual console ªº¸Ü¡A±z¥u»Ýn½s¿è /etc/ttys ³oÓÀÉ (½Ð°Ñ¦Ò ttys(5))¡A ¦b ¡§Virtual terminals¡¨ ³oÓµù¸Ñ«á±¥[¤J ttyv4 ¨ì ttyvc ªºÄæ¦ì¡G
# Edit the existing entry for ttyv3 in /etc/ttys and change # "off" to "on". ttyv3 "/usr/libexec/getty Pc" cons25 on secure ttyv4 "/usr/libexec/getty Pc" cons25 on secure ttyv5 "/usr/libexec/getty Pc" cons25 on secure ttyv6 "/usr/libexec/getty Pc" cons25 on secure ttyv7 "/usr/libexec/getty Pc" cons25 on secure ttyv8 "/usr/libexec/getty Pc" cons25 on secure ttyv9 "/usr/libexec/getty Pc" cons25 on secure ttyva "/usr/libexec/getty Pc" cons25 on secure ttyvb "/usr/libexec/getty Pc" cons25 on secure
±z·Q¥Î´XÓ´N³]´XÓ¡C±z³]¶V¦h virtual terminal ¡A¥¦Ì´N¥Î±¼ ¶V¦h¨t²Î¸ê·½¡F¦pªG±z¥u¦³¤£¨ì 8MB ªº°O¾ÐÅ骺¸Ü¡A³o¼vÅT´N¤j¤F¡C ±z¥i¯à¤]·|·Q§â secure ´«¦¨ insecure¡C
Important: ¦pªG±z·Qn°õ¦æ X ªº¸Ü¡A±z ¥²¶· ¬°¥¦«O¯d (©ÎÃö±¼) ¦Ü¤Ö¤@Ó virtual terminal ¡C³o´N¬O»¡¡A¦pªG ±z·Q¦b«ö¤Q¤GÓ Alt ¥\¯àÁä®É³£¦³ login ´£¥Ü²Å¸¹¡A¦Ó¥B¤S¦b¦P¤@ ³¡¹q¸£¤W¤]·Q°õ¦æ X ªº¸Ü¡A¨º»ò³o¯u¬O¤Ó¤£©¯¤F - ±z¥u¯à¥Î¤Q¤@Ó¡C
¨ú®ø¤@Ó console ³Ì²³æªº¤èªk´N¬O§â¥¦Ãö±¼¡CÁ|¨Ò¨Ó»¡¡A¦pªG ±z¹³¤W±Á¿ªº¤@¼Ë³]©w¤F¥þ³¡ªº 12 Ó terminal ¨Ã¥B·Qn°õ¦æ X ¡A ±z¥²»Ý§â virtual terminal 12 ±q¡G
ttyvb "/usr/libexec/getty Pc" cons25 on secure
³]¦¨¡G
ttyvb "/usr/libexec/getty Pc" cons25 off secure
¦pªG±zªºÁä½L¥u¦³ 10 Ó¥\¯àÁ䪺¸Ü¡A±z´Nn§ï¦¨³o¼Ë¡G
ttyv9 "/usr/libexec/getty Pc" cons25 off secure ttyva "/usr/libexec/getty Pc" cons25 off secure ttyvb "/usr/libexec/getty Pc" cons25 off secure
(±z¤]¥i¥Hª½±µ§â³o´X¦æ¬å±¼¡C)
¤@¥¹±z§ï¤F /etc/ttys¡A¤U¤@Ó¨BÆJ´N¬On ½T©w±z¦³¨¬°÷ªº virtual terminal ¸Ë¸m¡C³Ì²³æªº¤èªk´N¬O¡G
# cd /dev # sh MAKEDEV vty12
¦A¹L¨Ó¡A·Qn±Ò°Ê³o¨Ç virtual console ³Ì²³æ (¤]¬O³Ì°®²b) ªº°µªk´N¬O«¶}¾÷¡CµM«á¡A¦pªG±z¤£·Q«¶}¾÷ªº¸Ü¡A±z¥i¥H§â X Window Ãö±¼¡AµM«á¥Î root ªº¨¥÷°õ¦æ¤U¦C«ü¥O¡G
# kill -HUP 1
·í±z°õ¦æ³oÓ©R¥O«e¡A±z¤@©wn§¹¥þ§â X Window Ãö±¼¡C¦pªG ±z¤£³o»ò°µªº¸Ü¡A±zªº¨t²Î¥i¯à·|¦b±z°õ¦æ kill ©R¥O«á¥X²{·í±¼©Î Âꦺªº±¡ªp¡C
½Ð¥Î Ctrl+Alt+Fn ¥H¤Á¦^¦Ü virtual console¡C Ctrl+Alt+F1 ¥i¥H¤Á¦^¦Ü²Ä¤@Ó virtual console¡C
·í§A¤Á¦^¦Ü¤å¦r console «á¡A§A´N¥i¥H¨Ï¥Î¤@¯ë Alt+Fn «öÁä²Õ¦X¡A¦b¦U console ¤§¶¡¤Á´«¡C
n¦^¨ì X ªº¸Ü¡A§A¥²¶·¤Á¦^¦Ü°õ¦æ X ªº virtual console¡C ¦pªG§A¬O±q©R¥O¦C¸Ì°_°Ê X ªº¸Ü (¨Ò¦p¨Ï¥Î startx «ü¥O)¡A¨º»ò X ·|¨Ìªþ¦b¤U¤@Ó¥¼¨Ï¥Îªº virtual console¡A¦Ó¤£¬O¥¦³Q °_°Êªº¤å¦r console¡C¦pªG§A¦³¤KӨϥΤ¤ªº virtual terminal¡A¨º»ò X ´N·|¦b²Ä¤EÓ¤W°õ¦æ¡A§A´N¥i¥H¨Ï¥Î Alt+F9 ¥Hªð¦^¦Ü X ¤¤¡C
¦³¨âºØ¤èªk¥i¥H±Ò°Ê xdm¡C¤@ºØ¤èªk¬O±q /etc/ttys ¨Ó±Ò°Ê¡A ¥i¥H°Ñ¦Ò ttys(5) »¡©ú¤å¥ó¤¤ªº½d¨Ò¡F¥t¤@ºØ¤èªk¬O¦b rc.local (½Ð°Ñ¦Ò rc(8)) °õ¦æ xdm¡A©Î¬O ¦b /usr/local/etc/rc.d ©ñ¤@Ó X.sh¡C³o¨âºØ¤èªk³£¬O¦Xªkªº¡A¦pªG±z¸Õ¬Y¤@ºØ ¤èªkµL®Äªº¸Ü¡A±z¥i¥H¸Õ¸Õ¥t¥~¤@ºØ¡C³o¨âºØ¤èªkªºµ²ªG¬O¤@¼Ëªº¡GX ·|Åã¥Ü¤@ӹϧΤƪº login: ´£¥Ü¡C
¥Î ttys ªº¤èªkªºÀuÂI¡A¦b©ó«ü©ú¤F X ¦b±Ò°Ê®É¨ì©³¬O¥Î¨ºÓ vty¡A ¨Ã¥B±N logout ®É«·s±Ò°Ê X server ªº³d¥ô¥áµ¹ init¡C rc.local ªº¤èªk«h¬O¦b·í±Ò°Ê X ¥X¤F°ÝÃD®É¡A¥i¥H«Ü»´ÃP¦a§â xdm ±þ±¼¨Ó¸Ñ¨M °ÝÃD¡C
¦pªG¬O¥Î rc.local ªº¤èªk¡A¦b°õ¦æ xdm ®É±z¤£¯à¥[¥ô¦ó°Ñ¼Æ¡]¤]´N¬O¶]¦¨ daemon¡^¡C¥²¶·¦b getty °õ¦æ«á ¤~¯à±Ò°Ê xdm¡A§_«h getty ©M xdm ·|¤¬¬Û½Ä¬ð¦ÓÂê¦í console¡C³Ì¦nªº ¤è¦¡¬O¦b script ¤¤¥[Ó sleep¡AÅý¥¦¼È°± 10 ¬íÄÁ¥ª¥k¡A±µµÛ¤~°õ¦æ xdm¡C
¦pªG§A¬O±q /etc/ttys ±Ò°Ê xdm¡Axdm »P getty(8) ¤´¦³¾÷·|¤¬¬Û½Ä¬ð¡C¤@ÓÁ×§K¥¦ªº¤èªk¡A´N¬O¦b /usr/X11R6/lib/X11/xdm/Xservers Àɮפ¤¥[¤J vt ¼Æ¦r¡C
:0 local /usr/X11R6/bin/X vt4
¤W±ªº¨Ò¤l¤¤¡A·|«ü¥Ü X server ¦b /dev/ttyv3 ¤¤°õ¦æ¡C½Ðª`·N¼Æ¦r¬O®t¤@ªº¡CX server ±q¤@¶}©l¼Æ vty¡A¦Ó FreeBSD ®Ö¤ß«h¬O±q¹s¶}©l¼Æ vty ªº¡C
¦pªG§A¬O¥Î startx ¨Ó±Ò°Ê startx ªº¸Ü¡A/dev/console ªºÅv¨Ã ¤£·| §ïÅÜ¡Aµ²ªG´N¬O xterm -C ©M xconsole ³oÃþªºµ{¦¡µLªk ¥¿±`°õ¦æ¡C
³o¤@¤Áªº°ÝÃD¡A³£¬O¦]¬° console ªºÅv¬O±Ä¥Î¨t²Î¹w³]È¡C ¦b¤@Ó¦h¨Ï¥ÎªÌªº¨t²Î¸Ì¡A§Ṳ́£§Æ±æ¨CӨϥΪ̳£¥i¥Hª½±µ¼g¤J¨t²Î console ¡C¦pªG¨Ï¥ÎªÌ¬O±q¾÷¾¹ªº VTY ª½±µ login ªº¸Ü¡A¨º»ò fbtab(5) ¥i¥H¸Ñ¨M³oÃþªº°ÝÃD¡C
²³æ¦a»¡¡A½Ð½T«O /etc/fbtab (½Ð°Ñ¦Ò fbtab(5)) ³oÓÀɮפ¤ªº³o¤@¦æ¨S¦³³Qµù¸Ñ±¼¡G
/dev/ttyv0 0600 /dev/console
³o¤@¦æ³]©wªº¦s¦b¥i¥H½T«O±q /dev/ttyv0 µn¤Jªº¨Ï¥ÎªÌ¥i¥H±±¨î console¡C
©Ò¦³ªº X server ³£»Ýn¥H root ¨Ó°õ¦æ¡A ¤~¯àª½±µ¦s¨ú§Aªºµø°TµwÅé¡Cª©¥»ªº XFree86 (<= 3.3.6) ·|¦Û°Ê ±N©Òªþªº server ¥H§Q¥Î root ¨¥÷°õ¦æªº¤è¦¡ ¦w¸Ë°_¨Ó (setuid ¬° root)¡C¥Ñ©ó X server ³£¬OÅé¿nÃe¤j¤S½ÆÂøªºµ{¦¡¡AÅã¦Ó©ö¨£¦a¡A³o¬O¤@Ó¦w¥þ¤Wªº¨aÃø¡C ¦]¬°³oÓì¦]¡A·sª©ªº XFree86 ´N¤£±N³o¨Ç server ¥H setuid ¬° root ªº¤è¦¡¦w¸Ë¡C
«Ü©úÅã¦a¡A§Ú̧¹¥þµLªk±µ¨ü±N X server ¥H root ªº¨¥÷°õ¦æ¡C°_½X´N¦w¥þ¤W¤£¬OÓ¦n¥D·N¡C ¦³¨âºØ¤èªk¥i¥H¥H¤@¯ë¨Ï¥ÎªÌªº¨¥÷¨Ï¥Î X¡C²Ä¤@¬O§Q¥Î xdm ©Î¬O¨ä¥¦ªº display manager (¨Ò¦p kdm)¡F²Ä¤G¬O§Q¥Î Xwrapper¡C
xdm ¬O¤@Ó³B²z¹Ï§Î¬É±µn¤Jªº daemon¡C ¥¦³q±`¦b¶}¾÷®É°õ¦æ°_¨Ó¡A¦Ó¥Bt³d¹ï¨Ï¥ÎªÌ§@¨¥÷»{ÃÒ¡A¥H¤Î°_°Ê ¨Ï¥ÎªÌªº¤u§@Àô¹Ò¡F¥¦¥i»¡¬O¹Ï§ÎÀô¹Ò¤Uªº getty(8) »P login(1) ªº¹ïÀ³µ{¦¡¡C·Q±oª¾§ó¦h¦³Ãö xdm ªº¸ê°T¡A½Ð°Ñ¦Ò XFree86 ¤å¥ó¡A¥H¤Î¨ä FAQ ¶µ¥Ø¡C
Xwrapper ¬O X server ªº¥]¸Ëµ{¦¡¡F¥¦¥i¥H Åý¤@¯ë¨Ï¥ÎªÌ¥i¥H¤â°Ê°_°Ê X server ªº¤p¤u¨ã¡A¦ÓÁÙ¯àºû«ù¤@©wªº¦w¥þ Àô¹Ò¡C¥¦·|Àˬd¶Ç¤Jªº©R¥O¦C°Ñ¼Æ¡A¦pªG¨S°ÝÃDªº¸Ü¡A´N°_°Ê¾A·íªº X server¡C¦pªG§A¦]¬°¬YºØ²z¥Ñ¦Ó¤£·Q°õ¦æ display manager ªº¸Ü¡A ¥¦¬O¬°§A¦Ó³]©wªº¡C¦pªG§A¦w¸Ë¤F§¹¾ãªº ports¡A§A¥i¥H¦b /usr/ports/x11/wrapper ¤¤§ä¨ì¥¦¡C
±zªº·Æ¹«©M±zªº·Æ¹«ÅX°Êµ{¦¡¥i¯à¦s¦b¦³¤£¦P¨Bªº²{¶H¡C
¦b 2.2.5 ¥H¤Î§ó¦ªº¨t²Î¸Ì¡A±q X ¤Á¨ì virtual terminal µM«á ¦A¤Á¦^¨Ó´N¥i¥H¨Ï¥¦Ì«·s°µ¦P¨Bªº°Ê§@¡C¦pªG³oÓ°ÝÃD±`±`µo¥Íªº¸Ü¡A ±z¥i¥H¦b±zªº kernel ³]©wÀɤ¤¥[¤J¤U±³oÓ¿ï¶µµM«á«·s½sĶ¡G
options PSM_CHECKSYNC
¦pªG±z¨S¦³«Ø¥ß kernel ªº¸gÅç¡A½Ð¬Ý ¦Ûq®Ö¤ß ³o¤@¸`¡C
¥[¤W³oÓ¿ï¶µ¥H«á¡A·Æ¹«©M·Æ¹«ÅX°Êµ{¦¡¶¡ªº¦P¨B°ÝÃDÀ³¸Ó´N¤ñ¸û ¤£·|¥X²{¤F¡C¦pªG³oÓ°ÝÃD¤´µM¦s¦bªº¸Ü¡A¦b²¾°Ê·Æ¹«®É«ö«ö·Æ¹««öÁä ¥i¥H¨Ï·Æ¹«©M·Æ¹«ÅX°Êµ{¦¡«·s°µ¦P¨Bªº°Ê§@¡C
¸Óª`·Nªº¬O³oÓ¿ï¶µ¨Ã¤£¬O¹ï¨C¤@Ó¨t²Î³£¦³®Ä¡A¥¦¥i¯à·|Åý±µ¦b PS/2 ·Æ¹«¦ì¸mªº ALPS GlidePoint ¸Ë¸m¥¢¥h ¡§tap¡¨ ³o¶µ¥\¯à¡C
¦b 2.2.6 ¤Î¨ä«áªºª©¥»¡A¦P¨Bªº½T»{¤w¸g¦³¤F¸û¦nªº¸Ñ¨M¿ìªk¡A ¦Ó¥B³o¨Ç³£¤w¸g¬O PS/2 ·Æ¹«ÅX°Êµ{¦¡ªº¼Ð·Ç¤F¡C³oÓ¤èªk¤]¥i¥H¦b GlidePoint ¤W¥¿±`¤u§@¡C (¦]¬°½T»{ªºµ{¦¡½X¤w¸g¦¨¬°¤@Ӽзǥ\¯à¡A ©Ò¥H¦b³o¨Çª©¥»¤¤§Ṳ́£¦b´£¨Ñ PSM_CHECKSYNC ªº¿ï¶µ¤F¡C) ¤£¹L¦b ·¥¤Ö¼Æªº®×¨Ò¤¤¡A³o¨ÇÅX°Êµ{¦¡·|»~³ø¦P¨B©Ê¿ù»~¡AµM«á±z´N·|¬Ý¨ì ³o¼Ëªº®Ö¤ß°T®§¡G
psmintr: out of sync (xxxx != yyyy)
µM«á±z´N·|µo²{±zªº·Æ¹«¤£¯à¥¿±`¹B§@¤F¡C
¦pªG±zµo¥Í¤F³o¼Ëªºª¬ªp¡A±z¥²¶·Âǥѧâ PS/2 ·Æ¹«ÅX°Êµ{¦¡ªº flag ³]¦¨ 0x100
¨Ó§â¦P¨B½T»{ªºµ{¦¡½Xµ¹¨ú®ø±¼¡CµM«á¦b¶}¾÷´£¥Ü²Å¸¹®É¥Î -c
¿ï¶µ¨Ó¶i¤J UserConfig¡G
boot: -c
µM«á¡A¦b UserConfig ©R¥O¦C¤¤Áä¤J¡G
UserConfig> flags psm0 0x100 UserConfig> quit
¦³¤@¨Ç³ø§i«ü¥X¬Y¨Ç¼tµPªº PS/2 ·Æ¹«¥u¯à¦b ¡§°ª¸ÑªR«×¡¨ ª¬ºA¤U¤~¯à¹B§@¡C¦pªG¤£¬Oªº¸Ü¡A·Æ¹«´å¼Ð ·|±`±`¶]¨ì¿Ã¹õªº¥ª¤W¨¤¥h¡C
«D±`¤£©¯ªº¡A³oÓ°ÝÃD¦b 2.0.X ©M 2.1.X ¤U¬OµL¸Ñªº¡C¦b 2.2 ¨ì 2.2.5 ª©¡A±z¥i¥H¹ï /sys/i386/isa/psm.c ¨Ï¥Î¤U¦C patch µM«á««Ø±zªº®Ö¤ß¡C¦pªG±z¨S¦³«Ø¥ß kernel ªº¸gÅç¡A ½Ð¬Ý ¦Ûq®Ö¤ß ³o¸`¡C
@@ -766,6 +766,8 @@ if (verbose >= 2) log(LOG_DEBUG, "psm%d: SET_DEFAULTS return code:%04x\n", unit, i); + set_mouse_resolution(sc->kbdc, PSMD_RES_HIGH); + #if 0 set_mouse_scaling(sc->kbdc); /* 1:1 scaling */ set_mouse_mode(sc->kbdc); /* stream mode */
¦b 2.2.6 ¤Î¥H«áªºª©¥»¡A¦b PS/2 ·Æ¹«ÅX°Êµ{¦¡¤¤³]©w 0x04 ªº flag
·|§â·Æ¹«³]¦¨°ª¸ÑªR«×¼Ò¦¡¡C¦b¶}¾÷´£¥Ü²Å¸¹®É¥Î -c
¿ï¶µ¨Ó¶i¤J
UserConfig¡G
boot: -c
µM«á¡A¦b UserConfig ªº©R¥O¦C¤¤Áä¤J¡G
UserConfig> flags psm0 0x04 UserConfig> quit
«e¤@¸`¦³´£¨ì¥t¤@Ó¥i¯à¾ÉP·Æ¹«°ÝÃDªºì¦]¡C
Imake.tmpl ¬O Imake ®M¥óªº¤@³¡¥÷¡AImake ¬O¼Ð·Çªº«Ø¥ß X µ{¦¡ªº¤u¨ã¡C Imake.tmpl ©M¨ä¥L¼ÆÓ header file ¤@¼Ë¬O«Ø¥ß X µ{¦¡ªº¥²nÀɮסA±z¥i¥H¦b X prog distribution ¤¤§ä¨ì¥¦Ì¡C±z¥i¥H¥Î sysinstall(FreeBSD 5.2 ¤§«eª©¥»«h¬O /stand/sysinstall) ¨Ó¦w¸Ë©Î¬Oª½±µ±q X distribution ¤¤¤â°Ê¦w¸Ë¡C
11.14. §Ú¦b build ¤@Ó X À³¥Îµ{¦¡¡A¥¦»Ýn XFree86 3.3.x¡A¦ý¬O §Ú¤w¸g¦w¸Ë XFree86 4.x ¤F¡C§Ú¸Ó«ç»ò¿ì¡H
n§i¶D port ¦b½s͵{¦¡®É¡A¨Ï¥Î XFree86 4.x ¨ç¦¡®w¡A§A¥i¥H ¦b /etc/make.conf ¸Ì (¦pªG§A¨S¦³³oÓÀÉ¡A ½Ð«Ø¥ß¥¦) ¥[¤W¤U±³o¤@¦æ¡G
XFREE86_VERSION= 4
¦b±zªº .xinitrc ©Î¬O .xsession ¤¤°õ¦æ xmodmap -e "pointer = 3 2 1" ªº«ü¥O¡C
´N¦bµo¦æ FreeBSD 3.1 ¤§«e¡A§ÚÌ¥[¶i¤F¦b¶}¾÷®ÉÅã¥Ü ¡§splash¡¨ ¹Ï§Îªº·s¥\¯à¡C¥Ø«e¥Î¨ÓÅã¥Ü¦b¿Ã¹õ¤WªºÀÉ®× ¥²¶·¬O 256 ¦âªºÂI¯x°}¹Ï§Î (*.BMP) ©Î ZSoft PCX(*.PCX) ªº®æ¦¡¡C°£¦¹¤§¥~¡A¸ÑªR«×¤]¥²¶·¦b 320x200 ¥H¤U¡A¤~¯à©M¼Ð·Ç VGA Åã¥Ü¥d·f°t¨Ï¥Î¡C¦pªG±z½sĶ kernel ®É¦³¥[¤J VESA ¤ä´©¡A¨º»ò³Ì¤j¸ÑªR«×¥i¥H¨ì 1024x768¡Cª`·N VESA ªº ¤ä´©»Ýn¥[¤J VM86 ³oÓ kernel ¿ï¶µ¡CVESA ¤ä´©¹ê»Ú¤W¥i¥H¦b½sĶ kernel ®É¥[¤J VESA ¿ï¶µ¡B ©Î¸ü¤J VESA ªº kld module ¨Ó¹F¦¨¡C
±zn×§ï±±¨î FreeBSD ¶}¾÷¨BÆJªº³]©wÀÉ¡A¤~¯à¨Ï¥Î splash Åã¥Ü¹Ï§Îªº¥\¯à¡C³]©wÀɦbµo¦æ FreeBSD 3.2 «e¦³¨Ç§ó°Ê¡A©Ò¥H²{¦b ¦³¨âÓ¤èªk¥i¥H¸ü¤J splash ªº¥\¯à¡G
FreeBSD 3.1
¥ý¿ï¥X¥Î¨ÓÅã¥Ü¦b¿Ã¹õ¤Wªº¹Ï§Î¡A3.1 ª©¥u¤ä´© Windows ªºÂI¯x°}®æ¦¡¡C¿ï¦n¤F±znªº¹ÏÀÉ«á¡A±N¥¦«þ¨ì /boot/splash.bmp¡C±µµÛ§â¤U±´X¦æ¥[¤J /boot/loader.rc ¤¤¡G
load kernel load -t splash_image_data /boot/splash.bmp load splash_bmp autoboot
FreeBSD 3.2+
°£¤F¥[¤J¹ï PCX Àɮתº¤ä´©¥~¡AFreeBSD 3.2 ¤]§ï¶i¤F ¶}¾÷µ{§Çªº³]©w¤è¦¡¡C¦pªG±zÄ@·Nªº¸Ü¡A¥i¥H¥Î¤Wz FreeBSD 3.1 ªº¤èªk¡A±N splash_bmp ´«¦¨ splash_pcx ¨Ó¸ü¤J PCX ÀÉ®×§Y¥i¡C ¦pªG·Q¥Î·sªº³]©w¤è¦¡¡A±zªº /boot/loader.rc ¥²¶·¥]¬A³o´X¦æ¡G
include /boot/loader.4th start
ÁÙ»Ýn¤@Ó¥]§t¥H¤U´X¦æªº /boot/loader.conf ¡G
splash_bmp_load="YES" bitmap_load="YES"
³o¬O°²³]±z¥Î /boot/splash.bmp ¨Ó·í§@ splash ªº¿Ã¹õÅã¥Ü¡C¦pªG·Q¥Î PCX ªºÀɮסA§â¥¦«þ¦¨ /boot/splash.pcx¡A¦p¤Wz°µ¥X /boot/loader.rc¡A¦A±N³o´X¦æ¥[¨ì /boot/loader.conf ¤¤¡G
splash_pcx_load="YES" bitmap_load="YES" bitmap_name="/boot/splash.pcx"
²{¦b´N¥u³Ñ¤U splash ¥Î¨ÓÅã¥Üªº¹ÏÀÉ¡A±z¥i¥H¦b http://www.baldwin.cx/splash/ §ä¨ì¦UºØ¼Ë«~¡C
¥i¥H¡C§A©Òn§@ªº¡A´N¬O§Q¥Î xmodmap(1) ¥h©w¸q§A·Q¨Ï¥Î ªº¥\¯à¡C
°²³]©Ò¦³ªº ¡§Windows®¡¨ ³£¬O¼Ð·Çªº¡A ¨º¥¦Ìªº keycode ¤À§O¬°¡G
115 - Windows Áä¡A ¦b¥ª¤âªº Ctrl »P Alt Á䤧¶¡
116 - Windows Áä¡A ¦b Alt-Gr Áä¥kÃä
117 - ¿ï³æÁä¡A¥k¤âªº Ctrl Á䥪Ãä
nÅý¥ªÃ䪺 Windows Áä¦L¥X¤@Ó³rÂI¡A¸Õ¸Õ³oÓ¡G
# xmodmap -e "keycode 115 = comma"
§A¥i¯àn«¶]§Aªº windows manager¡A¤~·|¦³°Ê§@¡C
nÅý Windows Áä ªº¹ï¬M¦b¨C¦¸ X °_°Ê®É¦Û°Ê³]©w¦n¡A§A¥i¥H¦b§Aªº ~/.xinitrc ¸Ì¥[¤W xmodmap¡A ©Î¬O³Ì¦n«Ø¥ß¤@Ó ~/.xmodmaprc ÀɮסA¸Ì± ¨C¤@¦æ´N¬O¤@Ó xmodmap ªº¿ï¶µ¡AµM«á¦b§Aªº ~/.xinitrc ¸Ì¥[¤W¡G
xmodmap $HOME/.xmodmaprc
³o¤@¦æ¡C
¨Ò¦p¡A§A·Qn±N³o¤TÓÁä¦U¹ï¬M¨ì F13¡BF14 ©M F15¡C³oÅý§A¯à ¦b§Aªºµ{¦¡©Î¬O window manager ¤º±N¨ä¹ïÀ³¨ì«K§Qªº¥\¯à¤W¡Aµ¥¤@¤U §ÚÌ·|¥Ü½d¡C
§â³o¨Ç©ñ¶i ~/.xmodmaprc ¸Ì¡G
keycode 115 = F13 keycode 116 = F14 keycode 117 = F15
°²¦p§A¥Î fvwm2 ªº¸Ü¡A§A¥i¥H§@³o¼Ëªº¹ï¬M¡A Åý F13 ¯à°÷Åý´å¼Ð©Ò¦bªºµøµ¡ÁY¦¨¤p¹Ï¥Ü (©Î¬O¤Ï¹L¨Ó)¡CF14 Åý´å¼Ð ©Ò¦bªºµøµ¡Åܦ¨³Ì¤W¼hªºµøµ¡¡A©Î¬O°h¨ì¤U¼h¥h (¦pªG¥¦¤w¸g¬O³Ì¤W¼h ¤Fªº¸Ü)¡CF15 «h±N Workplace (application) ¿ï³æ¥s¥X¨Ó¡A§Y¨Ï´å¼Ð ¤£¦b®à±¤W¡C·í§A¨S¦³¥i¨£ªº®à±°Ï°ì®É¡A³oÓ¥\¯à´N¬Û·í¦a¤è«K (¦Ó¥B «öÁä¤Wªº¹Ï®×©M³oÓ¥\¯à¬Û§k¦X)¡C
¥H¤Uªº ~/.fvwmrc ³]©w¥i§@¥X«ezªº¥\¯à¡C
Key F13 FTIWS A Iconify Key F14 FTIWS A RaiseLower Key F15 A A Menu Workplace Nop
3D ¥[³t¥\¯àªº¦³µL¡Aµø§A©Ò¨Ï¥Îªº XFree86 ª©¥»»PÅã¥Ü´¹¤ù ªº«¬¸¹¦Ó©w¡C¦pªG§Aªº¬O NVIDIA ´¹¤ùªº¸Ü¡A½Ð¥h FreeBSD NVIDIA Driver Initiative ºô¶¬Ý¬Ý¡A¨º¸Ì¦³¦b XFree86-4 ¤W¨Ï¥Î NVIDIA ´¹¤ùªº 3D ¥[³t¥\¯àªº°Q½×¡CXFree86-4 ¤Wªº¨ä¥¦Åã¥Ü¥d¼tµP µwÅé¥[³t¥\¯àªº¸ê°T¡A ¥]¬A Matrox G200/G400, ATI Rage 128/Radeon, 3dfx Voodoo 3, 4, 5, ¥H¤Î Banshee¡A¥i¦b XFree86-4 Direct Rendering on FreeBSD ºô¶¤W§ä¨ì¡CXFree 3.3 ªº ¨Ï¥ÎªÌ¥i¥H¨Ï¥Î Utah-GLX port¡A¥¦¥i¥H¦b graphics/utah-glx §ä¨ì¡C ¨Ï¥Î¥¦¥i¥H¦b Matrox Gx00, ATI Rage Pro, SiS 6326, i810, Savage, ¥H¤Îªº NVIDIA ¤W±o¨ì¦³ªº OpenGL ¥[³t¡C
¥»¤å¤Î¨ä¥L¤å¥ó¡A¥i¥Ñ¦¹¤U¸ü¡Gftp://ftp.FreeBSD.org/pub/FreeBSD/doc/¡C
Y¦³ FreeBSD ¤è±ºÃ°Ý¡A½Ð¥ý¾\Ū FreeBSD ¬ÛÃö¤å¥ó¡A¦p¤£¯à¸Ñ¨Mªº¸Ü¡A¦A¬¢¸ß
<questions@FreeBSD.org>¡C
Ãö©ó¥»¤å¥óªº°ÝÃD¡A½Ð¬¢¸ß <doc@FreeBSD.org>¡C