A computer does not live on wifi alone
A step by step solution based on real experience with my Xiaomi Redmi Note 13 Pro + Debian GNU/Linux
The Original Problem
We needed internet to reinstall a WiFi driver, but:
- USB tethering was disabled on the phone
- No Ethernet access
- WiFi driver was not working
Solution: Bluetooth Tethering
Step 1: Prepare the Linux system
bash
# Instalar herramientas Bluetooth
sudo apt install bluetooth bluez-tools net-tools
# Iniciar y habilitar el servicio
sudo systemctl start bluetooth
sudo systemctl enable bluetooth
Step 2: Configure the Redmi phone
Key discoveries:
- Enable mobile data – Bluetooth tethering requires active data
- Go to:
Ajustes > Conexión y uso compartido > Anclaje a red y zona Wi-Fi - Enable «Bluetooth tethering» – BEFORE pairing
- Changing the device name to something identifiable helps
Step 3: Pairing from Linux
bash
# Iniciar bluetoothctl
bluetoothctl
# Dentro de bluetoothctl:
power on
agent on
scan on
# Esperar a ver el dispositivo...
devices
# Buscar tu teléfono en la lista
pair [MAC_ADDRESS]
trust [MAC_ADDRESS]
connect [MAC_ADDRESS]
Step 4: The crucial trick – bt-network
Common problem: Bluetooth connects but does not create a network interface.
bash
# Mientras está conectado en bluetoothctl, en otra terminal:
sudo bt-network -c [MAC_ADDRESS] nap
# Verificar interfaz
ip link show
# Deberías ver bnep0 o similar
# Configurar DHCP
sudo dhclient bnep0
Step 5: Verify the connection
bash
ip addr show bnep0
ping -c 3 8.8.8.8
Common Problems and Solutions
1. «Network service is connected, and then disconnected»
- Cause: Bluetooth tethering not enabled on the phone
- Solution: Enable it before connecting
2. The bnep0 interface is not created
- Cause: Missing PAN service
- Solution: Use
bt-networkorpand
3. The device cannot be identified
- Trick: Turn the phone’s Bluetooth off/on during
scan on - Identify by MAC: See it in the phone settings
4. Very slow connection
- Normal: Bluetooth 2.1-3.0 ~ 3 Mbps
- Solution: Patience for small updates
Useful Commands for Diagnosis
bash
# Ver estado Bluetooth
sudo systemctl status bluetooth
rfkill list all
# Ver dispositivos emparejados
bluetoothctl devices
# Ver información de conexión
bluetoothctl info [MAC]
# Forzar reconexión
sudo systemctl restart bluetooth
Optimised Workflow
- Phone: Enable data + Bluetooth tethering
- Linux:
bluetoothctl→ pair → trust → connect - Linux:
bt-network -c [MAC] nap - Linux:
dhclient bnep0 - Verify:
ping 8.8.8.8
Conclusion
Bluetooth tethering is a rescue tool that is like gold dust when other connection methods fail. The key is in:
- Pre-configuring the phone correctly
- Using
bt-networkinstead of relying only onbluetoothctl - Being patient with the limited speed
This solution let us download critical packages and solve the real WiFi driver problem, showing that even slow connections can be enough for essential administrative tasks.