কীভাবে স্বয়ংক্রিয়ভাবে ওয়াইফাই সংযোগ করবেন?


74

আমি আমার পাওয়ার মিটারগুলি নিরীক্ষণের জন্য পাই ব্যবহার করছি। এডিম্যাক্স ইডাব্লু -7811 ইউএন ইউএসবি অ্যাডাপ্টার ব্যবহার করে ডেটা ওয়াইফাই সংযোগের মাধ্যমে পিসিতে স্থানান্তরিত হয়। যখন ওয়াইফাই সংযোগটি ড্রপ হয় (রাতারাতি বন্ধ হয়ে যায়, বা নড়বড়ে সংযোগ), ইউএসবি অ্যাডাপ্টার অক্ষম থাকে।

ওয়াইফাই অ্যাডাপ্টারের পুনরায় প্লাগ না করে ওয়াইফাই সংযোগটি পুনরায় চালু করার কোনও উপায় আছে কি?

উত্তর:


31

আমি বেশিরভাগ নেটওয়ার্ক অটো কনফিগারেশন এবং সংযোগ পরিচালন ডেমন স্টাফ অক্ষম করতে এবং নিজে নিজে এটি মোকাবেলা করতে পছন্দ করি। এখানে একটি (বাশ) স্ক্রিপ্ট রয়েছে যা নেটওয়ার্কটি যতক্ষণ থাকবে ততক্ষণ সংযোগটি বজায় রাখবে এবং আপনার কাছে কোনও চটকদার ওয়াইফাই ড্রাইভার বা পাওয়ার সমস্যা নেই; ধারণাটি হ'ল প্রতি এন সেকেন্ডে রাউটারটি পিং করা এবং যদি এটি ব্যর্থ হয় তবে পুনরায় সংযুক্ত করুন:

#!/bin/bash    

# make sure we aren't running already
what=`basename $0`
for p in `ps h -o pid -C $what`; do
        if [ $p != $$ ]; then
                exit 0
        fi
done

# source configuration
. /etc/wifi.conf

exec 1> /dev/null
exec 2>> $log
echo $(date) > $log
# without check_interval set, we risk a 0 sleep = busy loop
if [ ! "$check_interval" ]; then
        echo "No check interval set!" >> $log
        exit 1
fi

startWifi () {
        dhclient -v -r
    # make really sure
        killall dhclient
        iwconfig $wlan essid $essid
        dhclient -v $wlan
}

ifconfig $eth down
ifconfig $wlan up
startWifi

while [ 1 ]; do
        ping -c 1 $router_ip & wait $!
        if [ $? != 0 ]; then
                echo $(date)" attempting restart..." >> $log
                startWifi
                sleep 1
        else sleep $check_interval
        fi
done

সুতরাং, /etc/wifi.confএই ক্ষেত্রে থাকতে পারে:

router_ip=192.168.0.1
log=/var/log/wifi.log
wlan=wlan0
eth=eth0
essid=someNetwork
check_interval=5

এটি সমস্ত একটি উন্মুক্ত এনক্রিপ্ট করা নেটওয়ার্ক (যদি অন্যথায়, আপনাকে উপযুক্ত কমান্ডগুলি যোগ করতে হবে) অনুমান করে। আমি পাই সহ বিভিন্ন লিনাক্স মেশিনে এই পদ্ধতির ব্যবহার করেছি এবং এটি নির্বিঘ্নে কাজ করে; এটি একটি সিস্টেম অনলাইনে অনির্দিষ্ট সময়ের জন্য রাখে, এমনকি যদি এটি পর্যায়ক্রমে ঘুমাতে যায় (যা পাই কোনওভাবেই পারেন না)।

একটি শালীন চেক ব্যবধান 3-5 সেকেন্ড; এই ক্রিয়াকলাপটি সিস্টেম রিসোর্সগুলিতে মোটেই প্রভাব ফেলবে না।

আপনাকে অবশ্যই প্রথমে নেটওয়ার্ক অটো-কনফিগারেশনটি অক্ষম করতে হবে ,। ifplugdএবং অন্যান্য নেটওয়ার্কিং ডেমনগুলি সহ , বা এটি আপনার প্রচেষ্টায় হস্তক্ষেপ করবে:

আমি কীভাবে রাস্পবিয়ান-এ অটোকনফিগার্ড নেটওয়ার্কিং অক্ষম করতে পারি?

আমি আসলে ব্যবহৃত apt-get remove ifplugd

বুটে নেটওয়ার্কিং শুরু করার জন্য (যেহেতু আমি পাই হেডলেস ব্যবহার করি), আমার কাছ থেকে এই রাস্পবিয়ান চালানোর জন্য এই সেটটি রয়েছে /etc/rc.local:

wifi_mod=`lsmod | grep 8192cu`
if [ "$wifi_mod" ]; then
        echo "Starting wifi..."
        /usr/bin/nice -n -10 /usr/local/bin/wifi &
else
        echo "Starting ethernet..."
        /sbin/ifconfig eth0 up
        /sbin/dhclient eth0
fi

/usr/local/bin/wifiস্ক্রিপ্ট হয়। আপনি যদি জানেন না তবে কী niceজন্য man nice

এর ifমুল বক্তব্যটি হ'ল যদি আমার wifi dongle পাইতে প্লাগ করা থাকে তবে 8192cu মডিউলটি এই সময়ে কার্নেল দ্বারা লোড করা হবে - তাই ওয়াইফাইটি শুরু করা উচিত। যদি তা না হয় তবে ধরে নেওয়া হয় যে ইথারনেটটি প্লাগ ইন করা হয়েছে এবং এটি ব্যবহার করা উচিত (যদি তা না হয় তবে ডিএইচসিএলেন্টটি কেবল ক্রপ হয়ে যাবে এবং কোনও নেটওয়ার্ক অ্যাক্সেস নেই)।

এটি কাজ করার জন্য আপনাকে সম্ভবত করতে হবে

সুতরাং, এটি বুট করার সময় নেটওয়ার্কটিতে একটি মাথাবিহীন পাই পায় এবং এটি সেখানে রাখে। লগ ইন না করে চলতে চলতে আপনি যদি নীতিতে স্যুইচ করার কোনও উপায় চান, আপনি ওয়াইফাই ডাঙ্গলটি বাইরে টেনে আনার জন্য উদেব বিধিগুলি দিয়ে কিছু করতে পারেন ।


মূল্যবান টেস্টিং। লিনাক্স প্রো না হয়ে- আমি কীভাবে স্ক্রিপ্টটি প্রারম্ভকালে চালানোর জন্য সেট করব- ক্রোনটিতে রাখব? লগ রোটেশন পাশাপাশি যুক্ত করা কি সম্ভব হবে / প্রয়োজনীয়?
andig

1
@ অ্যান্ডিগ: আমি স্টার্ট আপের মাধ্যমে কয়েকটি অনুচ্ছেদ যুক্ত করেছি rc.local। ডাব্লুআরটি লগ রোটেশন, এটি একটি পৃথক প্রশ্ন যা সাধারণভাবে লগ ফাইলগুলির সাথে সম্পর্কিত (তবে দেখুন man logrotate)। এই মুহুর্তে স্ক্রিপ্টটি কোনও পূর্ববর্তী লগটি ক্লাব্বার (ওভাররাইট) করবে যদি এটি একই পাথের সাথে উপস্থিত থাকে তবে সংযোজন নয়। ডিবাগিংয়ের জন্য আমি মাঝে মাঝে wifi.$$.logwifi.conf ফাইলটিতে ব্যবহার করেছি , যাতে শেষ লগটি ক্লোবারড হয়ে যাওয়ার (সম্ভাবনা) না থাকে এবং আমি কিছু টুইট করার পরে আমি একটি সেশনের সাথে অন্য সেশনের সাথে তুলনা করতে পারি। $$"ওয়াইফাই" প্রক্রিয়াটির পিড।
স্বর্ণকেশ

আমি উদ্বেগ প্রকাশ করি যে কখনও কখনও শেল স্ক্রিপ্টগুলি ভঙ্গুর হতে পারে এবং আপডেটগুলি পাওয়া যায় বা অন্য নেটওয়ার্কিং সফ্টওয়্যার ইনস্টল থাকা অবস্থায় উপায়গুলি দেখতে শক্ত হয়ে যেতে পারে। এই পদ্ধতির উপর সতর্কতার মাত্র একটি নোট।
জেরেমিয়া

3
@ জেরেমিয়া: এটি একটি ভাল ভয়। আমি স্ক্রিপ্টটি লিখেছিলাম, কয়েক বছর ধরে এটি টুইট করেছি এবং আমার মনে হয় যে এটি সাধারণ প্রসঙ্গে যেটি পরিচালনা করে এবং তাই আমার কী সন্ধান করতে হবে তা সম্পর্কে আমার কিছুটা বোধ আছে। তবে কোড স্নিপেটের চেয়ে বোঝাপড়াটি পাস করা সম্ভবত শক্ত। আমার কাছে এটি পরিস্থিতি কিছু বেসিক উপাদানগুলিতে হ্রাস করে নেটওয়ার্কম্যানেজারের সাথে কাজ করার চেষ্টা করার একটি বিকল্প উপায়। একটি সাধারণ স্ট্যান্ড-একা সিস্টেমের পরিস্থিতিতে লিনাক্স ডিস্ট্রো বর্ণালী জুড়ে "এটিই আমার জন্য কাজ করেছে" হিসাবে অনুরূপ দৃষ্টিভঙ্গি সহ লোককে উপহার দেওয়ার জন্য এটি something
স্বর্ণিলকস

সুতরাং: আমি এই পোস্টটি সম্পর্কে সচেতন এবং যদি কোনও প্রধান ডিস্ট্রো স্ট্রিমগুলির মধ্যে একটি (ডেবিয়া এবং ফেডোরা এবং উদ্ভূত) এর সাথে বিভ্রান্ত হয় এমন কোনও কিছু পরিচয় করিয়ে দেয় তবে তা আপডেট রাখার ইচ্ছা করি। কীটি অক্ষম করা দরকার এবং কীভাবে পয়েন্টগুলিতে আমি কিছুটা জোর যোগ করব।
স্বর্ণিলকস

68

ভাল, একটি খুব সহজ সমাধান আছে:

  1. এ যান /etc/ifplugd/action.d/এবং ifupdownফাইলটির নাম পরিবর্তন করুনifupdown.original
  2. তারপরে: cp /etc/wpa_supplicant/ifupdown.sh ./ifupdown
  3. অবশেষে: sudo reboot

এখানেই শেষ. আপনার এপি বন্ধ / চালু করে এটি পরীক্ষা করুন; আপনার রাস্পবেরি পাইটি সঠিকভাবে পুনরায় সংযুক্ত হয়েছে তা দেখতে পাওয়া উচিত।


2
এটি সহজ এবং কার্যকর উত্তর। 2 আরপি'র পরীক্ষিত এবং এটি কাজ করে। এই লিঙ্কটি পেয়েছেন: raspberrypi.org/phpBB3/…
মাওভিস লেডফোর্ড

12
সরল প্রশ্নের জন্য দুঃখিত - কেন এই কাজ করে?
জেফ মিটবল ইয়াং

@ জেফমিটবল ইয়াং, আপনার প্রশ্নের জন্য একটি নতুন থ্রেড শুরু করুন।
আন্দালুজ

6
আমার জন্য সেখানে কোনও আপআপডাউন ফাইল ছিল না, কেবল একটি লিঙ্ক action_wpa -> ../../wpa_supplicant/action_wpa.sh, তাই সম্ভবত এটি এখন ডিফল্ট?
Zitrax

2
হ্যাঁ, অন্যদের মতো বলে: dhcpcdএটি আরপিআই 3 এ চালানোর জন্য আপনি ভিত্তিক ডিস্ট্রোসের উপর কাজ করে না apt-get install rcconfএবং এটি থেকে স্যুইচ dhcpcdকরতে চানnetworking
30-30

21

আমি সম্প্রতি একটি কনসোল অ্যাপ্লিকেশন জুড়ে হোঁচট খেয়েছি যা সমস্ত ওয়্যারলেস কনফিগারেশনটিকে হরআউট আউট করে। ল্যান ইন্টারফেসটি কনফিগার করতে আপনি এই সরঞ্জামটিও ব্যবহার করতে পারেন।

sudo apt-get install wicd-curses

এটি বেশ কয়েকটি অন্যান্য প্যাকেজ ইনস্টল করবে এবং ব্যাকগ্রাউন্ডে এটির নিজস্ব ডেমন চালাবে তবে এটি নিশ্চিত করে যে সমস্ত কিছু পুরোপুরি সহজ করে তুলবে। এটি দিয়ে চালান

sudo wicd-curses

এখানে চিত্র বর্ণনা লিখুন

আপনি যদি কোনও বার্তা পেয়ে থাকেন যে কোনও নেটওয়ার্ক সনাক্ত করে না P(তবে মূলধন হওয়া উচিত তাই [SHIFT] পি ব্যবহার করুন) এবং ওয়্যারলেস ইন্টারফেস ক্ষেত্রে wlan0 টাইপ করুন এবং সংরক্ষণের জন্য F10 টিপুন।

  1. R তালিকা রিফ্রেশ।
  2. তালিকার উপরে এবং নীচে নেভিগেট করতে কীবোর্ডে কার্সার ব্যবহার করুন
  3. ওয়্যারলেস সংযোগটি কনফিগার করতে ডান টিপুন
  4. কয়েকবার চাপুন এবং "এই নেটওয়ার্কের সাথে স্বয়ংক্রিয়ভাবে সংযোগ দিন" পরীক্ষা করুন
  5. আবার কয়েকবার চাপুন এবং কী ক্ষেত্রে আপনার পাসওয়ার্ডটি টাইপ করুন
  6. সংরক্ষণ করতে F10 টিপুন

এখানে চিত্র বর্ণনা লিখুন

Cঅ্যাক্সেস পয়েন্টে সংযোগ রাখতে আপনাকে চাপ দিতে হতে পারে । আপনি যদি তারযুক্ত হয়ে থাকেন তবে সম্ভবত ল্যান ইন্টারফেসটি মেরে ফেলবে এবং ওয়্যারলেস আনতে পারে।

এটি সংযোগ পরিচালনা করে তাই এটি যে কোনও কারণেই যদি বাদ পড়ে তবে কোনও কনফিগার করা ওয়্যারলেস অ্যাক্সেস পয়েন্টগুলির সাথে এটি পুনরায় সংযোগ স্থাপন করবে।

আমি ওয়াইফাই অ্যাডাপ্টারের প্লাগ আউট করে এটি আবার প্লাগ ইন করে পরীক্ষা করেছি It এটি প্রায় 60 ~ 90 সেকেন্ড সময় নেয় তবে এটি ওয়াইফাইয়ের সাথে আবার সংযোগ স্থাপন করবে (আমার ধারণা ল্যান অবশ্যই অবশ্যই আনপ্লাগড হওয়া উচিত)

আশা করি এটা সাহায্য করবে!


1
নিশ্চিত নয় যে কীভাবে এটি পুনরায় সংযোগের যত্ন নেয়- প্রাথমিক সংযোগ এখানে প্রশ্ন ছিল না!
andig

আমি উত্তরটি আপডেট করেছি কারণ এমন একটি পদক্ষেপ রয়েছে যেখানে আপনাকে স্বয়ংক্রিয়ভাবে সংযোগ পরীক্ষা করতে হবে। এছাড়াও পছন্দগুলিতে আপনার সমস্ত উপায়ে স্ক্রোল করা উচিত। শেষ বিকল্পটি স্ক্রিন অফ। এটি আরও বলে যে ওয়াইফাইয়ের জন্য স্বয়ংক্রিয়ভাবে নেটওয়ার্কগুলিতে সংযোগ করার চেষ্টা করুন (এটি ডিফল্টরূপে চালু)। এমনকি আমি ওয়াইফাই অ্যাডাপ্টারের প্লাগটি আবারও ফিরে আনতে পারি এবং এটি 2 মিনিটের মধ্যে পুনরায় সংযুক্ত হয়ে যায় ( আপনি জিইউআই সংস্করণটি সবেমাত্র পেয়েছেনwicd
পাইওটার কুলা

কমান্ডটিতে একটি টাইপো রয়েছে "সুডো উইড-ক্রুজ" 'ইউ' এবং 'আর' এক্সচেঞ্জ করা হয়েছে
গাওসিও

ইনস্টল করার পরে wicd-curses, আমার আরপিআই 3 এলোমেলোভাবে জমাট বাঁধতে শুরু করে। আগে কখনই হিমশীতল হয় নি এবং শীঘ্রই আমি এটি আনইনস্টল করার পরে অবিলম্বে অদৃশ্য হয়ে গেল। সতর্ক থাকুন!
akhmed

1
উইকড-শাপগুলি ইনস্টল করার পরে, আমার আরপিআই 3 এস জেসি লাইট চলমান থাকে না এবং সংযুক্ত থাকে না। তবে আজ আমি ইথারনেট বন্দরের মাধ্যমে একটিতে সংযোগ দেওয়ার চেষ্টা করেছি এবং বুট হওয়ার কয়েক সেকেন্ড পরে ইন্টারফেসটি হারিয়ে যাবে বলে মনে করেছি। ওয়াইফাইতে সংযোগের জন্য আমি উইড-ক্রপগুলি কনফিগার করার আগে সূক্ষ্ম সংযোগ করতে সক্ষম হয়েছি।
ক্রিস জেনস

14

এটি কোনও অতিরিক্ত স্ক্রিপ্ট ছাড়াই সমাধান করা যায়।

ইন / ইত্যাদি / নেটওয়ার্ক / ইন্টারফেস রাখুন:

allow-hotplug wlan0 iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp

রোমিং ইন্টারফেসটি স্ব-নিরাময় করতে দেয়।


শেষ লাইনটি wlan0 ইন্টারফেসে একটি দ্বিতীয় আইপি ঠিকানা যুক্ত করেছে বলে মনে হচ্ছে; এটা কি ইচ্ছাকৃত?
fche

আমি কেবল একটি ডিএইচসিপি-নির্ধারিত ঠিকানা দিয়ে শেষ করি। যদিও বুট স্ক্রিপ্টগুলি আচরণ বদলেছে তা পুরোপুরি আমাকে অবাক করে দেবে না - এই কনফিগারেশন ফাইলটি অকারণে ত্রুটিযুক্ত ...
ডেভিড স্যান্টি

2
আমার রাস্পবিয়ান পাই 2 বাক্সে, যদি ওয়ালান দীর্ঘ তিনটি চক্রের প্রমাণীকরণের চেষ্টার জন্য যথেষ্ট পরিমাণে ব্যর্থ হয়, এমনকি "ডাব্লুপিএ-রোম" দিয়েও এটি আবার চেষ্টা করে না।
fche

এটিই একমাত্র উত্তর যা আমার জন্য আরপিআই 3 তে কাজ করেছিল ধন্যবাদ!
আখমেদ

1

netcfg

ব্যবহার করে দেখুন netcfg। আপনি কোন বিতরণটি ব্যবহার করছেন সে সম্পর্কে আরও বিশদ ছাড়াই আমি আরও অনেক বিশদ সরবরাহ করতে পারি না তবে এটি আপনার যা করা উচিত তা করা উচিত।


4
আমি বর্তমান রাস্পবিয়ান ডিস্ট্রো ব্যবহার করছি: পাই @ রাস্পবেরিপি ~ net ম্যান নেটসিএফজি নেটসিএফজি পিআই এর জন্য কোনও ম্যানুয়াল এন্ট্রি নেই ra sp নেটসিএফজি -বাশ: নেটসিএফজি: কম্যান্ড পাইনি @ রাস্পবেরিপি pt pt অ্যাপ্ট-ক্যাশে অনুসন্ধান নেটসিএফজি পিআই ra ~
andig

0

আরেকটি সমাধান, থেকে নিষ্কাশিত যেমন এই এক
প্রথমে আপনার ওয়াইফাই সেটিংস কনফিগার করুন: এর sudo vi /etc/wpa_supplicant/wpa_supplicant.confমতো একটি বিভাগ যুক্ত করুন:

network={
   ssid="MyNetworkName"
   psk="MyPaz0rdz"
   key_mgmt=WPA-PSK
}

তারপরে আপনার নেটওয়ার্ক সেটিংস এর সাথে sudo vi /etc/dhcpcd.conf:

interface wlan0
inform 192.168.1.200 # the static ip for the wifi card
static routers=192.168.1.254 # your router's ip
static domain_name_servers=192.168.1.254 # your dns, usually=your router

তারপরে এই স্ক্রিপ্ট ফাইলটি কোথাও তৈরি করুন, উদাহরণস্বরূপ /home/pi/reconnect.shএবং এটি +xসম্পাদনযোগ্য হওয়ার অনুমতি দিন।

#!/bin/bash
router=`ip route | awk '/default/ {print $3}'`
/bin/ping -q -c1 $router > /dev/null

if [ $? -eq  0 ]
then
  true
  # echo "Network OK"
else
  echo "Network down, fixing..."
  # ifdown --force wlan0
  # sleep 5
  /bin/kill -9 `pidof wpa_supplicant`
  /sbin/ifup --force wlan0
  /sbin/ip route add default via $router dev wlan0
  /bin/mount -a
  echo "wlan0 reconnected at `date`"
fi

তারপরে রুট হিসাবে লগইন করুন sudo suএবং এর সাথে রুটের ক্রন্টব সম্পাদনা করুন crontab -e
এই ফাইলটির শেষে এই লাইনটি যুক্ত করুন:

10 * * * * /home/pi/reconnect.sh

এর অর্থ: "প্রতি 10 মিনিটে (মূল হিসাবে) সেই স্ক্রিপ্টটি কার্যকর করুন"

এখন, আপনার যদি সংযোগ থাকে তবে স্ক্রিপ্টটি প্রস্থান করবে এবং কিছুই হবে না। আপনি যদি নিজের রাউটারটি পিং করতে না পারেন তবে স্ক্রিপ্টটি wpa_supplicant ব্যবহার করে এটিতে আবার সংযোগ করার চেষ্টা করবে।

খেয়াল করুন যে ক্রোন স্ক্রিপ্ট থেকে প্রতিধ্বনিত সমস্ত কিছু (কেবলমাত্র সংযোগ বিচ্ছিন্ন হলে এই ক্ষেত্রে) ইমেল হয়ে যাবে। সুতরাং আপনি যদি নিজের মেইল ​​নাম এবং পোস্টস্ক্রিপ্ট কনফিগার করেছেন তবে আপনি যখনই আপনার পাইয়ের ওয়াইফাই সংযোগটি নিচে চলে যাবেন এবং তারপরে সফলতার সাথে আবার স্ক্রিপ্টের জন্য ধন্যবাদ পাবেন তখন আপনি একটি ইমেল পাবেন।


0

এটি আমার পক্ষে, রাস্পিয়ান জেসি 30. মার্চ ২০১.- এ ব্যবহার করে:

http://alexba.in/blog/2015/01/14/automatically-reconnecting-wifi-on-a-raspberrypi/


1
লিঙ্কটি মারা যাওয়ার ক্ষেত্রে দয়া করে আপনার পোস্টে সমাধানটির সংক্ষিপ্তসার করুন।
tlhIngan

সিএমবি, স্ট্যাকএক্সচেঞ্জের আরপিআই স্বাদযুক্ত কোণে আপনাকে স্বাগতম। সাইটের নীতি লিংক পচানোর সাপেক্ষে কেবলমাত্র লিঙ্কের উত্তরকে নিরুৎসাহিত করে । আপনাকে লিঙ্কের বিষয়বস্তুগুলি সদৃশ করার দরকার নেই, তবে একটি উত্তরের উত্তরের লিঙ্কটিতে থাকা হাইলাইটগুলিতে কমপক্ষে প্রসারিত হওয়া উচিত।
জ্যাকব এম 1001

উপরের জ্যাকবএম ২০০১ এর মন্তব্যে আরও তথ্যহীন লিংক-উত্তর সম্পর্কে আমাদের নীতিমালা রেখে, যদি এই পোস্টটিতে এমন তথ্য অন্তর্ভুক্ত করা যায় যা উত্তর হিসাবে দাঁড়াতে পারে তবে তা ন্যূনতম, 48 ঘন্টার মধ্যে এটি সম্প্রদায় উইকিতে রূপান্তরিত হবে যা সহজতর করার জন্য এটি সম্প্রদায় দ্বারা সংশোধন করা হয়েছে।
goobering
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.