Hi, community!
I decided to join the world of OpenWrt and immediately got stuck😄
For several days, I have been unable to install the latest stable OpenWrt ( 24.10.4 generic-ext4-combined-efi.img) on Mini PC AMD Ryzen 3 5425U with 4 Intel i226-v. I tried fladhing the image from different operating systems (Windows! macOS). I tried several previous releases and even a snapshot with the same success.
The problem is that the mini PC starts booting OpenWrt from a USB stick and always stops at the same place: I think at NIC initialization. The last line before it stops is “igc eth0: enter promiscuous mode”.
I don't even know what to do anymore. I would be grateful for any help or advice.![]()
It is fully booted. Providing DHCP on first network port.
That is actually a proper boot. "entered promiscuous mode" means the port is up and ready to use. If you plug in an Ethernet cable you should see a log message that it is up at a certain speed, negotiated with the laptop or other device at the other end of the cable.
Note that the eth numbering established by the kernel may not match the labels on the case, so try all of the ports.
By default a firstboot of an x86 with four ports will configure one as LAN, one will be WAN, and the other two unassigned and inactive.
The boot messages are a bit asynchronous. Drivers keep initializing for about 20 or so lines after actual console is started. Best to use squashfs image if you dont want to keep monitor and keyboard around the PC
Example boot from KVM
failsafe prompt (press the button when LED blinks almost fast)
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
Boot messages
[ 6.114143] EXT4-fs (loop0): recovery complete
[ 6.116253] EXT4-fs (loop0): mounted filesystem with ordered data mode. Opts: (null)
[ 6.119427] mount_root: switching to ext4 overlay
[ 6.121532] overlayfs: "xino" feature enabled using 32 upper inode bits.
[ 6.133119] EXT4-fs (vda1): warning: mounting unchecked fs, running e2fsck is recommended
[ 6.136122] EXT4-fs (vda1): mounted filesystem without journal. Opts: (null)
[ 6.138979] urandom-seed: Seeding with /etc/urandom.seed
[ 6.153066] procd: - early -
[ 6.662949] procd: - ubus -
[ 6.717079] procd: - init -
Console is up
Please press Enter to activate this console.
Now more drivers load
[ 6.762719] kmodloader: loading kernel modules from /etc/modules.d/*
[ 6.769527] e1000: Intel(R) PRO/1000 Network Driver
[ 6.771026] e1000: Copyright (c) 1999-2006 Intel Corporation.
[ 6.771046] urngd: v1.0.2 started.
[ 6.774591] ixgbe: Intel(R) 10 Gigabit PCI Express Network Driver
[ 6.776465] ixgbe: Copyright (c) 1999-2016 Intel Corporation.
[ 6.778439] i2c /dev entries driver
[ 6.779754] GACT probability on
[ 6.780953] Mirror/redirect action on
[ 6.783057] u32 classifier
[ 6.783965] input device check on
[ 6.785212] Actions configured
[ 6.788587] Simple TC action Loaded
[ 6.795641] e1000e: Intel(R) PRO/1000 Network Driver
[ 6.797215] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[ 6.800197] Intel(R) 2.5G Ethernet Linux Driver
[ 6.801722] Copyright(c) 2018 Intel Corporation.
[ 6.814221] xt_time: kernel timezone is -0000
[ 6.819790] PPP generic driver version 2.4.2
[ 6.821941] NET: Registered protocol family 24
[ 6.824578] kmodloader: done loading kernel modules from /etc/modules.d/*
[ 8.130083] 8021q: adding VLAN 0 to HW filter on device eth0
[ 8.132162] br-lan: port 1(eth0) entered blocking state
[ 8.133995] br-lan: port 1(eth0) entered disabled state
[ 8.136012] device eth0 entered promiscuous mode
[ 8.142800] 8021q: adding VLAN 0 to HW filter on device eth1
Thank you @brada4!
I've made significant progress in failsafe mode🙏
Now I need to install it on my SSD somehow. I assumed that the installation process would run automatically. Sorry for the silly questions, but I'm a beginner in OpenWRT.
Sorry for the photo instead of the output, the mini PC isn't connected to the network yet.
I set mine up with an Ubuntu live boot usb (any distro with dd will do), then once it was booted into Ubuntu:
$ VER=24.10.4 # whatever current stable is today
$ IMG=openwrt-${VER}-x86-64-generic-squashfs-combined-efi.img
$ wget https://downloads.openwrt.org/releases/${VER}/targets/x86/64/${IMG}.gz
$ gunzip ${IMG}.gz
$ sudo dd if=${IMG} of=/dev/nvme0n1
$ lsblk
nvme0n1 259:0 0 232.9G 0 disk
├─nvme0n1p1 259:1 0 16M 0 part /boot
├─nvme0n1p2 259:2 0 104M 0 part /rom
└─nvme0n1p128 259:3 0 239K 0 part
$ poweroff
< remove USB stick >
< turn it on >
Adjust the of device according to the device names on your box...
First, hit Enter to get the command prompt, which you already did. Now you’re running OpenWrt from a USB stick.
Next, figure out how to get on the Internet. Look at the network configuration:
cat /etc/config/network
In there, among other things, you should see something like this:
config interface 'wan'
option device 'eth1'
option proto 'dhcp'
This is telling you your WAN interface is eth1 (it may be different in your case, but usually, it’s eth1). Great, but which one is that? Try them all. Stick a live Ethernet cable into any Ethernet port and see how the device reacts. There will be console output that says something like, eth0: Link is up. So eventually, you will find your WAN interface. Connect it to your upstream router and test it out:
ping -c 3 google.com
Next, you will need to figure out what your future boot drive is called. There’s a way to do this with the df utility, but it’s not very clear to new users, so let’s do it with lsblk instead. The problem is, we don’t have lsblk on the system right now. So let’s install it:
opkg update && opkg install lsblk
Then, run lsblk:
root@OpenWrt:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:16 1 59.6G 0 disk
└─sda1 8:17 1 59.6G 0 part
sdb 8:0 0 7.6G 0 disk
├─sdb1 8:1 0 16M 0 part /boot
│ /boot
└─sdb2 8:2 0 114M 0 part /
In this example, the device has two drives /dev/sda (59.6 GB) and /dev/sdb (7.6 GB, bootable). So you figure, /dev/sdb ought to be the USB stick, while /dev/sda is your future boot drive. Note that it doesn’t have to be sd-anything; NVMe drives have system names that start with nvme, so you could have something like /dev/nvme0.
Now, the actual installation:
cd /tmp
wget -O firmware.img.gz https://downloads.openwrt.org/releases/24.10.4/targets/x86/64/openwrt-24.10.4-x86-64-generic-ext4-combined-efi.img.gz
zcat firmware.img.gz > /dev/sda
Here, we download another copy of firmware image from the OpenWrt server, save it as firmware.img.gz, and expand it onto our future boot drive. Remember to use the correct name of the drive; it doesn’t have to be /dev/sda…
Now, run poweroff, remove the USB stick from the device, and see if it can boot normally…
Do not boot to failsafe - it is without WAN/internet connection, just let it boot normally.
Thank you @efahl!![]()
I'm also thinking about installing some Linux, most likely Ubuntu. First, I'll update the firmware. I've heard that i226-v is very unstable with the original firmware.
Another question. You and @brada4 advise to install squashfs release. Why? In the future, I will need root access for some programs like Sing-box proxy. I heard that with squashfs it's tricky.
Thank you @NC1 for taking the time to provide such detailed and important information. The OpenWrt community is truly responsive and welcoming.
The question wasn’t directed at me but I’ll answer anyway… ![]()
squashfs is more resistant to harmful events (such as sudden power loss).
You are root by default in OpenWrt, so no worries there. I've never heard that about sing-box, not sure what would be different; the file system is completely opaque to 99% of code (of course, stuff like gparted and fdisk and friends care, but networking stuff has no need to know).
Since you've no doubt got space, you may want to resize the root fs partition to 1GB right away, before you have any config that will get wiped. Install the owut package and then follow this:
https://openwrt.org/docs/guide-user/installation/sysupgrade.owut#expanding_root_file_system
That will give you a feel for how upgrades are done, too.

