আমি বেশিরভাগ নেটওয়ার্ক অটো কনফিগারেশন এবং সংযোগ পরিচালন ডেমন স্টাফ অক্ষম করতে এবং নিজে নিজে এটি মোকাবেলা করতে পছন্দ করি। এখানে একটি (বাশ) স্ক্রিপ্ট রয়েছে যা নেটওয়ার্কটি যতক্ষণ থাকবে ততক্ষণ সংযোগটি বজায় রাখবে এবং আপনার কাছে কোনও চটকদার ওয়াইফাই ড্রাইভার বা পাওয়ার সমস্যা নেই; ধারণাটি হ'ল প্রতি এন সেকেন্ডে রাউটারটি পিং করা এবং যদি এটি ব্যর্থ হয় তবে পুনরায় সংযুক্ত করুন:
#!/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 মডিউলটি এই সময়ে কার্নেল দ্বারা লোড করা হবে - তাই ওয়াইফাইটি শুরু করা উচিত। যদি তা না হয় তবে ধরে নেওয়া হয় যে ইথারনেটটি প্লাগ ইন করা হয়েছে এবং এটি ব্যবহার করা উচিত (যদি তা না হয় তবে ডিএইচসিএলেন্টটি কেবল ক্রপ হয়ে যাবে এবং কোনও নেটওয়ার্ক অ্যাক্সেস নেই)।
এটি কাজ করার জন্য আপনাকে সম্ভবত করতে হবে
সুতরাং, এটি বুট করার সময় নেটওয়ার্কটিতে একটি মাথাবিহীন পাই পায় এবং এটি সেখানে রাখে। লগ ইন না করে চলতে চলতে আপনি যদি নীতিতে স্যুইচ করার কোনও উপায় চান, আপনি ওয়াইফাই ডাঙ্গলটি বাইরে টেনে আনার জন্য উদেব বিধিগুলি দিয়ে কিছু করতে পারেন ।