डिंगू A320 पर एक धार, या इसकी आवश्यकता क्यों है?

स्टॉक में: पिछले विषय से Dlink DSL2650u राउटर, जिसमें USB होस्ट है और OpenWRT फर्मवेयर के साथ फ्लैश किया गया है, और डिंगू A320 उपसर्ग जिस पर OpenDingux स्थापित है (डिंगू के लिए लिनक्स)।
टास्क: ट्रैकर पर रेटिंग को थोड़ा बढ़ाने के लिए टॉरेंट का राउंड-द-क्लॉक वितरण व्यवस्थित करें। एक दिलचस्प गतिविधि के साथ पूरे दिन को मारें और लिनक्स के अपने ज्ञान में सुधार करें।
इस विषय को एक व्यावहारिक मार्गदर्शिका के रूप में मनोरंजन के उद्देश्यों के लिए अधिक लिखा गया है, क्योंकि कई उपक्रम की गति से भ्रमित हो सकते हैं।
विषय से निकालने के लिए क्या उपयोगी हो सकता है?लोहे के टुकड़े की कुछ तकनीकी विशेषताएं:
जैसा कि आप देख सकते हैं, विशेषताएँ समान हैं।

पहले प्रयास


सबसे पहले, वितरण को सीधे राउटर पर उठाने का प्रयास किया गया था: एक 4 जीबी फ्लैश ड्राइव को यूएसबी में डाला जाता है और वहां से टोरेंट वितरित किए जाते हैं। विकी पेज के बाद, मैंने कमांड के साथ आवश्यक पैकेज स्थापित किए:

opkg install usbutils kmod-usb-core kmod-usb-ohci kmod-usb-uhci kmod-usb2 kmod-usb-storage kmod-usb-storage-extras block-mount block-hotplug kmod-fs-ext4

कनेक्ट करने के बाद, फ्लैश ड्राइव का सामान्य रूप से पता लगाया गया था और दो डिवाइस / देव / एसडीए और / देव / एसडीए 1 दिखाई दिए । फ्लैश ड्राइव को FAT32 में स्वरूपित किया गया था, इसलिए मुझे पैकेज देने थे:

opkg install kmod-fs-vfat kmod-nls-cp437 kmod-nls-utf8 kmod-nls-cp1251

अंतिम दो पैकेज वैकल्पिक हैं, क्योंकि cp437 एन्कोडिंग में माउंट माउंट है, और एन्कोडिंग को बदलने के बारे में कोई भी पैरामीटर स्वीकार नहीं करता है। किसी भी स्थिति में, यदि आप विभाजन को माउंट नहीं कर सकते हैं, तो आपको dmesg के आउटपुट में कारण देखने की आवश्यकता है।
आप ऑटो-माउंट कॉन्फ़िगर कर सकते हैं, इसके लिए आपको फ़ाइल /etc/config/fstab को संपादित करना होगा। स्व-असेंबली के लिए, पहले से स्थापित ब्लॉक-हॉटप्लग पैकेज जिम्मेदार है। अधिक जानकारी के लिए OpenWRT प्रलेखन देखें।
फ्लैश ड्राइव को कनेक्ट और माउंट करने के बाद, आपको ट्रांसमिशन स्थापित करने की आवश्यकता है। वह क्यों है? क्योंकि यह डेमॉन के रूप में काम कर सकता है, इसमें एक आरपीसी और वेब इंटरफेस है। RPC का अर्थ है सुविधाजनक गिनी इंटरफ़ेस में कंप्यूटर पर सीधे वितरण को नियंत्रित करने की क्षमता। और इंटरनेट पर पाया गया पहला गाइड उसके बारे में था। इसलिए:

opkg install transmission-daemon transmission-web

स्थापना के बाद, आपको कॉन्फ़िगरेशन फ़ाइल /etc/config/transmission को संपादित करने की आवश्यकता है। OpenWRT में ट्रांसमिशन सेट करना विषय नहीं है, इसलिए अधिक जानकारी के लिए यहां संपर्क करें । वेब इंटरफेस 192.168.1.1 : 9091 पर उपलब्ध है, आरपीसी वहां से जुड़ा हुआ है। RPC क्लाइंट के रूप में, AUR से एक ट्रांसमिशन-रिमोट-गुई-बिन पैकेज डाउनलोड किया गया और स्थापित किया गया (आर्कलिनक्स में)।
ट्रांसमिशन स्थापित करने और शुरू करने के बाद, निराशा आई - राउटर इसके लिए बहुत कमजोर है। रैम बाहर चल रहा था, प्रोसेसर को नेत्रगोलक को लोड किया गया था, और कुछ मिनटों के बाद राउटर ने कॉल का जवाब देना बंद कर दिया। एकमात्र उद्धार एक रिबूट था। मैंने USB फ्लैश ड्राइव पर एक स्वैप विभाजन बनाने और इसे राउटर से जोड़ने का प्रयास किया। मैंने फ्लैश ड्राइव को दो खंडों में तोड़ दिया, स्वैप के लिए 100mb आवंटित किया, इसे स्वरूपित किया, इसे कनेक्ट किया ... लेकिन स्थिति बहुत नहीं बदली है। मुक्त टीम की गवाही से पता चला कि स्वैप में मैं 1mb से अधिक नहीं लगा था।

इसलिए, विचार की उड़ान ने और उड़ान भरी।

और फिर ब्रैड आया



मैंने यह सोचना जारी रखा कि आप व्यावसायिक उपयोग के लिए एक सुलभ यूएसबी पोर्ट से जुड़ सकते हैं। केवल मोटोरोला Z6 मोबाइल फोन (लिनक्स पर) और डिंगू ए 320 का ख्याल आया। चूंकि मोटरोला हाथ में नहीं था, इसलिए उन्होंने डिंगा के साथ प्रयोग जारी रखा। डिंगक्स (और OpenDingux) के साथ, आप UsbNet के माध्यम से एक नेटवर्क बना सकते हैं। मॉड्यूल (cdc_ether) के नाम को देखने के बाद, मैंने इसे OpenWRT में स्थापित करना शुरू किया। समस्याओं के बिना स्थापित किया गया ऐसा पैकेज:

opkg install kmod-usb-net-cdc-ether

कनेक्ट करने के बाद, ifconfig में एक नया इंटरफ़ेस दिखाई दिया: usb0। डीएचसीपी आईपी एड्रेस (डिंगक्स पर udhcpd का उपयोग करके) सेट करने के बाद, मैंने जाँच की कि सब कुछ काम किया। कार्य usb0 के माध्यम से इंटरनेट वितरित करना था, और, अधिमानतः, स्थानीय नेटवर्क से पहुंच बनाना। मेरे सिर में घूमने वाले पैकेट, आदि को स्थानांतरित करने के लिए आईपीटैबल्स के लिए नियम की एक श्रृंखला बनाने के बारे में विचार, मेरे सिर में घूमते हैं , लेकिन समाधान बहुत सरल हो गया है: आपको config interface lan अनुभाग में /etc/config/network name /etc/config/network फ़ाइल में usb0 को ifname जोड़ने की आवश्यकता है। परिणाम एक ऐसी रेखा है:

option ifname "eth1.0 usb0"

यह डीएचसीपी के माध्यम से डेटा प्राप्त करने के लिए डिंगू को मजबूर करने के लिए बना हुआ है, और स्थिर 10.1.0.2 सेट नहीं करता है। आरंभीकरण स्क्रिप्ट /etc/init.d/network माध्यम से /etc/init.d/network , मैंने देखा कि कई उपयोगकर्ता चर का उपयोग किया गया था।

if [ -z $DINGOO_IP_ADDRESS ]; then DINGOO_IP_ADDRESS="10.1.0.2"; fi
if [ -z $PC_IP_ADDRESS ]; then
if [ $DINGOO_IP_ADDRESS != "10.1.0.1" ]; then PC_IP_ADDRESS="10.1.0.1"
else PC_IP_ADDRESS="10.1.0.2"
fi
fi
if [ -z $DINGOO_NETMASK ]; then DINGOO_NETMASK="255.255.255.252"; fi
if [ -z $PC_NETMASK ]; then PC_NETMASK=$DINGOO_NETMASK; fi


मैंने उन स्मार्ट लोगों से पूछा जो ओपनडिंगक्स के विकास से संबंधित हैं, जहां आप उन्हें ओवरराइड कर सकते हैं। चूँकि / / etc में कोई लिखने की अनुमति नहीं है (एक स्क्वैशफुट छवि है), डेवलपर्स ने फ़ाइल /usr/local/etc/initvars में चर को ओवरराइड करना संभव बना दिया। मुझे IP द्वारा DHCP नहीं मिला, इसलिए मैंने मैन्युअल रूप से IP पता 192.168.1.2 सेट करने का निर्णय लिया:

DINGOO_IP_ADDRESS=192.168.1.2
PC_IP_ADDRESS=192.168.1.1
DINGOO_NETMASK=255.255.255.0


इसके अतिरिक्त, आपको /usr/local/etc/resolv.conf में DNS सर्वर पता पंजीकृत करना होगा

nameserver 192.168.1.1

सभी सेवाओं को फिर से शुरू करने के बाद, मैं सर्किट की संचालन क्षमता के बारे में आश्वस्त हो गया: डिंगू नेटवर्क से प्रतिक्रिया करता है, और इंटरनेट और इंटरनेट डिंगू से प्रतिक्रिया करता है। एक अलग समस्या थी जब मैंने आईपी को 192.168.1.2 नहीं सौंपा था, लेकिन एक बड़ा - 192.168.1.254, और सबनेट मास्क पर ध्यान नहीं दिया (डिंगू का मानक मुखौटा 255.255.255.252 है), और लंबे समय तक मुझे समझ नहीं आया कि कुछ भी क्यों काम नहीं कर रहा था।

ट्रांसमिशन स्थापित करें


OpenDingux में इतना सुविधाजनक भंडार नहीं है जितना OpenWRT में, इसलिए ट्रांसमिशन को संभालना पड़ता था। टूलचेन (एक विशिष्ट मंच के संकलन के लिए उपयोगिताओं का एक सेट) यहां से लिया गया है । मैंने स्रोतों को डाउनलोड किया, पढ़ा ./configure --help , सभी अनावश्यक को डिस्कनेक्ट करके, मैंने संकलन करने का प्रयास करना शुरू किया।

./configure --host=mipsel-linux-uclibc --disable-gtk --disable-mac --disable-cli --disable-libnotify --disable-libappindicator --disable-libcanberra --disable-nls --disable-utp
make


निर्भरता के आधार पर, मुझे ओपनसीएल, लिबेवेंट और कर्ल का निर्माण करना था। मैंने बिंगू फ़ाइल ट्रांसमिशन-डेमन को डिंगू / मिसर / स्थानीय / एप्लिकेशन / ट्रांसमिशन पर लापता पुस्तकालयों के साथ कॉपी किया और चलाने के लिए एक नियमित स्क्रिप्ट बनाई। परिणाम फ़ाइलों की एक सूची है:

ls /usr/local/apps/transmission/
libcurl.so.4 libevent-2.0.so.5 transmission transmission-daemon


और इस तरह की स्क्रिप्ट:

#!/bin/sh
LD_LIBRARY_PATH=.
./transmission-daemon -T -w /usr/local/torrent/ -g /usr/local/torrent/config -a 192.168.1.* -e /usr/local/torrent/log


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

निष्कर्ष


यदि आप इस बिंदु तक पढ़ चुके हैं तो आप अनुचित रूप से लगातार हैं। अब मैं बाद में वितरण के लिए टॉरेंट डाउनलोड करता हूं। डाउनलोड गति (300KB / s) और अपलोड (200KB / s) पर सहकर्मी (50) की संख्या पर आधिकारिक रूप से चयनित सीमाएं। यह महत्वपूर्ण रूप से काम करता है, आप उच्च सीमा के साथ प्रयोग कर सकते हैं।

सभी समान हार्डवेयर के साथ राउटर पर इसे क्यों नहीं बढ़ाएं? सबसे पहले, कम दिलचस्प, और दूसरी बात, राउटर में अन्य कार्यों का एक पूरा गुच्छा है - इंटरनेट का वितरण करना और इससे संसाधन लेना अच्छा नहीं है। 4 जीबी मिनीएसडी कार्ड आपको वितरण के लिए बहुत कम संख्या में टोरेंट पंप करने का अवसर देता है, लेकिन इसके लिए धन्यवाद।
मैंने वेब इंटरफ़ेस स्थापित नहीं किया है, क्योंकि मुझे अभी भी वेब सर्वर के साथ खेलने की आवश्यकता है। मैं आरपीसी और ट्रांसगुई के माध्यम से नियंत्रित करता हूं
इन उद्देश्यों के लिए एनएएस क्यों नहीं खरीदा? मैं अभी तक इतनी बड़ी खरीदारी के लिए तैयार नहीं हूं, और मैं इतनी सक्रियता से टॉरेंट का उपयोग नहीं कर रहा हूं इस समस्या में, परिणाम के बजाय समाधान, मेरे लिए अधिक दिलचस्प था।

मैं OpenWRT विकास टीम का आभार व्यक्त करना चाहता हूं, हमने एक एप्लीकेशन रिपॉजिटरी, कॉन्फिगर्स की एकीकृत प्रणाली के साथ एक बहुत ही विचारशील प्रणाली बनाई। पूरे वितरण पर खींचता है, केवल राउटर के लिए।

और अंत में, कुछ लिंक:

Source: https://habr.com/ru/post/In124792/


All Articles