I’m working on getting it to work on reboot without unplugging and plugging it back in, now.
Unlike in the HOWTO I linked in the original post, the following command, while it does modeswitch the device from showing up as an 8151 to an 8156, does not survive restart.
~]$ sudo usb_modeswitch -v 0bda -p 8151 -V 0bda -P 8156 -M 555342430860d9a9c0000000800006e0000000000000000000000000000000
I’ve looked at sample udev rules, and they confuse the crap out of me, so I think the simpler thing to do would be to set up a run-on-boot service via systemd
to run a script that executes the above command.
This looks simple enough: systemd/FAQ - ArchWiki (run a script during the boot process).
One thing I’m not yet sure about: what target should I set? The example uses multi-user.target
, which as I understand it means the system is up and ready for users to login. That’d certainly be a fine time to run the script, but would there be a downside to that?
EDIT: Systemd
Service Enabled; USB Modesetting starts the NIC correctly on boot.
~]$ cat /etc/systemd/system/realtek8156enabler.service
[Unit]
Description=Sabrent 2.5G USB 3.0 (Realtek 8156 Chipset) Enabler - USB Mode Switcher
[Service]
ExecStart=/rootScripts/enableSabrentUSB2-5G.sh
[Install]
WantedBy=multi-user.target
And here’s the script (be sure to sudo chmod +x
+ scriptName:
#/rootScripts/enableSabrentUSB2-5G.sh
# (The name can be whatever you like. I just wanted to remind myself what hardware I have that uses this chipset.)
-----------
#!/bin/bash
# Run usb_modeswitch command to put the adapter in NIC mode.
# Source: https://forum.manjaro.org/t/sabrent-usb-2-5g-ethernet-adapter-realtek-8152-chipset-drivers-from-aur/55483
sh -c "usb_modeswitch -v 0bda -p 8151 -V 0bda -P 8156 -M 555342430860d9a9c0000000800006e0000000000000000000000000000000"