Ethernet does not work on battery mode, but works when the power is plugged in

I plugged my laptop to the router and there is no connection. WiFi works, but Ethernet doesn’t. It used to always work but I only recently noticed that it doesn’t anymore. I tried changing cables, using a different port and changing kernels. I thought my laptop was broken, but after awhile of trying to figure out what happened, my laptop battery was getting low, so I plugged in the power cable. Then the internet through the Ethernet cable came on. Turns out that Ethernet only works when the laptop power is plugged in? I know this wasn’t the case before. I remember because I’ve always done it. How come WiFi still works? Doesn’t WiFi take more power? Also how can I change it back to Ethernet working even if I’m running on battery mode? I couldn’t find anything in the Power Settings about it. I’ve turned off all power saving settings.

If you disconnect from your wifi, Ethernet cable in and with your laptop on battery, your router recognize your device?
Inside your router settings page you can probably see the devices connected.

You haven’t provided any system information. Is it a USB ethernet adapter or a NIC?

System:
  Kernel: 6.0.14-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 12.2.0 Desktop: GNOME v: 43.2
    Distro: Manjaro Linux base: Arch Linux
Machine:
  Type: Laptop System: LENOVO product: 82B5 v: Lenovo Legion 5 15ARH05 serial: <superuser required>
  Mobo: LENOVO model: LNVNB161216 v: SDK0J40688 WIN serial: <superuser required>
    UEFI-[Legacy]: LENOVO v: EUCN19WW date: 05/12/2020
Battery:
  ID-1: BAT0 charge: 39.8 Wh (97.1%) condition: 41.0/60.0 Wh (68.3%) volts: 16.6 min: 15.4
    model: Celxpert L19C4PC0 status: not charging
CPU:
  Info: 8-core model: AMD Ryzen 7 4800H with Radeon Graphics bits: 64 type: MT MCP arch: Zen 2
    rev: 1 cache: L1: 512 KiB L2: 4 MiB L3: 8 MiB
  Speed (MHz): avg: 1494 high: 2900 min/max: 1400/2900 boost: enabled cores: 1: 2900 2: 1400
    3: 1420 4: 1400 5: 1400 6: 1400 7: 1400 8: 1400 9: 1400 10: 1400 11: 1397 12: 1400 13: 1400
    14: 1400 15: 1397 16: 1400 bogomips: 92659
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
Graphics:
  Device-1: NVIDIA TU117M [GeForce GTX 1650 Ti Mobile] vendor: Lenovo driver: nvidia v: 470.161.03
    arch: Turing bus-ID: 01:00.0
  Device-2: AMD Renoir vendor: Lenovo driver: amdgpu v: kernel arch: GCN-5.1 bus-ID: 05:00.0
    temp: 36.0 C
  Device-3: Chicony Integrated Camera type: USB driver: uvcvideo bus-ID: 1-3:2
  Display: x11 server: X.org v: 1.21.1.6 with: Xwayland v: 22.1.7 driver: X:
    loaded: amdgpu,nvidia dri: radeonsi gpu: amdgpu resolution: 1920x1080~120Hz
  API: OpenGL Message: Unable to show GL data. Required tool glxinfo missing.
Audio:
  Device-1: NVIDIA driver: snd_hda_intel v: kernel bus-ID: 01:00.1
  Device-2: AMD ACP/ACP3X/ACP6x Audio Coprocessor vendor: Lenovo driver: N/A bus-ID: 05:00.5
  Device-3: AMD Family 17h/19h HD Audio vendor: Lenovo driver: snd_hda_intel v: kernel
    bus-ID: 05:00.6
  Sound API: ALSA v: k6.0.14-1-MANJARO running: yes
  Sound Server-1: JACK v: 1.9.21 running: no
  Sound Server-2: PulseAudio v: 16.1 running: no
  Sound Server-3: PipeWire v: 0.3.63 running: yes
Network:
  Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet vendor: Lenovo driver: r8169
    v: kernel port: 2000 bus-ID: 03:00.0
  IF: eno1 state: up speed: 100 Mbps duplex: full mac: <filter>
  Device-2: Intel Wi-Fi 6 AX200 driver: iwlwifi v: kernel bus-ID: 04:00.0
  IF: wlp4s0 state: up mac: <filter>
Bluetooth:
  Device-1: Intel AX200 Bluetooth type: USB driver: btusb v: 0.8 bus-ID: 3-3:3
  Report: rfkill ID: hci0 rfk-id: 3 state: up address: see --recommends
Drives:
  Local Storage: total: 476.94 GiB used: 374.35 GiB (78.5%)
  ID-1: /dev/nvme0n1 vendor: Samsung model: MZVLB512HBJQ-000L2 size: 476.94 GiB temp: 38.9 C
Partition:
  ID-1: / size: 459.72 GiB used: 374.35 GiB (81.4%) fs: ext4 dev: /dev/nvme0n1p1
Swap:
  ID-1: swap-1 type: partition size: 8.8 GiB used: 0 KiB (0.0%) dev: /dev/nvme0n1p2
Sensors:
  System Temperatures: cpu: 49.0 C mobo: N/A gpu: amdgpu temp: 35.0 C
  Fan Speeds (RPM): N/A
Info:
  Processes: 401 Uptime: 2m Memory: 15 GiB used: 3.56 GiB (23.7%) Init: systemd Compilers:
  gcc: 12.2.0 clang: 14.0.6 Packages: 1821 Client: gnome-shell v: 43.2 inxi: 3.3.24

It’s not a USB ethernet adapter. I don’t know what an NIC is, so I’m not sure. It’s built in to the laptop.

Another user reported this to work:

The fix:

Create the file "/etc/modprobe.d/iwlmvm.conf" if it doesn't exist already, and add the following too it:

options iwlmvm power_scheme=1

reboot

I tried this, battery still doesn’t work with ethernet.

Something isn’t right with your battery. A 2-3 years old battery should fully charged come much closer to the full capacity of 60Wh than 41Wh.

For comparison here the values of an 8 year old lap with a basically dead battery:

04/08/2014
Battery:
  ID-1: BAT0 charge: 56.9 Wh (100.0%) condition: 56.9/77.0 Wh (73.9%)

and the values from a healthy 2 years old battery:

ID-1: BAT0 charge: 78.2 Wh (100.0%) condition: 78.2/77.8 Wh (100.6%)

Searching for ‘how to calibrate lenovo laptop battery’ gets you some video tutorials and How to calibrate the battery using OneKey Optimizer - Windows - ideapad - Lenovo Support US

1 Like

Hi @wildcard,
I had the exact same issue with my Lenovo Laptop. Wifi was working and Eth0 was not.
Solution so far (sorry if it is a bit late :smiley: ):
Run → lshw (while ethernet cable is connected)

I don´t know any other way to fix this issue at the moment and this workaround works fine for me for now but I would be really interested on figuring it out how to do it properly.