Custom x86 firmware image stuck during boot

Hello.
I'm trying to build a custom x84 image off of the new openwrt-19.07-rc2 tag for an Intel board. I'm able to build the image using the toolchain, but every time I try to boot using the image from a thumb drive, the device does not fully boot.

The following is the boot sequence output:

[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz root=PARTUUID=54f3b037-02 rootfstype=ext4 rootwait console=tty0 console=ttyS0,115200n8 noinitrd
[    0.000000] x86/fpu: x87 FPU will use FXSAVE
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009cfff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009d000-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000001fffffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000020000000-0x00000000200fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000020100000-0x0000000078ea7fff] usable
[    0.000000] BIOS-e820: [mem 0x0000000078ea8000-0x00000000794a7fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000794a8000-0x00000000795a7fff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000795a8000-0x00000000795e7fff] ACPI data 
[    0.000000] BIOS-e820: [mem 0x00000000795e8000-0x0000000079ffffff] usable    
[    0.000000] BIOS-e820: [mem 0x000000007a000000-0x000000007a7fffff] reserved  
[    0.000000] BIOS-e820: [mem 0x000000007ae00000-0x000000007fffffff] reserved  
[    0.000000] BIOS-e820: [mem 0x00000000e0000000-0x00000000e3ffffff] reserved  
[    0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec00fff] reserved  
[    0.000000] BIOS-e820: [mem 0x00000000fed01000-0x00000000fed01fff] reserved  
[    0.000000] BIOS-e820: [mem 0x00000000fed03000-0x00000000fed03fff] reserved  
[    0.000000] BIOS-e820: [mem 0x00000000fed08000-0x00000000fed08fff] reserved  
[    0.000000] BIOS-e820: [mem 0x00000000fed0c000-0x00000000fed0ffff] reserved  
[    0.000000] BIOS-e820: [mem 0x00000000fed1c000-0x00000000fed1cfff] reserved  
[    0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved  
[    0.000000] BIOS-e820: [mem 0x00000000fef00000-0x00000000feffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000ffd00000-0x00000000ffffffff] reserved
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] SMBIOS 2.7 present.
[    0.000000] DMI: Insyde BayTrail Ia32/Type2 - Board Product Name, BIOS WRTD303N.00.05 11/24/2017
[    0.000000] e820: last_pfn = 0x7a000 max_arch_pfn = 0x400000000
[    0.000000] x86/PAT: Configuration [0-7]: WB  WC  UC- UC  WB  WP  UC- WT  
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000001000-0x0000000000ffffff]
[    0.000000]   DMA32    [mem 0x0000000001000000-0x0000000079ffffff]
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000001000-0x000000000009cfff]
[    0.000000]   node   0: [mem 0x0000000000100000-0x000000001fffffff]
[    0.000000]   node   0: [mem 0x0000000020100000-0x0000000078ea7fff]
[    0.000000]   node   0: [mem 0x00000000795e8000-0x0000000079ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000001000-0x0000000079ffffff]
[    0.000000] x86/hpet: Will disable the HPET for this platform because it's not reliable
[    0.000000] SFI: Simple Firmware Interface v0.81 http://simplefirmware.org
[    0.000000] e820: [mem 0x80000000-0xdfffffff] available for PCI devices
[    0.000000] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.000000] random: get_random_bytes called from start_kernel+0x80/0x41e with crng_init=0
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 489671
[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz root=PARTUUID=54f3b037-02 rootfstype=ext4 rootwait console=tty0 console=ttyS0,115200n8 noinitrd
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes)
[    0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes)
[    0.000000] Memory: 1937748K/1990000K available (8200K kernel code, 939K rwdata, 1616K rodata, 776K init, 328K bss, 52252K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] Kernel/User page tables isolation: enabled
[    0.000000] NR_IRQS: 4352, nr_irqs: 32, preallocated irqs: 16
[    0.000000] Console: colour dummy device 80x25
[    0.000000] console [tty0] enabled
[    0.000000] console [ttyS0] enabled
[    0.010000] tsc: Detected 1333.000 MHz processor
[    0.010000] Calibrating delay loop (skipped), value calculated using timer frequency.. 2666.00 BogoMIPS (lpj=13330000)
[    0.020006] pid_max: default: 32768 minimum: 301
[    0.030138] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
[    0.040018] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes)
[    0.048341] ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
[    0.050007] ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8)
[    0.060016] mce: CPU supports 6 MCE banks
[    0.064508] process: using mwait in idle threads
[    0.070010] Last level iTLB entries: 4KB 48, 2MB 0, 4MB 0
[    0.076047] Last level dTLB entries: 4KB 128, 2MB 16, 4MB 16, 1GB 0
[    0.080004] CPU: Intel(R) Atom(TM) CPU  E3805  @ 1.33GHz (family: 0x6, model: 0x37, stepping: 0x9)
[    0.090005] Spectre V1 : Mitigation: usercopy/swapgs barriers and __user pointer sanitization
[    0.100008] Spectre V2 : Mitigation: Full generic retpoline
[    0.110004] Spectre V2 : Spectre v2 / SpectreRSB mitigation: Filling RSB on context switch
[    0.120005] MDS: Vulnerable: Clear CPU buffers attempted, no microcode
[    0.127733] Performance Events: PEBS fmt2+, 8-deep LBR, Silvermont events, 8-deep LBR, full-width counters, Intel PMU driver.
[    0.130013] ... version:                3
[    0.134494] ... bit width:              40
[    0.140005] ... generic registers:      2
[    0.144486] ... value mask:             000000ffffffffff
[    0.150005] ... max period:             0000007fffffffff
[    0.156091] ... fixed-purpose events:   3
[    0.160006] ... event mask:             0000000700000003
[    0.166204] Not enabling interrupt remapping due to skipped IO-APIC setup
[    0.170496] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.180012] futex hash table entries: 256 (order: 0, 6144 bytes)
[    0.187287] NET: Registered protocol family 16
[    0.190403] cpuidle: using governor ladder
[    0.195124] PCI: Using configuration type 1 for base access
[    0.209382] SCSI subsystem initialized
[    0.210518] usbcore: registered new interface driver usbfs
[    0.216696] usbcore: registered new interface driver hub
[    0.220034] usbcore: registered new device driver usb
[    0.225772] PCI: Probing PCI hardware
[    0.229917] PCI host bridge to bus 0000:00
[    0.230011] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
[    0.237065] pci_bus 0000:00: root bus resource [mem 0x00000000-0xfffffffff]
[    0.240007] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[    0.254570] pci 0000:00:1c.0: PCI bridge to [bus 01]
[    0.260351] pci 0000:00:1c.1: PCI bridge to [bus 02]
[    0.265981] pci 0000:00:1c.2: PCI bridge to [bus 03]
[    0.270073] pci 0000:00:1c.3: PCI bridge to [bus 04]
[    0.275821] pci 0000:00:1f.0: PIIX/ICH IRQ router [8086:0f1c]
[    0.280035] pci 0000:00:12.0: found PCI INT A -> IRQ 1
[    0.285929] pci 0000:00:12.0: sharing IRQ 1 with 0000:00:18.2
[    0.290015] pci 0000:00:12.0: sharing IRQ 1 with 0000:00:18.6
[    0.296458] pci 0000:00:12.0: sharing IRQ 1 with 0000:00:1e.3
[    0.300046] pci 0000:00:18.1: found PCI INT C -> IRQ 6
[    0.305804] pci 0000:00:18.1: sharing IRQ 6 with 0000:00:18.5
[    0.310022] pci 0000:00:18.1: sharing IRQ 6 with 0000:00:1e.0
[    0.316455] pci 0000:00:18.1: sharing IRQ 6 with 0000:00:1e.4
[    0.320539] clocksource: Switched to clocksource refined-jiffies
[    0.364157] pci 0000:01:00.0: can't claim BAR 6 [mem 0xffff0000-0xffffffff pref]: no compatible bridge window
[    0.370124] pci 0000:00:1c.0: BAR 9: assigned [mem 0x100000000-0x1001fffff 64bit pref]
[    0.378989] pci 0000:00:1c.2: BAR 8: assigned [mem 0x80b00000-0x80cfffff]
[    0.380016] pci 0000:00:1c.2: BAR 9: assigned [mem 0x100200000-0x1003fffff 64bit pref]
[    0.388878] pci 0000:00:1c.3: BAR 8: assigned [mem 0x80d00000-0x80efffff]
[    0.390016] pci 0000:00:1c.3: BAR 9: assigned [mem 0x100400000-0x1005fffff 64bit pref]
[    0.398877] pci 0000:00:1c.0: BAR 7: assigned [io  0x3000-0x3fff]
[    0.400008] pci 0000:00:1c.2: BAR 7: assigned [io  0x4000-0x4fff]
[    0.406826] pci 0000:00:1c.3: BAR 7: assigned [io  0x5000-0x5fff]
[    0.410016] pci 0000:01:00.0: BAR 6: assigned [mem 0x80620000-0x8062ffff pref]
[    0.418098] pci 0000:00:1c.0: PCI bridge to [bus 01]
[    0.420007] pci 0000:00:1c.0:   bridge window [io  0x3000-0x3fff]
[    0.426826] pci 0000:00:1c.0:   bridge window [mem 0x80600000-0x806fffff]
[    0.430008] pci 0000:00:1c.0:   bridge window [mem 0x100000000-0x1001fffff 64bit pref]
[    0.438945] pci 0000:00:1c.1: PCI bridge to [bus 02]
[    0.440008] pci 0000:00:1c.1:   bridge window [io  0x1000-0x1fff]
[    0.446826] pci 0000:00:1c.1:   bridge window [mem 0x80500000-0x805fffff]
[    0.450008] pci 0000:00:1c.1:   bridge window [mem 0x80400000-0x804fffff 64bit pref]
[    0.458823] pci 0000:00:1c.2: PCI bridge to [bus 03]
[    0.460007] pci 0000:00:1c.2:   bridge window [io  0x4000-0x4fff]
[    0.466825] pci 0000:00:1c.2:   bridge window [mem 0x80b00000-0x80cfffff]
[    0.470008] pci 0000:00:1c.2:   bridge window [mem 0x100200000-0x1003fffff 64bit pref]
[    0.479017] pci 0000:00:1c.3: PCI bridge to [bus 04]
[    0.480007] pci 0000:00:1c.3:   bridge window [io  0x5000-0x5fff]
[    0.486826] pci 0000:00:1c.3:   bridge window [mem 0x80d00000-0x80efffff]
[    0.490008] pci 0000:00:1c.3:   bridge window [mem 0x100400000-0x1005fffff 64bit pref]
[    0.499013] NET: Registered protocol family 2
[    0.500259] TCP established hash table entries: 16384 (order: 5, 131072 bytes)
[    0.508397] TCP bind hash table entries: 16384 (order: 5, 131072 bytes)
[    0.510072] TCP: Hash tables configured (established 16384 bind 16384)
[    0.517454] UDP hash table entries: 1024 (order: 3, 32768 bytes)
[    0.520025] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes)
[    0.527338] NET: Registered protocol family 1
[    0.530073] pci 0000:00:14.0: assigned PCI INT A -> IRQ 5
[    0.545261] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x1336e3dbd1a, max_idle_ns: 440795236868 ns
[    0.550011] clocksource: Switched to clocksource tsc
[    0.555612] platform rtc_cmos: registered platform RTC device (no PNP device found)
[    0.565978] workingset: timestamp_bits=46 max_order=19 bucket_order=0
[    0.576403] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.588901] io scheduler noop registered
[    0.593307] io scheduler deadline registered (default)
[    0.599274] Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
[    0.626782] serial8250: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[    0.635697] Non-volatile memory driver v1.3
[    0.642201] loop: module loaded
[    0.645928] Fusion MPT base driver 3.04.20
[    0.650524] Copyright (c) 1999-2008 LSI Corporation
[    0.655987] Fusion MPT SPI Host driver 3.04.20
[    0.660992] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    0.668292] ehci-pci: EHCI PCI platform driver
[    0.673387] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    0.680311] ohci-pci: OHCI PCI platform driver
[    0.685306] ohci-platform: OHCI generic platform driver
[    0.691177] uhci_hcd: USB Universal Host Controller Interface driver
[    0.698356] xhci_hcd 0000:00:14.0: assigned PCI INT A -> IRQ 5
[    0.705156] xhci_hcd 0000:00:14.0: xHCI Host Controller
[    0.711018] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 1
[    0.720413] xhci_hcd 0000:00:14.0: hcc params 0x200077c1 hci version 0x100 quirks 0x0000000000009810
[    0.733911] hub 1-0:1.0: USB hub found
[    0.738226] hub 1-0:1.0: 6 ports detected
[    0.742983] xhci_hcd 0000:00:14.0: xHCI Host Controller
[    0.748834] xhci_hcd 0000:00:14.0: new USB bus registered, assigned bus number 2
[    0.757122] xhci_hcd 0000:00:14.0: Host supports USB 3.0  SuperSpeed
[    0.764661] hub 2-0:1.0: USB hub found
[    0.769096] hub 2-0:1.0: 1 port detected
[    0.784565] serio: i8042 KBD port at 0x60,0x64 irq 1
[    0.790135] serio: i8042 AUX port at 0x60,0x64 irq 12
[    0.795957] rtc_cmos rtc_cmos: rtc core: registered rtc_cmos as rtc0
[    0.803190] rtc_cmos rtc_cmos: alarms up to one day, 114 bytes nvram
[    0.810382] hidraw: raw HID events driver (C) Jiri Kosina
[    0.816464] usbcore: registered new interface driver usbhid
[    0.822693] usbhid: USB HID core driver
[    0.827533] NET: Registered protocol family 10
[    0.835783] Segment Routing with IPv6
[    0.839915] NET: Registered protocol family 17
[    0.844920] 8021q: 802.1Q VLAN Support v1.8
[    0.849792] microcode: sig=0x30679, pf=0x1, revision=0x901
[    0.855972] microcode: Microcode Update Driver: v2.2.
[    0.856001] sched_clock: Marking stable (855930206, 0)->(977146032, -121215826)
[    0.871476] rtc_cmos rtc_cmos: setting system clock to 2019-12-03 14:00:46 UTC (1575381646)
[    1.043809] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0
[    1.058252] Waiting for root device PARTUUID=54f3b037-02...
[    1.130017] usb 1-2: new high-speed USB device number 2 using xhci_hcd
[    1.311579] hub 1-2:1.0: USB hub found
[    1.316011] hub 1-2:1.0: 4 ports detected
[    1.460056] usb 2-1: new SuperSpeed USB device number 2 using xhci_hcd
[    1.640016] usb 1-3: new full-speed USB device number 3 using xhci_hcd
[    1.920018] usb 1-2.3: new high-speed USB device number 4 using xhci_hcd

Sometimes it only gets to the:

[    1.058252] Waiting for root device PARTUUID=54f3b037-02...

part and hangs there until I have to manually switch it off.

Here is the config file that I'm using (I've removed large parts that have not been selected): https://pastebin.com/e3zWvcT3

Am I missing a driver or something?
Not sure why the image won't boot - I can boot off an image built from the master branch with the same configurations.

Thanks!

Are You resizing root fs after writing image to the thumb drive? If yes this will change disk signature. Either adjust it in grub.cfg in kernel partition or change CONFIG_TARGET_ROOTFS_PARTSIZE=256 to desired value before creating image.

Hey, @tmn505, thanks for the reply!

No, I'm not doing anything to the image when it's on the thumb drive. Should I still change the rootfs partition size then?

Your kernel does expect a root partition with this specific UUID!
Can you describe how you installed OpenWRT?

1 Like

Hey @juppin, I'm building an image off of the openwrt github, and putting the compiled image on a flash drive to boot off of.

The UUID is the same as that on the grub configuration file, and from what I understand it's randomly generated?

Is there any way I can make sure the UUID is correct?

Thanks.

If you attach this flash drive to a linux pc, you can list all UUIDs with tools like blkid.

How do you prepare this flash drive?
Are you using something like dd if=xxx.img of=/dev/sdX? Where sdX is your flash drive...

I'm using the gnome-disk-utility to create the flash drive using the .img produced from compilation.

I'll try to replace current UUID in the grub configuration with the UUID obtained from blkid.

This is possible?
I would prefer the dd-method

1 Like

Then I would assume, this gnome-disk-utility alters the disk MBR signature. As juppin wrote, dd is bulletproof.

I tried using dd to copy the image, but the same thing happened - it stalled booting at

[    0.998178] Waiting for root device PARTUUID=9089116b-02...
[    1.070016] usb 1-2: new high-speed USB device number 2 using xhci_hcd
[    1.251562] hub 1-2:1.0: USB hub found
[    1.255984] hub 1-2:1.0: 4 ports detected
[    1.400051] usb 2-1: new SuperSpeed USB device number 2 using xhci_hcd
[    1.580014] usb 1-3: new full-speed USB device number 3 using xhci_hcd
[    1.860015] usb 1-2.3: new high-speed USB device number 4 using xhci_hcd

I used the following dd command:

dd if=openwrt-x86-64-combined-ext4.img of=/dev/sdX bs=4M count=75 && sync

Here's the output from lsblk and blkid -p /dev/sdX on the flash drive created as suggested by @juppin:

sdb      8:16   1  57.3G  0 disk 
├─sdb1   8:17   1    16M  0 part /run/media/toolchains/57f8f4bc-abf4-655f-bf67-946fc0f9f25b
└─sdb2   8:18   1   256M  0 part /run/media/toolchains/57f8f4bc-abf4-655f-bf67-946fc0f9f25b1
# blkid -p /dev/sdb
/dev/sdb: PTUUID="9089116b" PTTYPE="dos"

I've also tried switching to root=UUID=57f8f4bc-abf4-655f-bf67-946fc0f9f25b in grub.cfg from using root=PARTUUID=9089116b-02 with no luck.
:frowning:

I've also tried deselecting the CONFIG_TARGET_ROOTFS_INITRAMFS option with the same results.

plug it into a pc and show us what blkid gives you... ok ^ ( well if your desperate and the routerbox only has one drive... root=/dev/sdXnum in grub should work? ) ( mount /dev/sdb1 and edit by hand on your pc )... or lose the "count=75" and try dd again...

Hey, thanks for the reply.

The blkid and lsblk output from above is from the flash drive when it's plugged in on my computer:

sdb      8:16   1  57.3G  0 disk 
├─sdb1   8:17   1    16M  0 part /run/media/toolchains/57f8f4bc-abf4-655f-bf67-946fc0f9f25b
└─sdb2   8:18   1   256M  0 part /run/media/toolchains/57f8f4bc-abf4-655f-bf67-946fc0f9f25b1

# blkid -p /dev/sdb
/dev/sdb: PTUUID="9089116b" PTTYPE="dos"

I'll try again with both your suggestions - thanks.

I managed to solve this by selecting the following options in make kernel_menuconfig.

  [*] USB support
  <*> Support for Host-side USB
  <*> USB Mass Storage support
  <*> Second extended fs support
  <*> Ext3 journalling file system support
  <*> The Extended 4 (ext4) filesystem
2 Likes

it's really USB driver's problem,not boot device's?? :upside_down_face:
i have the same problem...

thanks i fix it using dd too... :smiling_face_with_three_hearts:

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.