התקנת Xgl

מתוך הויקי של ג'נטו.

(הופנה מהדף Xgl)
קפיצה אל: ניווט, חיפוש
קוביית Xgl/Compiz עם הגדרת 'in'
קוביית Xgl/Compiz עם הגדרת 'in'

פיצ'ר מיון חלונות
פיצ'ר מיון חלונות

תחליך Alt+Tab שלCompiz
תחליך Alt+Tab שלCompiz

תוסף קוביה בלי הגדרת 'in' והזזת חלון בין שולחנות עבודה
תוסף קוביה בלי הגדרת 'in' והזזת חלון בין שולחנות עבודה

Mplayer שקוף על גבי שולחן העבודה ותוכנות - על ידי neppakyo
Mplayer שקוף על גבי שולחן העבודה ותוכנות - על ידי neppakyo

שים לב: Xgl לא יתווסף לפורטאג' בעת הזאת בגלל בעית תלויות.

ראה =135329 באג #135329.


תוכן העניינים

[עריכה] הקדמה

Xgl הוא שרת X אשר משתמש ב - OpenGL כמנוע הציור שלו. יחד עם compiz, מנהל חלונות מבוסס OpenGL, הוא מאפשר אפקטים מגניבים בשולחן העבודה. Xgl מבוסס על תוספת ל - mesa שנקראת GLX_EXT_texture_from_pixmap, ונמצאת אך ורק ב - Mesa >= 3.5.

מידע ברשימת התפוצה של Xorg מציע שהמפרט של GLX_EXT_texture_from_pixmap נכתב בשיתוף עם אנשי NVIDIA, ולכן מימוש במנהלי התקן בקוד סגור של NVIDIA כנראה קרוב (הצפי הוא בסתיו הקרוב, בסדרת 1.0.9xxx).

אזהרה: תוכנה זו אינה נחשבת יציבה עדיין, אך פועלת כראוי ברוב המקרים. יש להשתמש בזהירות. אל תגיד "לא ידעתי" אחר כך...

[עריכה] דרישות חומרה

ראה רשימת כרטיסי המסך הנתמכים על ידי Xgl

[עריכה] התקנת Xgl

[עריכה] דרישות תוכנה

עדכן את עץ portage המקומי שלך

קוד: עדכון עץ portage המקומי

emerge --sync

אתה תצטרך Xorg מודולרי (גירסא 7.0). ראה את מסמכי ג'נטו המקוריים או את מדריך Xorg מודולרי בויקי.

בשלב זה, שימוש ב-gconf הוא הדרך היחידה לקבוע את התצורה של Compiz מבלי לשנות את קוד המקור. יכול להשתמש בכלי התצורה הגרפי (Gconf Editor) עבור Xgl/compiz/ אתה תצטרך להתקין אותו, יחד עם כל החבילות שהוא תלוי בהן, אפילו אם אינך משתמש ב - Gnome.

קוד: התקנת gconf-editor
emerge gconf-editor

כמו כן, תצטרך Subversion עם תמיכה מופעלת ב - webdav. שים לב לכפל השלילה בדגלי ה - USE. אתה תצטרך לכבות את הדגל "nowebdav". הוסף שורה ל - ‎/etc/portage/package.use אם יש בכך צורך:

קוד: הוספת תמיכת webdav ל - subversion
echo "dev-util/subversion -nowebdav" >> /etc/portage/package.use

ולאחר מכן:

קוד: התקנת subversion

emerge subversion

[עריכה] משיכת תוספת ל - Portage

  • הערה: עדיף לשמור את כל התוספות ל - Portage מופרדות אחת מהשנייה.

שנה ספרייה לספריית תוספי ה - Portage האהובה עלייך (צור אחת אם אין לך עדיין כזאת)...

קוד: שינוי לספריית Portage האהובה עלייך

cd /usr/local/overlays

משוך את מאגר ה - subversion מ - CoffeeBuzz אל תת הספריה 'xgl-coffee'

קוד: הורדה מ - subversion
svn co http://svn.xgl-coffee.org/xgl-coffee/trunk xgl-coffee

כעת יש לך תוספת ל - portage תחת ‎/usr/local/overlays/xgl-coffee.

הוסף נתיב זה ל - PORTDIR_OVERLAY שלך ב - ‎/etc/make.conf.

קובץ: /etc/make.conf
PORTDIR_OVERLAY="/usr/local/overlays/xgl-coffee"
אזהרה: גירסת ניסוי אמצע מאי הועברה ל - trunk. אם אתה משדרג מגירסא ישנה, כדאי שתקרא את התקנת Xgl#טיפ: כיצד לעדכן תוספת ל - Portage לאחר שינוי ענף

לחלופין, אתה יכול להשתמש ב - layman כדי לנהל עבורך את התוספות ל - Portage.

קוד: התקנת layman

emerge layman

אם אינך משתמש eix, ודא שאתה עורך את ‎/etc/layman/layman.cfg ומגדיר שם:

קוד: עריכת /etc/layman/layman.cfg
make_conf : /etc/make.conf 

כעת אתה יכול להוסיף תוספת ל - Portage עם layman:

קוד: הוספת תוספת ל - Portage עם layman
layman -f 
layman -a portage-xgl

עדכון קבצי תוספת Portage עם layman הוא קל:

קוד: עדכון קבצי תוספת Portage עם layman
layman -s portage-xgl

[עריכה] ביטול מיסוך של חבילות רלוונטיות

בתור התחלה, נצטרך להוסיף את השורות הבאות ל - ‎/etc/portage/package.unmask.

קובץ: /etc/portage/package.unmask
media-libs/glitz
media-libs/mesa
x11-apps/mesa-progs
sys-apps/man
x11-base/xgl
x11-libs/cairo
x11-libs/qt
x11-misc/util-macros
x11-proto/glproto
x11-wm/compiz-quinnstorm
x11-wm/compiz-vanilla
x11-libs/libwnck
x11-misc/xwinwrap #movies/openGL screensaver on desktop as in Novel video: optional
virtual/xft

עלייך לבחור בין compiz-quinnstorm ו - compiz-vanilla

  1. compiz-vanilla אינו מכיל טלאים מאף צד ג'. הוא ישירות מ - cvs.
  2. compiz-quinnstorm הוא snapshot של בסיס הקוד של quinnstorm יחד עם תוספי ניסוי. שים לב שאין לו את דגל ה - USE העונה לשם "kde", בשונה מ - vanilla.


ודא שבחבילה x11-libs/cairo מופעל הדגל ‎glitz.

קוד: הכנסת glitz לרשימת הדגלים של cairo

echo "x11-libs/cairo glitz" >> /etc/portage/package.use

[עריכה] ביצוע Emerge ל Xgl

הדבר הבא שנעשה הוא emerge ל - cairo. אנו נשתמש באפשרות "‎--oneshot" וזאת על מנת ש - Portage לא ירשום חבילה זו בקובץ world. חבילות אחרות ממילא ידרשו את cairo לפני שנסיים כאן, ולכן שימוש ב - oneshot יישמור על הדברים נקיים...

קוד: התקנת cairo

emerge --oneshot --ask --verbose cairo

לאחר מכן נתקין את pango ואת gtk+, וזאת כדי לוודא שהן הודרו מול cairo.

קוד: התקנת pango ו - gtk+

emerge --oneshot --ask --verbose pango gtk+

הדבר האחרון שנרצה לעשות לפני שנעשה emerge ל - Xgl והחבילות הרלוונטיות: עלינו לוודא שדגלי ה - USE העונים לשמות gnome ו - svg מופעלים עבור compiz. ייתכן שתצטרך להוסיף את השורה הבאה ל ‎/etc/portage/package.use שלך:

קובץ: /etc/portage/package.use
x11-wm/compiz-quinnstorm gnome svg # זה לא תומך ב -  KDE
x11-wm/compiz-vanilla gnome svg # זה יכול להחיל את הדגל kde כדי לתמוך ב kde
  • ודא שיש לך את הדגל gnome ב - USE אפילו אם אתה רוצה KDE. השימוש ב "USE="gnome הוא חובה.

לבסוף, הבה נעשה emerge על Xgl והחבילות הרלוונטיות. קודם כל, נתקין את glproto

קוד: התקנת glproto

emerge --ask --verbose glproto

משתמשי NVIDIA, אל תשכחו לחזור חזרה ל - libGl של היצרן שלכם אחרי שתעשו emerge ל - mesa.

קוד: התקנת xgl ו - compiz-vanilla ולאחר מכן mesa ואז שוב xgl ו - compiz-vanilla
emerge -av mesa
eselect opengl set nvidia # (for NVIDIA users)
emerge -av xgl compiz-vanilla # Either use compiz-vanilla, or compiz-quinnstorm
emerge -av nvidia-glx # (for NVIDIA users)
emerge -a1v mesa xgl compiz-vanilla # Either use compiz-vanilla, or compiz-quinnstorm
אזהרה:

  • ישנן בעיות בהידור xgl על מערכות AMD64 + NVIDIA, ראה ב - [1] - דווח כמתוקן החל מ - 2006-03-07.

לאלו מכם שיש להם בעיות בהידור mesa עם תוסף ה - Portage של CoffeeBuzz בגלל שגיאות הקשורות ל - dri, נסו לבצע emerge ל - libdrm מתוסף ה - Portage קודם לכן. (ה - Ebuild שונה כך שישתמש ב - ${CHOST} במקום ב - ${HOST}. אם יש לך בעיות, אנא צור קשר עם המתחזק של CoffeeBuzz או שלח הודעה בפורום.

קוד: התקנת libdrm
echo "x11-libs/libdrm ~x86" >> /etc/portage/package.keywords
emerge libdrm mesa

כשסיימת הכל, cairo צריך להיות בתוך המערכת שלך כחבילה שיש בה תלות (הערה: חייבים להתקין את חבילת gentoolkit כדי להשתמש בפקודה equery). על מנת לבדוק, תוכל להשתמש בפקודה:

קוד: בדיקה האם יש תלות ב - cairo

equery d cairo

אם הפקודה הנ"ל לא מראה אף חבילה, משהו לא בסדר!

[עריכה] סקריפטי התקנה אלטרנטיביים

[עריכה] install.sh

emxgl כבר אינו מומלץ. ישנו סקריפט התקנה חדש בתוספת ה - Portage של xgl-coffee.
הוא עובד עם כל סוגי כרטיסי המסך (i810, ATI, ו - NVIDIA).

כדי לקבל הוראות שימוש, הרץ בתור root,

קוד: שימוש ב - install.sh
cd /usr/local/overlays/xgl-coffee
./install.sh

[עריכה] עדכון Xgl

כדי לעדכן את תוסף ה - Portage, עבור לספריה המתאימה והריץ את הפקודה הבאה:

קוד: עדכון תוסף ה - Portage
cd /usr/local/overlays/xgl-coffee/
./svnup.sh

[עריכה] הרצת Xgl

צריך לומר ל - Compiz באיזה תוספים עליו להשתמש. אם לא תציין אף תוסף, לא תקבל אפילו עיצובי חלונות! (לא הקטנת/הגדלת/סגירת חלונות, לא שינוי גודל, לא כלום.)

ישנן שתי דרכים לציין תוספים. אפשר לעשות הכל משורת הפקודה, או להשתמש בכלי קביעת התצורה הגרפי Gconf. אבל אינך יכול להשתמש בשתיהן!. אם gconf מצויין בשורת-הפקודה, אזי compiz יתעלם מכל שאר התוספים שכתובים בשורת הפקודה, ויקח את רשימת התוספים שלו מתצורת ה - Gconf שלך במקום.

אז, אם זו הפעם הראשונה שאתה מריץ את Xgl ואתה רוצה לקבוע תצורה עם Gconf, זה יהיה הזמן הטוב לעשות זאת.

עריכה: היו לי המון בעיות עם עומק צבע של 16 סיביות! לא עיצובי חלונות, בעיות גרפיקה, וכו'. אני ממליץ לנסות עומק צבע של 24 סיביות. זה עבד בשבילי.

אזהרה: אתה חייב להוסיף תוספים ל - gconf-editor קודם לפני שאתה יוצא מ - X ומריץ את הסקריפט startxgl, או שתקבל שגיאות, תודה רבה!
קוד: עבור משתמשי NVIDIA
Xgl :1 -ac -accel glx:pbuffer -accel xv
LD_LIBRARY_PATH=/usr/lib/opengl/xorg-x11/lib/ DISPLAY=:1 compiz gconf
gconf-editor
קוד: עבור משתמשי ATi
Xgl :1 -ac -accel glx:pbuffer -accel xv:pbuffer
LD_LIBRARY_PATH=/usr/lib/opengl/xorg-x11/lib/ DISPLAY=:1 compiz gconf 
gconf-editor

ואז לך ל --> apps --> compiz --> general --> allscreens --> options וערוך את active_plugins מצד ימין.

לכל הפחות, כנראה שתרצה את gconf ואת decoration. אבל אם אתה באמת רוצה להתלהב מ - Xgl, כדאי לך להוסף גם את wobbly, fade, switcher, move, resize, place, minimize, cube, rotate, zoom, ו - scale. בסדר הזה.

שים לב:
  • היה עלי להריץ את compiz לפחות פעם אחת לפני הרצת פקודה זו, אחרת הערך של compiz חסר.
  • אני לא בטוח אם אתה חייב להריץ התקנה ידנית של ה - schema (על ידי gconftool-2 --makefile-install-rule /etc/gconf/schemas/compiz.schemas) אבל הייתי צריך להריץ source /etc/profile בתור משתמש כדי ש - compiz יופיע.
  • אם אחרי כל הפקודות אין לך את compiz ב - gconf-editor, השתמשתי ב:
export GCONF_CONFIG_SOURCE="xml:merged:/etc/gconf/gconf.xml.defaults"
gconftool-2 --makefile-install-rule /etc/gconf/schemas/compiz.schemas

וזה עובד בדרך כלל.


[עריכה] חלונאי

שים לב: בחלקים הבאים Xgl מורץ על תצוגה 1, במקום תצוגה 0, וזאת משום שלגירסאות הראשונות של Xgl היו בעיות בשימוש בתצוגה 0. עם הגירסאות האחרונות לא היו לי בעיות גם בשימוש בתצוגה 0 הסטנדרטית (ואני חייב להשתמש בתצוגה 0 בגלל ששימוש ב - Xgl וב - Gnome אינו מאפשר לשירות העגינה האוטומטית, gnome-volume-manager, לעלות...).

כדי לנסות זאת בחלון אחר אם כבר רץ שרת X:

קוד: עבור משתמשי ATi
Xgl :1 -ac -accel glx:pbuffer -accel xv:pbuffer
קוד: עבור משתמשי NVIDIA
Xgl :1 -ac -accel glx:pbuffer -accel xv
שים לב: אני לא העזתי באמת לשנות את זה, משום שאני לא בטוח האם זה ייתן שיפור עבור כל משתמשי NVIDIA. אבל נראה שהפקודה שניתנה קודם לכן עבור משתמשי ATi תהפוך את פעולת הרינדור למהירה יותר גם עבור משתמשי NVIDIA. כמו כן, תוכל לנסות את האפשרות fbo (על ידי הוספת accel xv:fbo-), במקום. For a brief discussion עבור דיון קצר בנושא, ראה כאן: http://forums.gentoo.org/viewtopic-t-455153-highlight-.html

לאחר מכן הפעל את compiz כך:

קוד: הפעלת compiz
LD_LIBRARY_PATH=/usr/lib/opengl/xorg-x11/lib/ DISPLAY=:1 compiz gconf
קוד: הפעלת gnome-window-decorator
DISPLAY=:1 gnome-window-decorator
קוד: הרצת יישום
DISPLAY=:1 xterm
שים לב: אתה יכול להגדיר את תוספי compiz ב - gconf-editor תחת apps/compiz/


[עריכה] XDM

החלף את ההפנייה לשרת ה X

קובץ: /etc/X11/xdm/Xservers
:0 local /usr/bin/Xgl vt7

[עריכה] KDM (מנהל הכניסה של KDE)

החלף את הערך ServerCmd ב - kdmrc ל:

קובץ: /usr/kde/<your version>/share/config/kdm/kdmrc
ServerCmd=/usr/bin/Xgl -br -ac -accel glx:pbuffer -accel xv

תצטרך גם לשנות את הגדרת ServerTimeout באותו חלק, כיוון של Xgl עשוי לקחת מעט יותר זמן לעלות מאשר ל X רגיל:

קובץ: /usr/kde/<your version>/share/config/kdm/kdmrc
ServerTimeout=30

אם יש לך כרטיס ATi (אינטל גם?) ואתה מתחיל את Xgl על 1: (תצוגה 1), שנה את שורת StaticServers בחלק [General] לדבר הבא:

קובץ: /usr/kde/<your version>/share/config/kdm/kdmrc
StaticServers=:1

אל תשתמש בסקריפט‎/usr/kde/3.5/share/config/kdm/Xstartup כדי להפעיל את compiz. הוא יריץ את compiz בתור root...

עלייך לשים את הסקריפט הזה בנתיב שלך: You should place this script in your path:

קובץ: /usr/local/bin/compiz-decorator
LD_LIBRARY_PATH=/usr/lib/opengl/xorg-x11/lib compiz --replace decoration wobbly fade minimize cube rotate zoom scale move resize place switcher &
sleep 3
gnome-window-decorator &

במכונה מהירה, תוכל לשנות את "sleep 3" ל - "sleep 1". לאחר מכן, אתה חייב להוסיף KDEWM=compiz-decorator ל - ‎ /etc/env.d/99kde-env (או כל קובץ אחר תחת ‎/etc/env.d) ולאחר מכן להריץ ‎ env-update.

דבר זה מאפשר לך פשוט להיות עם הפעלה דרך ‎/etc/init.d/xdm בזמן העלייה שתיצור Xgl מלא עם אפקטים מופעלים ללא צורך בהתערבות משתמש, עם מסך הכניסה הרגיל של kdm.

[עריכה] GDM (מנהל הכניסה של GNOME)

עלייך לעשות שלושה דברים כדי ש - Xgl יעבוד עם gdm ו - compiz ייטען באופן אוטומטי אחרי שאתה נכנס למערכת. 1) להגדיר את gdm לחכות מספיק זמן כדי ש - Xgl יעלה לפני שהוא מניח שהוא תקוע עד כדי חוסר שימוש 2) להגדיר ל - gdm להשתמש בשרת ה - Xgl, ו - 3) להגדיר את ה - session שלך ב gnome כך שיטען את compiz באופן אוטומטי.

הערה: קביעת התצורה של gdm כדי לחכות יותר זמן להפעלת Xgl זמינה אך ורק מגירסא gdm-2.14.1 ואילך. אם אתה משתמש בגירסא מוקדמת יותר, המשך לשלב 2, אבל קח בחשבון שאולי לא תצליח לגרום ל - gdm לעבוד עם Xgl. כמו כן, שימוש ב - gdmsetup כדי לקבוע את תצורת gdm לשימוש עם שרת Xgl (חלק 2 א') עשוי להיות לא אפשרי עבור גירסאות gdm הקודמות לגירסא 2.14.0. אם האפשרויות הנחוצות לא זמינות לך, ערוך ידנית את קובץ ההגדרות של gdm (חלק 2 ב').

[עריכה] הגדרת gdm כדי לחכות יותר זמן עד ש - Xgl יסיים לעלות

Gdm מוגדרף בברירת מחדל, להרוג שרת X שלוקח לו יותר מ - 10 שניות לעלות. לחוסר המזל, לגירסאות האחרונות של Xgl לוקח לעתים זמן ארוך מכך כדי לסיים לעלות. תודות לעבודה של משתמש Xgl בג'נטו, gdm (החל מגירסא 2.14.1) יכול להיות מוגדר לזמן המתנה ארוך יותר מ - 10 שניות.

קוד: עדכון gdm לגירסא 2.14.1 ומעלה
emerge '>=gdm-2.14.1'

בשלב זה, התקנת gdm לא עבדה כי לא היה ניתן להחיל את הטלאי של הגדלת זמן ההמתנה על קוד המקור. לאחר מכן שמתי לב שהטלאי כבר קיים החל מגירסא 2.14.1. אז שמתי בהערה את שורת PORTDIR_OVERLAY ב ‎/etc/make.conf וביצעתי emerge מחדש. הפעם, ההתקנה עברה חלק... אז אם אותו דבר קורה לך, תדע מה לעשות :)

הוסף/שנה את הפקודות הבאות בחלק [daemon] של ‎/etc/X11/gdm/gdm.conf. השורות:

קובץ: /etc/X11/gdm/gdm.conf
 # This determines whether gdm will send notifications to the console
 #ConsoleNotify=true
 
 [security]    

הופכות ל:

קובץ: /etc/X11/gdm/gdm.conf
 # This determines whether gdm will send notifications to the console 
 #ConsoleNotify=true
 
 # How long gdm should wait before it assumes a started Xserver is defunct and
 # kills it.  10 seconds should be long enough for X, Xgl may need 20 or 25. 
 GdmXserverTimeout=25
 
 [security]

[עריכה] הגדרת gdm להשתמש בשרת Xgl

  • קודם כל, שמור גיבוי של קובץ gdm.conf שלך:
קוד: גיבוי gdm.conf
cp /etc/X11/gdm/gdm.conf /etc/X11/gdm/gdm.conf.back
[עריכה] באמצעות gdmsetup
  • הרץ את gdmsetup
  • בחר בלשונית "Security"
  • לחץ על הכפתור "Configure X Server" שנמצא בתחתית הלשונית מצד ימין

בהתחלה נמחוק את הערך עבור שרת ה - X הסטנדרטי

  • לחץ על השרת הסטנדרטי שמופיע ברשימת "Servers to Start"
  • לחץ על כפתור Remove

כעת ניצור ערך חדש עבור שרת Xgl

  • לחץ על כפתור "Add/Modify"
  • הגדר את השרת החדש להשתמש ב "VT 1". השתמש ב - "Standard" עבור האפשרות "Server" - דבר זה יקבע באיזה פרופיל להשתמש עבור השרת, ובאופן אידאלי היינו יכולים ליצור פרופיל "Xgl" חדש כאן, אך נכון לעכשיו לא ניתן ליצור פרופיל חדש באמצעות gdmsetup, אז פשוט נשנה את ההגדרות עבור הפרופיל הסטנדרטי, "Standard".

אל תגדיר אף אפשרות כאן. לחץ על "Ok" כשתסיים.

  • תחת "Server Settings" שנה את "Server Name" ל - "Xgl"
  • הכנס את פקודת ה - Xgl שלך לתיבת "Command", לדוגמא, משתמשי ATi יכתבו:
קוד: פקודה עבור משתמשי ATi
/usr/bin/Xgl :1 -ac -accel xv:pbuffer -accel glx:pbuffer

ואילו משתמשי NVIDIA יכתבו:

קוד: פקודה עבור משתמשי NVIDIA
/usr/bin/Xgl -br -ac -accel glx:pbuffer -accel xv:fbo
  • שנה בתיבת-הגלילה "Luanch" ל - "Greeter"
  • סמן את האפשרות "Logins are handled by this computer"
  • סמן את האפשרות "(Flexible (on demand".
  • שמור וצא
  • הפעלה מחדש את gdm
[עריכה] ידנית
  • פתח את ‎/etc/X11/gdm/gdm.conf בעורך טקסט וחפש את החלק [servers]. הוא אמור להיות לקראת סוף הקובץ.
  • הפוך את השורה 0=Standard להערה על ידי הקדמתה בסימן הסולמית, והוסף מתחתיה את השורות הבאות:
קובץ: /etc/X11/gdm/gdm.conf
0=inactive
1=Xgl
  • הוסף את מידע השרת עבור שרת ה - Xgl, וזכור להחליף את פקודת ה - Xgl לפקודה הנכונה עבורך! הדוגמא שלקמן היא לכרטיסי ATi.
קובץ: הגירסא המעודכנת של /etc/X11/gdm/gdm.conf
 ...
 
 [servers]
 #0=Standard
 0=inactive #for me this didn't work "'inactive' not found" - just comment it out
 1=Xgl
 
 ...
 
 # Definition of the xgl X server.
 [server-Xgl]
 name=Xgl
 command=/usr/bin/Xgl :1 -ac -accel xv:pbuffer -accel glx:pbuffer
 flexible=true
 chooser=false
 handled=true
 priority=0 
  • הפעל מחדש את gdm

הערה: עבור משתמשי i810, הפקודה עבור הנ"ל צריכה להיות:

קוד: עבור משתמשי i810
 [server-xgl]
 name=Xgl server
 command=/usr/bin/Xgl -accel xv -accel glx:pbuffer -accel xv:pbuffer -ac -audit 0 -br -dpms -dpi 72
 flexible=true

הערה: ב Gnome 2.13 השינויים האלה צריכים ללכת ל - ‎/etc/X11/gdm/custom.conf. כמו כן, הגדרת "0=inactive" גרמה ל-Xgl להתרסק אצלי, ולכן אציע רק לשים את "0=Standard" בהערה, להוסיף את "1=Xgl", ולא להוסיף את "0=Inactive" אם יש לך בעיות בהתחלה של gdm למשך כמה שניות ואז Xgl מתרסק...

[עריכה] הוספת compiz ל - session של ה - gnome שלך (והחלפת metacity)

הנה סקריפט קטן, ששמתי תחת ‎/usr/bin/. שימושי אם אתה לא רוצה להריץ תמיד את Xgl. שנה או הסר את שורת setxbmap בהתאם לסוג לוח המקשים שלך. .

קובץ: /usr/bin/compizrc
#!/bin/bash
#
# Start compiz within gnome-session
#
if [ `ps -A | grep Xgl | wc -l` == "1" ]; then
        DISPLAY=:1 LD_LIBRARY_PATH=/usr/lib/opengl/xorg-x11/lib/ compiz --replace gconf &
        DISPLAY=:1 gnome-window-decorator &
        DISPLAY=:1 setxkbmap -model pc105 -layout it -variant basic
fi
קוד: הפוך את הסקריפט לבר-ביצוע

chmod 755 /usr/bin/compizrc

  • לאחר שתיכנס לתוך Gnome, היכנס ל System->Settings->Sessions (או שתשתמש ב-"gnome-session-proerties" במסוף, בתור משתמש - לא root!). כאן היכנס לטאב השלישי "manual startup" ולחץ על הכפתור add. הכנס את הנתיב לסקריפט ה - compiz שלך (‎/usr/bin/compizrc) והגדרר את העדיפות (priority) ל-45 (אחרי ה-gnome-panel שהוא 40, ולפני שתוכנות מופעלות על ידי המשתמש, שזה 50).
  • אחרי שתצא ותיכנס, compiz יתחיל, אבל לא תראה עיצובים ואפקטים. זה משום שעץ gconf שלcompiz עבור המשתמש הנוכחי נוצר רק הרגע - בלי שום תוספים!
  • אז הפעל את עורך התצורה שלך (gconf-editor - בתור משתמש רגיל!), ולך ל-"apps/compiz/general/allscreens/options" ושם ערוך את המפתח "active_plugins". זה אמור להכיל את הערכים הבאים בסדר הזה: gconf decoration wobbly fade minimize cube rotate zoom scale move resize place menu switcher
  • לאחר הפעלה מחדש, שרת ה - Xgl שלך אמור להיות נגיש מתוך gdm ו - gnome-session.

[עריכה] Xsession (שינוי startx)

שים לב: ההוראות הבאות הן למשתמשי nvidia בלבד. ההוראות לא יעבדו בכרטיסי ati בגלל נושאי display, אשר ידרשו לרוץ עם DISPLAY=:1.

העתק את ‎/usr/bin/startx אל ‎/usr/bin/startxgl ושנה את השורה הבאה לקראת סוף הקובץ:

קובץ: /usr/bin/startxgl (ישן)
xinit $clientargs -- $serverargs -deferglyphs 16 &
קובץ: /usr/bin/startxgl (חדש)
xinit $clientargs -- /usr/bin/Xgl -ac -accel xv -accel glx:pbuffer $serverargs -deferglyphs 16 &

הנ"ל לא יפעיל את compiz, ולכן תצטרך ליצור סקריפט אתחול קטן ולהוסיף אותו למנהל gnome-session (אחרי ש-gnome עלה. בפעם הראשונה, תצטרך לפתוח מסוף ולהפעיל את הסקריפט ידנית)

קובץ: /usr/bin/compizrc
#!/bin/bash
#
# הפעלת compiz בתוך gnome-session
#
if [ `ps -A | grep Xgl | wc -l` == "1" ]; then
        LD_LIBRARY_PATH=/usr/lib/opengl/xorg-x11/lib/ compiz --replace gconf &
        gnome-window-decorator &
#        setxkbmap -model pc105 -layout it -variant basic # שנה לפי הצורך, ואם שינית, הסר את סימן ההערה מתחילת השורה
fi

הערה: הנ"ל אמור להפעיל את סביבת שולחן העבודה שמוגדרת דרך XSESSION ב ‎/etc/rc.conf.

[עריכה] Xfce4

[עריכה] עם xfce4-session

xfce4-session מותקן בברירת המחדל כחלק מחבילת המטא (meta) העונה לשם xfce4. אם התקנת את xfce4 בצורה זו, ההוראות הבאות יעבדו.

בהתחלה, נצטרך ליצור סקריפט שיפעיל את cmopiz ואת gnome-window-decorator עם הספריות והמאפיינים הנכונים.

קובץ: /usr/bin/compizrc
LD_LIBRARY_PATH=/usr/lib/opengl/xorg-x11/lib compiz --replace gconf &
gnome-window-decorator
קובץ: הפיכת הסקריפט לבר ביצוע

chmod 755 /usr/bin/compizrc

כעת, נערך את תצורת xfce4-session כדי להצביע לנ"ל במקום ל - xfwm4. .

קובץ: /etc/xdg/xfce4-session/xfce4-session.rc
[Failsafe Session]
Count=4
Client0_Command=compizrc
Client0_PerScreen=False
Client1_Command=xfce4-panel
Client1_PerScreen=True
Client2_Command=xftaskbar4
Client2_PerScreen=True
Client3_Command=xfdesktop
Client3_PerScreen=False
שים לב: במקום לערוך את הקובץ שמשפיע על כל המערכת, אפשר להוסיף את החלק הכתוב לעיל לקובץ ~/.config/xfce4-session/xfce4-session.rc. שים לב גם שייתכן ותצטרך למחוק את התוכן של הספרייה ~/.cache/sessions, אם יש עדיין יש לך את xfwm4 רץ ולא את compiz.

לבסוף, צור סקריפט שיפעיל את XGL עם Xfce4.

קובץ: /usr/bin/startxgl עבור NVIDIA
#!/bin/bash
Xgl -ac -accel xv:fbo -accel glx:pbuffer &
xfce4-session
קובץ: /usr/bin/startxgl עבור ATi
#!/bin/bash
Xgl -ac -accel xv:pbuffer -accel glx:pbuffer &
xfce4-session
קוד: הפיכת הסקריפט לבר הרצה

chmod 755 /usr/bin/startxgl

תוכל לשים לב ש-xfce4-panel שקוף כעת, בדיוק כמו שהיה אם היית משתמש ב-compositor של xfwm4. ה-pager יהיה מעט מעוות, אבל למעט אלה, הכל יפעל נהדר. חלונות אפילו יתמזערו למקום הנכון בשורת המשימות.

[עריכה] בלי xfce4-session

אם הידרת xfce מינימלי (ללא xfce4-session, xffm4, וכו'), אז תוכל להשתמש בסקריפט startxgl אשר עבר שינוי מסקריפט ה-gnome שלעיל:

קובץ: /usr/bin/startxgl
#!/bin/bash
echo ">Starting XGL at Display: $1"
echo "========= XGL ============"
Xgl :$1 -ac -accel xv -accel glx:pbuffer &
sleep 3
echo "======= COMPIZ ==========="
DISPLAY=:$1 LD_LIBRARY_PATH=/usr/lib/opengl/xorg-x11/lib/ compiz --replace switcher decoration wobbly fade minimize cube rotate zoom scale move resize place &
sleep 3
echo "======= XFCE ============"
DISPLAY=:$1 xfce-mcs-manager
DISPLAY=:$1 gnome-window-decorator &
DISPLAY=:$1 xftaskbar4 &
DISPLAY=:$1 xfdesktop &
DISPLAY=:$1 exec xfce4-panel

שוב, xfce4-panel יהיה שקוף כאילו שאתה עובד עם תוסף ה-composite של X.org מופעל (למרות שאין לך) או אם אתה משתמש ב xfce4-svn, וה-pager יהיה מעוות. כל השאר אמור להיות בסדר.

[עריכה] עם startxfce4

כדי לעשות זאת בדרך המיושנת, או ה'רגילה' דרך startx/startxfce4, עשיתי את הדברים הבאים. קודם כל, אין צורך לקרוא ל - startxfce4. פשוט השתמש ב xinitrc. בספריית הבית שלך וב-startx.

קובץ: ~/.xinitrc
#!/bin/sh
/usr/bin/startxfce4

כעת, בתור root, ניצור את compizrc, כמו לעיל. שים לב אבל, שעבורי, זה עבד הכי טוב (ליתר דיוק, עבד בכלל) מבלי הגדרת המשתנה DISPLAY.

קובץ: /usr/bin/compizrc
#!/bin/bash
LD_LIBRARY_PATH=/usr/lib/opengl/xorg-x11/lib/ compiz --replace gconf > ~/compiz.log 2>&1 &
sleep 1;
gnome-window-decorator > ~/gnome-window.log 2>&1 &

כמובן שהפניות הפלט הן לא חובה (אבל שימושיות במקרה של דיבאגינג). ניתן להוריד גם את sleep 1 כדי להאיץ קצת את הדברים. רק שים לב שאם דברים קורים מהר מדי, אתה עלול להיתקל בבעיות... כמו כן, אל תשכח לעשות: chmod 755 /usr/bin/compizrc

לבסוף, נצטרך להשתמש ב - compizrc החדש במקום במנהל החלונות ברירת המחדל xfce4.

שוב, בתור root, ערוך את ‎/etc/xdg/xfce4-session/xfce4-session.rc והחלף את xfwm4 עם compizrc.

קובץ: /etc/xdg/xfce4-session/xfce4-session.rc (ישן)
Client0_Command=xfwm4
קובץ: /etc/xdg/xfce4-session/xfce4-session.rc (חדש)
Client0_Command=compizrc

והדבר האחרון שנשאר, הוא להפעיל את Xgl. כמו למעלה, אתה יכול להעתיק את startx שנמצא ב - ‎/usr/bin/startx אל ‎/usr/bin/startxgl ולבצע את השינוי הבא:

קובץ: /usr/bin/startxgl (ישן)
xinit $clientargs -- $serverargs -deferglyphs 16 &
קובץ: /usr/bin/startxgl (חדש)
xinit $clientargs -- /usr/bin/Xgl -ac -accel xv -accel glx:pbuffer $serverargs -deferglyphs 16 &

[עריכה] Entrance CVS

1) השתמש בכלי ecore_config כדי לשנות את מחרוזת ה - xserver.

ATI:

ecore_config -k "/entranced/xserver" -s "/usr/bin/Xgl -ac -accel xv:pbuffer -accel glx:pbuffer -nolisten tcp"  -c /etc/entrance_config.cfg

NVIDIA:

ecore_config -k "/entranced/xserver" -s "/usr/bin/Xgl -ac -accel xv:fbo -accel glx:pbuffer -nolisten tcp"  -c /etc/entrance_config.cfg

2) הפעל מחדש את entrance.

[עריכה] Entrance 0.9.x

הפעלת ה-X של Entrance קבועה באופן קבוע בקוד המקור.

יהיה נחמד אם מישהו ייצר טלאי לחבילה הנ"ל כך שתקמפל את קוד המקור בהתאם לדגל USE חדש...

קוד: קבל את קוד המקור של entrance
ebuild /usr/portage/x11-misc/entrance/entrance-0.9.0.004.ebuild fetch (אם אין לך עותק כבר ב distfiles)
ebuild /usr/portage/x11-misc/entrance/entrance-0.9.0.004.ebuild unpack

שנה את הקובץ: ‎/var/tmp/portage/entrance-0.9.0.004/work/entrance-0.9.0.004/src/daemon/Entranced.h והחלף את שורה מספר 21 (‎"#define X_SERVER "/usr/X11R6/bin/X -quiet -nolisten tcp") ב :

  • עבור NVIDIA החלף ב: ‎#define DEFAULT_X_SERVER "/usr/bin/Xgl -accel xv -accel glx:pbuffer -quiet"
  • עבור ATI החלף ב: ‎#define X_SERVER "/usr/bin/Xgl -accel xv:pbuffer -accel glx:pbuffer -quiet"
קוד: הדר והתקן את הגירסא החדשה של entrance לאחר השינוי
ebuild /usr/portage/x11-misc/entrance/entrance-0.9.0.004.ebuild compile
ebuild /usr/portage/x11-misc/entrance/entrance-0.9.0.004.ebuild install
ebuild /usr/portage/x11-misc/entrance/entrance-0.9.0.004.ebuild qmerge

[עריכה] Qingy

זה די פשוט לגרום ל - Quingy להפעיל את Xgl במקום את שרת X הרגיל. כל שעלייך לעשות כדי להפעיל את Xgl הוא לשנות שתי שורות ב - ‎/etc/quingy/settings:

קובץ: /etc/qingy/settings
...
# x_server = "/usr/X11R6/bin/XFree86"
x_server = "/usr/bin/Xgl"
# x_args = "-nolisten tcp"
x_args = "-ac -accel xv -accel glx:pbuffer -nolisten tcp"
...

כעת quingy אמור להפעיל את Xgl במקום את X הרגיל. כדי לגרום ל - KDE ו - GNOME לטעון את compiz, עלייך לייצא משתנה סביבה. KDEWM עבור KDW ו WINDOW_MANAGER עבור Gnome. הדרך הקלה לעשות זאת היא בקובץ ‎/etc/X11/Sessions. עקוב אחר ההוראות להוספת תוספים דרך gconf-editor (לעיל). לאחר מכן צור קובץ ‎/usr/bin/compizrc לפי הדוגמא למטה, ובצע עליו chmod +x.

קובץ: /usr/bin/compizrc
#!/bin/bash
LD_LIBRARY_PATH=/usr/lib/opengl/xorg-x11/lib compiz --replace gconf &
sleep 2
gnome-window-decorator &
setxkbmap -model itouch -layout gb & ## שנה/הוסף כפי הנדרש

לאחר מכן ערוך/שנה את הקובץ/ים המתאימים ב - ‎/etc/X11/Sessions עבור KDE:

קובץ: /etc/X11/Sessions/kde-3.5
#!/bin/sh
export KDEWM="/usr/bin/compizrc"
exec /usr/kde/3.5/bin/startkde

או עבור Gnome הוסף את השורות הבאות בראש הקובץ:

קובץ: /etc/X11/Sessions/Gnome
#!/bin/sh

export WINDOW_MANAGER="/usr/bin/compizrc"

...

עבור XFCE4 ערוך את ‎/etc/xdg/xfce4-session/xfce4-session.rc כפי שהוסבר בחלק הקודם. בתקווה, quingy אמור לעלות כעת עם Xgl ו - compiz במקום עם X ומנהל חלונות אחר...

[עריכה] סקריפט startxgl ג'נרי

ישנו סקריפט הפעלה ג'נרי בתוך תוסף ה - Portage. עבור הוראות שימוש, הפעל אותו ללא ארגומנטים.
כרגע הוא תומך ב - Xfce, Xfce-svn, GNOME ו - KDE.

קוד: הרצת startxgl
cd /usr/local/overlays/xgl-coffee
./startxgl

[עריכה] תוספים ל - Compiz

חלק זה הועבר ל - Compiz.

[עריכה] טיפים וטריקים

חלק זה הועבר להתקנת XGL/טיפים וטריקים.

[עריכה] טיפ: כיצד לעדכן תוספת ל - Portage לאחר שינוי ענף

גירסת הבדיקה של תוסף ה - Portage הועברה עכשיו ל - trunk, וגירסת trunk הישנה עודכנה לתעתיק של ענף הבדיקה. ענף הבדיקה יימחק בקרוב. אנא שדרג מוקדם ככל האפשר. ההוראות הבאות הועתקו מהפורומים של ג'נטו. הן מכילות תיאור מפורט יותר של השינוי:

"תוסף ה Portage של CoffeeBuzz עבור XGL עבר כעת שינוי גדול. הבדיקה הועברה ל - Trunk. בשבוע הקרוב בערך, ענף הבדיקה יימחק לחלוטין. כדי לעדכן, אנא בצע את השלבים הבאים:

הסר את כל תוספי xgl-coffee הקיימים (יש להם הרבה נתיבים שנבחרו, ואני אעדכן את הויקי כדי שיכיל רק אחד בודד וראוי. - ‎/usr/local/overlays הוא בדרך כלל זה שנמצא בשימוש בג'נטו לתוספים מעבר ל Portage המקורי).

קוד: קבלת עותק מעודכן
cd /usr/local/overlays
svn co http://svn.xgl-coffee.org/xgl-coffee/trunk xgl-coffee

ערוך את ‎/etc/make.conf ושנה את PORTDIR_OVERLAY כדי שיכיל את ‎/usr/local/overlays/xgl-coffee והסר הפניות ישנות לתוספי Portage ישנים.

כעת אתה מעודכן. באפשרותך לעדכן את תוסף ה - Portage על ידי הרצת: cd /usr/local/overlays/xgl-coffee; ./svnup.sh; cd

אם מישהו מוצא באגים בהכרזה זו בעניין תהליך העדכון, אנא הודיעו לי ואני אתקן זאת באופן מיידי.

מתחזק CoffeeBuzz החביב עלייך, nesl247 - Alex Heck"

[עריכה] פתרון בעיות

חלק זה הועבר להתקנת Xgl/פתרון בעיות.

[עריכה] שגיאת inline unit growth

inline-unit-growth error היא בעייה ידועה (וגם אשכולות אחרים שאני לא יכול למצוא יותר), אז אם קורה לך הדבר הבא:

קוד: שגיאת inline unit growth
[...].deps/libfbmmx_la-fbmmx.Tpo -c fbmmx.c  -fPIC -DPIC -o .libs/libfbmmx_la-fbmmx.o
cc1: error: invalid parameter `inline-unit-growth'
cc1: error: invalid parameter `large-function-growth'
make[1]: *** [libfbmmx_la-fbmmx.lo] Error 1
make[1]: Leaving directory `/tmp/portage/portage/xgl-0.0.1_p20060418/work/xgl-xo
rg/fb'
make: *** [all-recursive] Error 1

!!! ERROR: x11-base/xgl-0.0.1_p20060418 failed.
Call stack:
  ebuild.sh, line 1894:   Called dyn_compile
  ebuild.sh, line 941:   Called src_compile
  ebuild.sh, line 1609:   Called x-modular_src_compile
  x-modular.eclass, line 320:   Called x-modular_src_make

תקן זאת על ידי הוספת ‎-mmx ל - ‎x11-base/xgl בקובץ ‎ /etc/portage/package.use שלך.

[עריכה] שגיאת Digest verification failed

שגיאת SHA256 ידועה =131293 כבאג, כך שאם קורה הדבר הבא:

קוד: שגיאת SHA256
Would you like to merge these packages? [Yes/No] y
>>> Emerging (1 of 1) media-libs/mesa-6.5.1_alpha20060418 to /
>>> checking ebuild checksums
>>> checking auxfile checksums
!!! Digest verification failed:
!!! /usr/portage/local/layman/portage-xgl/media-libs/mesa/files/makedepend-location.patch
!!! Reason: Failed on SHA256 verification
!!! Got: 3541f6528b402328886e3169169fc400db11ed91d39ddd2b5d3b1f6be77d7ff5
!!! Expected: c0ec505e5fb263d4cde901ce9afe3197346acf67372460a2177231be8425e0ab

תקן זאת על ידי הרצה פשוטה של הפקודה הבאה:

קוד: תיקון שגיאת SHA256
ebuild /usr/local/overlays/xgl-coffee/media-libs/mesa/mesa-6.5.1_alpha20060418.ebuild digest


Filesize does not match recorded size היא שגיאה דומה, אך מעט שונה:

קוד: שגיאת Filesize does not match recorded size


Would you like to merge these packages? [Yes/No] y
>>> Emerging (9 of 9) x11-wm/compiz-vanilla-0.0.11_p20060523 to /
>>> checking ebuild checksums
!!! Digest verification failed:
!!! /usr/local/overlays/xgl-coffee/x11-wm/compiz-vanilla/compiz-vanilla-0.0.10_p20060520.ebuild
!!! Reason: Filesize does not match recorded size
!!! Got: 1691
!!! Expected: 1690

אבל הפתרון הוא אותו פתרון :)

קוד: תיקון שגיאת Filesize does not match recorded size
ebuild /usr/local/overlays/xgl-coffee/x11-wm/compiz-vanilla/compiz-vanilla-0.0.10_p20060520.ebuild digest 

[עריכה] שגיאת X_GLXvop_BindTexImageEXT

משתמשי AMD64 אשר נתקלים בבעייה בהידור Mesa בגלל הודעת השגיאה הבאה:

קוד: שגיאה בהתקנת Mesa

error: 'X_GLXvop_BindTexImageEXT' undeclared (first use in this function)

יכולים לנסות את הפקודות הבאות:

קוד: תיקון בעיית הידור Mesa תחת AMD64
cd /usr/include/GL
ln -sf /usr/lib64/opengl/global/include/glext.h glext.h
ln -sf /usr/lib64/opengl/xorg-x11/include/gl.h gl.h
ln -sf /usr/lib64/opengl/global/include/glxext.h glxext.h
ln -sf /usr/lib64/opengl/xorg-x11/include/glx.h glx.h
ln -sf /usr/lib64/opengl/xorg-x11/include/glxmd.h glxmd.h
ln -sf /usr/lib64/opengl/xorg-x11/include/glxproto.h glxproto.h
ln -sf /usr/lib64/opengl/xorg-x11/include/glxtokens.h glxtokens.h

[עריכה] קישורים

[עריכה] סרטוני הדגמה

[עריכה] תקליטורים חיים (LiveCD)

[עריכה] מדריכים

כלים אישיים
שפות אחרות