Files
local_machine/docs/old_mac/BLUETOOTH_FILE_TRANSFER.md

238 lines
7.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Передача файлов Mac → Fedora (Bluetooth)
**Откуда:** этот Mac (Apple Silicon / основной)
**Куда:** MacBook Pro Intel с Fedora 43 (устройство Bluetooth: **fedora**, `60:FB:42:7D:2D:66`)
**Проверено:** 2026-06-16
Связанные документы: [README.md](./README.md), [RUNBOOK.md](./RUNBOOK.md) (WiFi BCM4322).
---
## 1. Быстрый путь (канон)
### Шаг 1 — Fedora: включить приём **до** отправки
Blueman (иконка Bluetooth в трее) → **«Принять файл»** / **Receive a File**.
Должен появиться диалог **«Ожидание входящего файла…»**.
Без этого Mac отправит файл, но на Fedora **ничего не произойдёт** — диалога не будет.
### Шаг 2 — Mac: отправить
```bash
# delivery-архив Wi-Fi fix (по умолчанию)
bash ~/code/local_machine/docs/old_mac/scripts/send-to-fedora-bluetooth.sh
# любой другой файл
bash ~/code/local_machine/docs/old_mac/scripts/send-to-fedora-bluetooth.sh /path/to/file.tar.gz
```
В окне **Bluetooth File Exchange** выбрать **fedora****Send** / **Отправить**.
### Шаг 3 — Fedora: проверить
Файл обычно в `~/Downloads` или `~/Bluetooth`:
```bash
ls -la ~/Downloads/
```
---
## 2. RCA: почему «отправилось», а на Fedora тишина
| Что видели | Причина |
|------------|---------|
| AppleScript пишет «send выполнена» | macOS **не запускает** OBEX-приём на Linux автоматически |
| Окно на Mac открылось, Fedora молчит | На Fedora **не был включён** «Принять файл» |
| `bnep0` / PAN не связан с файлами | Передача файлов — **OBEX**, не PAN |
| Устройство paired, но не Connected | На Fedora: Bluetooth on, Trust Mac, оставить в зоне видимости |
**Правило:** сначала **приём на Fedora**, потом **отправка с Mac**.
---
## 3. Предварительные условия
### Сопряжение (один раз)
**Fedora:**
```bash
bluetoothctl
power on
agent on
default-agent
scan on
# найти Mac по имени, затем:
pair <MAC_ЭТОГО_MAC>
trust <MAC_ЭТОГО_MAC>
```
**Mac:** Системные настройки → Bluetooth → подтвердить сопряжение.
### Перед каждой передачей
**Mac** — fedora в **Connected**:
```bash
system_profiler SPBluetoothDataType | grep -A6 "Connected:"
# должно быть: fedora (60:FB:42:7D:2D:66)
```
**Fedora** — Blueman установлен:
```bash
sudo dnf install blueman bluez-obexd
blueman-applet &
```
---
## 4. Подробно: Fedora (приём)
### Способ A — Blueman GUI (рекомендуется)
1. Иконка Bluetooth в трее (Blueman).
2. **Принять файл** / **Receive a File**.
3. Ждать диалог «Ожидание входящего файла…».
4. **Не закрывать** до завершения передачи.
### Способ B — скрипт-подсказка
Если скрипт уже есть на Fedora (после первой передачи или скопирован вручную):
```bash
bash prepare-receive-fedora.sh
```
Скрипт напомнит про Blueman и будет ждать файл в `~/Downloads`.
Сам по себе **не заменяет** пункт «Принять файл» в Blueman (без `obexpushd`).
### Куда попадает файл
| Среда | Путь |
|-------|------|
| GNOME + Blueman | `~/Downloads` |
| KDE | `~/Downloads` или `~/Bluetooth` |
| obexpushd | каталог из `-p` |
---
## 5. Подробно: Mac (отправка)
### Способ A — скрипт (рекомендуется)
```bash
# Wi-Fi fix archive (готовый)
bash ~/code/local_machine/docs/old_mac/scripts/send-to-fedora-bluetooth.sh
# произвольный файл
bash ~/code/local_machine/docs/old_mac/scripts/send-to-fedora-bluetooth.sh ~/Desktop/myfile.tar.gz
# другое имя BT-устройства (если не «fedora»)
bash ~/code/local_machine/docs/old_mac/scripts/send-to-fedora-bluetooth.sh myfile.zip my-fedora
```
Скрипт проверяет, что **fedora** в Connected, и открывает **Bluetooth File Exchange**.
### Способ B — вручную (без скрипта)
1. Finder → файл → ПКМ → **Поделиться****Bluetooth**
**или** открыть `/System/Applications/Utilities/Bluetooth File Exchange.app`
2. Перетащить файл в окно / File → Send File…
3. Выбрать **fedora****Send**
### Способ C — из терминала (то же GUI)
```bash
open -a "Bluetooth File Exchange" /path/to/file.tar.gz
```
Дальше вручную выбрать **fedora****Send**.
---
## 6. Что отправлять (WiFi fix)
Готовый архив для Fedora:
```text
docs/old_mac/deliverable/fedora-bcm4322-wifi-fix.tar.gz
```
Пересобрать:
```bash
bash ~/code/local_machine/docs/old_mac/scripts/build-delivery-archive.sh
```
После приёма на Fedora:
```bash
cd ~/Downloads
tar xzf fedora-bcm4322-wifi-fix.tar.gz
cd fedora-bcm4322-wifi-fix
sudo bash install-bcm4322-firmware-fedora.sh
sudo reboot
```
---
## 7. Диагностика
### Mac
```bash
system_profiler SPBluetoothDataType | grep -A8 "Connected:"
pgrep -lf "Bluetooth File Exchange"
```
### Fedora
```bash
bluetoothctl devices
bluetoothctl info 60:FB:42:7D:2D:66 # MAC этого Mac — подставить свой
systemctl --user status obex
journalctl -b -u bluetooth | tail -30
ls -la ~/Downloads/ ~/Bluetooth/ 2>/dev/null
```
### Типичные ошибки
| Симптом | Действие |
|---------|----------|
| Нет диалога приёма на Fedora | Blueman → **Принять файл** **до** Send на Mac |
| «fedora не в Connected» на Mac | Fedora: BT on, Trust, не спать |
| Передача оборвалась | Файл < 50 MB надёжнее; повторить с шага 1 |
| Blueman нет в трее | `blueman-applet &` |
| obex не стартует | `sudo dnf install bluez-obexd blueman` |
---
## 8. Альтернативы Bluetooth
Если BT-файлы не идут:
| Способ | Когда |
|--------|-------|
| **USB-флешка** | Самый надёжный offline |
| **USB tether** телефон → Fedora, `scp` с Mac в локалку | Если есть общая сеть |
| **Телефон как посредник** | Mac → телефон → Fedora (USB/BT) |
---
## 9. Порядок действий (шпаргалка)
```text
[FEDORA] Blueman → Принять файл → «Ожидание…»
[MAC] bash …/send-to-fedora-bluetooth.sh
[MAC] Bluetooth File Exchange → fedora → Send
[FEDORA] Файл в ~/Downloads
[FEDORA] tar xzf … && sudo bash install-….sh
```
---
*docs/old_mac — local_machine*