Just tested how Netconsole included with Uboot 2015.10 works with a Ubuntu VM on a Windows PC with a bridged network adapter, i.e. its own local IP. Switching the VM Firewall off, starting Netcat and watching in parallel output in Serial Console, I can see kernel output ONLY, but not initial Uboot output, and neither Uboot Wait prompt - its not present neither in Serial, no in Netconsole, therefore its again impossible to interrupt the boot process. Trying to sent boot interrupt commands to Uboot Netconsole failed. Here Netconsole implementation in Uboot 2015.0 doesn't work as it should in communication with either Windows or Linux PCs.
What's interesting, the Uboot 2015.10 announcement post
says "
Pull requests are welcome for new devices and/or fixes/enhancements for existing devices". However, the author never replied to my early post and PM about the issue. May be I'm doing something wrong?
In Serial Console Wait prompt is replaced with ping message "host is alive", so its not possible to interrupt and most of Uboot output is missing:
$this->bbcode_second_pass_code('', 'U-Boot 2015.10-1 (Nov 28 2015 - 01:53:40 -0700) Arch Linux ARM
Seagate FreeAgent DockStar
SoC: Kirkwood 88F6281_A0
DRAM: 128 MiB (ECC not enabled)
WARNING: Caches not enabled
NAND: 512 MiB
In: serial
Out: serial
Err: serial
Net: egiga0
88E1116 Initialized on egiga0
Using egiga0 device
host 192.168.2.27 is alive
Uncompressing Linux... done, booting the kernel.
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 4.4.1-1-ARCH (builduser@leming) (gcc version 5.3.0 (GCC) ) #1 PREEMPT Tue Feb 2 07:07:27 MST 2016
[ 0.000000] CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=0005397f
[ 0.000000] CPU: VIVT data cache, VIVT instruction cache
[ 0.000000] Machine model: Seagate FreeAgent Dockstar
[ 0.000000] debug: ignoring loglevel setting.
[ 0.000000] Memory policy: Data cache writeback
[ 0.000000] On node 0 totalpages: 32768
[ 0.000000] free_area_init_node: node 0, pgdat c0927b8c, node_mem_map c7ed9000
[ 0.000000] Normal zone: 288 pages used for memmap
[ 0.000000] Normal zone: 0 pages reserved
[ 0.000000] Normal zone: 32768 pages, LIFO batch:7
[ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[ 0.000000] pcpu-alloc: [0] 0
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32480')
In Ubuntu Netconsole, Uboot output and Wait prompt is not seen either. I set both ncip and ncipk to the same IP for convenience to watch Uboot and kernel output at Arch reboot in the same console:
$this->bbcode_second_pass_code('', '[ 186.975003] EXT4-fs (sda1): re-mounted. Opts: data=ordered
[ 186.980640] shutdown[1]: Unmounting /oldroot.
[ 187.042987] shutdown[1]: Remounting '/' read-only with options 'mode=755'.
[ 187.050682] shutdown[1]: Remounting '/' read-only with options 'mode=755'.
[ 187.057838] shutdown[1]: All filesystems unmounted.
[ 187.062880] shutdown[1]: Deactivating swaps.
[ 187.067506] shutdown[1]: All swaps deactivated.
[ 187.072403] shutdown[1]: Detaching loop devices.
[ 187.083766] shutdown[1]: All loop devices detached.
[ 187.088734] shutdown[1]: Detaching DM devices.
[ 187.093824] shutdown[1]: All DM devices detached.
[ 187.100472] shutdown[1]: Rebooting.
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 4.4.1-1-ARCH (builduser@leming) (gcc version 5.3.0 (GCC) ) #1 PREEMPT Tue Feb 2 07:07:27 MST 2016
[ 0.000000] CPU: Feroceon 88FR131 [56251311] revision 1 (ARMv5TE), cr=0005397f
[ 0.000000] CPU: VIVT data cache, VIVT instruction cache
[ 0.000000] Machine model: Seagate FreeAgent Dockstar
[ 0.000000] debug: ignoring loglevel setting.
[ 0.000000] Memory policy: Data cache writeback
[ 0.000000] On node 0 totalpages: 32768
[ 0.000000] free_area_init_node: node 0, pgdat c0927b8c, node_mem_map c7ed9000
[ 0.000000] Normal zone: 288 pages used for memmap
[ 0.000000] Normal zone: 0 pages reserved
[ 0.000000] Normal zone: 32768 pages, LIFO batch:7
[ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[ 0.000000] pcpu-alloc: [0] 0
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32480
')
Can someone explain, how to interrupt the boot process? The only way I found so far is to abandon Netconsole, disable PC network adapter, and only then the Wait prompt and Uboot output will show up in Serial Console:
$this->bbcode_second_pass_code('', 'U-Boot 2015.10-1 (Nov 28 2015 - 01:53:40 -0700) Arch Linux ARM
Seagate FreeAgent DockStar
SoC: Kirkwood 88F6281_A0
DRAM: 128 MiB (ECC not enabled)
WARNING: Caches not enabled
NAND: 512 MiB
In: serial
Out: serial
Err: serial
Net: egiga0
88E1116 Initialized on egiga0
Using egiga0 device
ping failed; host 192.168.2.27 is not alive
Hit any key to stop autoboot: 0
starting USB...
USB0: USB EHCI 1.00
scanning bus 0 for devices... 3 USB Device(s) found
scanning usb for storage devices... 1 Storage Device(s) found
USB device 0:
Device 0: Vendor: JetFlash Rev: 1100 Prod: Transcend 4GB
Type: Removable Hard Disk
Capacity: 3862.0 MB = 3.7 GB (7909376 x 512)
... is now current device
usb found on device 0
Checking for: /boot/uEnv.txt ...
70 bytes read in 156 ms (0 Bytes/s)
Loaded environment from /boot/uEnv.txt
Checking if uenvcmd is set ...
4642496 bytes read in 328 ms (13.5 MiB/s)
loading /boot/dtbs/kirkwood-dockstar.dtb ...
10398 bytes read in 559 ms (17.6 KiB/s)
2624785 bytes read in 286 ms (8.8 MiB/s)
Kernel image @ 0x810000 [ 0x000000 - 0x46d6c0 ]
## Flattened Device Tree blob at 00800000
Booting using the fdt blob at 0x800000
Loading Ramdisk to 0789b000, end 07b1bd11 ... OK
Loading Device Tree to 07895000, end 0789a89d ... OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
')
If I assign separate IPs to Uboot and kernel, Netconsole works, but it requires adding extra virtual interface. Its easy to add such interfaces in Linux, but not in Windows. Why there's a need to lock kernel and Uboot output to separate IPs, when its possible to combine them to the same IP? Any way to do that without recompiling Uboot?