doupto.com 15k$ video contest
‏הצגת רשומות עם תוויות kext. הצג את כל הרשומות
‏הצגת רשומות עם תוויות kext. הצג את כל הרשומות

יום שבת, 16 באוגוסט 2008

איך לגשת לקבצים בדיוידי של ההתקנה



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


1. מתוך חלונות ניתן לבצע Browse על הקבצים אם התקנו תוכנה שמזהה פורמטים של מק כמו MacDrive שמוסבר בפוסט הזה. ואז כמובן שניתן לחלץ ולהעתיק כל קובץ שמעוניינים בו על הדיוידי.


2. מתוך מק מהטרמינל ניתן לגשת אל התוכן של הדיוידי (נניח ששם הדיוידי הוא: Leopard_10.5.4) אז אחרי הכנסת הדיוידי, פתחו טרמינל ורשומו:
cd /Volumes/Leopard_10.5.4
מכאן ניתן להשתמש בפקודות טרמינל פשוטות כגון cd כדי לעבור מספריה לספריה, או בפקודה ls כדי להציג את רשימת הספריות והקבצים באותה ספריה שעברתם אליה, או cp כדי להעתיק קבצים מהדיוידי אל המחשב.


3. אופציה נוספת היא דרך הפיינדר, פשוט לפתוח חלון פיינדר של מק וללחוץ על רצף המקשים: CMD+Shift+G (או מהתפריט של הפיינד Goto->Folder) זה יציג שורה שאליה ניתן להקליד נתיב (Path) כמו שורת ה Address של explorer ופשוט שם תקלידו את הנתיב:Volumes/Leopard_10.5.4/ ואז תוכלו להכנס אל הספריות הרצויות בצורה רגילה.


4. השיטה האחרונה שאציין כאן כוללת התקנה של תוכנה הניקראת Pacifist, זו תוכנה המאפשרת "לחפור ולחפש" בנבכי התקנות, כולל דיוידי של התקנה לאופרד. בעזרתה ניתן לראות ולהעתיק ולהתקין חבילות מתוך הדיוידי, מי שהתקין Leo4Allv3 יש לו את התוכנה כבר מותקנת.

הסיפריות שעלולות לעניין אתכם הן:
Volumes/Leopard_10.5.4/System/Extensions/ המכילה את כל הדרייברים שגורמים לדיוידי לעלות (כולל בקרים של דיסקים) כך שאם יש לכם דיוידי שמצליח לעלות אבל אחרי ההתקנה מקבלים Still waiting for root device אז תעתיקו את כל הדרייברים שמכילים את השם ATA אל הספריית דרייברים שלכם וזה יפתור את הבעיה.

בנוסף יש את הספריה:
Volumes/Leopard_10.5.4/System/Install/ אשר מכילה את כל ה Packages של ההתקנה כולל תוכנות ודרייברים צד שלישי (שבוחרים מתוכם בשלב ה Customize), כך שאם למשל לא התקנתם דרייבר לכרטיס רשת ואתם מעוניינים להתקין אותו מתוך הדיוידי ללא צורך להתקין את המערכת מחדש, ניתן לגשת לספריה הזו, למצוא את הדרייבר המתאים ולהתקין.

מקווה שזה מספק,
שי.

יום חמישי, 26 ביוני 2008

האקינטוש נתקע - מה לעשות?

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

מצב: התקנתם לאחרונה Kext או עדכון למערכת OSX, אחרי אתחול המערכת לא נטענת
וה-"Gray Apple screen" נשאר הרבה זמן ("system Hangs at boot").
מצב נוסף הוא שקיבלתם הודעת Kernel Panic הידועה בכינוי SOD.

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



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

3. בשלב הבא רישמו את הפקודה "v-" (ללא גרשיים), וזה יאתחל את המערכת ללא הצגת "Gray Apple Screen", ויציג הרבה שורות פקודה במקום (ידוע בשם "מצב verbose").

4. במצב הזה תוכלו לראות את כל הצעדים שהמערכת עושה כדי להטען. אתם תראו טעינה של Kext, טעינת של חבילות, שגיאות ואזהרות שיופיעו.
5. תצטרכו לחפש שורות שנראות כמו שגיאות, בדר"כ הן כוללות את המילים "error" או
"exception" בתוכן. בנוסף חפשו את המילה "Panic". זה אומר שהמערכת לא יכולה להטען יותר מנקודה זו. אם מצאתם שורה כזו, קיראו כמה שורות לפני וכמה שורות אחרי (אם ישנן כאלו), והן יתנו לנו יותר מידע על מה שקרה או מה חסר, או מה נכשל. ראו דוגמא לשגיאת Panic שתקבלו מושג.

6. רישמו את השורות שאתם חושדים בהן וחפשו אותן בגוגל, אלא אם אתם כבר יודעים שזה קשור לחבילת עדכון או ה-Kext שהתקנתם.

7. בשלב הבא אתחלו את המחשב אבל הפעם בשורת הפקודה רישמו "s -f -x -v-" (ללא גרשיים), זה ינסה לאתחל את המערכת לתוך "מצב בטוח" ול-single user. כדי לקבל יותר פרטים על התהליך ראו את הפוסט הזה.

8. אם הגעתם לשלב זה אז המערכת שלכם יכולה לעלות אבל בזמן עליית GUI (או טעינת Kext) היא נכשלת (לכו לשלב הבא). אם לא אז לכו לפוסט -"Access OS X files externally" ושחזרו את קבצי הגיבוי שלפני ההתקנה האחרונה. אם לא גיביתם את הקבצים, אז נסו לשנות את שמות הקבצים המותקנים (שכנראה גרמו ל-Panic) וזאת כדי שהמערכת לא תוכל לטעון אותם, ואז אתחלו (בכמה מקרים זה יעבוד).

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

תיקון מס' 1:
פתרון ראשון זה מנסה לתקן הרשאות unix לכל הקבצים שבדיסק.
בשורת הפקודה הקלידו:
diskutil repairPermissions diskXsY
(כאשר X זה המספר של הכונן של לאופרד מתחיל ב-0, ו-Y זה המספר של המחיצה של לאופרד מתחיל מ-1 , למשל RD=DISK0S1)
זה אמור לקחת קצת זמן. בהתחלה כדי שתהיה לכם אינדיקציה שהבדיקה מתחילה אתם תראו:
Started verify/repair permissions on disk disk0s2 Leopard
בשלב הבא תיראו טקסט בתהליך , שנראה כך:
[ 0%..10%..20%......................................... ]
אם יש תיקון הרשאות אתם תיראו זאת כך:
Group differs on "Applications/.DS_Store", should be 80, group is 501
User differs on "Library/Internet Plug-Ins/flashplayer.xpt", should be 0, user is 501
בסיום התהליך אתם תראו 100% , ותהיה אינדקציה לכך שנראית כך:
[ + 0%..10%..20%..30%..40%..50%..60%..70%..80%..90%..100% ]
Finished verify/repair permissions on disk disk0s2 Leopard

תיקון מס' 2:
תיקון זה מציע פשוט לשחזר את המערכת עם קבצי הגיבוי (אתם תמיד אמורים לשמור Kext שאתם אמורים להתקין. אני בדר"כ משנה את השם ל-kextName.old ובצורה כזו אני תמיד יכול לחזור אליו, אפילו אם עבר שבוע מאז התקנת ה-Kext החדש). בכדי לשחזר מתוך מצב single user, עבדו כך (החליפו ב-KextName t את שם ה-Kext שאתם עומדים לשחזר):
cd /System/Library/Extensions
mv KextName.kext KextName.bad
(זה ישנה את שם ה-Kext הפגום)
mv KextName.old KextName.kext
(זה ישנה את שם ה-Kext המגובה ויגדיר אותו כנוכחי)
chmod -R 755 KextName.kext
(זה יגדיר את ההרשאות הנכונות)
chown -R 0:0 KextName.kext
(זה יגדיר את הבעלים של הקבצים למשתמש מערכת (root))
rm /System/Library/Extensions.mkext
(זה יאפס את כל ה-kext caching שנעשו ע"י OSX)

תיקון מס' 3:
אם אין לכן גיבוי או שהשחזור לא עזר, אז התיקון הבא מציע להסיר את ה-kext/bundle/demon/application כדי שלא יעלה בכלל. שימו לב שזה יעבוד רק קבצים לא הכרחיים, למשל אם תסירו את GeForce.kext או ATIx1000.kext זה בסדר. אם יש לכם יותר קבצי kext (כמו ברירת מחדל דרייבר VESA) שדואגים להעלות דרייברים כלליים, או אם תסירו PS2 או בלוטות, זה בסדר מאחר שמקסימום הנזק שיגרם זה שלא יהיה לכם עכבר/מקלדת או שלא יהיה בלוטות, אבל המערכת עדיין תטען. אבל אם תנסו להסיר AppleSMBIOS.kext או AppleACPIPlatform.kext, אז המערכת כנראה אפילו לא תאותחל שוב למצב single user.
אז כדי לשנות את שם ה-kext, תפעלו כך:
cd /System/Library/Extensions
mv KextName.kext KextName.bad
rm /System/Library/Extensions.mkext
אתחלו.

תיקון מס' 4:
אם אין לכם גיבוי, תוכלו להוריד את קובץ ה-kext מהאינטרנט, או לחלץ אותו מתוך הקובץ תמונה (ISO) או DVD של ההתקנה תוך שימוש בתוכנת pacifist, או שתוכלו להתקין עותק נקי על כונן/מחיצה/מחשב אחר ולחלץ משם את ה-pacifist הנחוץ או אפילו את כל תיקיית ה-extensions.
תיקון מס' 5:
לפעמים המחשב נתקע כתוצאה מתוכנית או מתצורה שהתקנתם שמשנה את הברירות מחדל של המערכת. הדרך לאפס היא להסיר קבצי ההעדפות שהתוכנית התקינה, והמערכת תקרא את הערכים מתוך ברירת המחדל שלה.
כדי לעשות את זה, שנו את שמות הקבצים החשודים (תוך שימוש בפקודות mv כמו מקודם). הם יכולים להמצא בתיקיה הבאה:
/Library/Preferences/SystemConfiguration
(פתיחת קבצי תצורה)
/Library/Services
(שירותים שהותקנו)
/Library/StartupItems
(פריטים שנטענים עם המערכת)
/System/Library/LaunchDaemons
(תיקייה זו מכילה את כל ה-demons שנטענים בזמן האתחול)
/System/Library/LaunchAgents
(תיקייה זו מכילה את כל ה-agents שנטענים בזמן האתחול)
/Library/LaunchDaemons
(תיקייה זו מכילה את כל ה-demons שנטענים עבור משתמש מערכת root)
/Library/LaunchAgents
(תיקייה זו מכילה את כל ה-agents שנטענים עבור משתמש מערכת root)
/System/Library/SystemConfiguration
(פתיחת קבצי תצורה)
/Users/[some user name]/Library/Preferences
(העדפות משתמש ספציפי)

תיקון מס' 6:
התהליך הזה הוא שלב אחד לפני שתשקלו להתקין את OSX מחדש, אבל זה יכול להיות ארוך ותצטרכו מק נוסף.התיקון הוא להתקין מחדש את ה-kext/bundle/application. אולי ההעתק/ההתקנה לא הצליחה לגמרי. אם התקנתם חבילה עם סיומת mpkg/pkg אז ה-mpkg הוא ספרייה שמכילה ספרייה בשם Packages בתוכה, שכוללת את כל קבצי ה-pkg שאמורים להיות מותקנים. קובץ ה-pkg כולל בתוכו גם קובץ דחוס gzip, שמוגדר מתוך סקריפט שאומר לו מה לחלץ ולאיפה להעתיק את הקבצים (יכולים להיות הרבה מקומות, לא רק ספרייה אחת).
אם תרצו להתקין באופו ידני (או לבדוק אילו קבצים מועתקים בזמן ההתקנה ולהסיר אותם, או לוודא שהם הועתקו), אז תצטרכו לחלץ את כל הקובץ הדחוס, את רשימת הקבצים, למצוא אותם על הדיסק ולהעתיקם מחדש או להסירם.
התהליך מומלץ אך ורק אם יש לכם רשימה קטנה של קבצים. יכולה להיות אפילו טעות קטנה שיכולה לגרור שעות של עבודה. מה שאני כן ממליץ לעשות לפני התקנת חבילה שכזו זה למצוא את הקבצים שאמורים להיות מותקנים מחדש, ולגבות את הקבצים הקיימים. תוכלו להשתמש גם בתוכנת pacifist על קובץ "bom" (דומה לקובץ דחוס) ולראות את כל הקבצים והספריות בתוך החבילה.
דרך אחרת זה למצוא איזה חבילות כבר מותקנות על המערכת (ואולי להסיר את הבעייתית). זה יכול להעשות מתוך שורת הפקודה ע"י שימוש ב-"pkgutil". הקלידו את זה והקישו אנטר ואז תראו את מסך העזרה. תוכלו להתסכל גם בתוך תיקיה בשם "Receipts" ששומרת את החבילה שהותקנה בנפח המתאים. תיקיה זו יכולה להמצא ב:
/Library/Receipts
/Users/[some user name]/Receipts

הסבר נוסף:
אם מצב אתחול ה-verbose הראשון לא עזר בכדי להבין את הבעיה אז תוכלו לחפש רמז בתוך קובצי הרישום של המערכת. קבצים אלו יכולים להמצא כאן:
/Library/Logs
/var/log
/Users/[some user name]/Library/Logs

תהנו, מקווה שזה יעזור לכם.
תורגם ע"י מק-מן

יום רביעי, 18 ביוני 2008

איך מעדכנים מ 10.5.1 ל 10.5.2

כאשר מתקינים האקינטוש, מקבלים לאופרד מגרסה מסויימת (תלוי מה הורדתם), אני קיבלתי את שלי מ uphack iAtkos 10.5.1 שלכם עשויה להיות שונה, תבדקו איזו גרסה יש לכם דרך החלונית "About" (מתפריט התפוח תלחצו על "About this Mac")


עכשיו שאתם יודעים איזו גרסה יש לכם ואם יש לכם PC_EFI מותקן (קראו כאן איך בודקים אם יש לכם EFI).


שדרגו ל 10.5.2 ע"י 10 צעדים הבאים:

1. ראשית הורידו את העדכון מאפל בכתובת זו. (אל תשתמשו ב Software Update זה לא יעבוד!!)




2.גבו את הספריה:

/System/Library/Extensions

רק למקרה שתזדקקו לשחזור




3. פתחו טרמינל וכתבו את הפקודות הבאות:

sudo -s

הקלידו את סיסמתכם וליחצו אנטר

while sleep 1 ; do rm -rf /System/Library/Extensions/AppleIntelCPUPowerManagement.kext ; done

(שורה זו לא תחזור לפרומפט מאחר וזאת שורה הרצה בלולאה אין סופית)


שורה זו תבדוק כל שניה אם קובץ בשם: "AppleIntelCPUPowermanagement.kext " ימצא בסיפריה extension וכאשר הקובץ יימצא הוא ימחק מיד,הסקריפט ירוץ ולא יחזיר פרומפט (אל תסגרו אותו עדיין), אם אתם מעוניינים לדעת האם הסקריפט עובד צרו ספריה ושנו את שמה ל: "AppleIntelCPUPowermanagement.kext" ואז העתיקו אותה אל /System/Library/Extensions, היא אמורה להימחק מייד במידה והסקריפט עובד



4. התקינו את העדכון שהורדתם ותנו לו לסיים (לא ללחוץ Finish)




5. כשההתקנה מסתיימת אל תלחצו על כפתור Restart עדיין!




6.עכשיו עצרו את הסקריפט בטרמינל ע"י לחיצה על control + C (ctrl+C)




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

cd /System/InstallAtStartup/scripts

ערכו את הסקריפט בשם '1' כך:

vi 1




8. כעת הטרמינל יציג את תכולת הקובץ, עכשיו השתמשו בעזרת מקשי החיצים כדי לנווט אל סוף הקובץ שם תמצאו שורה כזאת:

kextload /System/Library/Extensions/Dont Steal Mac OS X.kext

תלחצו I (משמעות: insert) כדי להיכנס למצב עריכה




9. שנו את השורה הזאת:

/System/Library/Extensions/Dont Steal Mac OS X.kext

כדי שתראה כך:

/System/Library/Extensions/dsmos.kext

לחצו Esc כדי לצאת ממצב עריכה ולחצו על : כדי לקבל פרומפט של עורך VI ואז רישמו: !w (שמשמעותו היא לכתוב את השינויים לקובץ גם אם הוא לקריאה בלבד) ולחצו אנטר, אחר כך ליחצו: : וכיתבו: q (משמעות: quit) ועל ידי כך יצאתם מעורך ה vi.




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


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


כעת יש לכם 10.5.2.


בדקו את החלונית About היאצריכה להראות דומה לזאת:



אתם גם אמורים לראות את סימן ההיכר של עדכון 10.5.2 שהוא ה Stacks בצורת List:






ניתן לראות את רשימת הפיצ'רים והתיקוני באגים כאן.


תהנו.

יום שבת, 31 במאי 2008

איך מעדכנים מ 10.5.2 ל 10.5.3

כאשר מתקינים לאופרד מקבלים גרסה מסויימת מסוג 10.5 את שלי התקנתי מ uphack iAtkos 10.5.1 שלכם עלולה להיות גרסה שונה כגון 10.5.2, בידקו איזו גרסה יש לכם מהדיאלוג: "About" מתפריט התפוח ביחרו באופציה: "About this Mac" ושם תופיע מספר הגרסה.


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

הדבר השני שיש לבדוק הוא האם ה Kernel שבא עם ההתקנה שלכם הוא מאפל (ליבה אמיתית) Vanilla, זאת ניתן לעשות ע"י הפקודה הבאה בטרמינל:

strings /mach_kernel | grep Darwin

(שימו לב לאות הגדולה D במילה Darwin), ותוחזר לכם שורה המתארת את הגרסה של הליבה (kernel) שלכם לדוגמה:

Darwin Kernel Version 9.1.0: Sat Nov 17 02:37:09 SCT 2007; made by ToH:xnu-1228.0.2~1/BUILD/obj/RELEASE_I386

שימו לב לחלק המודגש שמתאר ע"י מי נכתבה הליבה, במקרה זה TOH, ובהתחלה ניתן לראות את הגירסה שבמקרה זה היא: 9.1.0. אם יש לכם ליבה מקורית של אפל (Vanilla Kernel) אז במקום השם TOH יהיה root.


שימו לב: אם אין לכם EFI מותקן ו ליבה מקורית (Vanilla Kernel) אתם לא יכולים עדיין להתקין 10.5.3 תצטרכו להמתין שישחררו ליבה 9.3.0 פרוצה.


שימו לב: בנסיון הראשון שלי ניסיתי להתקין על גבי iAtkos_v1.0i בעל EFI אך עם ליבה לא מקורית וקיבלתי את המסכי קריסה הבאים:





רק אחרי שהתקנתי Leo4Allv3 ושחזרתי את כל הגדרות המערכת והמשתמש (תודות ל Time Machine שלי) הצלחתי לעדכן בהצלחה.


להלן 10 הצעדים:

1. ראשית הורידו את חבילת העדכון מאפל בכתובת הזו הגודל שלה צריך להיות כ 531MB. (אל תשתמשו בעדכון תוכנה (Software Update) כי זה לא יעבוד!!)




2. גבו את ספריית הדרייברים שלכם שנמצאת ב:

/System/Library/Extensions




3. פתחו טרמינל וכתבו את הפקודות הבאות:

sudo -s

הקלידו את סיסמתכם ולחצו אנטר

while sleep 1 ; do rm -rf /System/Library/Extensions/AppleIntelCPUPowerManagement.kext ; done

פקודה זאת לא תחזיר תגובה או פרומפט, זוהי לולאה שבודקת כל שניה את ספריית הדרייברים שלכם, בשניה שנמצא שם קובץ ניהול הכח "AppleIntelCPUPowermanagement.kext" (שמשבש את ההאקינטוש) הלולאה תדאג למחוק אותו


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

/System/Library/Extensions

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



4. התחילו את ההתקנה ותנו לה לסיים (אל תלחצו בסוף Restart)







5. אל תלחצו בסוף Restart!




6. עכשיו עצרו את הסקריפט שרץ בטרמינל ע"י לחיצה על המקשים Ctrl + C


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

cd /System/InstallAtStartup/scripts

ערכו את הקובץ בשם '1' עם העורך VI כך:

vi 1


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

kextload /System/Library/Extensions/Dont Steal Mac OS X.kext

לחצו על המקש I (קיצור למילה insert) כדי להכנס למצב עריכה




9. מחקו את הערך:

Dont Steal Mac OS X

והחליפו אותו בערך הזה:

dsmos

כך שבסוף תקבלו שורה שניראת כך:

kextload /System/Library/Extensions/dsmos.kext

לחצו על המקש  Esc כדי לצאת ממצב עריכה,

 לחצו על : כדי להכנס לפרומפט של VI וכתבו !w (שמציין לשמור את השינויים לדיסק גם אם הקובץ הוא לקריאה בלבד) ולחצו אנטר, לאחר מכן לחצו שוב על : וכתבו q (קיצור ליציאה) ותחזרו למסך הטרמינל הקודם.





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


לא אמורים להיות כאלה דרייברים הביטו בדרייברים שאמורים להשתנות (רק אם פרצתם כרטיס מסך של אינטר 3100 אז אולי תצטרכו לשחזר):



לסיום לחצו על האתחול במסך ההתקנה, לחצו על Restart.


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


כדי לוודא שאכן יש לכם 10.5.3 פתחו את דיאלוג ה About הוא צריך להראות דומה לזה:



אתם גם אמורים לראות את התכונה שמאפיינת את גרסה 10.5.3 בהגדרות של ה "Time Machine":




אני לא מצאתי את ההגדרה הזאת אך כל שאר הסממנים הצביעו שיש לי 10.5.3 (גם ה About וגם הפקודה שבודקת את הליבה.


תהנו.

יום רביעי, 28 במאי 2008

איך לפרוץ kext


האמת שזאת לא ממש שיטת "פריצה", אבל זאת שיטה קרובה יותר לפריצה מאשר להתקנה רגילה,
מטרת שיטה זו היא לאפשר התקנת דרייברים (Kext) לחומרה שלא נתמכת, ע"י הוספת ערכים לדרייבר דומה, כלומר אפשר לקחת דרייבר דומה שקרוב לחומרה שלנו (למשל אם יש לנו כרטיס מסך ATI1600 ואפל שחררה דרייבר רק ל ATI1000) ולשנות אותו כך שיתאים גם לחומרה שלנו.

את השיטה הזו ניתן לממש על כל סוג של חומרה או דרייבר, תחילה בידקו האם יש kext כמו שאתם צריכים כבר ברשת, שנית בידקו אולי מישהו ניסה ויכול להגיד אם זה הצליח לו או לא, ובסוף אתם מוזמנים לנסות את השיטה הזו הנקראת עריכת קובץ Plist.

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

מזההי החומרה נדונו בפרק "אספו ושמרו את המידע על החומרה שיש לכם כיום", ומוסבר בפרק זה היכן מוצאים את מזהי החומרה ואיך שומרים אותם. ישנם שני מזהי חומרה חשובים, האחד מזהה החברה שמייצרת את החומרה (Vendor ID) והשני מזהה הרכיב שלו אנו מעוניינים להתקין את הדרייבר (Device ID). לדוגמה אם אנו מתקינים רכיב חומרה שהוא כרטיס רשת של אינטל אז מזהה החברה יהיה: 8086 שזהו מזהה של חברת אינטל, ומזהה הרכיב יכול להיות לדוגמה 104B שמזהה את אחד מכרטיסי התקשורת של אינטל.

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

כצעד מקדים צריך לגבות את ספריית ה Kext שלכם (העתיקו אותה לספריה נפרדת), מיקום ספריית ה Kext שלכם:
/System/Library/Extensions

שנית העתיקו את ה Kext שהחלטתם לשנות/לפרוץ למיקום צדדי כמו ספריית Downloads, ובשלב הבא עליכם לערוך את הקובץ Info.plist אשר נמצא בתוך ה Kext במיקום:
/Contents
בזמן עריכת הקובץ עליכם למצוא את התאג אשר מכיל את מחרוזות ה VenID ו DevID, מחרוזות אלו נמצאות במבנה: 0xDEV_IDVEN_ID כלומר 0x כקידומת ואז מחברים לזה את ה DevID ומחברים לזה גם את ה VenID.
כלומר שאם הנתונים של הכרטיס הם:
VenID=8086
DevID=104B
אז המחרוזת שנבנה צריכה להראות כך:
0x104B8086
עכשיו שאתם יודעים איך לבנות את המחרוזת, ולאיזה קובץ צריך להכניס אותה, נשארה השאלה היכן להכניס את המחרוזת?
עליכם לחפש תאג שנקרא <> ובתוכו ערך.
הערך שתחפשו משתנה מ Kext ל Kext, לרוב תתווסף לערך המילה: match כלומר לדוגמה התאג והערך עלולים להראות כך:
  < key >IOPCIMatch< /key >
לאחר תאג זה יופיע תאג בשם:
< string >
והוא יכיל את המחרוזות שדומות לזו שאנו צריכים להוסיף, לתאג זה יש להוסיף את המחרוזת שלנו.

לאחר עריכת הקובץ, שימרו אותו העתיקו אותו חזרה, תקנו הרשאות, מיחקו את המטמון של הדרייברים, ואתחלו את המחשב עם הפרמטר f- וזהו.

עד כה דיברנו על מה שצריך לעשות, עכשיו נדבר על איך צריך לעשות את זה, לשם כך אנו זקוקים לדוגמה של דרייבר, וחומרה שלא נתמכת ואנו מעוניינים להוסיף אותה לתמיכה של הדרייבר.
נבחר דרייבר לכרטיס רשת של חברת Realtek מודל: RTL8168c.
השם המלא שיופיע בחלונות במנהל ההתקנים הוא:
Realtek RTL8168C(P)/8111C(P) PCI-E Gigabit Ethernet NIC

לאחר חיפוש ברשת מוצאים פרוייקט פיתוח שנפתח ב 2006 ופיתח דרייבר לכרטיסים מסוג זה, הפרוייקט נקרא RealtekR1000, ניתן להוריד את הקוד עם פרוייקט לסביבת הפיתוח מכאן.
אחרי שמורידים את הספריה, אפשר לראות שלא צריך לקמפל, כי עם הספריה מגיע קובץ מקומפל ובנוי שאפשר להשתמש בו הוא נמצא בספריה שהורדנו בנתיב הזה:
/RealtekR1000/build/Release/RealtekR1000.kext
ובו נשתמש בצעו את הצעדים הבאים:
1. לחצו קליק ימני על הקובץ RealtekR1000.kext ובחרו: "Show Package Contents"
2. בחלון שנפתח עברו לספריה: Contents
3. פתחו את הקובץ Info.plist בעזרת עורך טקסט
4. מיצאו את השורה: <string>0x816910ec 0x816710ec 0x816810ec 0x813610ecstring>
5. הוסיפו לה את ערכי הכרטיס שחילצתם מחלונות (נראה כך: PCI\VEN_10EC&DEV_8168)
    כלומר הוסיפו את הערך: 0x816810EC
    מצב השורה הסופית צריך להראות כך:
    <string>0x816910ec 0x816810EC 0x816710ec 0x816810ec 0x813610ecstring>
6. שמרו את השינויים, והשתמשו ב KextHelper או שבצעו את שלב 7:
7. פתחו טרמינל ורישמו (אני מניח שהקובץ נמצא בספריית Downloads):
  • sudo -s
  • הקישו את סיסמתכם ולחצו אנטר
  • cp -R ~/Downloads/RealtekR1000/build/Release/RealtekR1000.kext /System/Library/Extensions
  • chown -R 0:0 /System/Library/Extensions/RealtekR1000.kext
  • chmod -R 755 /System/Library/Extensions/RealtekR1000.kext
  • rm /System/Library/Extensions.mkext
זהו כעת אתחלו את המחשב עם הפרמטר f- ויש לכם דרייבר שיתמוך בכרטיס זה.

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

שי.

יום ראשון, 25 במאי 2008

דרייברים להאקינטוש


"איפה אפשר למצוא דרייברים ל OSX86 / האקינטוש"
זה פוסט בשביל כל מי ששאל וישאל אותי איפה אני יכול למצוא דרייבר ל... אז הנה רשימה קצרה שתוכלו להתחיל את החיפוש:

למי שאינו יודע Kext הוא הדרייבר של מק ראשי תיבות של kernel extension.
קראו את הפוסט "הכל על Kext (האקינטוש דרייבר)" כדי להבין מה זה ואיך מתקינים דרייבר.

לינקים לדרייברים ניתן למצוא ב OSX86 Project HCL (Hardware Compatibility List) יש רשימהכזאת לכל גרסת OSX ששוחררה בפרוייקט OSX86 למשל לאופרד 10.5:
Leopard 10.5.2
Leopard 10.5.1
Leopard 10.5.0
Tiger 10.4.9
Tiger 10.4.8

רשימות לינקים ופוסטים ב insanelymac:
a great compiled list of kext
Keyboard and trackpad/mouse
Video Cards
Ethernet
Wifi
CardBus/PCMCIA
Network Printers
Audio
Misc

הנה עוד לינקים חשובים שאולי לא יופיעו ברשימות:
NVInject - NVidea Injection kext שתומך בכרטיסי וידאו של nVidia
Titan - תמיכה בכרטיסי מסך ATI ו nVidia
Natit - דרייבר קוד פתוח לכרטיסי מסך ATI ו nVidia
Natit - Natit ששוחרר ע"י Netkas
PC_EFI - תמיכת EFI בשביל PC, מה שגורם ל OSX86 לקבל עדכונים מאפל
AppleSMBios - Apple System Management BIOS Driver

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

תהנו.

יום שבת, 24 במאי 2008

הכל על Kext (האקינטוש דרייבר)


מה זה KEXT?
KEXT זה ראשי תיבות של Kernel Extension, כלומר הרחבה לליבה של מערכת ההעפלה, כל מה שצריך לחיות כל הזמן במערכת ההפעלה ולרוץ מהר ולהיות זמין מרגע העליה של המערכת (כמו דרייבר) יכתב כ KEXT, בגלל שכותבים קוד כזה כהרחבה למערכת ההפעלה, ניתן להטעין את הקוד לזיכרון ולהוריד אותו מהזיכרון אפילו כשהמערכת הפעלה למעלה (מבלי הצורך באתחול), כשרוצים לפתח או לכתוב דרייבר, מפתחים אותו כ Kext.

איפה נמצאים קבצי ה Kext?
Kext הינם קבצים עם סיומת Kext, למעשה אלה אינם קבצים אלה ספריות (כמו הרבה דברים במק), אלה ספריות עם סיומת Kext וכך מערכת ההפעלה יודעת להסתיר מהמשתמש הרגיל את הסיפריה ובעצם מציגה לו קובץ (אותו דבר אפליקציות הינם ספריות עם סיומת app), הסיפריה מכילה את כל מה שהדרייבר צריך, קובץ בינארי, ספריות, Plugins, קבצי הגדרה, תמונות טקסטים ומשאבים אחרים, הכל ארוז בתקן מוגדר מראש ע"י אפל.
כדי לראות מה יש בקובץ כלשהו שהוא בעצם ספריה יש ללחוץ קליק ימני על הקובץ ולבחור באופציה "Show Package Contents", מיד יפתח חלון חדש של פיינדר (שזה הסייר של מק) ויציג את כל הקבצים והסיפריות של הקובץ.

לאופרד מחזיק את קבצי ה Kext בספריה:
/System/Library/Extensions
הספריה מכילה המון דרייברים הרבה יותר ממה שאתם צריכים, למעשה כל דרייבר שאי פעם נכתב באפל נמצא כאן. אז מה? כל עליית מחשב תעלה את כל הדרייברים למרות שאני לא זקוק להם? לא, למעשה בעליה הראשונה של מערכת ההפעלה יש מערכת יפה שכתבו באפל והיא לוקחת את המושג Plug And Play צעד אחד קדימה, למעשה כשחומרה חדשה מחוברת למחשב, או מאותחלת בזמן עליה היא מכריזה שהיא צריכה דרייבר שתומך בה, מק מחפש את הדרייבר שהכי מתאים (לפי הפרטים של רכיב החומרה) ומעלה אותו, אם אותו דרייבר זקוק לדרייבר נוסף כדי לפעול הוא יתנהג כחומרה חדשה והתהליך יחזור על עצמו עד שכל הדרייברים הנחוצים לעבודת המק יעלו. מיד בתום העליה הראשונה ישמרו כל הדרייברים לקובץ (שהוא בעצם ספריה, קלטתם) בשם: Extensions.mkext זאת ספריית או קובץ מטמון (Cache) אשר מכיל את כל הדרייברים הנחוצים למחשב הנוכחי,

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

ניתן גם לבקש מלאופרד למחוק את הקובץ ולבנות אותו מחדש מתוך הדארווין פרומפט (Darwin Prompt) בזמן עליית המחשב ע"י כתיבת הפרמטר: f- בדקו את הפוסט הזה כדי לקבל עוד מידע.

איך להטעין ולהסיר Kext מהזיכרון (בזמן שמערכת ההפעלה כבר רצה)?
ניתן להטעין ולהסיר KEXT מהזיכרון בזמן ריצה (כשמערכת ההפעלה כבר למעלה), מבלי הצורך באתחול המחשב בעזרת הפקודה: kextload ו kextunload.

כדי להטעין דרייבר (Kext) אל הזיכרון יש לפתוח טרמינל ולכתוב:
sudo kextload kextName (כאשר את kextName יש להחליף בשם ה kext שאותו מעוניינים להטעין)
ליחצו אנטר, הקלידו את סיסמתכם ולחצו אנטר.
המערכת תענה בחזרה עם הודעת הצלחה או כישלון.
קראו יותר על הפקודה בדף ההסבר על הפקודה (ManPage)

כדי להסיר Kext מהזיכרון פתחו טרמינל וכתבו:
sudo kextunload kextName (כאשר את kextName יש להחליף בשם ה kext שאותו מעוניינים להסיר)
ליחצו אנטר, הקלידו את סיסמתכם ולחצו אנטר.
המערכת תענה בחזרה עם הודעת הצלחה או כישלון.
קראו יותר על הפקודה בדף ההסבר על הפקודה (ManPage)

ניתן גם לבדוק את הסטאטוס של ה Kext בזיכרון (האם הוא טעון או לא) ע"י הפקודה: kextstat,
פתחו טרמינל והקלידו:
sudo kextstat
המערכת תציג רשימת דרייברים הטעונים לזיכרון (Kext) ומידע עליהם,
קראו יותר על הפקודה בדף ההסבר על הפקודה (ManPage)

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

איך מתקינים Kext (דרייבר) חדש?
פיתחו טרמינל והקלידו:
cd /System/Library/Extensions
mv KextName.kext KextName.old (כאשר את kextName תחליפו בשם קובץ ה kext הישן אותו אתם מחליפים, במידה והוא קיים לפני ההתקנה)
פקודה זו משנה את שמו של הדרייבר הישן וע"י כך בעצם מגבה אותו, (שימו לב שלאחר שינוי השם הסיומת כבר לא תהיה Kext ולכן מערכת ההפעלה לא תסתיר אותו כקובץ, אלה תראו בפיינדר ספריה), מאוד חשוב לבצע את השלב הזה כי הגיבוי הזה יכול להציל לכם את מערכת ההפעלה וימנע התקנות מיותרות. (לא תמיד יעזור אבל לרוב)

cd /path_to_new_kext (החליפו את הנתיב path_to_new_kext במנתיב שאליו הורדתם את קובץ ה Kext שאותו אתם מעוניינים להתקין)
cp -R KextName.kext /System/Library/Extensions
פקודה זו מעתיקה את הדרייבר אל ספריית הדרייברים.

השלב הבא הוא לתקן את ההרשאות לקובץ כדי שלמערכת ההפעלה תהיה הרשאת גישה לקובץ
cd /System/Library/Extensions
chmod -R 755 KextName.kext החליפו את KextName.kext בשם הדרייבר אותו העתקתם
chown -R 0:0 KextName.kext החליפו את KextName.kext בשם הדרייבר אותו העתקתם
rm /System/Library/Extensions.mkextפקודה זו מוחקת את המטמון של הדרייברים כדי שהדרייבר החדש יכנס אל המטמון ומעתה יעלה עם עליית המערכת

יש עזרה - KextHelper


לא הכל עבודה ידנית, יש שיטה קלה יותר, הסיבה שהסברתי גם על השיטה הידנית היא: שכל אתר שתפגשו ידבר על השיטה הידנית, והשיטה הבאה לא תתאים לכל הדרייברים, אבל ל 99% מהם כן,
זאת אפליקציה קטנה שנקראת KextHelper וניתן להוריד אותה מכאן.

KextHelper היא אפליקציה קטנה בעלת ממשק החזק-גרור-שחרר (לא מצאתי עברית טובה יותר) Drag And Drop שמאפשרת התקנה ותיקון הרשאות ומחיקת המטמון בצורה אוטומטית.

כדי להתקין את ה kext החדש בעזרת KextHelper עקבו אחרי הצעדים הבאים:
1. הריצו את KextHelper
2. גררו ושחררו לאמצע המסך את ה  kext שאתם מעוניינים להתקין
3. הזינו את סיסמתכם בשדה התחתון
4. לחצו על הכפתור "Easy Install"
5. והמתינו לתגובה של התקנה מוצלחת (Success)
6. אתחלו את המחשב (למרות שאתם יכולים ברוב המקרים להטעין ידנית - אבל זה קל יותר לאתחל)

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

תהנו.