2012-11-21 14 views
9

में ट्रैकिंग वैरिएबल असाइनमेंट्स मैं बिटबैक/ओपनमेडेड का उपयोग कर रहा हूं, लेकिन मेरी नुस्खा विफल हो जाती है क्योंकि कुछ पथ-परिवर्तनीय अंत में सही ढंग से सेट नहीं होते हैं। विशेष रूप से मैं SRC_URI में फ़ाइलों को जोड़ रहा हूं, लेकिन त्रुटि इंगित करती है कि फ़ाइल को कॉपी करने का प्रयास गलत पथ का उपयोग करके किया जाता है। इसलिएबिटबेक

1) मैं "वर्तमान" पथ-चर जब फ़ाइल का उपयोग कर इस्तेमाल किया पुष्टि कर सकते हैं कैसे: // प्रोटोकॉल

2) यह देखते हुए कि मैं किसी भी तरह की पुष्टि जो चर फ़ाइलों के लिए खोज करने के लिए प्रयोग किया जाता है, मैं कार्य ट्रैक कर सकते हैं मेरी निर्भरता-ग्राफ में परिवर्तनीय कहा? मेरा मतलब है कि, बिटबैक को नुस्खा-फाइलों के कुछ सेट में कुछ क्रम में परिवर्तनीय में संलग्न/प्रीपेड करना होगा, जो मैं अपनी त्रुटि

बोनस प्रश्न: मैं सोच रहा हूं कि मेरा वर्तमान " डीबग-विधि "मेरी व्यंजनों में त्रुटियों का पता लगाने के लिए बहुत आदिम है (उदाहरण के लिए कमांड लाइन में डीडी-डी-डी जोड़ना और बाद में आउटपुट के ढेर के माध्यम से संकेतों को देखने के लिए)। "पेशेवर" कैसे अपने बिटबेक व्यंजनों को डीबग करते हैं?

अद्यतन: मैंने पाया मेरी व्यंजनों डिबगिंग की एक बेहतर तरीका:

यह नुस्खा के लिए पता चला है, उसके बाद "को लाने" एक दिया नुस्खा का कार्य सफलतापूर्वक पूरा कर लिया है, काम फ़ोल्डर बनाया गया है। इस फ़ोल्डर के अंदर एक "अस्थायी" सब-फ़ोल्डर है जिसमें कोड निष्पादित किया गया है (उदाहरण के लिए run.do_fetch। ######) और नुस्खा में प्रत्येक कार्य के लिए परिणाम (जैसे log._do_fetch। ######) ।

"रन .. ###" फ़ाइल का निरीक्षण करने से आपको किसी भी चर के सटीक मूल्य और कार्य के लिए निष्पादित सटीक आदेश/पायथन-फ़ंक्शन बताएंगे। दिए गए "रन" का आउटपुट "लॉग .. ###" फ़ाइल में उसी आईडी/संख्या के साथ "रन" फ़ाइल के रूप में संग्रहीत किया जाता है। मैन्युअल रूप से पढ़ने के दौरान किसी भी तरह से यह बहुत ही बुनियादी जानकारी पंजीकृत नहीं हुई थी, लेकिन अब जब मैं नुस्खा विफल रहता हूं तो मैं हमेशा "temp" फ़ोल्डर में देखता हूं।

+0

पुन: * "वैरिएबल का सटीक मान" *: मैं इन 'run.' फ़ाइलों में केवल पर्यावरण चर देखता हूं। कोई बिटबैक चर नहीं है। मैं 'CFLAGS' और' RANLIB' और ऐसी चीजें देखते हैं; मुझे 'वर्कडीर', या 'एस', या 'FILESEXTRAPATHS' या जो कुछ भी दिखाई नहीं देता है। – Kaz

उत्तर

15

मुझे लगता है कि आपने बिटबेक-ए की खोज की है, है ना? यह पर्यावरण को एक बिटबैक "लक्ष्य" (यानी एक नुस्खा) के लिए विशिष्ट वातावरण को डंप करता है। मेरा मानना ​​है कि FILESPATH कुंजी चर है कि बिटबैक फ़ाइल में निर्दिष्ट फ़ाइलों को खोजने के लिए उपयोग करता है: // SRC_URI घटक। बिटबेक-ए (रेसिपी) का उपयोग करना grep^FILESPATH = उस बहुत बड़े पथ चर प्रदर्शित करेगा!

मुझे उस चर के असाइनमेंट को ट्रैक करने के तरीके के बारे में पता नहीं है, लेकिन इसे संशोधित करने के कई तरीके हैं। (असल में मुझे एक बिटबेक पैच याद है जो बिटबैक-आउट के आउटपुट को एनोटेट करेगा, जिसमें कौन सी फाइल संशोधित है, लेकिन विवरण को याद नहीं किया जा सकता है। ओई सूची पर पूछें।) किसी भी मामले में, यदि आप '=' चिह्न से हटाते हैं आपके ऊपर grep अन्य तरीकों को देख सकता है FILESPATH संशोधित किया जा सकता है। मुझे लगता है कि यह विभिन्न दस्तावेज़ों में भी शामिल है।

आखिरकार, स्टैक ओवरफ्लो पर यहां की बजाय ओपनम्बेड मेलिंग सूची पर पूछने के लिए आपको बेहतर भाग्य हो सकता है।

बिटबैक-और लॉग फ़ाइलें ($ {WORKDIR}/temp में मिली) आपके सर्वोत्तम डीबग टूल हैं। (एके-जीईपी भी देखें। कुछ बिटबेक से संबंधित उपयोग मामलों के लिए grep से बेहतर।) आप कहां काम करते हैं?

बिटबेक-ए (नुस्खा) | grep^WORKDIR =

एक बार जब आप वर्कडीर से परिचित हो जाते हैं, तो आप पैटर्न देखेंगे और इसे इस तरह से नहीं ढूंढना होगा।

हैप्पी बेकिंग!;)

+0

हां, मैं परिणामों को देखने के लिए उपयोग कर रहा हूं। लेकिन मेरी दो व्यंजनों के बीच के परिणाम अलग-अलग हैं, और मैं नहीं देख सकता कि क्यों डंप किए गए वातावरण में। –

+0

मैं किसी भी तरह से चूक गया, आपने अपने उत्तर में "वर्कडीर/अस्थायी" फ़ोल्डर का उल्लेख किया है। "अस्थायी" फ़ोल्डर की खोज करना मेरे लिए एक असली आंख खोलने वाला रहा है, और बिटबैक के साथ मेरी सफलता दर में काफी सुधार हुआ है। धन्यवाद! –

0

बाहर कर देता है, BitBake के बाद के संस्करणों में ऐसा करने के लिए एक पैच है कि वहाँ है, इसकी सिर्फ एक मैं वर्तमान में उपयोग कर रहा हूँ :-(में समर्थित नहीं

+0

हाय, एससी, क्या आप विशिष्ट पैच और आप इसका उपयोग कैसे कर सकते हैं? मैं एक ही समाधान की तलाश में हूं। – minghua

+1

@minghua मुझे खेद है, लेकिन मैं भूल गया हूं कि मुझे पैच कहाँ मिला। Google के माध्यम से बिटबैक डीबग करने के लिए सुराग के लिए खोज के माध्यम से मिला। –

0

मैं टोस्टर उपयोग करने का सुझाव होगा इंटरैक्टिव में, । मोड विन्यास पृष्ठ में, आप चर काम इतिहास को ट्रैक कर सकते हैं

mockup यहाँ है:। https://www.yoctoproject.org/toaster/build-configuration.html

"स्रोत ँ-init-निर्माण env" के बाद यह रन "स्रोत टोस्टर शुरुआत" का उपयोग करने के लिए और वेब इंटरफ़ेस में आपको अपने निर्माण से लॉग इन किया जाएगा।

उम्मीद है कि यह मदद करता है, एलेक्स