विषयसूची:

रास्पबेरी पाई 4बी के लिए 64 बिट आरटी कर्नेल संकलन: 5 कदम
रास्पबेरी पाई 4बी के लिए 64 बिट आरटी कर्नेल संकलन: 5 कदम

वीडियो: रास्पबेरी पाई 4बी के लिए 64 बिट आरटी कर्नेल संकलन: 5 कदम

वीडियो: रास्पबेरी पाई 4बी के लिए 64 बिट आरटी कर्नेल संकलन: 5 कदम
वीडियो: Checking out the new 8GB Raspberry Pi 4 and 64-bit Raspberry Pi OS Beta 2024, नवंबर
Anonim
रास्पबेरी पीआई 4 बी के लिए 64 बिट आरटी कर्नेल संकलन।
रास्पबेरी पीआई 4 बी के लिए 64 बिट आरटी कर्नेल संकलन।

यह ट्यूटोरियल रास्पबेरी पाई पर 64 बिट रीयल टाइम कर्नेल के निर्माण और स्थापना की प्रक्रिया को कवर करेगा। ROS2 और अन्य रीयल टाइम IOT समाधानों की पूर्ण कार्यक्षमता के लिए RT कर्नेल महत्वपूर्ण है।

कर्नेल x64 आधारित रास्पियन पर स्थापित किया गया था जिसे यहां प्राप्त किया जा सकता है

ध्यान दें। यह ट्यूटोरियल हालांकि सीधे तौर पर लिनक्स ऑपरेटिंग सिस्टम के बुनियादी ज्ञान की आवश्यकता है।

साथ ही इस प्लेटफॉर्म की सीमाओं के कारण सभी http लिंक में h की कमी है। उन्हें ठीक करने के लिए लिंक के सामने "h" को सरलता से जोड़ें।

आपूर्ति

x64 आधारित पीसी लिनक्स चल रहा है

रास्पबेरी पाई ४बी रास्पियन ६४ के साथ पहले से ही स्थापित

इंटरनेट से कनेक्शन।

चरण 1: आवश्यक उपकरण प्राप्त करना

सबसे पहले हमें neccecery dev tools को चुनना होगा।

उन्हें लिनक्स टर्मिनल में निम्नलिखित कमांड निष्पादित करके प्राप्त किया जा सकता है

sudo apt- बिल्ड-आवश्यक libgmp-dev libmpfr-dev libmpc-dev libisl-dev libncurses5-dev bc git-core बाइसन flexsudo apt-get install libncurses-dev libssl-dev इंस्टॉल करें

चरण 2: क्रॉस संकलन के लिए नेटिव बिल्ड टूल्स का संकलन

अगला कदम हमारे कर्नेल के क्रॉस संकलन के लिए उपकरण तैयार करना और संकलित करना है।

एफआइआर टूल जिसे हम इंस्टॉल कर रहे हैं वह है बिनुटिल्स इस ट्यूटोरियल का परीक्षण बिनुटिल्स संस्करण 2.35 के साथ किया गया था।

cd ~/Downloadswget ttps://ftp.gnu.org/gnu/binutils/binutils-2.35.tar.bz2tar xf binutils-2.35.tar.bz2cd binutils-2.35/./configure --prefix=/opt/aarch64 -- लक्ष्य = aarch64-linux-gnu --disable-nls

कॉन्फ़िगरेशन समाप्त होने के बाद हमें निम्न आदेशों का उपयोग करके प्रोग्राम को संकलित करने की आवश्यकता है:

मेक -जेएक्स

सुडो स्थापित करें

जहां -जेएक्स का मतलब है कि आप कितने काम चलाना चाहते हैं मैं पैरारेल। अंगूठे का नियम इसे आपके सिस्टम में मौजूद थ्रेड्स की मात्रा से अधिक नहीं रखना है। (उदाहरण के लिए मेक -j16)

और अंत में हमें पथ निर्यात करने की आवश्यकता है

निर्यात पथ = $ पथ: / ऑप्ट / aarch64 / बिन /

हम जीसीसी के निर्माण और स्थापना के साथ आगे बढ़ते हैं

सीडी..wget ttps://ftp.gnu.org/gnu/gcc/gcc-8.4.0/gcc-8.4.0.tar.xztar xf gcc-8.4.0.tar.xzcd gcc-8.4.0/। /contrib/download_prequires./configure --prefix=/opt/aarch64 --target=aarch64-linux-gnu --with-newlib -- बिना हेडर / --disable-nls --disable-shared --disable-threads --disable-libssp --disable-decimal-float / --disable-libquadmath --disable-libvtv --disable-libgomp --disable-libatomic / --enable-languages=c --disable-multilib

हमारे कंपाइलर को बनाने और स्थापित करने से पहले जैसा ही है

ऑल-जीसीसी -जेएक्स. बनाएं

सुडो मेक इंस्टाल-जीसीसी

अगर आदेश के बाद सब कुछ सुचारू रूप से चला गया

/opt/aarch64/bin/aarch64-linux-gnu-gcc -v

इसी तरह का जवाब देना चाहिए।

ux-gnu-gcc -v बिल्ट-इन स्पेक्स का उपयोग करना। COLLECT_GCC=/opt/aarch64/bin/aarch64-linux-gnu-gcc COLLECT_LTO_WRAPPER=/opt/aarch64/libexec/gcc/aarch64-linux-gnu/8.4.0/lto-wrapper लक्ष्य: aarch64-linux-gnu इसके साथ कॉन्फ़िगर किया गया:./configure --prefix=/opt/aarch64 --target=aarch64-linux-gnu --with-newlib --with-headers --disable-nls --disable-shared --disable-threads --disable-libssp --अक्षम-दशमलव-फ्लोट --अक्षम-libquadmath --disable-libvtv --disable-libgomp --disable-libatomic --enable-languages=c --disable-multilib थ्रेड मॉडल: एकल जीसीसी संस्करण ८.४.० (जीसीसी)

चरण 3: कर्नेल को पैच करना और कर्नेल को कॉन्फ़िगर करना।

अब हमारे कर्नेल और आरटी पैच प्राप्त करने का समय आ गया है।

यह ट्यूटोरियल rpi कर्नेल v 5.4 और RT पैच RT32 का उपयोग करेगा। इस संयोजन ने मेरे लिए अच्छा काम किया। हालांकि सब कुछ विभिन्न संस्करणों के साथ ठीक काम करना चाहिए।

एमकेडीआईआर ~/आरपीआई-कर्नेल

सीडी ~/आरपीआई-कर्नेल गिट क्लोन ttps://github.com/raspberrypi/linux.git -b rpi-5.4.y wget ttps://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt /5.4/older/patch-5.4.54-rt32.patch.gz mkdir कर्नेल-आउट cd linux

फिर पैच को अनपैक करें।

gzip -cd../patch-5.4.54-rt32.patch.gz | पैच -p1 --verbose

और आरपीआई 4बी के लिए कॉन्फ़िगरेशन प्रारंभ करें

O=../कर्नेल-आउट/ ARCH=arm64 CROSS_COMPILE=/opt/aarch64/bin/aarch64-linux-gnu- bcm2711_defconfig बनाएं

इसके बाद हमें मेन्यूकॉन्फिग दर्ज करना होगा

O=../कर्नेल-आउट/ ARCH=arm64 CROSS_COMPILE=/opt/aarch64/bin/aarch64-linux-gnu- menuconfig बनाओ

जब यह लॉन्च होता है तो हमें मौजूदा कॉन्फ़िगरेशन की आवश्यकता होती है, फिर यहां जाएं

सामान्य -> प्रीमशन मॉडल और रीयल टाइम विकल्प चुनें।

हम नए कॉन्फ़िगरेशन को सहेजते हैं और मेनू से बाहर निकलते हैं।

चरण 4: आरटी कर्नेल का निर्माण

अब इसके संकलन का समय। ध्यान दें कि आपकी पीसी क्षमताओं के आधार पर इसमें लंबा समय लग सकता है।

मेक-जेएक्स ओ=../कर्नेल-आउट/एआरसीएच=आर्म64 CROSS_COMPILE=aarch64-linux-gnu-

पहले की तरह -jx का मतलब नौकरियों की संख्या है। सफल संकलन के बाद हमें अपने कर्नेल को पैक करना होगा और इसे रास्पबेरी पाई को भेजना होगा। ऐसा करने के लिए हम निम्नलिखित कमांड निष्पादित करते हैं।

निर्यात करें out/arch/arm64/boot/Image../rt-kernel/boot/kernel8.imgcd $INSTALL_MOD_PATHtar czf../rt-kernel.tgz *cd..

अब हमारा कर्नेल rt-kernel.tgz संग्रह के अंदर होना चाहिए और यह भेजने और स्थापित करने के लिए तैयार है।

चरण 5: नया कर्नेल स्थापित करना

हमारे कर्नेल को रास्पबेरी में भेजने का सबसे आसान तरीका scp का उपयोग करना है।

हम बस फॉलोविंग कमांड निष्पादित करते हैं।

scp rt-kernel.tgz pi@:/tmp

अब हमें ssh के माध्यम से हमारे pi में लॉग इन करना होगा और हमारे कर्नेल को अनपैक करना होगा।

एसएसएच पीआई@

लॉग इन होने पर हम निम्नलिखित कमांड का उपयोग करके अपनी फाइलों को कॉपी करते हैं।

cd /tmptar xzf rt-kernel.tgz cd बूट sudo cp -rd * /boot/ cd../lib sudo cp -dr * /lib/ cd../overlays sudo cp -dr * /boot/overlays cd../ ब्रॉडकॉम सूडो सीपी-डॉ बीसीएम* /बूट/

उसके बाद जो करना बाकी है वह है /boot/config.txt फ़ाइल को संपादित करना और निम्नलिखित पंक्ति जोड़ना।

कर्नेल = kernel8.img

पाई को रिबूट करने के बाद सब कुछ ठीक काम करना चाहिए।

यह जांचने के लिए कि क्या नया कर्नेल सफलतापूर्वक स्थापित किया गया था, आप निष्पादित कर सकते हैं

अनाम -ए

आदेश

सिफारिश की: