זוהי הפקודה xboxdrv שניתן להפעיל בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS
תָכְנִית:
שֵׁם
xboxdrv - דרייבר ל-Xbox/Xbox360 gamepad שעובד במרחב המשתמש
תַקצִיר
xboxdrv [אופציה]... [--] [פקודה] [טיעונים]
תיאור
xboxdrv הוא מנהל התקן עבור משחקי Xbox ו-Xbox360. זה עובד על ידי קריאת הנתונים הגולמיים
הבקר עם ספריית מרחב המשתמש libusb ולאחר מכן מעביר את הנתונים המפורשים אל
הקרנל באמצעות uinput. זה מאפשר xboxdrv לספק ג'ויסטיק ומכשירי אירועים רגילים,
מה שהופך אותו לתואם לכל תוכנות לינוקס.
חוץ מהנהג הטהור, xboxdrv כולל גם סט עשיר של אפשרויות תצורה ש
מאפשרים לך לצבוט את היכולות של התקני הקלט הווירטואליים ש-xboxdrv תיצור.
זה כולל מיפוי מחדש של כפתורים וציר בסיסיים, כמו גם דברים מסובכים יותר כמו
אמולציית עכבר ומקלדת, אמולציית שריפה אוטומטית ובקרת מצערת.
אפשר גם עבור xboxdrv כדי לקרוא נתוני קלט ישירות ממכשיר אירוע, זה
מאפשר שימוש באפשרות התצורה של xboxdrv על ג'ויסטיקים רגילים למחשב, מקלדות ו
עכברים ובכך מאפשר xboxdrv לשרת מטרה דומה כמו joy2key. ראה את האפשרות --evdev
להלן למידע נוסף.
כאשר ל פקודה מסופק xboxdrv יפעיל את היישום הזה ויפעל עד זה
האפליקציה יוצאת. זוהי פונקציית נוחות כדי להקל על השימוש ב-xboxdrv
סקריפטים של מעטפת. עיין בסעיף [כתיבת סקריפטים להפעלה למשחקים] למידע נוסף
מידע.
אפשרויות
כללי אפשרויות
-h, - עזרה
הצג טקסט עזרה וצא.
-V, - גרסה
הדפס את מספר הגרסה וצא.
-v, --מִלוּלִי
הדפס הודעות מילוליות.
--לנפות
אז הדפס הודעות מפורטות עוד יותר --מִלוּלִי.
-s, --שקט
אל תציג אירועי בקר במסוף. לשימוש קבוע אפשרות זו
יש להשתמש תמיד שכן נתוני פלט למסוף יכולים לאכול לא מעט מהמעבד.
--שֶׁקֶט
אין להציג טקסט הפעלה ולדכא את רוב הפלט האחר.
--עדיפות עדיפות
ערכים אפשריים עבור עדיפות הם "רגילים" ו"זמן אמת". תזמון בזמן אמת נותן
ה-xboxdrv תהליך בעדיפות גבוהה יותר ובכך מאפשר לו לתפקד כראוי אפילו
כאשר המכונה תחת עומס.
שימו לב שעדיפות בזמן אמת מחייבת הפעלת xboxdrv כשורש, בעת הפעלת xboxdrv
כמשתמש אין דרך להגדיל את העדיפות.
אפשרות זו הוצאה משימוש, השתמש chrt(1) במקום זאת כדי להשיג את אותו אפקט.
רשימה אפשרויות
--הובלת עזרה
רשום ערכים אפשריים עבור ה-LED.
--התקני עזרה
רשימת מכשירים נתמכים.
--רשימת מכשירים נתמכים
רשימת מכשירים נתמכים (בשימוש xboxdrv-daemon.py).
--list-supported-devices-xpad
רשימת מכשירים נתמכים ב xpad.c סגנון.
--help-abs
רשום את כל סמלי ה-EV_ABS המותרים.
--עזרה-rel
רשום את כל הסמלים המותרים של EV_REL.
--מפתח עזרה
רשום את כל הסמלים המותרים של EV_KEY.
--help-x11keysym
רשום את כל הסמלים המותרים של X11 Keysym.
--ציר העזרה
רשום את כל הסמלים המותרים של XboxAxis.
--לחצן עזרה
רשום את כל סמלי ה-XboxButton המותרים.
--לעזור לכולם
רשום את כל הסמלים שניתן להשתמש בהם --ui-buttonmap, --ui-axismap, --מפת כפתורים ו
--מפת ציר. אפשרות זו זהה ל --help-abs, --עזרה-rel, --מפתח עזרה,
--help-x11keysym, --ציר העזרה ו --לחצן עזרה.
התצורה קובץ אפשרויות
-c, --config קובץ
קורא מידע תצורה מ קובץ. תצורות מהקובץ מטופלות
כאילו הם יהיו אפשרויות שורת הפקודה במיקום של --config קובץ.
התחביר של קובץ הוא תחביר ה-INI המוכר המשמש לקובצי תצורה רבים.
צמדי מפתח/ערך רגילים חייבים להיכנס לקטע [xboxdrv]. '#' ו-';' יכול לשמש
להערות. לשמות מפתח יש לרוב אותו שם כמו אפשרויות שורת הפקודה.
אפשרויות שורת הפקודה שלוקחות רשימה של מיפויי קלט (--ui-buttonmap,
--ui-axismap, --evdev-absmap, ...) ניתן לפצל למקטע משלהם עבור
קריאה טובה יותר.
השמיים דוגמאות/ הספרייה מכילה כמה קובצי תצורה לדוגמה.
[xboxdrv]
שקט=נכון
אזור מת=6000
dpad-as-button=true
trigger-as-button=true
[UI-axismap]
x2=REL_X:10
y2=REL_Y:-10
x1=KEY_A:KEY_D
y1=KEY_W:KEY_S
[ui-buttonmap]
a=KEY_LEFTSHIFT
b=BTN_C
x=BTN_EXTRA
y=KEY_C
[ui-buttonmap]
lb=BTN_RIGHT
rb=KEY_SPACE
[ui-buttonmap]
lt=KEY_Z
rt=BTN_LEFT
[ui-buttonmap]
dl=KEY_4
dr=KEY_2
du=REL_WHEEL:-1:150
dd=REL_WHEEL:1:150
[ui-buttonmap]
חזרה=KEY_TAB
start=KEY_ESC
# EOF #
--alt-config קובץ
קיצור דרך לכתיבה --next-config --config קובץ.
כדי לטעון אפשרויות תצורה מרובות השתמש:
xboxdrv --config first.ini --alt-config second.ini --alt-config third.ini
-o, --אוֹפְּצִיָה שם = VALUE
הגדר אפשרות כאילו היא תגיע מקובץ תצורה משורת הפקודה.
--write-config קובץ
כתוב קובץ תצורה לדוגמה ל קובץ.
דיימון אפשרויות
-D, --דימון
הפעל את xboxdrv בתור daemon. אם אפשרות זו תינתן xboxdrv יקשיב ל-udev עבור USB
אירועי חיבור והשקת שרשורי מנהלי התקנים עבור בקרים שחוברו לאחרונה.
עדיין ניתן לספק אפשרויות תצורה כרגיל. שים לב עם זאת ש-xboxdrv
כאשר ההפעלה כדאמון לא תיצור התקני uinput חדשים לפי דרישה, במקום זאת
צור התקנים רק פעם אחת באתחול עבור התצורות הנתונות ולאחר מכן הקצה
בקרים חדשים לתצורות אלה. אמנם זה אומר ש-xboxdrv לא יכול לתמוך ב-
מספר בלתי מוגבל של בקרים, זה גם אומר ש-xboxdrv יכול לאפשר חיבור חם
אפילו עבור יישומים שאינם תומכים בכך בעצמם, שכן יישומים יעשו זאת בלבד
ראה את קבצי ההתקן הקבועים, לא את הבקר ש-xboxdrv ישתנה
מתחת למכסת המנוע.
תצורה לדוגמה שתומכת בשלושה בקרים תיראה כך:
xboxdrv --דימון \
# אפשרויות תצורה עבור הבקר הראשון
--הבקר הבא \
# אפשרויות תצורה עבור הבקר השני
--הבקר הבא
# אפשרויות תצורה עבור הבקר השלישי
השמיים --התאמה ניתן להשתמש באפשרות כדי להגביל את חריצי הבקר לאלה בלבד
בקרים התואמים את ה-RULE הנתון ובכך משמשים להקצאת תצורות
רק לבקרים ספציפיים.
--לנתק
מנתק את xboxdrv מהקליפה הנוכחית, תקף רק אם --דימון נתון.
--pid-file קובץ
כתוב את מזהה התהליך של xboxdrv daemon ל-FILE.
--דבוס אוֹטוֹבּוּס
הגדר לאיזה סוג אוטובוס xboxdrv צריך להתחבר. הערכים המותרים עבור BUS הם הפעלה,
מערכת, מושבת ואוטומטית. ברירת המחדל היא אוטומטית, שתזהה את המתאים
סוג אוטובוס תלוי אם xboxdrv מופעל כבסיס (מערכת או כמשתמש (סשן).
הפעלה עם מושבת תשבית לחלוטין את תמיכת D-Bus.
--בחיבור EXE
משיק EXE כאשר בקר מתחבר. בתור טיעונים"BUSDEV:DEVNUM",
"idVendor:idProduct""שֵׁם מסופקים.
--בניתוק EXE
משיק EXE כאשר בקר מתנתק. בתור טיעונים"BUSDEV:DEVNUM",
"idVendor:idProduct""שֵׁם מסופקים.
מכשיר אפשרויות
-L, ---list-controller
רשום את הבקרים הזמינים במערכת.
-i, --תְעוּדַת זֶהוּת N
השתמש בבקר עם מזהה N (ברירת מחדל: 0), השתמש ---list-controller לקבל רשימה של
בקר זמין.
-w, --wid N
השתמש בבקר אלחוטי עם wid N (ברירת מחדל: 0).
--מכשיר אחר נתיב אוטובוס: DEV
השתמש בבקר ב-BUS:DEV, אל תעשה שום סריקה אוטומטית. שימושי למקרים
כאשר בקר אינו מוכר על ידי xboxdrv, אך תומך באחד מהפרוטוקולים הנתונים.
--מכשיר לפי מזהה ספק: מוצר
השתמש במכשיר התואם ל-VENDOR:PRODUCT (כפי שהוחזר על ידי lsusb). שימושי למקרים
כאשר בקר אינו מוכר על ידי xboxdrv, אך תומך באחד מהפרוטוקולים הנתונים.
--סוּג סוג
התעלם מזיהוי אוטומטי ואכף את סוג הבקר. ערכים אפשריים עבור סוג:
· אקס בוקס
· xbox-mat
· אקס בוקס 360
· Xbox360 אלחוטי
· xbox360-גיטרה
· סופת אש
· Firestorm-vsb
· saitek-p2500
· גנרי-USB
השמיים גנרי-USB type הוא סוג מיוחד שיעבוד עם כל בקר USB, הוא יעבוד
עם זאת, אל תפרש את הקלט שהוא מקבל, אלא פשוט שלח אותו לקונסולה לפיתוח
מטרות. לִרְאוֹת --מפרט-USb-גנרי למידע נוסף.
-d, --ניתוק-kernel-driver
מנתק את מנהל ההתקן של הליבה המשויך כעת למכשיר הנתון. זֶה
שימושי כאשר מודול ה-xpad נטען וברצונך להשתמש ב-xboxdrv ללא
פורקים אותו.
--מפרט-USb-גנרי NAME=VALUE,...
מאפשר לציין מאיזו נקודת קצה גנרי-USB יקרא. המפרט כמו ה
צורה של NAME=VALUE,.... הערכים המותרים הם:
vid=HEX
מזהה הספק של הבקר שעליו מפרט זה חל
pid=HEX
מזהה המוצר של הבקר שעליו מפרט זה חל
if=NUM הממשק שממנו יש לקרוא את GenericUSBController
ep=NUM נקודת הקצה שממנה יש לקרוא את GenericUSBController
EVDEV אוֹפְּצִיָה
--evdev מכשיר
מאפשר לך לקרוא נתוני קלט ממכשיר אירוע רגיל. זה מאפשר לך להשתמש
xboxdrv על ג'ויסטיקים רגילים למחשב. הנתונים שנקראים ממכשיר האירוע הם
הומר באופן פנימי לאובייקט XboxMsg ולאחר מכן עבר דרכו
צינור תצורה כפי שיהיה עבור בקר Xbox360 רגיל. זה מאפשר
לך לעשות שימוש בכל ההגדרות הרגילות, אבל מגביל אותך למספר
ציר וכפתורים שבקר Xbox360 מספק.
כפי שסביר להניח שג'ויסטיק רגיל למחשב כבר יוצר א /dev/input/jsX מכשיר על ידי
עצמו, ייתכן שתצטרך להיפטר מזה כדי שמשחק יזהה כראוי את
מכשיר ג'ויסטיק נוצר על ידי xboxdrv. הדרך הקלה ביותר להשיג זאת היא פשוט
מחק את הג'ויסטיק הישן ושנה את שם המכשיר xboxdrv נוצר ל
/dev/input/js0. כאשר אתה משתמש ב-udev, פעולה זו צריכה להיות לא מזיקה ו
הפוך את עצמו אוטומטית כאשר אתה מסיר את הבקר ומחבר אותו בחזרה או
כאשר אתה מאתחל את המחשב.
--evdev-debug
המטפל באירועים evdev ידפיס את כל האירועים שהתקבלו ל-stdout, זה עושה את זה
קל לראות אילו אירועים בקר נתון שולח.
--evdev-no-grab
כברירת מחדל, מנהל ההתקן של evdev יתפוס את המכשיר, ובכך יהפוך אותו לבלתי אפשרי
יישומים אחרים כדי לקבל אירועים ממכשיר זה. זה נעשה כדי להימנע
יישומים מבלבלים, שכן אחרת אפליקציה הייתה מקבלת כל אירוע פעמיים, פעם אחת
מהמכשיר המקורי ופעם אחת מה-xboxdrv הווירטואלי. במקרים מסוימים זה
התנהגות אינה רצויה, כגון כאשר מיפוי רק תת-קבוצה לא מטופלת אחרת של
מקשים של מכשיר, כלומר מיפוי מקשי המולטימדיה במקלדת, אז אפשרות זו
מכבה את האחיזה.
--evdev-absmap ABSMAP,...
ABSMAP = EVDEV_ABS [ "+", "-" ] "=" XBOXAXIS ;
מגדיר כיצד אירועי evdev ממופים לאירועי ציר Xbox. תצורה לדוגמה
ייראה כך:
--evdev-absmap ABS_X=x1,ABS_Y=y1,ABS_RZ=x2,ABS_THROTTLE=y2,ABS_HAT0X=dpad_x,ABS_HAT0Y=dpad_y
xboxdrv תוציא בעת ההפעלה רשימה מלאה של שמות אירועים שהאירוע הנתון
תומך במכשיר ושאפשר להשתמש בו במקום EVDEV_ABS.
אפשר גם למפות חצי ציר עם פקודה כמו:
--evdev-absmap ABS_Y+=LT,ABS_Y-=RT
זה ימפה את התנועה כלפי מעלה של ציר ה-Y אל ההדק השמאלי וה-
תנועה מטה אל ההדק הימני.
--evdev-keymap מפתח
מגדיר כיצד אירועי evdev ממופים לאירועי בקר Xbox. דוגמה
התצורה תיראה כך:
--evdev-keymap BTN_TRIGGER=a,BTN_THUMB=b,BTN_THUMB2=x
xboxdrv יוציא בהתחלה רשימה מלאה של שמות אירועים שמכשיר האירוע הנתון
תומך.
סטָטוּס אפשרויות
-l, --לד NUM
הגדר מצב LED. ערכים אפשריים עבור NUM הם:
לד מצב קופונים
מספר התנהגות
0 כבוי
1 הכל מהבהב
2 1/מצמוץ שמאלי למעלה, ואז מופעל
3 2/מצמוץ ימני למעלה, ואז דולק
4 3/מצמוץ שמאלי למטה, ואז מופעל
5 4/מצמוץ ימני למטה, ואז דולק
6 1/למעלה משמאל על
7 2/למעלה מימין על
8 3/למטה משמאל על
9 4/ימין למטה
10 לסובב
מצמוץ 11
12 מצמוצים לאט יותר
13 סובב עם שני אורות
מצמוץ 14
15 מצמוץ פעם אחת
--רעם-רווח כמות
אתה יכול לשנות את עוצמת הרעש באמצעות:
$ xboxdrv --rumble-gain 50%
ערכים גדולים יותר מ-100% אפשריים גם הם ויעצימו רעם קטן
פקודות, פקודות רעם כבר במקסימום יישארו ללא שינוי.
-q, --לְהַפְסִיק
צא מ-xboxdrv לאחר הגדרת ערכי LED או רעם.
CHATPAD אפשרויות (נִסיוֹנִי)
תמיכת Chatpad עדיין ניסיונית. שימוש בסיסי במקלדת יעבוד, עם זאת יש
כרגע אין תמיכה בהתאמה אישית או בשינויי המפתח הירוק והכתום.
הפעלת xboxdrv מספר פעמים ברציפות עם --לוח צ'אט אפשרות יכולה לקרוס את
בקר. ניתוק וחיבורו חזרה אמור לאפס אותו.
--לוח צ'אט
מאפשר את התמיכה עבור Xbox360 Chatpad. אזהרה: זהו קוד ראשוני, זה
יקרוס את ה-gamepad שלך כאשר xboxdrv מופעל מספר פעמים ולא יספק
מיפוי מפתח מתאים לכל אחד מהאומלאוטים והתווים המיוחדים.
--chatpad-no-init
זה יתחיל את התמיכה בצ'אט בלי לשלוח את רצף הפתיחה, ובכך
פוטנציאל להימנע מקריסת הבקר אם xboxdrv מופעל מספר פעמים.
--chatpad-debug
פלט נתוני צ'אט גולמי ל-Stdout למטרת ניפוי באגים.
אוזניות אפשרויות (נִסיוֹנִי, XBOX360 USB רק)
Xboxdrv אינו תומך באוזניות, האפשרויות שלהלן מיועדות למפתחים בלבד ויעשו זאת
dump נתוני אוזניות גולמיים, לא קובצי WAV.
--אוזניות
אפשר תמיכה באוזניות וזרוק נתונים נכנסים ל-stdout.
---headset-dump קובץ
אפשר תמיכה באוזניות ושפך נתונים נכנסים ל-FILE.
--משחק אוזניות קובץ
אפשר תמיכה באוזניות ושלח FILE לאוזניות להפעלה.
כוח מָשׁוֹב
--משוב בכוח
מאפשר את ממשק משוב כוח הליבה הסטנדרטי. זה מושבת כברירת מחדל בתור
זה גורם לבעיות עם יישומים מסוימים הפועלים ב-Wine.
מכיוון שבקר ה-Xbox360 תומך רק ברעש ולא במשוב מלא, xboxdrv
מנסה לחקות אפקטים אחרים. אמולציה זו לא נבדקה הרבה ועשויה
לא תמיד עובד כמצופה. דיווחי באגים ומקרי בדיקה יתקבלו בברכה.
שים לב שעליך לסגור את האפליקציה שמשתמשת במשוב כוח תמיד לפני
אתה סוגר את מנהל ההתקן של xboxdrv, אחרת אתה עלול להסתיים עם קובץ שאינו תלוי
תהליך xboxdrv הניתן להפסקה שידרוש אתחול כדי להיפטר ממנו.
בעת שימוש ב-xboxdrv במצב daemon עם חריצי בקר מרובים, עליך להפעיל
כוח משוב עבור כל חריץ בנפרד.
--ff-מכשיר DEVICEID
בחר לאיזה מכשיר וירטואלי יחוברו ההתקשרות עם המשוב הכפוי,
זה כברירת מחדל לג'ויסטיק. ערכים מותרים נוספים הם עכבר, מקלדת וכל מספר שלם
מספר. לִרְאוֹת --ui-buttonmap למידע נוסף על אופן הפעולה של מזהי מכשיר.
-R, --מבחן-רעם
לחיצה על LT תזיז את מנוע הרעש השמאלי ולחיצה על RT תזיז ימינה
אחד. חוזק מנוע רעם תלוי במידת הלחיצה. זה שימושי עבור
בודקים את מנועי הרעש.
-r, --לְהַרְעִישׁ ל,ר
הגדר את המהירות עבור שני מנועי הרעש. ערכים מ-0 עד 255 מתקבלים, ה
ברירת המחדל היא 0,0.
בקר סלוט אפשרויות
חריצי בקר משמשים בעת הפעלת xboxdrv במצב daemon. כל משבצת מייצגת את א
תצורת בקר מלאה. אם אתה רוצה להשתמש בבקר מרובה במצב דמון
אתה צריך לספק חריצי בקר מרובים.
--חריץ-בקר N
עובר לחריץ הבקר עם המספר N, המספור מתחיל באפס.
--הבקר הבא
עובר לחריץ הבקר הבא.
--התאמה כְּלָל,...
מגביל חריץ בקר להתקנים התואמים לכל אחד מהכללים הנתונים. אפשרי
כללי המשחק הם:
usbid=מוכר:מוצר
התאם בקרים שיש להם את ספק ה-USB ומזהי המוצר.
ספק =מוכר
התאם בקרים בעלי ה-USB IDVendor הנתון.
מוצר=מוצר
התאם בקרים בעלי idProduct USB נתון.
נכס=תכונה:ערך
התאמה מול מאפיין udev שרירותי, עם שם תכונה וערך
ערך.
usbpath=אוֹטוֹבּוּס:DEV
התאמה לנתיב ה-USB שניתן על ידי אוֹטוֹבּוּס ו DEV.
usbserial=סידורי
התאמה למספר ה-USB iSerial.
--קבוצת התאמה כְּלָל,...
מגביל חריץ בקר להתקנים התואמים את כל הכללים הנתונים. אפשרי
כללי ההתאמה זהים לאלו של --התאמה.
התצורה סלוט אפשרויות
אתה יכול להשתמש במספר תצורות, הנקראות חריצי תצורה, עם הבקר שלך. אתה מחליף
בין התצורות המרובות הללו על ידי לחיצה על כפתור המדריך כברירת מחדל, אבל אתה יכול
הגדר גם כפתור נוסף באמצעות האפשרות --לְמַתֵג.
--config-slot NUM
בחר את חריץ התצורה NUM.
--next-config
מאפשר יצירת תצורת קלט חלופית שאליה ניתן לעבור
בזמן ריצה על ידי לחיצה על כפתור ui-toggle (ברירת המחדל למדריך).
$ xboxdrv \
--עכבר \
--next-config
--ui-axismap X1=ABS_X,Y1=ABS_Y \
--ui-buttonmap A=JS_0,B=JS_1
התצורה שלעיל תתקין אמולציית עכבר כתצורה ראשונה ו-a
הדמיית ג'ויסטיק פשוטה כתצורה שנייה. מאפשר מעבר בין עכבר
אמולציה וטיפול בג'ויסטיק על ידי לחיצה על לחצן המדריך.
לא ש --next-config כרגע מוגבל רק לתצורות שנעשו איתן
--ui-buttonmap ו --ui-axismap, שריפה אוטומטית, אמולציית מצערת, אזורי דד והכל
כרגע לא ניתן להחליף דברים אחרים בזמן ריצה.
--לְמַתֵג XBOXBTN
מגדיר את הלחצן שישמש למעבר בין שונים
תצורות. ערך של 'ריק' ישבית את לחצן החלפת המצב. אם אין בורר
הלחצן מצוין, כפתור המדריך ישמש למעבר בין
תצורות.
תְצוּרָה אפשרויות
--מַתקֵן MOD
הוסף משנה לערימת השינוי, ראה [Modifier] לרשימה מלאה של אפשרויות
שינוי.
--פסק זמן MSEC
ציין את מספר המילישניות ש-xboxdrv ימתין לאירועים מה-
בקר לפני המעבר ועיבוד דברים כמו ירי אוטומטי או ציר יחסי.
ערך ברירת המחדל הוא 10, ערכים קטנים יותר יתנו לך אש אוטומטית ברזולוציה גבוהה יותר ו
תנועת אירוע יחסית, אבל יבזבז עוד קצת מעבד.
-ב, --מפת כפתורים BUTTON=BUTTON,...
מיפוי מחדש של לחצנים זמין דרך --מפת כפתורים אוֹפְּצִיָה. אם אתה רוצה להחליף
כפתור A ו-B מתחילים ב:
$ xboxdrv --buttonmap A=B,B=A
אם אתה רוצה שכל כפתורי הפנים שלח אירועי כפתור A:
$ xboxdrv --buttonmap B=A,X=A,Y=A
שמות לחצנים אפשריים הם (כינויים נמצאים בסוגריים):
כפתור שמות
┌─────────────────────────────────┬─────────────── ───────────────────┐
│שם │ תיאור │
├─────────────────────────────────┼─────────────── ───────────────────┤
│התחל, אחורה │ התחל, לחצני חזרה │
├─────────────────────────────────┼─────────────── ───────────────────┤
│מדריך │ כפתור X גדול באמצע │
│ │ (Xbox360 בלבד) │
├─────────────────────────────────┼─────────────── ───────────────────┤
│a(1), b(2), x(3), y(4) │ כפתורי פנים │
├─────────────────────────────────┼─────────────── ───────────────────┤
כפתורים │שחור, לבן │ שחור ולבן (Xbox1 │
│ │ בלבד, ממופה ל-lb, rb on │
│ │ Xbox360) │
├─────────────────────────────────┼─────────────── ───────────────────┤
│lb(5), rb(6) │ כפתורי כתף (Xbox360 בלבד, │
│ │ ממופה לשחור, לבן ב-Xbox1) │
├─────────────────────────────────┼─────────────── ───────────────────┤
│lt(7), rt(8) │ טריגר אנלוגי (צריך │
│ │ --אפשרות הדק ככפתור) │
├─────────────────────────────────┼─────────────── ───────────────────┤
│tl, tr │ לחיצה על שמאל או ימין │
│ │ מקל אנלוגי │
├─────────────────────────────────┼─────────────── ───────────────────┤
│du(למעלה), dd(למטה), dl(שמאל), │ דפד כיוונים (צריך │
│dr(מימין) │ --אפשרות dpad-as-button) │
├─────────────────────────────────┼─────────────── ───────────────────┤
│ירוק, אדום, צהוב, כחול, כתום │ כפתורי גיטרה │
└─────────────────────────────────┴─────────────── ───────────────────┘
בדיוק כמו עם --ui-buttonmap אתה יכול להוסיף מסנן לחצנים לכל כפתור.
--מפת ציר AXIS=מיפוי,...
מיפוי מחדש של ציר זמין באמצעות --axismap ועובד כמו מיפוי כפתורים. ב
בנוסף אתה יכול לספק סימן כדי לציין שיש להפוך ציר. אז אם
אתה רוצה להפוך את ציר y1 התחל עם:
$ xboxdrv --axismap -Y1=Y1
אם אתה רוצה להחליף את המקל השמאלי והימני התחל עם:
$ xboxdrv --axismap X2=X1,Y2=Y1,X1=X2,Y1=Y2
שמות צירים אפשריים הם: x1, y1, x2, y2, lt, rt
החלפת lt או rt עם x1, y1, x2, y2 לא תעבוד כראוי, מכיוון שהטווח שלהם הוא
שונה.
בדיוק כמו עם --ui-axismap אתה יכול להוסיף מסנן ציר לכל ציר.
שנה קבוע מראש תְצוּרָה אפשרויות
האפשרויות בסעיפים זה הם חיתוך מיון עבור --מַתקֵן אפשרויות. בניגוד --מַתקֵן הֵם
אינם תלויי סדר, אך יש להם סדר מוגדר מראש המשמש ללא קשר לסדר בו
שבהן האפשרויות ניתנות.
--אש אוטומטי BUTTON=תדירות,...
מיפוי אש אוטומטי מאפשר לך לאפשר ללחצן להפעיל אוטומטית עם נתון
תדירות במילישניות:
$ xboxdrv --autofire A=250
שילוב --אש אוטומטי עם מפת כפתורים מאפשרת לך לחצן אחד לפעול כאש אוטומטית
בעוד שאחד אחר, שפולט את אותו האות, פועל כרגיל.
$ xboxdrv --autofire B=250 --buttonmap B=A
--רגישות לציר ציר=רגישות, ...
ניתן לכוונן את הרגישות של ציר באמצעות --axis-sensitivity:
$ xboxdrv --רגישות לציר X1=-1.0,Y1=-1.0
ערך של 0 נותן לך את ברירת המחדל של רגישות הליניארית, ערכים גדולים יותר מ-0 יהיו
נותנים לך רגישות גבוהה יותר, בעוד שערכים קטנים מ-0 יתנו לך נמוך יותר
רְגִישׁוּת. ערכי רגישות בטווח של [-1, 1] יתנו בדרך כלל טוב
תוצאות, כל מה שמעבר לכך לא יהיה שימוש מעשי במיוחד.
רגישות פועלת על ידי יישום:
t = 2 ** רגישות;
pos = (1.0f - (1.0f - pos) ** t) ** (1 / t);
לערך הציר, זה אומר שגם הערך המינימלי וגם המקסימום
ערך הציר תמיד יישאר זהה, רק התגובה שבין לבין משתנה.
לדרך חופשית מלאה לשנות את תגובת הציר, ראה את תְגוּבָה עקומה
סינון.
--כִּיוּל SPEC CALIBRATION
אם ה-gamepad שלך מסיבה כלשהי לא יכול להגיע לערך המקסימלי או שהוא לא מרוכז
כמו שצריך אתה יכול לתקן את זה באמצעות אפשרויות הכיול:
$ xboxdrv --כיול X2=-32768:0:32767
X2 הוא שם הציר ושלושת הערכים הבאים הם min, center ומקסימום.
פשוט הכנס את הערכים ש-jstest מדווח כאשר הציר שלך נמצא בהתאמה
עמדות.
אתה יכול גם להשתמש באפשרות הכיול אם אתה רוצה להפוך את הג'ויסטיק שלך ליותר
רָגִישׁ. הגדרה של:
xboxdrv --כיול AXIS=MIN:CENTER:MAX,...
יגרום להתקן הג'ויסטיק לדווח על מיקום מקסימלי כאשר המקל שלך נמצא רק
זז חצי הדרך.
--שטח מת NUM
אזור המתים הוא האזור בו המקלות אינם מדווחים על אירועים כלשהם. ברירת המחדל
הוא אפס, מה שנותן את הרגישות הטובה ביותר אך עלול גם לגרום לבעיות בחלקם
משחקים שבהם הדמות או המצלמה עשויות לזוז מבלי להזיז את המקל. לתקן
זה צריך להגדיר את הערך למשהו גבוה יותר:
$ xboxdrv --deadzone 4000
ערך של 4000 עובד די טוב עבור רוב המשחקים.
אתה יכול גם לתת את אזור המתים באחוזים:
$ xboxdrv --deadzone 15%
---deadzone-trigger NUM
להדק השמאלי והימני יש ערך אזור מת נפרד שניתן לציין
עם:
$ xboxdrv --deadzone-trigger 15%
--dpad-סיבוב תואר
מאפשר לך לסובב את ה-dpad. תואר חייב להיות כפולה של 45. זה יכול להיות שימושי
במשחקים איזומטריים שבהם מגרש המשחקים עצמו מסובב, כך:
xboxdrv --dpad-rotation 45
ייתן לך פקדים שהם יחסית לאופי שלך במקום שלך
נקודת מבט.
--מגביל ארבע כיוונים
השמיים --מגביל ארבע כיוונים האפשרות מאפשרת להגביל את התנועה בשניהם
מקלות אנלוגיים לארבעה כיוונים בלבד (למעלה, למטה, שמאלה, ימינה), האלכסונים
(למעלה/שמאלה, למעלה/ימינה, למטה/שמאלה, למטה/ימינה) מסוננים מהפלט. זֶה
אפשרות שימושית עבור משחקים כגון טטריס, שאינם צריכים אלכסונים והיכן אתה
לא רוצה להפעיל בטעות את ההילוך למטה תוך כדי ניסיון לעשות שמאלה/ימינה
מהלך \ לזוז \ לעבור.
--ציר יחסי AXIS=NUM,...
הפונקציה --ציר יחסי מאפשר לך לשנות את ההתנהגות של ציר כך
התנועה שלך שלו מזיזה את ערכו למעלה או למטה במקום להחיל אותו ישירות.
זה מאפשר לך לדמות בקרת מצערת עבור משחקי flightsim.
מכיוון שהציר עשוי להיות הפוך, ייתכן שתרצה להשתמש ב- --מפת ציר פונקציה
להפוך אותו.
$ xboxdrv --relative-axis y2=64000 --axismap -y2=y2
--ציר מרובע
ה-Xbox360 gamepad, כמו רוב משטחי המשחקים העכשוויים האחרים, כולל עגול
טווח תנועה, המגביל את התנועה כך שהמרחק למרכז
אף פעם לא עולה מעבר ל-1. זה אומר שכאשר יש לך את הבקר בחלק העליון/שמאלי
הערך המדווח הוא (0.7, 0.7) (כלומר אורך 1, זווית 45) במקום (1,1). זֶה
ההתנהגות שונה מרוב הג'ויסטיקים הקלאסיים של PC, שהיו להם טווח מרובע ו
ידווח (1,1) כאשר החזק בפינה העליונה/שמאלית.
חלק מהמשחקים הישנים (כלומר בעיקר חומרי DOS) דורשים טווח תנועה מרובע ולא יעשו זאת
לתפקד כראוי עם ה-Xbox360 gamepad. דרך ה --ציר מרובע אפשרות שאתה יכול
לעקוף בעיה זו ואלכסונים ידווחו כ- (1,1).
UINPUT קבוע מראש תְצוּרָה אפשרויות
האפשרויות הבאות הן קיצורי דרך פשוטים לתצורות נפוצות שיכולות להיות
מתבצע באופן ידני על ידי שימוש --ui-buttonmap ו --ui-axismap.
--הדק-ככפתור
לחצן שליחת LT ו-RT במקום אירועי ציר
--טריגר-as-zaxis
שלב את LT ו-RT כדי ליצור זאקסי במקום זאת
--dpad-as-button
ה-DPad שולח לחצן במקום אירועי ציר.
--dpad-בלבד
מתעלמים משני המקלות, רק ה-DPad שולח אירועי ציר. שימושי למשחקים ש
עלול להתבלבל על ידי ציר אנלוגי נוסף. שילוב של אפשרות זו עם
--הדק-ככפתור מומלץ ברוב המצבים.
--גִיטָרָה
מגדיר כפתור ומיפוי ציר מוגדרים מראש לשימוש עם בקרי גיטרה. זֶה
נפטר בעיקר מכמה כפתורים וציר מיותרים שאינם בשימוש על ידי גיטרה
בקר.
-M, --עכבר
מאפשר לבקר לפעול כעכבר. זה משותף ל:
$ xboxdrv \
--dpad-as-button
- אזור מתים 4000
--טריגר-as-zaxis
--axismap "-y2=y2,-trigger=trigger"
--ui-axismap "x1=REL_X:15:20,y1=REL_Y:15:20,y2=REL_WHEEL:5:100,x2=REL_HWHEEL:5:100,trigger=REL_WHEEL:5:100"
--ui-buttonmap "a=BTN_LEFT,b=BTN_RIGHT,x=BTN_MIDDLE,y=KEY_ENTER,rb=KEY_PAGEDOWN,lb=KEY_PAGEUP,"
--ui-buttonmap "dl=KEY_LEFT,dr=KEY_RIGHT,du=KEY_UP,dd=KEY_DOWN,"
--ui-buttonmap "start=KEY_FORWARD,back=KEY_BACK,guide=KEY_ESC,tl=void,tr=void"
אתה יכול להתאים אותו באמצעים הרגילים, רק וודא זאת --עכבר בא לפני
אפשרויות ההתאמה האישית שלך בשורת הפקודה.
שים לב שאם החלפת לחצני העכבר שלך, עליך להתאים את האמור לעיל
תתאים לתצורת העכבר שלך או שאירועי הכפתור ייצאו שגויים.
--mimic-xpad
גורם ל-xboxdrv להשתמש באותם שמות צירים וכפתורים כמו מנהל ההתקן של ליבת ה-xpad עבור
בקר Xbox360 חוטי
--mimic-xpad-wireless
גורם ל-xboxdrv להשתמש באותם שמות צירים וכפתורים כמו מנהל ההתקן של ליבת ה-xpad עבור
בקר Xbox360 חוטי
UINPUT תְצוּרָה אפשרויות
--אין-uinput
אל תפעיל את UInput, במקום זאת פשוט קרא אירועים מהבקר, שימושי עבור
ניפוי באגים.
--ללא התקנים נוספים
כברירת מחדל, xboxdrv יקצה מספר התקני uinput וימיין אירועים לכל אחד מהם
אוֹתָם. כך אירועים הקשורים לעכבר כמו BTN_LEFT או REL_X יעברו לעכבר וירטואלי
מכשיר, בעוד שאירועי ABS_X יעברו למכשיר ג'ויסטיק וירטואלי ו-KEY_ESC יעברו
עבור למכשיר מקלדת וירטואלית.
אפשרות זו מבטלת את האוטומטיזם וכל האירועים יעברו לאותו וירטואלי
מכשיר.
הקצאה ידנית למכשיר ספציפי (כלומר KEY_ESC@keyboard, BTN_A@joystick,
...) עדיין אפשרי.
--ללא אירועים נוספים
כברירת מחדל, xboxdrv יקצה מספר התקני uinput וימיין אירועים לכל אחד מהם
אוֹתָם. כך אירועים הקשורים לעכבר כמו BTN_LEFT או REL_X יעברו לעכבר וירטואלי
מכשיר, בעוד שאירועי ABS_X יעברו למכשיר ג'ויסטיק וירטואלי ו-KEY_ESC יעברו
עבור למכשיר מקלדת וירטואלית.
כדי לוודא שעכבר, מקלדת או התקן ג'ויסטיק מזוהים כהלכה על ידי
Xorg, הקרנל או הספריות כגון SDL xboxdrv יכניסו אירועי דמה נוספים. ל
לדוגמה, מכשיר עכבר זקוק לאירועי REL_X ו-REL_Y כדי לזהות ככאלה, אך א
תצורה שרוצה רק לחקות את לחצני העכבר לא תספק את אלה,
לכן xboxdrv יוסיף אותם אוטומטית. ה --ללא אירועים נוספים האפשרות תתחלף
התנהגות זו כבויה.
--שם התקן שֵׁם
משנה את השם התיאורי שיהיה למכשיר. אפשרות זו פועלת כמו
--שמות מכשירים CURRENTSLOT.auto=שֵׁם
--שמות מכשירים TYPE.SLOT=שם,...
משנה את השם התיאורי שיהיה למכשיר. סוג הוא אחד של עכבר, מקלדת,
ג'ויסטיק, אוטומטי או מספר. סלוט הוא מספר משבצת או אוטומטי. השם האוטומטי פועל בתור
wild card ומתאים להכל.
--device-usbid ספק:מוצר:גרסה:אוטובוס
משנה את הספק, המוצר, הגרסה ומזהה האוטובוס שיהיו למכשיר. האחרון
שני טיעונים הם אופציונליים. אפשרות זו פועלת כמו --device-usbids
CURRENTSLOT.auto=ספק:מוצר:גרסה:אוטובוס
--התקן-usbids TYPE.SLOT=ספק:מוצר:גרסה:אוטובוס,...
משנה את הספק, המוצר, הגרסה ומזהה האוטובוס שיהיו למכשיר. סוג אחד
של עכבר, מקלדת, ג'ויסטיק, אוטומטי או מספר. סלוט הוא מספר משבצת או אוטומטי. ה
שם אוטומטי פועל כתו כללי ומתאים לכל דבר.
--ui-ברור
מסיר את כל מיפוי ה-uinput וישאיר את מנהל ההתקן במצב ריק ומפה בלבד
הדברים שהוספת בעצמך. אם אתה רק רוצה להיפטר מכפתורים בודדים
אתה יכול להשתמש באירוע 'בטל'.
--ui-buttonmap UIBUTTONSPEC,...
UIBUTTONSPEC = XBOXBUTTON [ "+" XBOXBUTTON ] [ "^" FILTER ] ... "=" ( RELSPEC | BTNSPEC | EXECSPEC ) ;
RELSPEC = [ DEVICEID "-" ] "REL_" [ ":" [ VALUE ] [ ":" REPEAT ] ] ;
BTNSPEC = [ DEVICEID "-" ] ( ("BTN_" NAME ) | ( "KEY_" NAME ) ) { "+" BTNSPEC } ;
EXECSPEC = PROGRAM { ":" ARGUMENT } ;
XBOXBUTTON = "a" | "ב" | "x" | "y" | "lb" | "rb" | "lt" | "rt" |
"tl" | "tr" | "התחל" | "בחר" | "חזרה" | "מדריך" | "שחור" | "לבן" ;
FILTER = "להחליף" | "הפוך" | "autofire" [ ":" שיעור ] [ ":" DELAY ] | יומן [ ":" STRING ] ;
NAME = STRING ;
VALUE = NUMBER ;
REPEAT = מספר ;
DEVICEID = NUMBER ;
מאפשר לך לשנות את קוד האירוע שנשלח לקרנל עבור כפתורים. ה
השימוש דומה למיפוי הלחצנים הרגיל, אלא שצד ימין הוא
שם אירוע מ /usr/include/linux/input.h. אתה יכול להשתמש בכולם מַפְתֵחַ_ or BTN_ קודים
ל --ui-buttonmap.
אם הצד הימני נשאר ריק כל המסננים המסופקים יתווספו ל-
כריכת כפתורים קיימת כבר במקום כריכה חדשה.
מלבד המקשים הנקובים בשמות, אתה יכול גם לתת את קוד הקלט ישירות כמספר באמצעות
התחביר מַפְתֵחַ_#NUM.
במקום הרמה הנמוכה מַפְתֵחַ_ שמות, המייצגים קודי מפתח, אתה יכול גם להשתמש ב-
סימני מפתחות X11 ברמה גבוהה יותר XK_, לסימני המפתח יש יתרון שהם ממפים ישירות
למפתח שאתה מצפה לו, בעוד א מַפְתֵחַ_ השם מתעוות על ידי מפת המקשים והרצון של X11
לעתים קרובות לא לדווח למה אתה מצפה במקרה שאתה משתמש במפת מפתח שונה אז
המקלדת שלך (כלומר dvorak על מקלדת qwerty).
ניתן לקבל רשימה מלאה של סימני מפתחות תקפים של X11 --help-x11keysym.
עבור כפתורי ג'ויסטיק יש בנוסף ל BTN_JOYSTICK, BTN_Xפקודות מאקרו וכו'
השם המיוחד JS_$NUM, שמגדיר את הכפתור הנתון ללחצן הג'ויסטיק $NUMS,
כְּלוֹמַר:
$ xboxdrv --ui-clear --ui-buttonmap A=JS_0,B=JS_1
שים לב שזה יעבוד רק אם אין מזהים אחרים של לחצן ג'ויסטיק מפריעים.
אתה יכול גם למפות כפתור ל-a REL_ מִקרֶה. במקרה כזה אתה יכול לספק תוספת
פרמטרים בצורה של:
$ xboxdrv --ui-buttonmap X=REL_???:VALUE:REPEAT
ערך נותן את הערך של האירוע (ברירת מחדל: 10)
REPEAT נותן את מספר המילישניות שיעברו לפני שהאירוע יופעל שוב
(ברירת מחדל: 5)
אירוע ה'בטל' המיוחד מאפשר לך לנקות את כל הכריכות הקיימות עבור נתון
לחצן, שיכול להיות שימושי במקרים שבהם משחק תומך רק במספר מוגבל של
כפתורים.
אתה יכול גם להוסיף device_id ל-UIBUTTONSPEC המאפשר לך ליצור
התקני קלט מרובים. כברירת מחדל, 'אוטו' מוערך בתור device_id אשר
נסה אוטומטית לעשות את הדבר הנכון, לשלוח אירועי מקלדת למקלדת
מכשיר ואירועי עכבר למכשיר עכבר. ערכים אפשריים נוספים הם 'עכבר' ו
'מקלדת'. מזהה device של '0' מתייחס להתקן הג'ויסטיק הראשון, ערכים גדולים יותר
ואז 0 לשני, שלישי וכו'.
שים לב שהשמות 'עכבר' ו'מקלדת' device_id אינם נותנים לך עכבר או
מכשיר מקלדת, אלו הם רק שמות סמליים למכשירים שבהם xboxdrv
ימיין אירועים שנראים כמו אירוע עכבר או מקלדת. הקביעה הסופית
של איזה מכשיר יטופל כמו מה שיעשה על ידי ה-Kernel או Xorg בהתאם
על אילו אירועים מספק מכשיר.
תצורה לדוגמה העושה שימוש ב- device_id תיראה כך:
xboxdrv -s \
--ui-clear \
--ui-buttonmap A=JS_0@0,B=JS_1@0 --ui-axismap X2=ABS_X@0,Y2=ABS_Y@0
--ui-buttonmap X=JS_0@0,Y=1-JS_1@0 --ui-axismap X2=ABS_X@1,Y2=ABS_Y@1
בדוגמה זו המקל השמאלי יוצר התקן ג'ויסטיק והמקל הימני
יוצר התקן ג'ויסטיק נפרד.
בעת שימוש במספר חריצי בקר, ניתן להוסיף בנוסף את מזהה החריץ ו
ובכך להקצות אירועים על פני גבולות חריצי הבקר. התחביר לכך הוא:
BTN_A@{deviceid}.{slotid}
במקום לתת רק כפתור בודד, אפשר גם לתת שני כפתורים
--ui-buttonmap כדי לאפשר העברה:
xboxdrv -s \
--ui-clear \
--ui-buttonmap A=JS_0,B=JS_1,LB+A=JS_2,LB+B=JS_3
בדוגמה זו LB פועל ככפתור Shift, אם נלחץ על A ללא LB הוא ישלח
להוציא אירוע JS_0, אבל אם LB נלחץ זה ישלח במקום אירוע JS_2. זֶה
מאפשר לך להכפיל את מספר הכפתורים הזמינים בבקר.
עיין בסעיף אמולציית מקלדת להלן כיצד לפתור בעיות עם Xorg לא
זיהוי המקלדת הווירטואלית ש-xboxdrv יוצר.
תוכל גם להחיל מסננים על אירועי לחצן:
xboxdrv -s \
--ui-buttonmap A^toggle=JS_0
לתיעוד על המסננים ניתן להחיל על אירועים ראה [מסנן לחצן].
--ui-axismap UIAXISSPEC,...
UIAXISSPEC = [ XBOXBTN "+" ] XBOXAXIS { "^" FILTER } "=" ( RELSPEC | RELREP | KEYSPEC | ABSSPEC ) ;
KEYSPEC = [ "מפתח:" ] "KEY_" NAME ":" "KEY_" NAME ":" THRESHOLD ;
RELSPEC = [ "rel:" ] "REL_" NAME ":" VALUE ":" REPEAT ;
RELREP = "rel-repeat:" "REL_" NAME ":" VALUE ":" REPEAT ;
ABSSPEC = [ "abs:" ] שם "ABS_" ;
FILTER = ( "כיול" | "cal" ) ":" MIN ":" מרכז ":" מקסימום |
("רגישות" | "sen") ":" רגישות |
( "deadzone" | "dead") ":" MIN ":" MAX ":" חלק |
("relative" | "rel") ":" SPEED |
( "עקומת תגובה" | "תגובה" | "resp" ) { ":" VALUE }
XBOXBTN = "a" | "ב" | "x" | "y" | "התחל" | "חזרה" | "מדריך" | "lb" | "rb" | ...
XBOXAXIS = "x1" | "y1" | "x2" | "y2" | "z" | "lt" | "rt" | "dpad_x" | "dpad_y" ;
VALUE = NUMBER ;
REPEAT = מספר ;
THRESHOLD = NUMBER ;
NAME = STRING ;
דומה --ui-buttonmap אפשרות זו מאפשרת לך לשנות את קוד האירוע כלומר
לשלוח לגרעין עבור צירים. האירועים הזמינים זהים לאלו של
--ui-buttonmap.
$ xboxdrv --ui-axismap X1=REL_???:VALUE:REPEAT
ערך נותן את הערך המקסימלי של האירוע, הערך בפועל שנשלח הוא
ערך * מצב_ציר. (ברירת מחדל: 10)
REPEAT נותן את מספר המילישניות שיעברו לפני שהאירוע יופעל שוב
(ברירת מחדל: 5).
לערך של -1 יש משמעות מיוחדת, הוא יגרום להפעלת אירוע ה-REL
בהקדם האפשרי (כלומר כל פסק זמן מילישניות). זו דרך ההמלצה
לטיפול באמולציית עכבר, מכיוון שהיא תשמור על אירועי REL מסונכרנים ובכך תמנע
ג'גיות בתנועה, שייווצרו מציון ידני של פסק זמן.
$ xboxdrv --ui-axismap X1=KEY_UP:KEY_DOWN:THRESHOLD
מפתח למעלה נותן את קוד המפתח שיישלח כאשר הציר מוזז למעלה
KEY_DOWN נותן את קוד המפתח שיישלח כאשר הציר מוזז למטה
מפתן נותן את הסף שמפעיל את שליחת אירוע
בדיוק כמו --ui-buttonmap, אתה יכול גם להשתמש במקשי Shift במקום XBOXAXIS:
$ xboxdrv --ui-axismap X1=ABS_X,LB+X1=ABS_RX
זה מאפשר לך לשלוח אירועי ABS_X באופן רגיל ואירועי ABS_RX כאשר הלחצן LB
מוחזק.
למידע על אופן השימוש במסנני צירים, ראה [מסנן צירים].
קלט מקרה המטפל
מטפל באירועי קלט מחליט מה יוצא מהתקני הקלט הווירטואליים ש-xboxdrv
יוצר. הם למשל מחליטים שכאשר לוחצים על כפתור A ב-gamepad, זה א
מקלדת וירטואלית תפלוט לחיצה על מקש הרווח.
יתר על כן, מטפל באירועי קלט יכול גם לבצע טרנספורמציה בסיסית כלשהי של הקלט
אותות, ובכך ניתן להשתמש בג'ויסטיק לשליחת מפתחות WASD.
לחצן מקרה המטפל
מטפל באירועי כפתור מחליט מה קורה כשלוחצים על כפתור, זה צריך להיות
שצוין עם ה --ui-buttonmap אוֹפְּצִיָה. הדוגמה להלן מציגה את מקרה השימוש הפשוט ביותר:
$ xboxdrv --ui-buttonmap A=key:KEY_A
כאן מפתח הוא השם של המטפל באירועי הכפתור, while KEY_A מהווה טיעון לאירוע
מטפל. איזה סוג של ארגומנטים מאפשר מטפל אירועים תלוי במטפל האירוע.
יש גם צורת קיצור של ציון מטפלי אירועים על ידי כתיבה בלבד:
$ xboxdrv --ui-buttonmap A=KEY_A
כאן לא צוין מטפל במפורש, אם זה המקרה, המטפל המתאים יעשה זאת
ניתן לנחש על סמך סוג האירוע. אירועים EV_KEY יטופלו על ידי מפתח מטפל,
EV_REL מאת rel מטפל ו-EV_ABS על ידי ה שרירי הבטן מטפל.
מפתח:KEY_EVENT, מפתח:KEY_EVENT:KEY_EVENT:HOLD_THRESHOLD_MSEC
השמיים מפתח המטפל הוא הבסיסי ביותר, הוא ממפה כפתור ישירות למפתח וירטואלי
או כפתור אחר.
אם יסופקו ארגומנטים נוספים, הכפתור יוכל לשלוח שניים
אירועים שונים. האירוע הראשון שצוין יישלח לאחר לחיצה על הכפתור
בדרך כלל, בעוד שהאירוע השני יישלח למקרה שהלחצן נלחץ למשך
הזמן שצוין ב HOLD_THRESHOLD_MSEC.
דוגמה לכפתור ההחזקה תיראה כך:
xboxdrv \
--ui-buttonmap A=JS_0:JS_1:500
פעולה זו תשלח אירועי JS_0 כאשר הכפתור נלחץ ויעבור לאירועי JS_1
כאשר הכפתור הוחזק למשך 500 מיליסניות.
תכונת לחצן ההחזקה שימושית כדי להכפיל למעשה את מספר הזמינים
כפתורים, כך למשל ניתן להשתמש ב-dpad כדי לשלוח שמונה כפתורים שונים
אירועים במקום ארבעה בלבד, וזה מספיק כדי לטפל בנשק ברוב משחקי FPS.
שרירי הבטן עדיין לא מיושם
rel:REL_EVENT:ערך:REPEAT
מטפל ה-rel ישלח אירוע REL בכל פעם שהלחצן נלחץ. ערך
נותן את הערך של האירוע שיישלח, בעוד REPEAT נותן את המספר של
אלפיות שניות עד שהאירוע יישלח שוב.
שימוש אופייני לאירועי REL הוא הדמייה של גלגל הגלילה של עכבר, an
תצורה לדוגמה תהיה:
xboxdrv \
--ui-buttonmap Y=rel:REL_WHEEL:1:500,A=rel:REL_WHEEL:-1:500
כאן Y יגלול למעלה ו-A יגלול למטה.
מפתח מחזור:KEY_EVENT: ...
המטפל במפתחות המחזור יחליף את KEY_EVENT שנשלח עם כל כפתור
ללחוץ. זה שימושי במצבים שבהם יש למפות טווח של לחצנים ל-a
מפתח בודד. לדוגמה, ל-FPS עשוי להיות נשקים ממופים מ-1 עד 6, אבל רק א
מקש בודד ב-gamepad הוא בחינם, ולכן אפשר לכתוב:
xboxdrv \
--ui-buttonmap A=cycle-key:KEY_1:KEY_2:KEY_3:KEY_4:KEY_5:KEY_6
מחזור-מפתח בשם:שֵׁם:KEY_EVENT: ...
השמיים מחזור-מפתח בשם המטפל עובד בדיוק כמו מפתח מחזור מטפל, אלא שא
יש לספק שם עבור רצף המחזור. שם הרצף משמש את
מחזור-מפתח-ר' כדי לגשת לרצף ולהשתמש בו מחדש עבור כפתור אחר.
בדוגמה הפשוטה הזו A משמש כדי לעבור בין כל מפתחות הנשק קדימה, בעוד B
משמש להחלפת המקשים לאחור:
xboxdrv \
--ui-buttonmap A=cycle-key-named:weapons:KEY_1:KEY_2:KEY_3:KEY_4,B=cycle-key-ref:weapons
מחזור-מפתח-ר':שֵׁם:ניהול, sequence-key-ref:שֵׁם:ניהול
השמיים מחזור-מפתח-ר' המטפל ייגש ויעשה שימוש חוזר ברצף המפתחות של המחזור הנקוב
by שֵׁם. אם ניהול יכול להיות 'קדימה' או 'אחורה', אם אין כיוון
מסופק זה יקבע כברירת מחדל 'אחורה'.
לִרְאוֹת מחזור-מפתח בשם לדוגמא מלאה.
רצף-מפתח בשם:שֵׁם:KEY_EVENT: ...
השמיים רצף-מפתח בשם עובד בדיוק כמו ה מחזור-מפתח בשם, עם היחיד
ההבדל הוא שה רצף-מפתח בשם לא יתעטף כשמגיעים ל
תחילת או סוף הרצף.
התנהגות זו שימושית בסימולציות טיסה או משחקים אחרים שבהם עשויים דחפים
להיות נשלט על ידי מקשי מספרים וזה לא יהיה הגיוני לקפוץ מאפס
לעוצמה מלאה במכה אחת.
כדי לנוע אחורה ברצף יש לכבול מקש אחר
sequence-key-ref.
Exec המטפל בכפתורי ה-Exec מאפשר להפעיל אפליקציה כשהכפתור היה
לחוץ. דוגמה תיראה כך:
xboxdrv \
--ui-buttonmap A=exec:/home/juser/local/bin/screenshot.sh
שימושים אפשריים לכפתור הם היכולת לעשות צילומי מסך או לבצע פעולות אחרות
משימות שנמצאות מחוץ לאפליקציה הראשית שבה אתה משתמש ב-xboxdrv.
מאקרו ניתן לקשור כפתור למאקרו באמצעות:
xboxdrv \
--ui-buttonmap A=macro:/home/juser/.xboxdrv/somefile.macro
השמיים .מאקרו לקובץ יש את הצורה של:
שלח KEY_LEFTSHIFT 1
המתן 500
שלח KEY_LEFTSHIFT 0
ניתן לשלוח את כל אירועי abs, rel ו-key מקובץ מאקרו.
צִיר מקרה המטפל
מטפל באירועי ציר מחליט מה קורה כאשר ציר מוזז. כמו מטפל באירועי כפתור
הם מגיעים בצורות שונות וכמו מטפל באירועי כפתור הם מספקים טופס קיצור.
אירועים EV_KEY יטופלו על ידי מפתח מטפל, EV_REL מאת rel מטפל ו-EV_ABS מאת
מה היא שרירי הבטן מטפל.
שרירי הבטן:ABS_EVENT
השמיים שרירי הבטן המטפל הוא הפשוט מכולם, הוא פשוט ישלח את הערך שלו
מקבל קלט כמו הנתון ABS_EVENT אירוע לקרנל. כך בסיסי
תצורה כדי לגרום למקל השמאלי להתנהג כמו ג'ויסטיק ייראה כך:
xboxdrv \
--ui-axismap X1=abs:ABS_X,Y1=abs:ABS_Y
מפתח:מפתח למעלה:KEY_DOWN:מפתן
מפתח למעלה נותן את קוד המפתח שיישלח כאשר הציר מוזז למעלה
KEY_DOWN נותן את קוד המפתח שיישלח כאשר הציר מוזז למטה
מפתן נותן את הסף שמפעיל את שליחת אירוע
בדיוק כמו --ui-buttonmap, אתה יכול גם להשתמש במקשי Shift במקום XBOXAXIS:
$ xboxdrv --ui-axismap X1=ABS_X,LB+X1=ABS_RX
זה מאפשר לך לשלוח אירועי ABS_X באופן רגיל ואירועי ABS_RX כאשר הלחצן LB
מוחזק.
rel:REL_EVENT:ערך:REPEAT
ערך נותן את הערך המקסימלי של האירוע, הערך בפועל שנשלח הוא
ערך * מצב_ציר. (ברירת מחדל: 10)
REPEAT נותן את מספר המילישניות שיעברו לפני שהאירוע יופעל שוב
(ברירת מחדל: 5).
לערך של -1 יש משמעות מיוחדת, הוא יגרום להפעלת אירוע ה-REL
בהקדם האפשרי (כלומר כל פסק זמן מילישניות). זו דרך ההמלצה
לטיפול באמולציית עכבר, מכיוון שהיא תשמור על אירועי REL מסונכרנים ובכך תמנע
ג'גיות בתנועה, שייווצרו מציון ידני של פסק זמן.
השמיים rel המטפל שימושי בעיקר עבור הדמיית מצביע עכבר, אם תרצה בכך
לחקות גלגל גלילה של עכבר השתמש ב- חזור מחדש מטפל במקום.
חזור מחדש:REL_EVENT:ערך:REPEAT
השמיים חזור מחדש המטפל דומה ל- rel מטפל, אך מותאם לחיקוי
גלגל הגלילה של עכבר.
ערך לא מותאם לכמה רחוק הציר נע, במקום זאת הוא קבוע, במקום זאת
הזמן שנמסר REPEAT מוגדל בהתאם לתנועת הציר. כך עוד יותר
המקל מועבר, כך ישלחו יותר אירועים.
הצורך בשניהם חזור מחדש ו rel נובע מהעובדה ש-Xorg ממיר גלילה
תנועת גלגל ללחיצות כפתורים לפני מסירתן לאפליקציה, ובכך
האפליקציה אף פעם לא רואה כראוי את השינויים ב ערך, על ידי שינוי קנה מידה REPEAT במקום
הבעיה הזו נפתרה.
קלט סנן
מסנן קלט מאפשר לתפעל את האירועים המגיעים מהבקר. הם יכולים להיות
משמש ב --מפת כפתורים, --מפת ציר, --ui-buttonmap ו --ui-axismap. ההבדל בין
השניים הם שה- --ui-... גרסאות חלות על אירועי uinput, בעוד שהאחרת
הגרסה חלה על אירועי בקר Xbox360.
לחצן סנן
יחד, לְמַתֵג
מסנן החלפה יהפוך את הכפתור ללחצן החלפת מצב, לחיצה על הכפתור
יקבע אותו למצב לחוץ ולחיצה נוספת תבטל את הלחיצה. שימושי ל
משחקים שבהם אולי תרצה לרוץ לצמיתות או להתחמק מבלי להחזיק את הכפתור
לחוץ.
inv, הפוך
המסנן ההפוך ישאיר את הכפתור במצב לחוץ כאשר הוא לא נלחץ ו
במצב לא לחוץ כאשר הוא נלחץ.
המכונית, אש אוטומטית:ציון:לעכב
מסנן האש האוטומטי מאפשר לשלוח שוב ושוב אירועי לחיצה על כפתור כאשר
הכפתור נמשך לחוץ. זה דורש שני פרמטרים אופציונליים:
ציון הוא מספר המילישניות בין אירועי לחיצת כפתור.
לעכב כמות המילישניות עד שהשריפה האוטומטית תתחיל, לפני כן עיכוב
הכפתור יפעל כרגיל.
לחץ-לחץ
השמיים לחץ-לחץ המסנן ישדר לחיצת כפתור בודדת כאשר הכפתור נמצא
לחוץ.
הקלקה-שחרור
השמיים הקלקה-שחרור המסנן ישדר לחיצת כפתור בודדת כאשר הכפתור נמצא
שוחרר.
לחץ על שניהם
השמיים לחץ על שניהם המסנן ישדר לחיצת כפתור בודדת כאשר הכפתור נמצא
לחוץ ועוד אחד כאשר הוא משוחרר.
const:ערך
מסנן ה-const יתעלם מהאות הקלט וישלח ערך קבוע ל-
תְפוּקָה. זה יכול לשמש למשל בשילוב עם תצורות מרובות כדי
סימן למשחק או ליישום אחר שתצורה פעילה כעת.
עיכוב:זמן
יש להחזיק כפתור לחוץ במשך TIME אלפיות שניות לפני שהוא יפלוט אירוע,
אירועי עיתונות קצרים יותר אז יתעלמו מהם.
היכנס:STRING
מסנן היומן יוציא כל דבר ל-stdout שעובר דרכו אליו, זהו
שימושי לאיתור באגים במסנן. א STRING ניתן לספק כפרמטר שיהיה
הוצא לפני האירוע.
צִיר סנן
סיד, כִּיוּל:MIN:מרכז:מקס
לִרְאוֹת --כִּיוּל.
סן, רגישות:רגישות
לִרְאוֹת --רגישות לציר.
מת, שטח מת:ערך, שטח מת:MIN:מרכז:מקס
מסנן אזור מת מחיל אזור מת על הציר הנוכחי. אם רק MIN מסופק,
הפרמטר יתפרש כ -MIN:MIN:1. אם הטיעון הוא 1, חלק
סינון יוחל כך שסוף אזור המתים יהיה 0. הגדרת ה-
ארגומנט ל-0 יחיל מסנן חיתוך פשוט, שבו כל האירועים קטנים יותר מה-
מתעלמים מהסף.
rel, קרוב משפחה:ספיד
לִרְאוֹת --ציר יחסי.
בהתאמה, תגובה:ערכים: ...
מסנן עקומת התגובה מאפשר לך לשנות לחלוטין את האופן שבו ציר מגיב.
המסנן לוקח רשימה של ערכים לאחר מכן אינטרפולציה ליניארית ומתפשטת
על פני כל הטווח של הציר. דוגמה תיראה כך:
xboxdrv \
--ui-axismap x1^resp:-32768:-4000:0:4000:32767
כאן ציר X1 עובר מניפולציה כך שתהיה לו רגישות נמוכה יותר ב-
מרכז וגבוה יותר מבחוץ.
const:ערך
מסנן ה-const יתעלם מהאות הקלט וישלח ערך קבוע ל-
תְפוּקָה. זה יכול לשמש למשל בשילוב עם תצורות מרובות כדי
סימן למשחק או ליישום אחר שתצורה פעילה כעת.
היכנס:STRING
מסנן היומן יוציא כל דבר ל-stdout שעובר דרכו אליו, זהו
שימושי לאיתור באגים במסנן. א STRING ניתן לספק כפרמטר שיהיה
הוצא לפני האירוע.
שנה
בעוד כפתור ומסנן ציר חלים רק על ציר בודד או לחצן בכל פעם, שינויים
חל על הבקר השלם בבת אחת וכך ניתן להשתמש בו לביצוע שינויים
שדורשים קלט ממספר צירים או כפתורים. רוב המשתנים המוסברים להלן
לשכפל פונקציונליות הניתנת על ידי אפשרויות רגילות, אך לאפשר כוונון עדין יותר, כגון
הגבלת האפקטים למקל אנלוגי בודד במקום רק להחיל אותו על כולם. ציין זאת
משנים מיושמים בזה אחר זה, לכן הסדר חשוב.
dpad-סובב=תואר
לִרְאוֹת --dpad-סיבוב.
dpad-restrictor=RESTRICTON
מגביל את תנועת ה-dpad, ערכים עבור RESTRICTON יכול להיות:
ציר x: אפשר רק תנועה בציר ה-X
ציר Y: אפשר רק תנועה בציר Y
ארבע כיוונים: אפשר תנועה בציר X ו-Y, אך מסנן אלכסונים
משענת 4 כיוונית, מגביל לארבעה כיוונים=XAXIS:יאקסיס
לִרְאוֹת --מגביל ארבע כיוונים.
מרובע, ציר מרובע=XAXIS:יאקסיס
לִרְאוֹת --ציר מרובע.
לסובב=XAXIS:יאקסיס:תואר:MIRROR
מסובב את המקל שניתן על ידי XAXIS ו יאקסיס by תואר ובאופציה מראה זה.
stat, נתון
השינוי הסטטיסטי לא משנה שום דבר, במקום זאת הוא אוסף
נתונים סטטיסטיים על הבקר, כגון כמה פעמים לחצו על כפתור. ה
תוצאות האוספים יוצגו עם כיבוי של xboxdrv.
שים לב שהשינוי הסטטיסטי הוא חלק מחסנית השינוי, ובכך כדי לקבל נכון
תוצאות אתה חייב לוודא שהוא מגיע ראשון בערימה כאשר זה אמור לעבוד
אירועים אמיתיים ולא להתבלבל על ידי שריפה אוטומטית או שינויים דומים.
רץ XBOXDRV
משתמש A יחיד בקר
חבר את ה-Xbox360 gamepad ולאחר מכן פרק את מנהל ההתקן של xpad באמצעות:
$ rmmod xpad
אם אתה רוצה לפרוק אותו לצמיתות הוסף את השורה הבאה
/etc/modprobe.d/blacklist.conf:
הרשימה השחורה של xpad
לאחר מכן עליך לטעון את מודול ליבת uinput המאפשר ליצור תוכניות מרחב משתמש
התקני קלט וירטואליים ומודול joydev מטפל ב /dev/input/jsX מכשירים:
$ modprobe uinput
$ modprobe joydev
אתה גם צריך לוודא שיש לך זכויות גישה ל-/dev/input/uinput, או הוסף
את עצמך לקבוצה המתאימה, התאם את ההרשאות או הפעל את xboxdrv כ-root.
לאחר שמבטיחים שה-xpad לא מהדרך והכל במקום, התחל את מרחב המשתמש
נהג עם:
$ xboxdrv
או במקרה שאין לך את הזכויות הדרושות (להיות בשורש הקבוצה צריך להיות לעתים קרובות
מספיק) הפעל את הדרייבר בתור root באמצעות:
$ sudo xboxdrv
זה ייצור /dev/input/js0 ויאפשר לך לגשת ל-gamepad מכל משחק. לצאת
הנהג לחץ על Ctrl-c.
כברירת מחדל, xboxdrv יהדהד את כל אירועי הבקר לקונסולה, זה מקל על זה
לראות אם דברים עובדים כמו שצריך, אבל יאכל הרבה מעבד, ולכן זה מאוד
המלצה להשבית את הפלט הזה עם --שקט אוֹפְּצִיָה.
כפתורי ההדק מטופלים על ידי xboxdrv בדרך כלל כציר, נותן לך משוב אנלוגי,
בעוד שזה משחזר את בקר ה-Xbox360 בצורה המדויקת ביותר, זה יבלבל רבים ו
להיות שימושי רק בכמה, משחקי מירוץ בעיקר. אז ברוב המקרים מדובר בהמלצה
כדי לשנות את הטריגרים ללחצנים רגילים באמצעות:
$ xboxdrv --trigger-as-button
משתמש מרובות בקר
אם ברצונך להשתמש במספר בקרים קוויים, עליך להפעיל מספר מופעים של
מנהל התקן xboxdrv וצרף את הארגומנט -i כדי לבחור את הבקר המתאים כך:
$ xboxdrv -i 1
אם יש לך מספר בקרים אלחוטיים, עליך להפעיל מספר מופעים של
מנהל התקן xboxdrv וצרף את --wid אפשרות כזו:
$ xboxdrv --wid 1
עליך לסנכרן את הבקר האלחוטי כרגיל.
כדי לראות רשימה של כל הבקרים ש-xboxdrv מזהה שהם מחוברים למערכת שלך
לְהִשְׁתַמֵשׁ:
$ xboxdrv --list-controller
חיבור חם ו XBOXDRV דיימון
כדי לאפשר חיבור חם של משטחי משחק xboxdrv צריך להיות מופעל במצב daemon. זה
הושג עם ה --דימון אפשרות:
$ xboxdrv --דימון
כאשר יופעל במצב daemon xboxdrv יקשיב לאירועי udev ובכך יקבל הודעה
בכל פעם שמתחבר התקן USB חדש למחשב. לאחר מכן הוא יתאים לאותו מכשיר
נגד רשימת המכשירים הנתמכים שלה והפעל שרשור נפרד כדי לטפל ב-gamepad הזה.
שימו לב ש-xboxdrv לא יאפשר שימוש במספר רב שרירותי של בקרים
במצב זה, הוא יכול להתמודד רק עם כמה בקרים שהקצתם חריצי בקר
בעת ההפעלה. ניתן להקצות משבצות חדשות --הבקר הבא וכברירת מחדל משבצת אחת היא
תמיד מוקצה, ובכך לתמוך בשלושה בקרים שתפעיל אותו איתו:
$ xboxdrv --daemon --בקר הבא --בקר הבא
ניתן להגדיר כל חריץ בקר בנפרד ואתה יכול להגביל איזה משחק משטח מקבל
מוקצה לאיזה משבצת עם ה --התאמה אוֹפְּצִיָה.
שים לב ש-xboxdrv יצור את התקני ה-uinput הווירטואליים בעת ההפעלה, לא כאשר הוא משחק
מתחבר לחשמל, זה מאפשר לחבר משטחי משחק גם לאחר משחק או אפליקציה
כאילו XBMC כבר הושק ועדיין הכל מתפקד כראוי.
במצב daemon ניתן לנתק xboxdrv מהמעטפת הנוכחית באמצעות --לנתק, לקבל
לטפל בו כדי להרוג אותו אתה יכול לכתוב את ה-Pid שלו דרך ה --pid-file:
$ sudo xboxdrv --daemon --detach --pid-file /var/run/xboxdrv.pid
XBOXDRV דיימון DBUS ממשק
כאשר Xboxdrv מופעל כדמון הוא ייצא כמה פונקציות API דרך D-Bus, ובכך יאפשר
כדי לבצע שינויים בתצורה בזמן ריצה. ניתן לגשת לממשק D-Bus על ידי
כריכות השפה הרבות שסופקו או באמצעות כלי שורת הפקודה הגנרי dbus-send or
על ידי הידידותיות יותר למשתמש xboxdrvctl כְּלִי. דוגמאות להלן ניתנות עבור הגולמי dbus-send.
התבוננות פנימית ניתנת באמצעים הרגילים:
dbus-send --session --type=method_call --print-reply \
--dest=org.seul.Xboxdrv /org/seul/Xboxdrv org.freedesktop.DBus.Introspectable.Introspect
dbus-send --session --type=method_call --print-reply \
--dest=org.seul.Xboxdrv /org/seul/Xboxdrv/ControllerSlots/0 org.freedesktop.DBus.Introspectable.Introspect
dbus-send --session --type=method_call --print-reply \
--dest=org.seul.Xboxdrv /org/seul/Xboxdrv/Daemon org.freedesktop.DBus.Introspectable.Introspect
מידע סטטוס על חריצים זמינים, תצורה ובקרים פעילים יכול להיות
להשיג באמצעות:
dbus-send \
--session --type=method_call --print-reply \
--dest=org.seul.Xboxdrv /org/seul/Xboxdrv/Daemon org.seul.Xboxdrv.Daemon.Status
הגדרת ה-LED בבקר 0 יכולה להתבצע באמצעות:
dbus-send --session --type=method_call --print-reply \
--dest=org.seul.Xboxdrv /org/seul/Xboxdrv/ControllerSlots/0 org.seul.Xboxdrv.Controller.SetLed int32:4
הגדרת מנועי הרעש בבקר 0 יכולה להתבצע באמצעות:
dbus-send --session --type=method_call --print-reply \
--dest=org.seul.Xboxdrv /org/seul/Xboxdrv/ControllerSlots/0 org.seul.Xboxdrv.Controller.SetRumble int32:255 int32:255
הגדרת תצורת חריץ בקר ספציפית, בדיוק כמו --לְמַתֵג BTN מאפשר, ניתן לעשות
עם:
dbus-send --session --type=method_call --print-reply \
--dest=org.seul.Xboxdrv /org/seul/Xboxdrv/ControllerSlots/0 org.seul.Xboxdrv.Controller.SetConfig int32:2
בדיקות
לדעת כיצד לבדוק תצורת xboxdrv הוא חיוני לחלוטין בהבנת מהי
שגוי בהגדרה נתונה. בדיקת התצורה במשחק לרוב אינה מועילה,
מכיוון שלא תראה את הסיבה האמיתית מעבר לשכבות אינסופיות של הפשטה בינך לבין
האירועים בפועל. למרבה המזל יש כמה כלים שבהם אתה יכול להשתמש כדי לבדוק, כל אלה הם
מבוסס על שורת פקודה ורצוי שתכיר אותם כשתרצה לעשות
כל תצורה מורכבת יותר.
EVTEST
evtest מאפשר לך לקרוא אירועי קלט גולמיים מהם /dev/input/eventX. מכשירי האירוע הם ה
הליבה של כל טיפול באירועים, דברים כמו התקני הג'ויסטיק נגזרים מה-
מכשיר אירוע, אז אם אתה רוצה לתקן בעיה כלשהי במכשיר הג'ויסטיק, עליך לתקן את
מכשיר אירועים.
evtest זמין בספריית tools/ או כחלק מההפצה שלך בחבילה
evtest. ההפצה שלך.
JSTEST
jstest מאפשר לך לקרוא את הפלט מתוך התקן אירוע ג'ויסטיק (/dev/input/js0).
jstest זמין בספריית tools/ או כחלק מההפצה שלך מקל נועם.
SDL-JSTEST
sdl-jstest מאפשר לך לראות אירועים כאשר משחקים באמצעות SDL רואים אותם. זה מאוד חשוב מתי
אתה רוצה להגדיר ולבדוק את משתני הסביבה SDL_LINUX_JOYSTICK.
זה זמין כרגע דרך:
$ svn co svn://svn.berlios.de/windstille/trunk/sdl-jstest
או מאותו Ubuntu PPA שמכיל גם xboxdrv בחבילה sdl-jstest.
XV
xev מאפשר לך לראות את האירועים ש-Xorg רואה. עם זאת, שים לב שייתכן שלא תראה הכל
אירועים, מכיוון שחלקם ייתפסו על ידי מנהל החלונות שלך לפני שהם מגיעים ל-xev, זהו
רגיל.
xev הוא חלק מכל הפצת לינוקס, באובונטו היא זמינה באמצעות:
$ apt-get install x11-utils
JSCALC ו JSCALIBRATOR
שני הכלים הללו מאפשרים לך לכייל את ה-gamepad שלך, עם זאת עם כמעט כל העדכון
gamepads זה כבר לא נחוץ ולמעשה מזיק מכיוון שהוא עלול לדרוס בצורה מושלמת
תצורה עובדת טובה עם אחד שבור (ניתוק ה-gamepad או אתחול מחדש יתקן
זֶה). אז הימנע מהם אלא אם כן אתה מבין בבירור את הבעיות של השימוש בהם.
אם ה-gamepad שלך מייצר נתונים שגויים ואתה רוצה לכייל אותם, אולי תרצה
לבדוק את האפשרות --כִּיוּל, המאפשר לך לצבוט את הדרך שבה xboxdrv מפרש את שלך
נתוני gamepad.
MOUSE
לא ידועים כלים לבדיקת הפלט ב-/dev/input/mouseX.
הערה
אם הכלים אינם מספקים פלט כלל, ייתכן שזה לא נובע מתצורה שגויה, אבל
בגלל ש-Xorg תופס את מכשיר האירועים שלך ונועלת אותו, ראה סעיף Xorg לאפשרות
תוקן.
דוגמאות
התצורות שלהלן הן רק כמה דוגמאות אקראיות, ניתן למצוא דוגמאות נוספות בהן
מה היא דוגמאות/ ספרייה של עץ המקור של xboxdrv או ב /usr/share/doc/xboxdrv/examples/.
שנהפך טריגרים לתוך כפתורים
כברירת מחדל, xboxdrv יטפל בטריגר כציר אנלוגי, לא ככפתורים, בזמן שזהו
מועיל למשחקי מירוצים, זה יבלבל משחקים רבים אחרים, ולכן xboxdrv מספק
דרך קלה לשנות את הטיפול לכפתורים באמצעות --הדק-ככפתור אפשרות:
$ xboxdrv --trigger-as-button
תצורה A שטח מת
משטחי משחק רבים אינם מתרכזים בדיוק באפס, אלא בערכים אקראיים סביבו. ה'רעש' הזה
יכול לבלבל חלק מהמשחקים ולכן עדיף לסנן את זה, ניתן להשיג זאת באמצעות:
$ xboxdrv --deadzone 25%
האחוז הוא כמות הרעש שיסנן החוצה, אתה יכול גם לתת raw
ערכי המכשיר אם תשאיר את הסימן %. אם אתה רוצה שיהיה לך אזור דד רק על א
ציר ספציפי עליך להשתמש במסנן ציר:
$ xboxdrv --buttonmap X1^deadzone:15000
מקלדת אמולציה
התצורה הבאה תגרום ל-xboxdrv לחקות מקלדת, מה שיכול להיות שימושי
עבור משחקים שמשחקים עם מקלדת, כמו משחקי פלאש או משחקים שאינם תומכים ב-a
מַקֵל נוֹעַם. מכיוון שמשחקים שונים משתמשים במקשי מקלדת שונים, ייתכן שיהיה עליך להתאים את
חיבורי מפתחות שיתאימו למשחק:
$ xboxdrv \
--ui-clear \
--ui-buttonmap a=XK_a,b=XK_b,x=XK_x,y=XK_y \
--ui-buttonmap dl=XK_Left,dr=XK_Right,du=XK_Up,dd=XK_Down
לְחִימָה GAMES:
בתצורה זו ההדק השמאלי והימני הופכים לכפתורים דיגיטליים. כל הציר
אלא שמתעלמים מה-dpad. RB ו-RT ממופים כך שיפעלו כאילו כפתורים 1,2 ו-3 הם
לחוץ בו זמנית וזה שימושי עבור כמה התקפות מיוחדות. במקום להשתמש ב-
נעשה שימוש בשמות הכפתורים המקוריים, הכינויים 1,2,3,..., מה שמקל מעט על הדברים
לקרוא:
$ xboxdrv \
--dpad-only \
--הדק-ככפתור \
--buttonmap lb=1,x=2,y=3,lt=4,a=5,b=6 \
--buttonmap rb=1,rb=2,rb=3 \
--buttonmap rt=4,rt=5,rt=6
CH FIGHTSTICK אמולציה IN דוסבוקס:
In dosbox.conf מַעֲרֶכֶת:
[מַקֵל נוֹעַם]
joysticktype = ch
התחל את xboxdrv עם:
$ xboxdrv -s \
--טריגר-as-zaxis --ציר מרובע \
--relative-axis y2=64000 --axismap -y2=x2,x2=y2
המקל האנלוגי הימני שלך ישמש כבקרת תנועה, ההדק כהגה. באמצעות
--מַתקֵן התקנת מגביל לארבעה כיוונים עשויה גם להיות שווה שיקול אם לא
לגעת בטעות במצערת כאשר ההגה מוזז.
משתמש MOUSE אמולציה ו ROCKER AT LA אותו זמן
כדי להשתמש באמולציית עכבר ובג'ויסטיק בו זמנית, עליך לרשום שניים
תצורה עם xboxdrv, זה עובד באמצעות:
$ xboxdrv --next-config --עכבר
השמיים --next-config אפשרות תפתח תצורה שנייה ואת כל אפשרויות התצורה
בצד ימין שלה ילך לשם, ואילו הכל בצד שמאל שלה ילך
לתוך התצורה הראשונה. מעבר בין התצורות עובד עם המדריך
לחצן, אתה יכול לקבל כמה תצורות שאתה רוצה.
מיפוי כֹּל לחצן מרובות
משחקים מסוימים עשויים לדרוש יותר כפתורים ממה שיש ל-gamepad שלך, במצב כזה זה יכול להיות
שימושי למיפוי כפתור פעמיים על ידי שימוש בלחצנים מוזזים:
$ xboxdrv \
--ui-clear \
--ui-axismap X1=ABS_X,Y1=ABS_Y \
--ui-buttonmap a=JS_0,b=JS_1,x=JS_2,y=JS_3 \
--ui-buttonmap lb+a=JS_4,lb+b=JS_5,lb+x=JS_6,lb+y=JS_7 \
--ui-buttonmap rb+a=JS_8,rb+b=JS_9,rb+x=JS_10,rb+y=JS_11
.fi
כאן כל כפתורי הפנים ממופים שלוש פעמים, פעם אחת
לחוץ באופן רגיל, פעם אחת כאשר לוחצים עליו כאשר LB מחזיק מעמד ו
פעם אחת כאשר RB מחזיק מעמד, ובכך ניתן לך עבור ששת הכפתורים
12 וירטואליים.
SAUERBRATEN
ה-analogstick הראשון ממופה את מקשי הסמן, ה-analogstick השני ממופה לעכבר.
הערה: זו רק דוגמה לא שלמה, לא תצורה הניתנת להפעלה מושלמת, יש לך
לעשות תיקון בעצמך.
$ xboxdrv \
--ui-axismap x2=REL_X:10,y2=REL_Y:-10,x1=KEY_LEFT:KEY_RIGHT,y1=KEY_UP:KEY_DOWN \
--ui-buttonmap a=BTN_RIGHT,b=BTN_LEFT,x=BTN_EXTRA \
--ui-buttonmap rb=KEY_5,lb=KEY_6,lt=BTN_LEFT,rt=BTN_RIGHT \
--ui-buttonmap y=KEY_ENTER,dl=KEY_4,dr=KEY_2,du=KEY_1,dd=KEY_3,back=KEY_TAB,start=KEY_ESC \
-s --deadzone 6000 --dpad-as-button --trigger-as-button
וורסואו
הערה: זו רק דוגמה לא שלמה, לא תצורה הניתנת להפעלה מושלמת, יש לך
לעשות תיקון בעצמך.
$ xboxdrv \
--ui-axismap x2=REL_X:10,y2=REL_Y:-10,x1=KEY_A:KEY_D,y1=KEY_W:KEY_S \
--ui-buttonmap a=KEY_LEFTSHIFT,b=BTN_C,x=BTN_EXTRA,y=KEY_C \
--ui-buttonmap lb=BTN_RIGHT,rb=KEY_SPACE \
--ui-buttonmap lt=KEY_Z,rt=BTN_LEFT \
--ui-buttonmap dl=KEY_4,dr=KEY_2,du=REL_WHEEL:-1:150,dd=REL_WHEEL:1:150 \
--ui-buttonmap back=KEY_TAB,start=KEY_ESC \
-s --deadzone 6000 --dpad-as-button --trigger-as-button
כְּתִיבָה סטארט - אפ סקריפטים עבור משחקים
כאשר אתה רוצה הגדרה מלאה ספציפית למשחק והשקה אוטומטית של xboxdrv, זה כן
הכי קל לכתוב סקריפטים קטנים להפעלה עבור המשחקים שלך שיפעילו xboxdrv, launch
את המשחק שלך ולאחר מכן כשהמשחק יסתיים הורידו את xboxdrv:
#!/ Bin / sh
exec xboxdrv \
--trigger-as-button -s \
-- \
המשחק_המועדף שלך
# EOF #
כאן המשחק_המועדף שלך הוא קובץ ההפעלה של המשחק שלך ומועבר ל-xboxdrv כאחרון
טַעֲנָה. זה יגרום ל-xboxdrv להתחיל את המשחק ולהמשיך לרוץ כל עוד המשחק
פועל, כשהמשחק יסתיים, xboxdrv ייסגר אוטומטית.
אם אתה רוצה להעביר פרמטרים למשחק אתה צריך להוסיף א -- מפריד, כמו אחרת
האפשרויות שלך למשחק ייאכלו על ידי xboxdrv.
Sdl אורים
כדי לאפשר ל-SDL לדעת איזה ציר משמש ככובע ואיזה פועל כציר רגיל, עליך להגדיר
משתנה הסביבה:
$ SDL_LINUX_JOYSTICK="'Xbox Gamepad (מנהל התקן מרחב משתמש)' 6 1 0"
$ ייצוא SDL_LINUX_JOYSTICK
ייתכן שתצטרך בנוסף להשתמש בזה (תלוי באופן הידור של SDL):
$ SDL_JOYSTICK_DEVICE="/dev/input/js0"
$ ייצוא SDL_JOYSTICK_DEVICE
זה יאפשר ל-DPad לפעול ככובע ביישום מבוסס SDL. עבור משחקים רבים הנהג יעשה זאת
לעבוד בלי זה, אבל במיוחד ב-Dosbox המשתנה הזה חשוב מאוד.
אם אתה משתמש באפשרויות ב-xboxdrv שמשנות את מספר הציר, עליך להתאים את
משתנה בהתאם, ראה:
· ⟨ftp://ptah.lnf.kth.se/pub/misc/sdl-env-vars⟩
SDL_LINUX_JOYSTICK
מחרוזת תצורת ג'ויסטיק מיוחדת עבור לינוקס. הפורמט הוא "שֵׁם מספרים מספרים
כדורי כדורים" כאשר שם הוא מחרוזת השם של הג'ויסטיק (אפשר במרכאות בודדות), ו
השאר הם מספר הצירים, הכובעים והכדורים בהתאמה.
SDL_JOYSTICK_DEVICE
מכשיר ג'ויסטיק לשימוש במנהל ההתקן של הג'ויסטיק של לינוקס, בנוסף לרגיל: /dev/js*,
/dev/input/event*, /dev/input/js*
פתרון תקלות
"לא אקס בוקס OR XBOX360 בקר מצאתי"
משמעות הדבר היא שהבקר שלך אינו מחובר לחשמל או שאינו מזוהה על ידי
נהג. כדי לתקן זאת אתה צריך לדעת את ה-idVendor ואת מספרי ה-idProduct, מה שאתה יכול
לברר דרך:
$ lsusb -v
לאחר שתסיים תוכל לנסות להוסיף אותם למערך זה ב src/xpad_device.cpp:
XPadDevice xpad_devices[] = { ... }
אם יש לך הצלחה עם זה, שלח תיקון אל <[מוגן בדוא"ל]>, אם לא, צור איתי קשר
כמו כן, אולי אוכל לספק עזרה נוספת.
כחלופה אתה יכול גם להשתמש באפשרות --device and --type כדי לאכוף התקן USB
כמו גם בקר מקלידים לעקוף כל זיהוי אוטומטי.
"לא ידוע נתונים: בייטים: 3 נתונים: ... "
המשמעות היא שהבקר שלך שולח נתונים שאינם מובנים לנהג. אם
הבקר שלך עדיין עובד, אתה יכול פשוט להתעלם ממנו, נראה שהבקר של Xbox360 שולח
להוציא נתונים חסרי תועלת מדי פעם. אם הבקר שלך לא עובד ואתה מקבל הרבה
מבין השורות האלה כשאתה מזיז את המקלות או לוחץ על כפתורים זה אומר שהבקר שלך
מדבר על פרוטוקול לא מובן ויש צורך בהנדסה לאחור. איש קשר
<[מוגן בדוא"ל]> וכלול את הפלט של:
$ lsusb -v
יחד עם כל שורות "נתונים לא ידועים" שאתה מקבל.
"שְׁגִיאָה: לא מתאים UINPUT מכשיר מצאתי"
ודא שמודול הגרעין של uinput ו-joydev נטענים. ודא שיש לך א
/dev/input/uinput, /dev/uinput או /dev/misc/uinput והרשאות לגשת אליו.
לפני שתדווח על זה כבאג ודא שבדקת אם מנהל ההתקן עצמו עובד עם:
$ xboxdrv --no-uinput -v
LA WIRELESS בקר לא עֲבוֹדָה
עליך לסנכרן את הבקר כדי שניתן יהיה להשתמש בו, אין צורך בהפעלה מחדש של מנהל ההתקן
ומנהל ההתקן אמור לאפשר לך כעת כאשר הוא מקבל חיבור לאחר סנכרון
בקר.
מקלדת אמולציה
כאשר אתה מנסה לאפשר ל-xboxdrv לשלוח מקלדת אירועים באמצעות --ui-buttonmap or --ui-axismap Xorg
חייב לרשום את ההתקן כהתקן מקלדת כדי לעבוד כראוי. נראה שזה עובד
אוטומטית כאשר אתה מקשר יותר משני מקשי מקלדת, אם אתה מקשר פחות אתה צריך
ליצור את הקובץ /etc/hal/fdi/preprobe/xboxdrv.fdi המכיל:
input.keys
זה יגיד ל-HAL ומאוחר יותר ל-Xorg ש-xboxdrv פועל כמקלדת.
WACOM סוגיות
בחלק מהגרעינים הישנים יותר, טאבלט גרפי של Wacom יוצר התקן ג'ויסטיק, אז xboxdrv או כל
ג'ויסטיקים אמיתיים אחרים מסתיימים בתור /dev/input/js1 במקום /dev/input/js0. במשחקים רבים
זה גורם לג'ויסטיק לא לתפקד יותר.
פתרון זמני לכך הוא פשוט למחוק את התקן הג'ויסטיק js0 ולהחליף אותו
עם קישור סמלי js1 דרך:
$ sudo ln -sf /dev/input/js1 /dev/input/js0
פתרון זה יימשך רק עד לאתחול הבא, מכיוון ששמות המכשירים הם
נוצר באופן דינמי, אבל לעת עתה לא נראה שיש דרך אחרת בקלות
לעקוף את הנושא הזה.
בקרנלים חדשים יותר בעיה זו תוקנה.
UINPUT סוגיות
באובונטו 9.04 השתנו ההרשאות של התקן uinput ל-0640, כלומר רק
ל-root יש גישה למכשיר. כדי לשנות זאת בחזרה כך שלמשתמשים בשורש הקבוצה יש
לגשת למכשיר ובתורו יכול להריץ xboxdrv ללא sudo אתה צריך ליצור קובץ
נקרא /etc/udev/rules.d/55-permissions-uinput.rules עם התוכן:
KERNEL=="uinput", MODE="0660", GROUP="root"
יַיִן סוגיות
בעת שימוש ב-Xbox360 gamepad ב-Wine הוא אינו מטופל במיוחד כ-Xbox360 gamepad, אבל
כמשחק DirectInput גנרי. זה אומר שמשחקים לא יציגו את הכפתור המתאים
תוויות, אלא רק מספרים (כלומר 'Btn1' במקום 'A' למשל). חוץ מזה זה
צריך לעבוד בסדר.
תמיכת XInput (החלפת Microsoft DirectInput, לא Xorg xinput) היא החל מהיום
ינואר 2011 לא מיושם ב-Wine, אז משחקים שדורשים XInput ואין להם
DirectInput fallback לא יעבוד עם בקר Xbox360, עם זאת, תיקונים לא רשמיים
קיימים.
XORG סוגיות
אם אתה מפעיל את xboxdrv ובמקום להיות עם ג'ויסטיק פועל במלואו, אתה בסופו של דבר
שליטה בעכבר שעשוי לנבוע משינויים אחרונים ב-Xorg וב-hotplug של המכשיר שלו
טיפול. ישנן ארבע דרכים לעקיפת הבעיה, זו שכוללת עריכה
/etc/hal/fdi/policy/preferences.fdi הוא המומלץ.
זמני עבודה משתמש HAL-DEVICE
קבל את מזהה המכשיר מ-hal:
$ hal-find-by-property --key 'info.product' --string 'Xbox Gamepad (מנהל התקן של מרחב משתמש)'
לאחר מכן הסר את המכשיר מהחדר עם:
$ hal-device -r $DEVICEID
זמני עבודה משתמש XINPUT
פתרון שני עובד עם xinput:
רשימת xinput $
$ xinput set-int-prop $DEVICEID 'התקן מופעל' 32 0
קבוע עבודה משתמש .FDI קבצים
שני הדרכים לעקיפת הבעיה הן רק זמניות ויש לבצע אותן מחדש לאחר כל התחלה של
xboxdrv, הדרך האחרונה לעקיפת הבעיה היא קבועה:
אתה צריך לערוך:
/etc/hal/fdi/policy/preferences.fdi
והכנס את השורות הבאות:
קבוע עבודה BY השבתה מכשיר AUTO איתור
פתרון רביעי כלל השבתת הזיהוי האוטומטי של Xorg לחלוטין, אתה יכול לעשות
כי על ידי הוספת השורות הבאות ל /etc/X11/xorg.conf:
סעיף "ServerFlags"
אפשרות "הוספה אוטומטית" "שקר"
EndSection
שים לב שללא זיהוי אוטומטי תצטרך להגדיר באופן ידני את כל העכברים שלך ו
מקלדות או שרת Xorg שלך לא יופעלו כראוי. אז אלא אם כן אתם כבר מכירים
עם עריכת Xorg מוטב שתמנע מהפתרון הזה. לפתרון 3) יש בעצם אותו דבר
השפעה, אלא שזיהוי אוטומטי מושבת רק עבור המכשיר היחיד שהוא גורם
בעיות.
כוח מָשׁוֹב תִכנוּת
לתיעוד על ממשק FF ראה:
· ⟨http://github.com/github/linux-2.6/blob/f3b8436ad9a8ad36b3c9fa1fe030c7f38e5d3d0b/Documentation/input/ff.txt⟩
· /usr/include/linux/input.h
מידע נוסף, שאינו קשור ללינוקס, הקשור למשוב כוח ניתן למצוא ב:
· ⟨http://www.immersion.com/developer/downloads/ImmFundamentals/HTML/⟩
· ⟨http://msdn.microsoft.com/en-us/library/bb219655(VS.85).aspx⟩
fftest הוא יישום שאתה יכול להשתמש בו כדי לבדוק את ממשק משוב כוח.
משוב כוח מושבת כברירת מחדל מכיוון שהוא גורם לבעיות ביישומים מסוימים. "קֶבֶר
Raider: Legend" למשל כאשר ההפעלה ב-Wine קורסת באתחול כאשר ה-rumble מופעל,
בעוד זה עובד רגיל לחלוטין כאשר הרעש מושבת.
השתמש ב-xboxdrv באינטרנט באמצעות שירותי onworks.net
