webOS homebrew
~/lg-usb-2-eth0

Your TV's
fast lane is eth0.

LG TVs ship with a 100 Mbit/s wired port. A USB gigabit adapter is two to three times faster, even on a USB 2.0 port like the one on a 2022 C2, but webOS calls it eth1 and ignores it. This script makes the adapter the TV's eth0, safely and at every boot.

release v2.2 ★ 15 shell POSIX sh CI busybox · dash · bash listed in awesome-webos
root@OLED65C2PUA: /tmp
what it fixes

Three problems, one rename.

▶

Streaming apps fail

Apps like Paramount+ refuse to play over eth1. The adapter becomes eth0, so they play.

⚙

"Not Connected"

webOS settings show no wired connection while the adapter works. Interface names now match what webOS expects.

⇡

100 Mbit/s ceiling

High-bitrate remuxes, Plex and Moonlight stutter on the built-in port. The adapter does 250 to 330 Mbit/s.

real speeds

Not gigabit. Still 3x.

The TV's USB controller and CPU are the limit, so don't expect gigabit. But two to three times the built-in port is plenty for 4K remuxes.

Measured by DonZoomik (webos-r8152) and lgwebos.com users.

how it works

One file. Nothing else touched.

At boot the Homebrew Channel runs everything in /var/lib/webosbrew/init.d. The script writes one hook there and only renames network interfaces. No system files, drivers or network settings are touched, so a reboot without the hook always starts clean.

Undo everything: sh LG-USB-2-ETH0.sh uninstall --now

Returns at once

Starts in the background so other hooks and the failsafe timer aren't held up.

Waits for a real adapter

Only wired Ethernet on USB counts. Wi-Fi, phones and modems are skipped. No adapter, no changes.

Optional faster driver

With --module, moves the adapter from generic cdc_ncm to a better driver, with one try per boot and an automatic fallback.

Swaps the names

Built-in eth0 becomes eth2, the adapter becomes eth0. Interrupted renames retry, and failures roll back.

Follows hotplug

With --watch, plug the adapter in or out any time and eth0 follows it.

quick start

Install in a minute.

You need a rooted LG TV with the Homebrew Channel, SSH as root, and a Wi-Fi connection while you set this up, since renaming takes the wired ports down for a moment.

$ cd /tmp
# download the latest release and its checksum
$ curl -fsSLO https://github.com/ohmybahgosh/LG-USB-2-ETH0/releases/latest/download/LG-USB-2-ETH0.sh
$ curl -fsSLO https://github.com/ohmybahgosh/LG-USB-2-ETH0/releases/latest/download/SHA256SUMS
$ sha256sum -c SHA256SUMS
# read-only look at the TV first
$ sh LG-USB-2-ETH0.sh status
# install the boot hook (asks before it writes), then switch now
$ sh LG-USB-2-ETH0.sh install
$ sh LG-USB-2-ETH0.sh apply

No curl? Use wget the same way. On a TLS error, download on your computer and copy over with scp.

commandwhat it does
installWrites the boot hook. Add --now to switch right away too.
uninstallRemoves the hook. --now gives eth0 back to the built-in port right away.
apply / revertSwap the adapter in now, or give eth0 back, without touching the hook.
status / doctorRead-only report and checks. Safe any time.
reportPaste-ready report for a GitHub issue, MAC addresses masked.
get-driverDownloads a better driver if one is known for your exact kernel, and checks its SHA-256.
--watchKeeps following the adapter after boot. Plug in or out at will.
--mac aa:bb:…Only ever promote that adapter.
compatibility

The chip matters more than the brand.

What decides whether it works is whether your TV's kernel has a driver for your adapter's chip. Run status before buying: it lists the USB network drivers your kernel has.

RTL

Realtek 8153 / 8156

The most common gigabit and 2.5G chips. Newer kernels may only offer generic cdc_ncm, which works but is slower. get-driver fixes that on supported kernels.

AX

ASIX AX88179

Works out of the box on many older TVs. One report of the newer AX88179A not being detected on webOS 25.

USB

USB 2.0 is fine

Many TVs, like the 2022 C2, only have USB 2.0 ports. That tops out around 300 Mbit/s: still about 3x the built-in port and faster than Wi-Fi. Use USB 3.0 if your TV has it, and a powered hub for fussy adapters.

webOSreported
3.5 / 4 (B7, C7, C8)ASIX adapters work out of the box. Settings show "no connection" while apps work, which is what this fixes.
webOS 24Where the script was first written.
webOS 25 · 2022 C2Tested by the author. RTL8156 on r8152_oot via get-driver, confirmed through a full reboot.
webOS 25 · 2024 C4RTL8153/8156 come up on cdc_ncm. The community r8152 module helps.
webOS 25 · 2024 QNED/OLEDRealtek driver reportedly removed. Needs a module built for that exact kernel.

Tested on your TV? Send a compatibility report ↗, whether it worked or not.

faq

Questions.

Does it survive a firmware update?
The hook lives in the Homebrew Channel's folder, so it stays as long as root does. If an update removes root, the TV just goes back to the built-in port.
Does it change my network settings?
No. webOS still sets up the wired connection itself. The script only changes which device is called eth0.
Lost SSH while switching?
The switch still finishes on the TV. Reconnect over Wi-Fi. The adapter has its own MAC, so your router may hand out a new IP; a DHCP reservation keeps it steady.
Can I use two adapters?
Yes. Pin the one you want with --mac. Without it, the first adapter with a cable in wins.
Thanks to DonZoomik for webos-r8152, the Realtek driver build and benchmarks that get-driver and --module are built on.
need a hand?

Stuck, found a bug, or got an idea?

Pick a template and it fills in the right GitHub form for you. For anything private, email me.