heads icon indicating copy to clipboard operation
heads copied to clipboard

T430 : Is it possible to change various BIOS settings? (wifi adapter doesn't work on USB3 port)

Open 7320jdng opened this issue 3 months ago • 8 comments

My USB Wi‑Fi adapter isn't working properly, so I want to change the xHCI Hand‑off, eHCI Hand‑off, USB transfer time‑out, Device reset time‑out, Device power‑up delay, and Device power‑up delay in seconds settings to see if that fixes it. I wanted to know whether those settings can be changed after installation on Heads.

7320jdng avatar Sep 22 '25 13:09 7320jdng

My USB Wi‑Fi adapter isn't working properly, so I want to change the xHCI Hand‑off, eHCI Hand‑off, USB transfer time‑out, Device reset time‑out, Device power‑up delay, and Device power‑up delay in seconds settings to see if that fixes it. I wanted to know whether those settings can be changed after installation on Heads.

@7320jdng config changes require coreboot config change, rebuild and reflash.

What is the issue exactly? Platform, device, problem encountered?

tlaurion avatar Sep 22 '25 14:09 tlaurion

Actually, a Wi‑Fi adapter EDUP EP‑AX1672 that uses the mt7921u doesn't work properly on QubesOS. Specifically, the USB3 port is unusable, and when using a USB2 port it won't be recognized unless I first attach it from sys‑usb to sys‑net and then detach and reattach it to sys‑net — a sort of ritual. So I thought changing those settings might improve the situation.

Here are the references I consulted. https://github.com/morrownr/USB-WiFi/blob/main/home/USB_Ports.md

7320jdng avatar Sep 23 '25 04:09 7320jdng

Actually, a Wi‑Fi adapter EDUP EP‑AX1672 that uses the mt7921u doesn't work properly on QubesOS. Specifically, the USB3 port is unusable, and when using a USB2 port it won't be recognized unless I first attach it from sys‑usb to sys‑net and then detach and reattach it to sys‑net — a sort of ritual. So I thought changing those settings might improve the situation.

Here are the references I consulted. https://github.com/morrownr/USB-WiFi/blob/main/home/USB_Ports.md

What platform/board?

tlaurion avatar Sep 23 '25 14:09 tlaurion

Actually, a Wi‑Fi adapter EDUP EP‑AX1672 that uses the mt7921u doesn't work properly on QubesOS. Specifically, the USB3 port is unusable, and when using a USB2 port it won't be recognized unless I first attach it from sys‑usb to sys‑net and then detach and reattach it to sys‑net — a sort of ritual. So I thought changing those settings might improve the situation.

Here are the references I consulted. https://github.com/morrownr/USB-WiFi/blob/main/home/USB_Ports.md

Related? https://github.com/Dasharo/dasharo-issues/issues/1557#issuecomment-3320078364

tlaurion avatar Sep 23 '25 16:09 tlaurion

Lenovo T430

7320jdng avatar Sep 28 '25 11:09 7320jdng

I think the content of the link is different from my issue. I just cannot use the Wi-Fi adapter with the USB3 port.

7320jdng avatar Sep 28 '25 11:09 7320jdng

I think the content of the link is different from my issue. I just cannot use the Wi-Fi adapter with the USB3 port.

@7320jdng I renamed issue, feel free to adjust further more.

tlaurion avatar Oct 01 '25 14:10 tlaurion

Actually, a Wi‑Fi adapter EDUP EP‑AX1672 that uses the mt7921u doesn't work properly on QubesOS. Specifically, the USB3 port is unusable, and when using a USB2 port it won't be recognized unless I first attach it from sys‑usb to sys‑net and then detach and reattach it to sys‑net — a sort of ritual. So I thought changing those settings might improve the situation.

Here are the references I consulted. https://github.com/morrownr/USB-WiFi/blob/main/home/USB_Ports.md

@7320jdng for posterity, settings under Heads are hardcoded at build time, and if configurable, will be found under cmos related files. Note that coreboot under heads is also configured to include its coreboot config file (in defconfig format).

One can see the build output relative files included in final coreboot rom stitching phase from build time. From current master aaeb63d commit.

./docker_repro.sh make BOARD=EOL_t430-maximized


2025-10-01 15:00:25+00:00 DONE coreboot-24.12
# Use coreboot.rom, because custom output files might not be processed by cbfstool
"/home/user/heads/build/x86/coreboot-24.12/EOL_t430-maximized/cbfstool" "/home/user/heads/build/x86/coreboot-24.12/EOL_t430-maximized/coreboot.rom" print
FMAP REGION: COREBOOT
Name                           Offset     Type           Size   Comp
cbfs_master_header             0x0        cbfs header        32 none
cpu_microcode_blob.bin         0x80       microcode       26624 none
fallback/romstage              0x68c0     stage          100440 none
fallback/ramstage              0x1f180    stage          150023 LZMA (321232 decompressed)
config                         0x43c00    raw              3482 LZMA (11089 decompressed)
revision                       0x44a00    raw               724 none
build_info                     0x44d00    raw               101 none
bootsplash.jpg                 0x44dc0    bootsplash      43282 none
fallback/dsdt.aml              0x4f700    raw             14742 none
vbt.bin                        0x53100    raw              1409 LZMA (4459 decompressed)
cmos.default                   0x536c0    cmos_default      256 none
cmos_layout.bin                0x53800    cmos_layout      2108 none
fallback/postcar               0x54080    stage           30604 none
fallback/payload               0x5b880    simple elf    8007978 none
(empty)                        0x7fea00   null          3974052 none
bootblock                      0xbc8dc0   bootblock       28672 none
2025-10-01 15:00:25+00:00 INSTALL   build/x86/coreboot-24.12/EOL_t430-maximized/coreboot.rom => build/x86/EOL_t430-maximized/heads-EOL_t430-maximized-v0.2.0-2790-gaaeb63d.rom

config: the coreboot config file, resulting from config/coreboot-t430-maximized.config cmos.default: the cmos config file to revert to in case cmos battery is dead/removed to reset to defaults.


Now to answer your question: yes, it would be possible to have cmos settings be configurable at runtime, and kept alive by cmos battery. In case of bricking, users could remove cmos battery to reset to cmos.default content, configurable at runtime. For more info, see https://github.com/linuxboot/heads/issues/1197#issuecomment-1217419331

But prior of going further, let's see what could be configurable at runtime per coreboot 24.12 for t430.

user@heads-master:~/heads$ cat build/x86/coreboot-24.12/src/mainboard/lenovo/t430/cmos.default
## SPDX-License-Identifier: GPL-2.0-only

boot_option=Fallback
debug_level=Debug
power_on_after_fail=Disable
nmi=Enable
volume=0x3
first_battery=Primary
bluetooth=Enable
wwan=Enable
wlan=Enable
touchpad=Enable
sata_mode=AHCI
fn_ctrl_swap=Disable
sticky_fn=Disable
trackpoint=Enable
backlight=Both
usb_always_on=Disable
hybrid_graphics_mode=Integrated Only
me_state=Normal

TLDR: there is nothing configurable at runtime for USB3 port settings. If you find better configuration as code, those would need to be tested and proposed to coreboot.

tlaurion avatar Oct 01 '25 15:10 tlaurion