כמה מילים על הדרייבר של nVidia ועל מסכים בעייתיים

Nvidia-logoישנו דרייבר אחד בלינוקס שיש לו היסטוריה ארוכה של בעיות "פוליטיות" והגדרות טכניות – זהו הדרייברים של כרטיסי המסך של nVidia. רבות כבר נכתב על הדרייברים של nVidia, כמה הם סגורים, מורכבים, לא תואמים תמיד, ו"עקשנים" בסירובם לרוץ בסביבות מסויימות.

לאלו החדשים בעולם הלינוקס, אתן היסטוריה קצרה (השאר יכולים לדלג כמה פיסקאות קדימה).

בלינוקס ישנם 2 סוגים של דרייברים לכרטיסים הגרפיים של nVidia ל-PC (ל-ARM זה סיפור אחר לגמרי). ישנו הדרייבר הפתוח בשם Nouveua. זהו דרייבר שנעשה ע"י "הנדסה לאחור" (Reverse Engineering) והוא בקוד פתוח. הדרייבר הזה נותן תמיכה טובה בגרפיקה דו/תלת מימד, וידאו, Boot גרפי ועוד. החל מפברואר חברת nVidia החלה גם לתרום קוד לדרייבר הזה (ולפני כן היא בשקט תרמה כרטיסים חדשים לפני יציאה רשמית כך שכרטיסים חדשים נתמכו ע"י הדרייבר ביום הראשון שהם יצאו לשוק). הדרייבר הזה יכול לשמש משתמשי לינוקס עם 1-2 מסכים בצורה די טובה אבל הוא חלש בביצועים בכל הקשור למשחקים, עריכת וידאו, תוכנות תלת מימד וכו'.

מהצד השני ישנו דרייבר בינארי רשמי של nVidia. הדרייבר הזה תומך בכל תכונה שיש לכרטיסי המסך מבוססי nVidia כולל תמיכה בדברים חדשים כמו Display Port, Thunderbolt (ללא "הכנסה חמה"), כרטיסים מרובים במחשב אחד, SLI, גרפיקה ווידאו מהיר (אותה מהירות כמו Windows). הדרייבר עצמו הוא סגור (הסיבות שהן סגור: הדרייברים של לינוקס, מק ו-Windows משתמשים באותו קוד בסיס ועקב שילוב של קוד מגורמים שונים מחוץ ל-nVidia – אין אפשרות לשחרר אותו), מה שגורם לו להיות בעייתי בעולם הלינוקס, עולם שבו גירסת הליבה משתנה תדיר והמשתמש גם יכול לשנות את הגירסה, ומכיוון שרוב הדרייבר הוא מודול ליבה (מפלצתי – 11.3 מגהבייט. שזה פי כמה וכמה יותר מכל מודול בליבה), יש צורך בקימפול מחדש בכל פעם שמשנים קרנל (ב-fedora יש את dkms ו-akmod שמטפלים בכך אוטומטית בעת הפעלת הלינוקס) – כך שמבחינת ביצועים הדרייבר יתן לך תוצאות טובות, אולם הדרך להגיע לשם היא לא תמיד קלה.

אחת הבעיות הגדולות עם הדרייבים הרשמיים של nVidia היא להסתדר עם ציוד בעייתי, וכשאני מדבר על ציוד בעייתי, אני מדבר על ציודים עלומי שם שלא ממש מחזירים מידע שהדרייבר מצפה לקבל. כך לדוגמא, הח"מ משתמש במסך IPS עם רזולוציית 2560X1440 מייצור קוריאני ללא שם (על המסך כתוב CrossOver אולם כשמנסים לקרוא דרך לינוקס וכרטיס המסך את הפרטים של הכרטיס, מקבלים תשובה של QHD270QHD270QHD270 וג'יבריש בכל הקשור לרזולוציות שהמסך תומך). כשהחלק הגרפי (Xorg) בלינוקס עולה, הדרייבר מיד נופל בטענה שהוא לא מכיר את המסך הזה. לעומתו הדרייבר החופשי Nouveau מבין שזהו עוד מסך עלום שם עם רזולוצייה של 2560X1440 והוא פשוט מתעלם ממה שהמסך אומר ומפעיל עליו את הרזולוציה הנ"ל – וזה עובד מצוין, רק שביצועי תלת מימד/משחקים וכו' לא תקבל.

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

בעקרון יש מספר סוגי חיבורים שהדרייבר מתייחס אליהם. אני אתעלם כרגע מחיבורים פנימיים (LVDS – זה מתאים למערכות משובצות ומערכות אחרות שאינן חלק מהפוסט הזה) ונתייחס לחיבורים חיצוניים:

  • חיבור VGA נחשב עבור הכרטיס הגרפי כחיבור למסך CRT ישן (כן, מסכי LCD עם חיבור VGA משתמשים במעגלים פנימיים להדמיית מסך אנלוגי) ולפיכך אם תחבר מסך ב-VGA, הדרייבר יציין לעצמו שיש CRT
  • חיבורים כמו DVI, DVI-DL, Thunderbold, DisplayPort, HDMI הם חיבורים דיגיטליים ולפיכך הדרייבר ממפה אותם כחיבורי DFP (ר"ת Digital Flat Panel) ונותן להם מספרים, כך שאם יש לך מסך עם אחד מהחיבורים שציינתי לעיל, הוא ימפה אותם לפי סדר מספרי DFP-0, DFP-1 וכו'. קישוריות כזו כוללת תקשורת דו כיוונית מלאה והמסך נותן הרבה יותר מידע על עצמו לכרטיס המסך. הוא נותן לכרטיס הגרפי פרטים כמו גודל פיזי של הפאנל, כל האזולוציות שהוא תומך בהן, קצבי רענון מסך שהוא תומך בהם, נקודות לאינצ' (ככל שיש יותר נקודות – האותיות יהיו יותר קטנות ולכן אם אתה רואה את הטקסט באותיות מאוד קטנות – כדאי שתעלה את ה-DPI ל-128 לדוגמא במקום 96 שהוא ברירת המחדל), והאם המסך תומך בכיבוי, צריכת חשמל נמוכה ועוד.

לפיכך, אם המסך הבעייתי הוא בחיבור DFP-1 לדוגמא (כמו במקרה שלי), נצטרך להזין לו שורת ModeLine שתגדיר לו את הרזולוציה והרענון בצורה ידנית (כלומר ספציפית) או שנשתמש בקובץ בינארי פשוט ונבקש מהדרייבר שיתייחס לקובץ הבינארי במקום לנסות לקרוא את פרטי המסך. במידה ויש לך מספר מסכים בעייתיים, תוכל להשתמש בקבצים בינאריים שונים שנמצאים באינטרנט או שפשוט תוכל להזין את ה-ModeLine בתוך קובץ etc/xorg.cong/ כפי שזה מופיע ההרחבה בפוסט הזה.

חשוב לזכור: מכיוון שרוב הפצות הלינוקס מפעילות את עצמן במצב גרפי, אם התקנת את הדרייבר הבינארי, סביר להניח שתקבל סמן מהבהב ותו לא. לחץ על מקשים ALT F2 והתחבר כ-root ולאחר מכן הפעל פקודת: telinit 3 כדי שהלינוקס יעבור למצב טקסטואלי. לאחר שהגדרת את השינויים, תוכל לנסות אותם ע"י הפעלת פקודת startx (כדאי למחוק את קבצי var/log/Xorg*log/ לפני כן כדי שאם תהיה תקלה – תוכל לראות בקובץ החדש שנוצר היכן התקלה, סביר להניח שתראה זאת בסוף הקובץ ה-log). לאחר שתצליח להיכנס למצב גרפי, צא ממנו ע"י בחירה ב-logout או בחירת reboot.

עוד עניין חשוב: מחשבים ניידים רבים כיום נמכרים עם 2 מעבדים גרפיים: האחד הוא מה שמגיע במעבד (של אינטל) והשני הוא של nVidia. המעבדים של nVidia במחשבים ניידים כמובן שאינן כמו המעבדים בכרטיסים יעודיים, אבל הם יכולים להאיץ דברים מסויימים שצריך, דברים שהמעבד הגרפי של אינטל אין לו שום סיכוי להאיץ בצורה רצינית. השיטה שהמעבד של nVidia עובד במחשבים ניידים כאלו, הואיל ואין יציאת מסך נפרדת, היא להפנות את פלט הצ'יפ הגרפי – לתוך אזור זכרון שהמעבד הגרפי האינטלי נותן לו. תחשבו על זה כמו מסך ירוק או כחול בסרטים: מצלמים את הסרט עם מסך ירוק או כחול ברקע ולאחר מכן מחליפים את המסך הירוק או הכחול בגרפיקה ממוחשבת.

בלינוקס, בשביל להשתמש בכל הטרראם הזה, יש צורך בדרייבר משולב שנקרא BumbleBee (כן, כמו ההוא מ-Transformers). הדרייבר (הוא לא בדיוק דרייבר, זה יותר ערכת סקריפטים וספריות) לאחר ההתקנה אינו מספיק, ויש לבצע alias או לכתוב 2 שורות סקריפט ב-Bash כדי לגרום לאפליקציות להכיר בצ'יפ של nVidia ולרוץ על אותו צ'יפ גרפי. עוד פרטים בדף הבית של BumbleBee.

אם רוצים ביצועים יותר גבוהים מאותם מחשבים ניידיים ועם הצ'יפ של nVidia, אז תכירו את פרויקט Primus והחבילה primus נמצאת בכל גירסת לינוקס נפוצה. ב-Fedora אפשר להתקין בפשטות עם yum install primus

הרצת אפליקציה עם primus: כל מה שצריך זה לאמר למערכת להשתמש במנוע primus הוא להוסיף את הפרמטרים b primus- כלומר אם אני רוצה להריץ glxgears לדוגמא, אז הפקודה תהיה:

optirun -b primus glxgears

בהצלחה

תכירו את Asus Chromebox

מי שעוקב אחר גוגל רואה בוודאי איך החברה עושה הכל כדי לקדם את הרעיון של הדפדפן שלה ותוכנות לדפדפן שלה.הם לא עוצרים בדפדפן ורינדור HTML5, אלא גם מפתחים תוספות (שאחרים קוראים לזה "ActiveX דור שני" – לכך אתייחס בהזמנות אחרת) ויוצרים פורמט של Package כך שאפליקציה שתכתוב תוכל להפיץ אותה דרך החנות (החנות שודרגה לאחרונה להפיץ גם אפליקציות בתשלום), ולהריץ אותה על דפדפן כרום, על מחשב ChromeBook/ChromeBox עם ChromeOS ובעתיד הקרוב – גם על מכשירי אנדרואיד ו-IOS, כך שעם אפליקציה אחת תוכל "לכבוש" את כל הפלטפורמות. (אגב, במסגרת כנס Build האחרון שנערך זה עתה, הכריזה מיקרוסופט בערך על אותו קונספט – Universal Binaries שיתנו למפתחים לכתוב קוד שירוץ גם על Windows רגיל וגם על Windows Phone).

עד היום מספר חברות הוציאו מחשבים ניידים עם מפרט נמוך מאוד כדי להריץ ChromeOS – אלו כמובן ה-ChromeBooks. ברוב המקרים מדובר על מעבד סלרון, 2 ג'יגהבייט זכרון ו-16 ג'יגהבייט אחסון מקומי (חשבון הגוגל Drive שלך מורחב אוטומטית בעוד 100 ג'יגה לאחר ש"תשדך" אותו עם Chromebook). יש כמובן יוצאים מהכלל כמו סמסונג ו-HP שחלק מדגמי המכשירים שלהם כוללים מעבד ARM במקום מעבד אינטלי והם נותנים ביצועים לא רעים אך ביצועי הסוללה שלהם – טובים מאוד. ל-Acer היה דגם (שקשה להשיג אותו כיום) של ChromeBook עם 4 ג'יגה זכרון. הדגם הישן יותר דווקא פופולרי כי ניתן להחליף ולשדרג שם זכרון/SSD.

ב-Asus לקחו את הזמן לראות איך השוק מגיב לכל עניין ה-ChromeOS ולאחר שראו שהמכירות של המתחרים בתחום אינם רעים, הם החליטו להיכנס, אם כי לא עם ChromeBook אלא ChromeBox (אני מאמין שזה היה עניין של שכנוע מצד גוגל. אחרי הכל, אסוס וגוגל שותפים ותיקים בפיתוח ויצור מכשירים כמו הנקסוס 7).

באסוס החליטו לתכנן מכשיר asus-chromebox-frontחדש במקום "לגייר" מכשיר Windows שיעבוד עם ChromeOS (כמו במקרה של הטרנספורמר שהועתק בשלמותו מאנדרואיד לפלטפורמת ה-Windows של אסוס). באסוס הפעם ניסו לחשוב מה המשתמש רוצה, ולא רק לזרוק לתוך הקופסא מפרט ישן ולמכור בזול.

הפעם, לשם שינוי, אסוס ממש תכננו בצורה חכמה את המכשיר. כך לדוגמא המכשיר כולל 4 יציאות USB-3 (ולא יציאות USB-2 עם איזו יציאה אחת שהיא USB-3), יש קורא כרטיסים, יש יציאת Display Port וגם יציאת HDMI. גם חיבורי הרשת לא הוזנחו ויש כניסת ג'יגהביט לרשת חוטית וכמובן Wifi עם תמיכה לתקן  N (כולל Dual Band) ו-Bluetooth 4 ולא שכחו את ה-Kensington Lock, כך שתוכל לנעול את המכשיר שלא יגנב. המעבד (בגירסת ה-179$ – שזהו מחירו הרשמי) הוא אמנם Celeron אך הוא מסידרת Haswell, כלומר במקרים שהוא ממש מתאמץ, הוא צורך בערך 11.2 וואט, כך שישנו אספקט של חסכון נחמד בחשמל.

אסוס תמכור את המכשיר הזה ב-3 גרסאות: גירסה עם סלרון במחיר 179$, גירסה עם מעבד i5 וגם גירסה עם מעבד i7 (כאשר גרסאות i5, i7 עדיין אינן זמינות בשוק ולמען האמת – המחירים שמדברים עליהם – יקרים מאוד).

אז יש לנו כאן מכשיר ChromeBox במחיר זול מאוד עם מפרט טכני מרשים.

אבל הדבר הכי מרשים הוא שהמכשיר בעצם "פתוח". מה זה אומר? ש-ASUS לא תבטל אחריות אם תפתחו את המכשיר ותשדרגו אותו, וכאן נמצא אחד היתרונות הגדולים של ה-ChromeBox הנ"ל: אפשר להרחיב את הזכרון עד ל–16 ג'יגהבייט זכרון ואת ה-SSD הפנימי ניתן להחליף עד לגודל של 1 טרהבייט (סמסונג הוציאה כזה)

אז ה-ChromeBox של ASUS נותן לנו אפשרות להרחיב את הזכרון ואת הדיסק לכמות מכובדת. האם זה ישנה משהו ל-ChromeOS? אם תרחיבו מ-2 ל-4 ג'יגהבייט של RAM, בהחלט יהיו שיפורים אך מעבר לכך – לא ממש. מה שכן, אפשר להפוך את ה-ChromeBox למכונת לינוקס נחמדה (ע"י התקנה של Cruton או Chrubunto – תוכלו לראות עוד פרטים כאן) ובכך המכשיר הנחמד יכול להיות גם מכונת לינוקס וגם מכונת ChromeOS עם מפרט טכני נאה וכל זאת במחיר ממש זול.

ChromeOS יכול לשמש למשתמשי קצה כמערכת קלה עם אפס תקלות, מערכת שניתן להבריג עם חיבור VESA כמעט לכל מוניטור, כך שאפשר להתקין זאת בחדר הילדים שישחקו או שיגלשו באתרים המועדפים אליהם מבלי לרכוש PC שמצריך תחזוקה שוטפת הן מבחינת תוכנה והן מבחינת חומרה. המערכת גם יכולה לשמש כמכשיר מעולה עבור "קיוסקים" – עמדות מידע כך שהמשתמש לא צריך לבצע login ולא צריך לדאוג לגבי וירוסים/תולעים וכו'.

הערה מקומית לסיום: כן, בישראל ל-ASUS יש תמיכה מתחת לכל ביקורת ושרות על הפרצוף בכל הקשור לתקלות, קחו את זה בחשבון לפני שאתם מזמינים מכשיר (אינני יודע אם הוא ימכר בארץ או לא). אישית אני הזמנתי בשבוע שעבר את ה-ChromeBox לצרכי בדיקה של ChromeOS (וגם לבצע לו Dual Boot ל-Fedora a שישמש אותי בתור התחנה הקבועה שלי. בין כה עבודות כבדות ירוצו על המכונות האחרות שיש לי כאן בבית) ואם תהיה לי תקלה, אני אעדיף להזמין חלקים מאשר לסמוך על השרות בארץ.

על כספומטים, XP, וסיום חיי מערכת הפעלה

לאחרונה מפורסמים באינטרנט כל מיני מאמרים המפחידים את הציבור (והבנקים?) על כך שמכיוון שכספומטים רבים מריצים את Windows XP כמערכת הפעלה שלהם, ומכיוון שמיקרוסופט הפסיקו את התמיכה, אז הכספומטים יהיו חשופים לפריצות חדשות ויהיה תוהו ובוהו.

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

מערכת ההפעלה שבכספומטים היא גירסה מיוחדת של XP שנקראת XP Embedded. בניגוד ל-XP רגיל, חלקים רבים ממערכת XP סטנדרטית פשוט לא מותקנים בכספומטרים. XP Embedded נותנת לאינטגרטור מאות אפשרויות להתקין רק חלקים קטנים מאוד מכל ה-XP, כך שפריצה שתעבוד על מכונת XP, יש סיכוי לא רע שהיא כלל לא תעבוד על XP Embedded כי אותם חלקים שהפריצה עובדת עליהם כלל לא מותקנים במערכת. ברוב כספומטים לדוגמא לא מותקן דפדפן או כל חלק אחר שמרנדר דף HTML ועוד חלקים רבים שקיימים ב-XP לא נמצאים שם.

מעבר לכך, מיקרוסופט מכרה את XP Embedded עם חוזה תמיכה ארוך מאוד. כמה ארוך? מערכת XP Embedded נתמכת עד 12/1/2016, כלומר יש כמעט שנתיים נוספות עד שהבנקים יצטרכו להחליף מערכות כספומטים. אגב, עם XP Embedded אין יותר את יום שלישי כיום שחרור טלאים. שם – אם יש טלאי אבטחה, הוא נשלח באותו יום. אך הוא כמובן מוטמע מתי שחברת התמיכה בכספומטים מחליטה. 

אז אפשר להרגיע עם כל הפאניקה. לבנקים יש עדיפות מאוד גבוהה בשמירה על מערכות כספומטים. אחרי הכל, זה המקור הכי קרוב לגנבים לגנוב שטרות. 

אגב, אחת השמועות מחברה ידועה מעובדי רד-האט היא שישנם כמה בנקים שמתעניינים דווקא בלהסב מערכות כספומטים מבוססות לינוקס כל עוד רד-האט תתן תמיכה מאוד ארוכה למערכת הפעלה. סביר להניח שאם זה יגיע לשלב חתימת חוזים, זה יפורסם. אני בספק גדול אם בנקים פה יכניסו כספומטים מבוססי לינוקס (אם כי כיום כמעט כל הבנקים מריצים או עוברים להריץ Linux כמערכת מרכזית ב-Back End או לינוקס כ-VM על מערכות zOS (מיינפריים).