सभी को नमस्कार। बोटब्रेव पर पहले ही एक लेख आ चुका है, जो आम तौर पर बताता है कि यह क्या है और यह क्या देता है। संक्षेप में:
बोटब्रेक प्रोजेक्ट को लिनक्स सॉफ़्टवेयर स्थापित करने के साथ कई समस्याओं को हल करने के लिए डिज़ाइन किया गया है जो एक उपयोगकर्ता का सामना कर सकता है और इसके लिए विदेशी अनुप्रयोगों को स्वीकार करने के लिए एंड्रॉइड सिस्टम तैयार कर सकता है।
सामान्य, क्लासिक बोटब्रेव का अपना भंडार है, लेकिन इसके कुछ पैकेज हैं, जो दुखद है। जो लोग वास्तव में गड़बड़ करना चाहते हैं, वे बोरब्रे-बेसिल को पसंद करेंगे, जो डेबियन एंबेडियन रिपॉजिटरी का उपयोग करता है। हालाँकि, अब उसके साथ भी सब कुछ दुखी है
जुलाई 2014 तक, एंबेडियन वितरण के अपडेट बंद हो गए। आगे कोई अद्यतन नहीं होगा और आगे स्थिर रिलीज नहीं होगी।
यह पता चला है कि यहां तक कि जो लोग एक बार emdebian स्थापित करते हैं, वे अब उड़ान में हैं। यह पोस्ट राउटल आर्केलक्स फोन पर कैसे लगाया जाए, इस बारे में होगा, लेकिन लूप इमेज में हमेशा की तरह नहीं, बल्कि देशी एंड्रॉइड फाइल सिस्टम या दूसरे एसडी पार्टीशन पर। यह माना जाता है कि व्यस्त कंप्यूटर के साथ एक रूटेड फोन है, यूएसबी डिबगिंग सक्षम है, और मुख्य कंप्यूटर पर एडीबी उपयोगिता है।
खाना पकाने का उपकरण
पहली चीज़ जो हमें चाहिए वह एक फ़ोल्डर बनाना है जहाँ हम अपना लिनक्स डालेंगे। दो विकल्प हैं - एक फ़ोल्डर / डेटा अनुभाग या मेमोरी कार्ड का एक अलग ext4 अनुभाग। दूसरे मामले में, अनुभाग को किसी भी तरह फोन के मुख्य एफएस में लगाया जाना चाहिए। यह उदाहरण के लिए Link2SD का उपयोग करके किया जा सकता है। अगला, मैं इस तथ्य से आगे बढ़ूंगा कि हम दूसरे एसडी विभाजन का उपयोग कर रहे हैं / डेटा / sdext2 में घुड़सवार, हम इसे / डेटा / sdext2 / arch फ़ोल्डर में डाल देंगे।
आपको यह भी समझने की आवश्यकता है कि हम किस आर्किटेक्चर का उपयोग करेंगे। मेरे पास आर्मव 7 एल प्रोसेसर के साथ क्यूमो क्वेस्ट 454 है और इसके लिए http://mirror.archlinuxarm.org/arm/ आया है।
हम फोन को यूएसबी के माध्यम से कनेक्ट करते हैं, इसे एडीबी और रश के माध्यम से जाते हैं।
हम न्यूनतम शुरुआती विकल्प एकत्र करते हैं
एक न्यूनतम स्थापना के लिए, आपको निम्नलिखित पैकेजों की आवश्यकता होगी (रूट से चलाएँ, पैकेज संस्करण समय के साथ नए हो सकते हैं):
mkdir -p /data/sdext2/arch/packages cd /data/sdext2/arch/packages wget http://mirror.archlinuxarm.org/arm/core/acl-2.2.52-2-arm.pkg.tar.xz wget http://mirror.archlinuxarm.org/arm/core/attr-2.4.47-1-arm.pkg.tar.xz wget http://mirror.archlinuxarm.org/arm/core/bash-4.3.030-1-arm.pkg.tar.xz wget http://mirror.archlinuxarm.org/arm/core/bzip2-1.0.6-5-arm.pkg.tar.xz wget http://mirror.archlinuxarm.org/arm/core/curl-7.39.0-1-arm.pkg.tar.xz wget http://mirror.archlinuxarm.org/arm/core/e2fsprogs-1.42.12-1-arm.pkg.tar.xz wget http://mirror.archlinuxarm.org/arm/core/expat-2.1.0-4-arm.pkg.tar.xz wget http://mirror.archlinuxarm.org/arm/core/filesystem-2014.10-3-arm.pkg.tar.xz wget http://mirror.archlinuxarm.org/arm/core/gcc-libs-4.9.2-1-arm.pkg.tar.xz wget http://mirror.archlinuxarm.org/arm/core/glibc-2.20-4-arm.pkg.tar.xz wget http://mirror.archlinuxarm.org/arm/core/gpgme-1.5.2-1-arm.pkg.tar.xz wget http://mirror.archlinuxarm.org/arm/core/keyutils-1.5.9-1-arm.pkg.tar.xz wget http://mirror.archlinuxarm.org/arm/core/krb5-1.13-1-arm.pkg.tar.xz wget http://mirror.archlinuxarm.org/arm/core/libarchive-3.1.2-8-arm.pkg.tar.xz wget http://mirror.archlinuxarm.org/arm/core/libassuan-2.1.3-1-arm.pkg.tar.xz wget http://mirror.archlinuxarm.org/arm/core/libgpg-error-1.17-1-arm.pkg.tar.xz wget http://mirror.archlinuxarm.org/arm/core/libidn-1.29-1-arm.pkg.tar.xz wget http://mirror.archlinuxarm.org/arm/core/libssh2-1.4.3-2-arm.pkg.tar.xz wget http://mirror.archlinuxarm.org/arm/core/lzo-2.08-3.1-arm.pkg.tar.xz wget http://mirror.archlinuxarm.org/arm/core/ncurses-5.9-6.1-arm.pkg.tar.xz wget http://mirror.archlinuxarm.org/arm/core/openssl-1.0.1.j-1-arm.pkg.tar.xz wget http://mirror.archlinuxarm.org/arm/core/pacman-4.1.2-7-arm.pkg.tar.xz wget http://mirror.archlinuxarm.org/arm/core/pacman-mirrorlist-20141208-1-arm.pkg.tar.xz wget http://mirror.archlinuxarm.org/arm/core/readline-6.3.006-1-arm.pkg.tar.xz wget http://mirror.archlinuxarm.org/arm/core/util-linux-2.25.2-1-arm.pkg.tar.xz wget http://mirror.archlinuxarm.org/arm/core/xz-5.0.7-1-arm.pkg.tar.xz wget http://mirror.archlinuxarm.org/arm/core/zlib-1.2.8-3-arm.pkg.tar.xz
सब कुछ डाउनलोड होने के बाद, इसे अनपैक करें:
cd /data/sdext2/arch tar xvf packages/*.pkg.xz
हमें आर्कलिनक्स की न्यूनतम स्थापना की तरह कुछ मिला। अब चलो इसे बनाने की कोशिश करते हैं, इसमें पहले से ही फोल्ड हो चुके सिस्टम फोल्डर ():
busybox mount -t proc none ./proc busybox mount -o rbind /dev ./dev busybox mount -t sysfs none ./sys busybox mount -t tmpfs none ./tmp busybox mount -o size=10%,mode=0755 -t tmpfs none ./run chroot . /bin/bash
यदि सब कुछ ठीक रहा, तो कम से कम हमारे पर्यावरण से टकराव शुरू हो जाएगा और पैक्मैन उपलब्ध हो जाएगा। जब मैंने कोई प्रक्रिया शुरू की, तो सिस्टम ने मुझे शाप दिया कि वह libsuc.so नहीं पा सकता है, जो LD_PRELOAD में वर्णित है। इस स्थिति में, LD_PRELOAD को स्पष्ट करें:
export LD_PRELOAD=
क्रम में संकुल लगाना
इसलिए, हम चुरोट में हैं, पैक्मैन और बैश हमारे लिए काम कर रहे हैं। सबसे पहले, आइए डालते हैं कि क्या है। हम DNS रजिस्टर करेंगे और रिपॉजिटरी लोड करेंगे:
echo "nameserver 8.8.8.8" > /etc/resolv.conf pacman -Sy
अब हम आधिकारिक तौर पर वही स्थापित करते हैं जो हमने अभी अनपैक किया है और शेष पैकेज जो कि जीवन के लिए न्यूनतम आवश्यक हैं उन्हें जोड़ते हैं और हम उस स्थान पर वापस आ जाएंगे जहां फाइल सिस्टम इंस्टालेशन हमें हरा देता है:
pacman -S base --force --noconfirm echo "nameserver 8.8.8.8" > /etc/resolv.conf
यदि सब कुछ ठीक रहा, तो हमारे पास पूर्ण विकसित माइनस प्रणाली और आर्कलिनक्स कोर है। हम चुरोट से बाहर निकलते हैं और हमारे द्वारा चढ़ाई जाने वाली हर चीज़ को अनमाउंट करते हैं:
exit umount ./dev/pts umount ./dev/cpuctl umount ./proc umount ./sys umount ./tmp umount ./run
ऑटो-माउंट और अन्य बन्स जोड़ें
जो आसान और सरल निकला, उसका उपयोग करने के लिए, हम बॉटब्रेव-तुलसी से init को पेंच करते हैं। यह एक उपयोगिता है जो यह देखने के लिए जांचती है कि क्या हमें जो कुछ भी ज़रूरत है वह माउंट किया गया है और हमारे वातावरण में घूमता है। मुझे यह पता नहीं चला कि इसे बॉटब्रे रिपॉजिटरी से कैसे डाउनलोड किया जा सकता है, इसलिए अभी के लिए मैंने सिर्फ Yandex.Disk पर एक लिंक पोस्ट किया था। Init को / data / sdext2 / arch में कॉपी करें और निष्पादन के लिए विशेषता जोड़ें।
हम adb शेल में जाते हैं और टाइप करते हैं:
/data/sdext2/init /bin/bash
नतीजतन, जो कुछ भी आवश्यक है वह एक बार घुड़सवार होता है और हम खुद को एक ताजे रखे हुए आर्क में पाते हैं। एक बोनस के रूप में, init चिरोट की जड़ में / भंडारण, / mnt और / android फ़ोल्डर बनाएगा, जहां यह मूल फ़ाइल सिस्टम के टुकड़ों को माउंट करेगा।
एक यूएसबी केबल के माध्यम से नहीं, बल्कि फोन से सीधे लिनक्स का आनंद लेने के लिए, आप अपने पसंदीदा टर्मिनल में शेल के रूप में / डाटा / sdext2 / init / bin / bash रजिस्टर कर सकते हैं। आगे यह संभव है कि उपयोगकर्ताओं को स्वाद लेने के लिए, sshd को बढ़ाने के लिए, आदि। लेकिन कोई भी पुरालेख पहले से ही जानता है कि यह कैसे करना है, इसलिए मैंने इसके बारे में यहां नहीं लिखा।
आपके ध्यान के लिए धन्यवाद, परिवर्धन और सुधार का स्वागत है।
अद्यतन: एक छोटी स्क्रिप्ट जिसे मैं एक बार रिबूट के बाद चलाता हूं
प्रारंभिक स्क्रिप्ट
#!/bin/bash if [[ `whoami` != "root" ]] then sudo bash $0 $@ exit $? fi chmod 777 /tmp c=`ps afx | grep /usr/sbin/sshd | grep -cv grep` if [[ "$c" != "1" ]] then echo Strating sshd /usr/sbin/sshd else echo sshd already started fi if [[ ! -e /dev/fd ]] then echo Creating /dev/fd links ln -s /proc/self/fd /dev/fd ln -s /proc/self/fd/0 /dev/stdin ln -s /proc/self/fd/1 /dev/stdout ln -s /proc/self/fd/2 /dev/stderr fi if [[ ! -e /dev/net/tun ]] then echo Creating /dev/net/tun mkdir /dev/net ln -s /dev/tun /dev/net/tun else echo /dev/net/tun already exists fi