Bluetooth adapter recognized as "Portable Media Player"

My “MediaTek Foxconn / Hon Hai Wireless_Device” is recognized as a “Portable Media Player”.

I recently bought a laptop Legion 5 15IAX10. Everything, including bluetooth, is working fine, except this one small issue. If i click “Open in file manager” it gives the following error: “The file or folder udi=/org/kde/solid/udev/sys/devices/pci0000:80/0000:80:14.0/usb3/3-14/ does not exist.”

Here’s the output of udevadm info about this device.

udevadm info -p /sys/devices/pci0000:80/0000:80:14.0/usb3/3-14
P: /devices/pci0000:80/0000:80:14.0/usb3/3-14
M: 3-14
R: 14
J: c189:260
U: usb
T: usb_device
D: c 189:260
N: bus/usb/003/005
L: 0
S: libmtp-3-14
V: usb
E: DEVPATH=/devices/pci0000:80/0000:80:14.0/usb3/3-14
E: SUBSYSTEM=usb
E: DEVNAME=/dev/bus/usb/003/005
E: DEVTYPE=usb_device
E: DRIVER=usb
E: PRODUCT=489/e111/100
E: TYPE=239/2/1
E: BUSNUM=003
E: DEVNUM=005
E: MAJOR=189
E: MINOR=260
E: USEC_INITIALIZED=5683010
E: ID_BUS=usb
E: ID_MODEL=Wireless_Device
E: ID_MODEL_ENC=Wireless_Device
E: ID_MODEL_ID=e111
E: ID_SERIAL=MediaTek_Inc._Wireless_Device_000000000
E: ID_SERIAL_SHORT=000000000
E: ID_VENDOR=MediaTek_Inc.
E: ID_VENDOR_ENC=MediaTek\x20Inc.
E: ID_VENDOR_ID=0489
E: ID_REVISION=0100
E: ID_USB_MODEL=Wireless_Device
E: ID_USB_MODEL_ENC=Wireless_Device
E: ID_USB_MODEL_ID=e111
E: ID_USB_SERIAL=MediaTek_Inc._Wireless_Device_000000000
E: ID_USB_SERIAL_SHORT=000000000
E: ID_USB_VENDOR=MediaTek_Inc.
E: ID_USB_VENDOR_ENC=MediaTek\x20Inc.
E: ID_USB_VENDOR_ID=0489
E: ID_USB_REVISION=0100
E: ID_USB_INTERFACES=:e00101:
E: ID_VENDOR_FROM_DATABASE=Foxconn / Hon Hai
E: ID_MEDIA_PLAYER=1
E: ID_MTP_DEVICE=1
E: ID_PATH_WITH_USB_REVISION=pci-0000:80:14.0-usbv2-0:14
E: ID_PATH=pci-0000:80:14.0-usb-0:14
E: ID_PATH_TAG=pci-0000_80_14_0-usb-0_14
E: ID_FOR_SEAT=usb-pci-0000_80_14_0-usb-0_14
E: DEVLINKS=/dev/libmtp-3-14
E: TAGS=:seat:uaccess:
E: CURRENT_TAGS=:seat:uaccess:

I couldn’t find any other posts about this or similar issues. Please let me know if you need any other info from me to help me solve this.

Thanks in advance :slight_smile:

$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 17ef:f006 Lenovo Idea5003
Bus 003 Device 003: ID 048d:c195 Integrated Technology Express, Inc. ITE Device(8258)
Bus 003 Device 004: ID 5986:11ad Bison Electronics Inc. Integrated Camera
Bus 003 Device 005: ID 0489:e111 Foxconn / Hon Hai Wireless_Device
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

On my brand-new Lenovo Yoga 7 2-in-1 14ILL10 which shares similar hardware including the MediaTek Foxconn / Hon Hai Wireless_Device, I have MANJARO_KDE_2510 installed. Manjaro is a similar Arch derived distribution to EndeavourOS. The “Portable Media Player” shows up and is only a problem if I try to access any of it’s phantom exposed media.

To get everything else working or at least not showing warnings at boot time, I have concentrated on installing firmwares. Only the screen rotation sensor (not a Legion feature) needed to be imported from a Windows install. (https://dnsense.pub/posts/9-book5-sensor-hub/)
Note that the firmwares which installed, detected by the distribution install, should be correct and should not be removed. To get “mkinitcpio -P” to process the kernel packages for boot without warnings some other firmwares need to be found and installed. My current installed list is:

linux-firmware-amdgpu,20250917-1, linux-firmware-ath10k,20250917-1, linux-firmware-broadcom,20250917-1, linux-firmware-cirrus,20250917-1, linux-firmware-intel,20250917-1, linux-firmware-marvell,20250917-1, linux-firmware-mediatek,20250917-1, linux-firmware-meta,20250917-1, linux-firmware-nvidia,20250917-1, linux-firmware-other,20250917-1, linux-firmware-qcom,20250917-1, linux-firmware-qlogic,20250917-1, linux-firmware-radeon,20250917-1, linux-firmware-realtek,20250917-1, linux-firmware-whence,20250917-1, aic94xx-firmware,30-10,AUR, ast-firmware,501-1,AUR, wd719x-firmware,1-9,AUR.

Some firmwares are likely not used so should not cause any problems, just use a little disk space. The Mediatek firmware for the mt7925e loads and bluetooth works normally apart from this media drive issue.

Claude AI helped me write the udev and KDE solid rules and an instal script to manage both detection and kde/dolphin places. Your USB device ID may need to be changed and the device path(s) updated.

Now these phantom media locations are hidden avoiding user interaction and errors! Remember this is a fix, a firmware solution may solve this better upstream.

media_device_hide_fix.sh

#!/bin/bash
# Complete fix to hide MediaTek wireless adapter from ALL KDE device lists
# This includes: System Tray, Dolphin sidebar, Device Notifier, Solid device list

echo "========================================================================="
echo "Complete Fix: Hide MediaTek Wireless Adapter from KDE Device Lists"
echo "========================================================================="
echo ""
echo "This will hide the wireless adapter and its 3 interfaces from:"
echo "  • System tray (Portable Media Players)"
echo "  • Dolphin Places panel"
echo "  • Device Notifier widget"
echo "  • KDE Solid device list"
echo ""

# 1. Install udev rules
echo "Step 1: Installing udev rules..."
echo "----------------------------------------"

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
RULES_FILE="$SCRIPT_DIR/99-hide-mediatek-wireless.rules"

if [ -f "$RULES_FILE" ]; then
    sudo cp "$RULES_FILE" /etc/udev/rules.d/
    echo "   ✓ Merged udev rule installed: 99-hide-mediatek-wireless.rules"
else
    echo "   ✗ Error: $RULES_FILE not found"
    echo "   Expected location: $SCRIPT_DIR/"
    exit 1
fi

# 2. Reload udev
echo ""
echo "Step 2: Reloading udev rules..."
echo "----------------------------------------"
sudo udevadm control --reload-rules
sudo udevadm trigger --subsystem-match=usb --action=change
echo "   ✓ Udev rules reloaded and applied"

# 3. Verify udev changes
echo ""
echo "Step 3: Verifying udev configuration..."
echo "----------------------------------------"
for iface in 3-6 3-6:1.0 3-6:1.1 3-6:1.2; do
    DEVICE_PATH="/sys/devices/pci0000:00/0000:00:14.0/usb3/3-6"
    if [ "$iface" != "3-6" ]; then
        DEVICE_PATH="$DEVICE_PATH/$iface"
    fi
    
    IGNORE=$(udevadm info --path="$DEVICE_PATH" 2>&1 | grep "UDISKS_IGNORE=1")
    MEDIA=$(udevadm info --path="$DEVICE_PATH" 2>&1 | grep "ID_MEDIA_PLAYER=1")
    
    if [ -n "$IGNORE" ] && [ -z "$MEDIA" ]; then
        echo "   ✓ $iface - Hidden"
    else
        echo "   ⚠ $iface - May still be visible"
    fi
done

# 4. Configure KDE Solid
echo ""
echo "Step 4: Configuring KDE Solid..."
echo "----------------------------------------"
if [ -f ~/.config/solid/devices.conf ]; then
    echo "   ✓ Solid devices.conf already configured"
else
    echo "   ⚠ Solid devices.conf not found (should have been created)"
fi

# 5. Configure Dolphin
echo ""
echo "Step 5: Configuring Dolphin..."
echo "----------------------------------------"
HIDDEN=$(kreadconfig5 --file dolphinrc --group "PlacesPanel" --key "HiddenItemsFromDevices" 2>&1)
if echo "$HIDDEN" | grep -q "3-6"; then
    echo "   ✓ Dolphin configured to hide devices"
else
    echo "   ⚠ Dolphin configuration may need manual adjustment"
fi

# 6. Restart KDE services
echo ""
echo "Step 6: Restarting KDE services..."
echo "----------------------------------------"
echo "   Stopping Dolphin instances..."
killall dolphin 2>/dev/null
echo "   Restarting Plasma Shell..."
kquitapp5 plasmashell 2>/dev/null
sleep 2
kstart5 plasmashell 2>/dev/null &
echo "   ✓ KDE services restarted"

# 7. Final verification
echo ""
echo "Step 7: Final verification..."
echo "----------------------------------------"
SOLID_COUNT=$(solid-hardware5 list 2>&1 | grep -c "3-6:")
if [ "$SOLID_COUNT" -eq 0 ]; then
    echo "   ✓ Devices successfully hidden from Solid"
else
    echo "   ⚠ $SOLID_COUNT device(s) still visible in Solid"
    echo "     (May require logout/login to fully apply)"
fi

echo ""
echo "========================================================================="
echo "Fix Complete!"
echo "========================================================================="
echo ""
echo "The wireless adapter should now be hidden from all device lists."
echo ""
echo "If devices still appear:"
echo "  1. Log out and log back in"
echo "  2. Check system tray and Dolphin sidebar"
echo "  3. Run: solid-hardware5 list | grep '3-6'"
echo ""
echo "To verify the fix worked:"
echo "  • Open Dolphin - check Places panel (no wireless device)"
echo "  • Check system tray - click Devices icon (no portable media players)"
echo ""

/etc/udev/rules.d/99-hide-mediatek-wireless.rules

==============================================================================

Complete udev rules to hide MediaTek wireless adapter from KDE device lists

==============================================================================

Device: MediaTek Inc. Wireless_Device (USB ID 0489:e111)

Location: Internal USB port 3-6

Purpose: Prevent internal Bluetooth/WiFi adapter from appearing as removable

media device in KDE system tray, Dolphin, and device notifier

==============================================================================

PARENT DEVICE (3-6)

Hide the main USB device from all device managers

SUBSYSTEM==“usb”, ENV{ID_VENDOR_ID}==“0489”, ENV{ID_MODEL_ID}==“e111”, 
ENV{UDISKS_IGNORE}=“1”, 
ENV{ID_MEDIA_PLAYER}=“”, 
ENV{ID_MTP_DEVICE}=“”, 
ENV{ID_GPHOTO2}=“”, 
ENV{ID_INPUT}=“”, 
ENV{SOLID_IGNORE}=“1”, 
TAG+=“uaccess”, TAG-=“uaccess”

USB INTERFACES (3-6:1.0, 3-6:1.1, 3-6:1.2)

Hide all USB interfaces by matching vendor/product attributes

SUBSYSTEM==“usb”, ATTRS{idVendor}==“0489”, ATTRS{idProduct}==“e111”, 
ENV{DEVTYPE}==“usb_interface”, 
ENV{UDISKS_IGNORE}=“1”, 
ENV{ID_MEDIA_PLAYER}=“”, 
ENV{ID_MTP_DEVICE}=“”, 
ENV{ID_GPHOTO2}=“”, 
ENV{ID_INPUT}=“”, 
ENV{SOLID_IGNORE}=“1”, 
TAG+=“uaccess”, TAG-=“uaccess”

KERNEL NAME PATTERN MATCH

Additional rule to catch interfaces by kernel name pattern

SUBSYSTEM==“usb”, KERNEL==“3-6:*”, 
ENV{UDISKS_IGNORE}=“1”, 
ENV{ID_MEDIA_PLAYER}=“”, 
ENV{ID_MTP_DEVICE}=“”, 
ENV{ID_GPHOTO2}=“”, 
ENV{ID_INPUT}=“”, 
ENV{SOLID_IGNORE}=“1”, 
TAG+=“uaccess”, TAG-=“uaccess”

SPECIFIC PORT MATCH

Catch any device on this specific USB port

SUBSYSTEM==“usb”, KERNELS==“3-6”, 
ENV{UDISKS_IGNORE}=“1”, 
ENV{ID_MEDIA_PLAYER}=“”, 
ENV{ID_MTP_DEVICE}=“”, 
ENV{ID_GPHOTO2}=“”, 
ENV{SOLID_IGNORE}=“1”

==============================================================================

What these rules do:

- UDISKS_IGNORE=1        : Hide from UDisks2 (disk manager)

- ID_MEDIA_PLAYER=“”     : Remove media player identification

- ID_MTP_DEVICE=“”       : Remove MTP (Media Transfer Protocol) tag

- ID_GPHOTO2=“”          : Remove camera/photo device tag

- ID_INPUT=“”            : Remove input device tag

- SOLID_IGNORE=1         : Hide from KDE Solid device framework

- TAG-=“uaccess”         : Remove user access tag (prevents auto-mounting)

==============================================================================

Thank you so much for your reply!

i put the following config into /etc/udev/rules.d/99-hide-mediatek-wireless.rules and its finally gone!

SUBSYSTEM=="usb", ENV{ID_VENDOR_ID}=="0489", ENV{ID_MODEL_ID}=="e111", ENV{UDISKS_IGNORE}="1", ENV{ID_MEDIA_PLAYER}="", ENV{ID_MTP_DEVICE}="", ENV{ID_GPHOTO2}="", ENV{ID_INPUT}="", ENV{SOLID_IGNORE}="1", TAG-="uaccess"

SUBSYSTEM=="usb", ATTRS{idVendor}=="0489", ATTRS{idProduct}=="e111", ENV{DEVTYPE}=="usb_interface", ENV{UDISKS_IGNORE}="1", ENV{ID_MEDIA_PLAYER}="", ENV{ID_MTP_DEVICE}="", ENV{ID_GPHOTO2}="", ENV{ID_INPUT}="", ENV{SOLID_IGNORE}="1", TAG-="uaccess"

SUBSYSTEM=="usb", KERNEL=="3-14:*", ENV{UDISKS_IGNORE}="1", ENV{ID_MEDIA_PLAYER}="", ENV{ID_MTP_DEVICE}="", ENV{ID_GPHOTO2}="", ENV{ID_INPUT}="", ENV{SOLID_IGNORE}="1", TAG-="uaccess"

SUBSYSTEM=="usb", KERNELS=="3-14", ENV{UDISKS_IGNORE}="1", ENV{ID_MEDIA_PLAYER}="", ENV{ID_MTP_DEVICE}="", ENV{ID_GPHOTO2}="", ENV{SOLID_IGNORE}="1"
1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.