প্রথম, আপনার প্রয়োজন 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
, আপনার এখন উভয় দিকেই ফাইল প্রেরণ এবং গ্রহণ করতে সক্ষম হওয়া উচিত।
ফাইলগুলি গ্রহণের চেষ্টা করার সময় ডিভাইসগুলি সংযোগ করতে ভুলবেন না।