הבלוג של ארתיום
בלוג על לינוקס, תוכנה חופשית, מוזיקה, סלסה, ומה לא!
זקוק לעזרה מקהילה או... למי יש ARM פנוי?
בימים אחרונים אני מנסה לתת ל־CppCMS עוד נישה פוטנציאלית והיא מערכות משובצות מחשב. בד"כ שפות כמו php ו־python כבדות עבור מערכות כאלה. פה בדיוק סביבת פיתוח נוחה יכולה לעזור.
בנוסף, קיימים מספר פתרונות דומים בשוק והם Wt ו־Klone. אבל, Klone לא נותן כלים ש־CppCMS נותן ו־Wt בנוי בצורה שלטעמי שגויה -- גישה של מפתח GUI ולא web.
אז, עשיתי כמה שיפוצים ב־CppCMS כך שהוא יוכל לתמוך גם בסביבות משובצות מחשב, ביניהם: ביטול רכיבים מיותרים, למשל, אם בונים CGI טהור, אז אין מרכיב s/f-cgi, ניהול threads וכד'. הוצאה מערכת cache ודחיסה עבור יישומי כאלה כי בד"כ זיכרון הוא יקר ועוד.
לאחר מספר אופטימיזציות, הצלחתי להגיע ליישום בגודל של כ־550K שזה כמעט חצי ממה ש־Wt הצליחו להגיע.
מה נותר? לבדוק את היישום על פלטפורמת ARM אמתית. כיום, כל הבדיקות נעשו בעזרת qemu-arm. לכן, אני זקוק לעזרתכם.
מה מדרש?
כל מי שיש לו גישה ל־ARM עם לינוקס מותקן עליו, אנא עִזרו:
- הורידו את הקובץ הבא.
- העבירו אותו לסביבת ARM שלכם ותפרסו.
תנסו להריץ:
./hello.dynamic -c config.txt
זהו קובץ ריצה שמקומפל דינאמית רק עם ספריות בסיסיות כמו libstdc++. אם הוא לא מצליח בגלל העדר ספריות תנסו:
./hello.static -c config.txt
בכל מקרה, אמור להתקבל פלט של Headers של cgi ותוכן HTML עצמו.
- אם יש אפשרות, אנא בדקו את זמן הריצה עם time.
- אם במקרה, יש לכם שרת web בסביבה שלכם אני אשמח אם תוכלו להריץ את ה־cgi שבספריה (רק שעדכנו את השם של קובץ ריצה לזה שהצליח (סטטי או דינאמי) בהתאם.
אם הכל יעבוד ואם תהיה נכונות מצדכם, אני אשמח להכין סדרה של סקריפטים ובדיקות מול ARM כדי לוודא שכל המרכיבים הנדרשים עובדים כמו sessions, תבניות ועוד.
תודה רבה, מראש!
תגובות
אין לי מחשב מבוסס ARM אבל כל מי שעם אופן מוקו יכול לעזור לך, רק כמה דברים חשובים:
זה סתם מידע שגיליתי מאנשים שמתעסקים ב embedded.
ברור לי, בעצמי כתבתי קוד עובר arm ב־embedded אבל לא עבור Linux. לכן, חשוב לי להבין במה מדובר.
בסופו של דבר, מה שחשוב זה כיצד לקמפל את הכל. אני צמצמתי את התלויות למינימום: שני ספריות boost ו־cgicc כך שזו ממש לא בעיה לקמפל את הכל לסביבה מתאימה (רק צריך לדעת איך)
היי, אם תרצה .. אני מלמד בראשון ורביעי אחה"צ ליד קניון איילון בר"ג . כאשר אני מלמד , אני לא יכול כמובן לענות לטלפון הסלולארי .. אז אתה מוזמן לשבת בכיתה (או מחוץ לכיתה) ולבדוק ולעבוד עליו .. אופן מוקו , כמובן .
אם זה מתאים , אתה יכול ליצור איתי קשר במייל doron AT ofek.biz .
מהו הפלט של file על הקובץ?
(התחלתי לכתוב כאן משהו יותר ארוך, אך הוא נמחק ב־reload. אם אפשר לא להרוס תכונות מועילות של הדפדפן, זה יעזור)
$ file hello.*c
hello.dynamic: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.4.1, dynamically linked (uses shared libs), for GNU/Linux 2.4.1, stripped
hello.static: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.4.1, statically linked, for GNU/Linux 2.4.1, stripped
אתה עשית reload לדף או לחצת תצוגה מקדימה?
כי אני משתמש בטופס סטנדרטי ביותר שאמור לעבוד בצורה רגילה למידי עם דפדפן.
אגב, עוד פרמטר:
היי, הרצתי את הסטטי על N810 והוא עובד. ה-time הוא
real 0.115s user 0.008s sys 0.008s
(המעבד הוא 400MHz מסכן)
הדינמי משום מה נכשל על
-bash: ./hello.dynamic: No such file or directory
וגם ldd עליו צועק
: line 115: ./hello.dynamic: No such file or directory
אשמח כנראה לעזור, עד כדי שמעצבן להקליד על המקלדת הקטנה של המכשיר.
המון תודה!!!
תגיד, האם הקובץ הראשון נתן HTML עם הטקסט hello?
לגבי השני, אתה בטוח שהקלדת את השם נכון? כי זה קצת מוזר.
בכל מקרה המון תודה!
בכיף. אני לא זוכר בדיוק מה הראשון הדפיס, אבל זו היתה בבירור תשובה הגיונית לבקשת http (הדרים ואחריהם קובץ html).
לגבי השני, בדקתי את זה כמה פעמים וגם השתמשתי ב-tab completion, כך שטעות מצידי פחות סבירה; בכל מקרה ldd לא אמור להגיד line 115 אלא
ldd: ./hello.dynamic: No such file or directory
וניסיתי להריץ ldd על עצמו, כך שהוא כן עובד.
תודה רני,
גם דורון אמר על שגיאה דומה.
כנראה אני מקמפל בצורה לא נכונה.
הוסף תגובה:
חובה לאפשר JavaScript כדי להגיב.