টার্মিনাল থেকে ব্লুটুথের মাধ্যমে 2 কম্পিউটারের মধ্যে ফাইল ভাগ করুন


8

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

fdisk -l
mount /dev/sdc1 /media
mkdir /media/myfiles01
cp ~/file1 ~/file2 /media/myfiles01
cd ~
umount /dev/sdc1

এবং তারপরে, আমি ইউএসবি ডিভাইসটি সরিয়ে অন্য কম্পিউটারে প্লাগ করব, এবং ফাইলগুলিকে এতে স্থানান্তর করব; তবে আমি ভেবেছিলাম, আমি সরাসরি ফাইলগুলি ভাগ করতে ব্লুটুথ ব্যবহার করব না কেন?

সেই কম্পিউটারটিতে আমার কোনও জিইউআই নেই বলে আমি কি টার্মিনাল থেকে ব্লুটুথ ব্যবহার করতে পারি? এতে আমার কোনও পূর্ব অভিজ্ঞতা নেই, সুতরাং যদি এটি সম্ভব হয় তবে আমার বিশদ উত্তর প্রয়োজন।

উত্তর:


5

প্রথম, আপনার প্রয়োজন apt install bluez-tools obexpushd

ফাইলগুলি প্রেরণ এবং গ্রহণ করতে, আপনাকে প্রথমে ডিভাইসগুলি সেট আপ করতে এবং জোড়া করতে হবে।

সেটআপ


আর্ক উইকি থেকে - ব্লুটুথ :

Bluetoothctl

bluetoothctlইন্টারেক্টিভ কমান্ড শুরু করুন । helpউপলব্ধ কমান্ডগুলির একটি তালিকা পেতে একটি ইনপুট করতে পারে ।

  • প্রবেশের মাধ্যমে নিয়ন্ত্রণটিকে পাওয়ারটি চালু করুন power on। এটি ডিফল্টভাবে বন্ধ আছে।
  • devicesযে ডিভাইসের সাথে জুড়ি দিতে হবে তার ম্যাক ঠিকানা পেতে প্রবেশ করুন ।
  • ডিভাইস scan onতালিকায় এখনও না থাকলে কমান্ড সহ ডিভাইস আবিষ্কার মোড প্রবেশ করুন।
  • এজেন্ট চালু করুন agent on
  • pair MAC Addressজুটি করার জন্য প্রবেশ করুন (ট্যাব সমাপ্তির কাজ করে)।
  • যদি পিনবিহীন কোনও ডিভাইস ব্যবহার করা হয়, তবে সফলভাবে পুনরায় সংযোগ করার আগে ডিভাইসটিকে ম্যানুয়ালি বিশ্বাস করতে হবে। এটি করতে প্রবেশ করুন trust MAC Address
  • অবশেষে, connect MAC_addressএকটি সংযোগ স্থাপন করতে ব্যবহার করুন ।

ফাইল স্থানান্তরের প্রেরণের অংশের জন্য শেষ দুটি বুলেট পয়েন্ট প্রয়োজনীয় নয় connectতবে প্রাপ্ত অংশের জন্য আপনার পরবর্তীটি দরকার ।

উদাহরণস্বরূপ সেশনটি এইভাবে দেখতে পারে:

# bluetoothctl 
[NEW] Controller 00:10:20:30:40:50 pi [default]
[bluetooth]# agent KeyboardOnly 
Agent registered
[bluetooth]# default-agent 
Default agent request successful
[bluetooth]# scan on
Discovery started
[CHG] Controller 00:10:20:30:40:50 Discovering: yes
[NEW] Device 00:12:34:56:78:90 myLino
[CHG] Device 00:12:34:56:78:90 LegacyPairing: yes
[bluetooth]# pair 00:12:34:56:78:90
Attempting to pair with 00:12:34:56:78:90
[CHG] Device 00:12:34:56:78:90 Connected: yes
[CHG] Device 00:12:34:56:78:90 Connected: no
[CHG] Device 00:12:34:56:78:90 Connected: yes
Request PIN code
[agent] Enter PIN code: 1234
[CHG] Device 00:12:34:56:78:90 Paired: yes
Pairing successful
[CHG] Device 00:12:34:56:78:90 Connected: no
[bluetooth]# connect 00:12:34:56:78:90
Attempting to connect to 00:12:34:56:78:90
[CHG] Device 00:12:34:56:78:90 Connected: yes
Connection successful

পরিবর্তনগুলি স্থায়ী করতে এবং পুনরায় বুটের পরে ডিভাইসটি সক্রিয় করতে একটি udevবিধি প্রয়োজন:

/etc/udev/rules.d/10-local.rules

# Set bluetooth power up
ACTION=="add", KERNEL=="hci0", RUN+="/usr/bin/hciconfig %k up"

টিপ : সমস্ত বিটি ইন্টারফেসের KERNEL=="hci0"সাথে KERNEL=="hci[0-9]*"মিলিয়ে প্রতিস্থাপন করুন।

স্থগিত / পুনঃসূচনা-চক্রের পরে, ডিভাইসটি একটি কাস্টম সিস্টেমড পরিষেবা ব্যবহার করে স্বয়ংক্রিয়ভাবে চালিত হতে পারে:

/etc/systemd/system/bluetooth-auto-power@.service

[Unit]
Description=Bluetooth auto power on
After=bluetooth.service sys-subsystem-bluetooth-devices-%i.device suspend.target

[Service]
Type=oneshot
ExecStart=/usr/bin/hciconfig %i up

[Install]
WantedBy=suspend.target

উদাহরণস্বরূপ, আপনার ব্লুটুথ ডিভাইসের নাম ব্যবহার করে ইউনিটের একটি উদাহরণ সক্ষম করুন bluetooth-auto-power@hci0.service


এখন আপনার ডিভাইসগুলি যুক্ত করা হয়েছে। আপনি অন্যটি দেখতে পাচ্ছেন তা পরীক্ষা করে দেখুন bt-device -l

পাঠান

এর পরে, আপনাকে পাঠানোর জন্য পাঠানোর systemdজন্য আপনার অবকাঠামো প্রেরণ করতে হবে, অন্যথায় আপনি নিম্নলিখিত ত্রুটিটি পান:

Acquiring proxy failed: Error calling StartServiceByName for org.bluez.obex: GDBus.Error:org.freedesktop.systemd1.LoadFailed: Unit dbus-org.bluez.obex.service failed to load: No such file or directory.

এর systemdসাথে প্রয়োজনীয় পরিবর্তনগুলি করুন

systemctl --user start obex
sudo systemctl --global enable obex

এটি নিশ্চিত করে যে আপনি ফাইলগুলি প্রেরণ করতে পারবেন। একজন sudoপ্রথমে লাইনে ব্যর্থ হবে !

আপনি এখনই ফাইলগুলি প্রেরণ করতে পারেন bluetooth-sendto --device=12:34:56:78:9A:BC filename filename2। যদি স্থানান্তরটি 100% এ ctrlcস্থগিত হয় তবে একটি চূড়ান্ত করে এটি (বা পূর্বে বাতিল)।

আপনার ডিভাইসের নাম জানতে (12: 34: 56: 78: 9A: বিসি), আপনি ইস্যু করতে পারেন bt-device -l

গ্রহণ


রাস্পবেরি পাই ফোরাম থেকে :

আমরা একটি ওবিএক্স পুশ সার্ভার সেটআপ করতে চাই, এজন্যই obexpushdএটির প্রয়োজন হয়েছিল।

ব্লুটুথ ডেমনটিতে সামঞ্জস্যতা পতাকাটি প্রয়োজন, /etc/systemd/system/dbus-org.bluez.serviceআপনার পছন্দসই সম্পাদকটির সাথে লাইনের -Cশেষে পতাকা যুক্ত করে সম্পাদনা করতে হবে ExecStart=। এটিকে ঐটির মত দেখতে হবে:

ExecStart=/usr/lib/bluetooth/bluetoothd -C

sudo systemctl daemon-reloadসম্পাদনার পরে পরিষেবাটি পুনরায় বুট করুন বা পুনরায় চালু করুন । একটি নির্দিষ্ট ডিরেক্টরি চয়ন করুন যেখানে প্রাপ্ত ফাইলগুলি স্থাপন করা হয়, উদাহরণস্বরূপ sudo mkdir /bluetooth

দিয়ে সার্ভারটি শুরু করুন sudo obexpushd -B -o /bluetooth -n, এটির সাথে প্রতিক্রিয়া জানানো উচিত:

obexpushd 0.11.2 Copyright (C) 2006-2010 Hendrik Sattler
This software comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions.
Listening on bluetooth/[00:00:00:00:00:00]:9

যদি এটি কাজ না করে এবং আপনি পাবেন:

obexpushd 0.11.2 Copyright (C) 2006-2010 Hendrik Sattler
This software comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions.
BtOBEX_ServerRegister: Address already in use
net_init() failed

এটি হতে পারে কারণ আপনার আর একটি ডেমন বা প্রোগ্রাম চলমান রয়েছে যা obexpushdডিফল্টরূপে ব্যবহার করে rfcomm চ্যানেল 9 দখল করে । এই ক্ষেত্রে, চ্যানেলটিকে 23 টির মতো পরিবর্তন করুন:

sudo obexpushd -B23 -o /bluetooth -n

চ্যানেল 23 ব্যবহার করতে।

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

sudo sdptool browse local

এটি অন্যদের মধ্যে এটির (এই ক্ষেত্রে চ্যানেল 23 তে) তালিকাভুক্ত করা উচিত:

Service Name: OBEX Object Push
Service Description: a free OBEX server
Service Provider: obexpushd
Service RecHandle: 0x10005
Service Class ID List:
  "OBEX Object Push" (0x1105)
Protocol Descriptor List:
  "L2CAP" (0x0100)
  "RFCOMM" (0x0003)
    Channel: 23
  "OBEX" (0x0008)
Profile Descriptor List:
  "OBEX Object Push" (0x1105)
    Version: 0x0100

সেই উইন্ডোটিতে, obexpushdএখনও চলমান অবস্থায়, bluetoothctlসেট করতে ব্যবহার করুন discoverable on। এখন আপনার অন্যান্য ডিভাইস থেকে জোড় করুন। obexpushdচলার সময় জোড় তৈরি করা আবশ্যক , অথবা পরিষেবাটি উপলব্ধ রয়েছে এমন অন্য ডিভাইসটি স্বীকৃত হবে না। যদি ফোনটি ইতিমধ্যে যুক্ত হয়ে থাকে, তবে এটি অন্য ডিভাইস bluetoothctlথেকে সরিয়ে ফেলুন, উবুন্টু কম্পিউটার থেকে এটি সরিয়ে ফেলতে ব্যবহার করুন এবং পুনরায় জুটি দিন।

আপনি সংযোগ করার পরে (উপরের তালিকা থেকে শেষ বুলেট পয়েন্ট), আপনার ফাইলগুলি গ্রহণ করতে সক্ষম হওয়া উচিত। তারা /bluetoothডিরেক্টরিতে প্রদর্শিত হবে । লক্ষ্য করুন যে এগুলি রুটের মালিকানাধীন হবে, সুতরাং এগুলি অ্যাক্সেস করার জন্য আপনার sudo প্রয়োজন। বা আপনি chmod 0777 /bluetoothপাবলিক এক্সচেঞ্জ ডিরেক্টরিতে একটি করতে পারেন , যেহেতু ব্লুটুথ প্রমাণীকরণ ডিভাইস ভিত্তিক এবং যাইহোক ব্যবহারকারী ভিত্তিক নয়।

হেড এক্সপশড কমান্ডটি স্বয়ংক্রিয় করতে ফাইলটি তৈরি করুন /etc/systemd/system/obexpush.service

[Unit]
Description=OBEX Push service
After=bluetooth.service
Requires=bluetooth.service

[Service]
ExecStart=/usr/bin/obexpushd -B23 -o /bluetooth -n

[Install]
WantedBy=multi-user.target

তারপরে, এটি অটোস্টার্ট দিয়ে সেট করুন

sudo systemctl enable obexpush

রিবুট বা পরিষেবাটি পুনরায় চালু করার পরে sudo systemctl daemon-reload, আপনার এখন উভয় দিকেই ফাইল প্রেরণ এবং গ্রহণ করতে সক্ষম হওয়া উচিত।

ফাইলগুলি গ্রহণের চেষ্টা করার সময় ডিভাইসগুলি সংযোগ করতে ভুলবেন না।


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

যত্নশীল: /etc/systemd/system/dbus-org.bluez.serviceসম্ভবত এটির জন্য একটি সিমিলিংক /lib/systemd/...এবং আপনি এটির সংশোধন করতে চান না। আপনি একটি ওভাররাইড ব্যবহার করা উচিত: তৈরি /etc/systemd/system/dbus-org.bluez.service.dডিরেক্টরি ও শেষ হওয়া সেখানে একটি ফাইল করা .conf(যেমন add-compat-flag.conf,) শুধুমাত্র ধারণকারী: [Service] ExecStart= ExecStart=/usr/lib/bluetooth/bluetoothd -C(অবশ্যই সঠিক লাইন ফিড সহ)
Pikrass
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.