BinaryVision

Tag: קוד פתוח

פיתוח Mokonnect

by on יונ.05, 2009, under כללי

מבוא

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

קווים מנחים

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

  • שימוש קל כשרוצים לעשות משהו פשוט
  • אפשרות לשימוש בכל אחת משיטות החיבור
  • שימוש מתקדם אפשרי למי שרוצה בכך
  • אפשרות לשמור מצבים ולהחליף ביניהם בצורה מהירה

Mockup

תמונות שציירתי עוד לפני שהתחלתי לפתח (כדי לראות איך זה יראה, ואם זה נוח לשימוש):

מסך ראשי

מסך ראשי


רשת USB

רשת USB


Wifi

Wifi


ניתוב

ניתוב

שיטות שימוש

התחברות לרשת אלחוטית פעם אחת

פותחים את התוכנה, לוחצים על Wifi, מכוונים את ההגדרות, לוחצים על Apply, מחכים שהוא יתחבר ויציג פלט, ויוצאים מהתוכנה

התחברות לרשת אלחוטית יותר מפעם אחת

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

התחברות לGPRS וניתוב האינטרט לחיבור USB

פותחים את התוכנה, מגדירים את החיבור USB, לוחצים Apply, כנ"ל גם החיבור GPRS, לוחצים Apply,
הולכים לRoute, מגדירים שם מי החיבור הראשי, מאיפה לוקחים DNS, ומי נמצא בNAT וכאלה, לוחצים Apply,
בתפריט הראשי שומרים את הפרופיל, ופעם הבאה ההגדרות האלה יהיו במרחק בחירת פרופיל מתוך רשימה.

סביבת פיתוח

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

סביבת הפיתוח

סביבת הפיתוח

  • VMWare Workstation – כי זה מהיר מאד בWindows, ונוח…
  • Slackware 12.2 – אם יש כלי פיתוח כלשהו שצריך ומשתמשים בו בעולם, אז הוא קיים בהתקנה הבסיסית של Slackware.

דברים שהתקנתי ובעיות שפתרתי:

  • Enlightment DR17 – החדש שהמוקו מריץ (בעזרת סרקריפט easy_e17.sh שלוקח לו שנים לרוץ)
  • Illume-SHR Profile – ערכת נושא והגדרות לillume (מתוך הGIT של הפרוייקט)
  • הגדרת DPI נכונה – ההגדרה צריכה להיות פי 2 יותר קטנה מהDPI הנוכחי. (בתוך הX11 כבר)
  • e17 Python Bindings – אני רוצה לבנות את התוכנה בPython (מתוך המקור של e17)

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

התקדמות

תמונת מסך: מסך ראשי

תמונת מסך: מסך ראשי


מי שרוצה לראות את הקוד בצורה יפה: http://code.assembla.com/shrdev/subversion/nodes/Mokonnect/trunk
קישור לSVN למי שרוצה: http://subversion.assembla.com/svn/shrdev/Mokonnect/trunk
כפי ששמתם לב אני משתמש בAssembla לצרכי שמירת הקוד שלי, ואולי גם אשתמש בWiki שם לצורך תיעוד.
בכל מקרה המצב של הקוד כרגע לא משהו.
יש GUI, בערך קרוב למה שתכננתי, ויש גם את ההגדרות של USB Network,
כל השאר לא פעיל בינתיים.
בתוך ההגדרות של USB Network, אני נלחם עם Apply בצורה חכמה,
תמונת מסך: USB

תמונת מסך: USB


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

תשאירו תגובות, הערות, הצעות לשיפור, או בכלל אם יש לכם משהו להגיד.

9 Comments :, , , , more...

מערכת ההפעלה של גוגל (Android)

by on ינו.25, 2009, under כללי

פתיח

מי שלא יודע על מה אני מדבר בכלל,
אז גוגל (Google) הוציאו מערכת הפעלה לטלפונים ניידים ושהקוד מקור שלה פתוח לכולם, וקוראים לה Android.
http://www.android.com

יצא לי להתקין את הPort של המערכת לNeo FreeRunner של OpenMoko.
והנה כמה התרשמויות שלי לגבי הbeta2 של המערכת שהועבר לFreeRunner תודות לעבודתם הקשה של אנשי קהילת הקוד הפתוח שהחליפו פקודות שמיועדות לArm5 בפקודות שמיועדות לArm4, והוסיפו דריברים מתאימים כך שאני אוכל להתקין את הAndroid על המוקו.
הbeta2 יצא לא מזמן (22 לינואר נדמה לי) אז הורדתי אותו והתקנתי.
http://freerunner.android.koolu.com/release-files

Booting Android

התקנה

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

  • מורידים את הkernel image, עושים Flash בעזרת dfu-util בWindows, מחכים איזה 2-3 דקות.
  • מורידים את הrootfs (מערכת הקבצים), עושים Flash בעזרת dfu-util, מחכים איזה משהו כמו 20 דקות (זה ממש ארוך…)
  • בהזדמנות גם עדכנתי את Qi לגרסה החדשה (זה הBootLoader החדש, והוא עובד די טוב עם Android)

שלפתי את הכרטיס 512 מגה שבא יחד עם המכשיר, הכנסתי אותו למחשב הנייד ופירמטתי אותו ל 2 מחיצות בעזרת Acronis Disk Director.
מחיצה ראשונה Fat32 בגודל 256, והשנייה Ext3 בגודל 256.
אני לא מכניס SIM Card, כי אין לי אחד מיותר, ואני יודע שהAndroid יעלה אצלי גם בלי הSIM.
אחרי כל ההתקנה, מפעילים את המכשיר.

Running Android

התרשמות

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

בעיות

חשוב לשים לב שהבעיות כאן נובעות כמעט כולן מהPort של אנדרויד לOpenMoko, ולא משליך על הG1 המקורי.

  • המקלדת הוירטואלית צריכה עוד עבודה, היא לא כלכך נוחה, ולא עובדת בכל המקומות (למשל הקלדת שם הרשת האלחוטית)
  • לא הצלחתי לגרום לWifi לעבוד, הוא גם לא מזהה רשתות בעצמו מסביב, וגם אחרי שאני סופסוף מצליח להעתיק טקסט בNotes ולשים אותו בטקסט של הוספת רשת חדשה, הוא כותב לי גם שלא יכול לשמור את הרשת…
  • Bluetooth לא נדלק…

מסקנות

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

2 Comments :, , , more...

מחפש משהו?

תשתמש בטופס למטה כדי לחפש באתר: