ການແກ້ໄຂບັນຫາບລູທູດ (Bluetooth)
ບລູທູດ (Bluetooth) ແມ່ນໂປຣໂຕຄໍໄຮ້ສາຍໄລຍະໃກ້ ທີ່ໃຊ້ເພື່ອເຊື່ອມຕໍ່ກັບອຸປະກອນ I/O ທີ່ມີແບນວິດ (bandwidth) ຕໍ່າ (ເຊັ່ນ: ຄີບອດ, ເມົ້າ, ຫູຟັງ). ເວີຊັນໃໝ່ກວ່າຈະມີໂໝດພະລັງງານຕໍ່າ ທີ່ມີແບນວິດ ແລະ ໄລຍະການເຊື່ອມຕໍ່ທີ່ສູງຂຶ້ນກວ່າເກົ່າເລັກນ້ອຍ.
ວິທີແກ້ໄຂບັນຫາບລູທູດນີ້ ປະກອບດ້ວຍ daemon ຂອງ userspace ທີ່ຊື່ວ່າ bluetoothd, ເຊິ່ງເຮັດໜ້າທີ່ສື່ສານຜ່ານພອດຈັດການ (management port) ໃນເຄີເນີນ (kernel) ໄປຫາໄດຣເວີ (driver) ຂອງຮາດແວ. ແອັບພລິເຄຊັນຕ່າງໆທີ່ຕ້ອງການສື່ສານກັບ bluetoothd daemon ແມ່ນຈະເຮັດຜ່ານ d-bus api. ນີ້ລວມເຖິງແອັບເປລັດ (applets) ບລູທູດຕ່າງໆຂອງ GNOME.
ການລະບຸບັນຫາບລູທູດ
ພົບຮາດແວບລູທູດຫຼືບໍ່?
-
ກວດສອບໃຫ້ແນ່ໃຈວ່າ ພົບ ແລະ ເປີດໃຊ້ງານບລູທູດແລ້ວ (ສັງເກດ hci0: ແລະ 'UP RUNNING'):
$ hciconfig hci0: Type: Primary Bus: USB BD Address: xx:xx:xx:xx:xx:xx ACL MTU: 1021:4 SCO MTU: 96:6 UP RUNNING PSCAN RX bytes:15047 acl:0 sco:0 events:2433 errors:0 TX bytes:599323 acl:0 sco:0 commands:2431 errors:0 -
ຫາກຄຳສັ່ງບໍ່ສະແດງຜົນຫຍັງ (ບໍ່ມີຂໍ້ມູນ hci:), ສະແດງວ່າເປັນບັນຫາທີ່ຮາດແວ
$ lsusb -v | grep Bluetooth | grep DeviceProtocol bDeviceProtocol 1 Bluetooth -
ຫາກຄຳສັ່ງ lsusb ບໍ່ສະແດງຜົນຫຍັງ, ສະແດງວ່າບໍ່ມີຮາດແວ, ເຊິ່ງອາດຈຳເປັນຕ້ອງໃຊ້ຜົນຈາກ dmesg
-
ຫາກຄຳສັ່ງ lsusb ສະແດງຜົນເປັນ Bluetooth, ໃຫ້ກວດສອບໄດຣເວີທີ່ເຊື່ອມຕໍ່ຢູ່
$ lsusb -t | grep Wireless |__ Port 4: Dev 4, If 1, Class=Wireless, Driver=btusb, 12M |__ Port 4: Dev 4, If 0, Class=Wireless, Driver=btusb, 12M -
ຫາກຊ່ອງ Driver ວ່າງຢູ່, ຈະຕ້ອງໃຊ້ຜົນຈາກ
lsusb -vເພື່ອເພີ່ມ ids -
ຫາກ hciconfig ສະແດງຜົນອອກມາ ແຕ່ບໍ່ມີສະຖານະ UP
$ hciconfig up -
ລາຍການອຸປະກອນທີ່ຈັບຄູ່ແລ້ວ:
$ bluetoothctl [bluetooth]# show [bluetooth]# devices [bluetooth]# info <mac addr of any device you have problems with>
bluetoothd daemon ກຳລັງເຮັດວຽກຢູ່ຫຼືບໍ່?
-
ກວດສອບພາຍໃຕ້ systemd ວ່າບລູທູດມີສະຖານະ 'Active' ແລະ 'enabled' ຫລືບໍ່
$ systemctl status bluetooth ● bluetooth.service - Bluetooth service Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2017-10-04 16:07:40 EDT; 1 day 22h ago Docs: man:bluetoothd(8) Main PID: 27427 (bluetoothd) Status: "Running" Tasks: 1 (limit: 4915) CGroup: /system.slice/bluetooth.service └─27427 /usr/libexec/bluetooth/bluetoothd -
ກວດສອບວ່າ obex ຖືກຕັ້ງຄ່າໃຫ້ເຮັດວຽກຫຼືບໍ່ (ເພື່ອໂອນຍ້າຍໄຟລ໌ຈາກໂທລະສັບ)
$ systemctl --global --user is-enabled obex
enabled
ການດີບັກ (debugging) ແບບງ່າຍໆ
ບັນຫາບລູທູດສ່ວນໃຫຍ່ແມ່ນເກີດຂຶ້ນໃນແພັກເກດ bluez (bluetoothd), ເຊິ່ງກໍຄື userspace daemon.
-
ແກ້ໄຂໄຟລ໌
/usr/lib/systemd/system/bluetooth.service -
ເພີ່ມ
-dເຂົ້າໃນແຖວ ExecStart ເພື່ອເປັນຕົວເລືອກໃຫ້ກັບ bluetoothd -
ບັນທຶກ ແລະ ອອກ
$ systemctl daemon-reload
$ systemctl restart bluetooth
ການດີບັກຖືກເປີດໃຊ້ງານແລ້ວ ແລະ ສາມາດຊ່ວຍລະບຸໄດ້ວ່າບັນຫາຂອງບລູທູດເກີດຂຶ້ນຢູ່ໃສ
$ journalctl -r -u bluetooth > /tmp/bluetoothd.out
ການແກ້ໄຂບັນຫາເຟີມແວ (firmware)
ບາງຄັ້ງ ເຟີມແວຂອງອະແດັບເຕີບລູທູດອາດຈະຕົກຢູ່ໃນສະຖານະທີ່ບໍ່ສາມາດຈັບຄູ່ກັບອຸປະກອນບລູທູດບາງອັນ (ຫຼື ທັງໝົດ) ໄດ້. ທ່ານອາດຈະສາມາດແກ້ໄຂບັນຫາດັ່ງກ່າວໄດ້ໂດຍການຣີເຊັດອະແດັບເຕີຂອງທ່ານ.
ໃນກໍລະນີຂອງແລັບທັອບທີ່ມີອະແດັບເຕີບລູທູດໃນຕົວ, ສາມາດເຮັດໄດ້ດັ່ງນີ້:
-
ເຂົ້າໄປທີ່ການຕັ້ງຄ່າເຟີມແວຂອງແລັບທັອບ (BIOS) ແລ້ວປິດການໃຊ້ງານອະແດັບເຕີໃນຕົວ
-
ບັນທຶກການຕັ້ງຄ່າ ແລະ ເລີ່ມຕົ້ນແລັບທັອບໃໝ່
-
ເຂົ້າໄປທີ່ການຕັ້ງຄ່າເຟີມແວອີກຄັ້ງ ແລ້ວເປີດໃຊ້ງານອະແດັບເຕີບລູທູດຄືນໃໝ່
-
ບັນທຶກ ແລະ ເລີ່ມຕົ້ນລະບົບໃໝ່
-
ຈາກນັ້ນໃຫ້ລອງຈັບຄູ່ອຸປະກອນອີກຄັ້ງ
Want to help? Learn how to contribute to Fedora Docs ›