【BMC】OpenBMC使用基础(WSL2版本)

news2024/11/17 10:06:04

代码准备

OpenBMC是一个开源的项目,用于开发BMC固件。官网是https://www.openbmc.org/,不过里面似乎没有什么内容,所以还需要依赖其它的网站,https://github.com/openbmc,在这里可以下载到需要的代码和文档。其主体部分的git是https://github.com/openbmc/openbmc.git,下载到的内容如下:

jw@HOME:~/openbmc$ ls
LICENSE    meta-ampere     meta-evb       meta-ingrasys       meta-openpower    meta-security    meta-yadro
OWNERS     meta-arm        meta-facebook  meta-inspur         meta-phosphor     meta-skeleton    oe-init-build-env
README.md  meta-aspeed     meta-fii       meta-intel-openbmc  meta-poky         meta-supermicro  openbmc-env
bitbake    meta-asrock     meta-google    meta-inventec       meta-qualcomm     meta-tyan        poky
meta       meta-bytedance  meta-hpe       meta-nuvoton        meta-quanta       meta-ufispace    scripts
meta-amd   meta-delta      meta-ibm       meta-openembedded   meta-raspberrypi  meta-wistron     setup

但实际上里面并没有什么有效的代码。OpenBMC是基于Yocto这个开源项目的,所以这里看到其实是一堆称为元数据的内容以及一个bitbake工具。关于bitbake和元数据,将在Yocto相关的文章中介绍,本文主要介绍OpenBMC最基本的使用。

OpenBMC一直在更新,这里使用稳定版本,对应Tag 2.14.0:

jw@HOME:~/openbmc$ git checkout 2.14.0

构建

代码在前面已经下载到了,之后就是构建工作,这里参考了下载目录下的RAEAME.md文件。首先需要的准备是一些额外的工具,这里使用的环境是Ubuntu20.04(使用WSL2子系统,注意不要使用默认把子系统安装到C盘的方式,因为OpenBMC需要使用到50G以上的空间,如果放到C盘可能导致其空间不足),需要安装的内容如下:

jw@HOME:~/openbmc$ sudo apt-get install -y git build-essential libsdl1.2-dev texinfo gawk chrpath diffstat zstd

部分内容实际上已经有了,不过关系不大,执行命令即可。之后查看所有支持构建的平台:

jw@HOME:~/openbmc$ . setup
Target machine must be specified. Use one of:

ahe50dc                 kudo                    s6q
bletchley               lannister               s7106
daytonax                mori                    s8036
dl360poc                mtjade                  swift
e3c246d4i               mtmitchell              tatlin-archive-x86
ethanolx                ncplite                 tiogapass
evb-ast2500             nicole                  transformers
evb-ast2600             olympus-nuvoton         vegman-n110
evb-npcm750             on5263m5                vegman-rx20
evb-npcm845             p10bmc                  vegman-sx20
f0b                     palmetto                witherspoon
fp5280g2                qcom-dc-scm-v1          witherspoon-tacoma
g220a                   quanta-q71l             x11spi
gbs                     rl300-g11               yosemitev2
genesis3                romed8hm3               zaius
greatlakes              romulus
gsj                     s2600wf

这里选择evb-ast2500:

. setup evb-ast2500 build

注意这里最前面是一个“.”。这里的evb-ast2500是最常用的BMC芯片平台,build是后续构建使用的目录。

执行结果如下:

jw@HOME:~/openbmc$ . setup evb-ast2500 build
Machine evb-ast2500 found in meta-evb/meta-evb-aspeed/meta-evb-ast2500
You had no conf/local.conf file. This configuration file has therefore been
created for you from /home/jw/openbmc/meta-evb/meta-evb-aspeed/meta-evb-ast2500/conf/templates/default/local.conf.sample
You may wish to edit it to, for example, select a different MACHINE (target
hardware).

You had no conf/bblayers.conf file. This configuration file has therefore been
created for you from /home/jw/openbmc/meta-evb/meta-evb-aspeed/meta-evb-ast2500/conf/templates/default/bblayers.conf.sample
To add additional metadata layers into your configuration please add entries
to conf/bblayers.conf.

The Yocto Project has extensive documentation about OE including a reference
manual which can be found at:
    https://docs.yoctoproject.org

For more information about OpenEmbedded see the website:
    https://www.openembedded.org/

Common targets are:

     obmc-phosphor-image: Includes OpenBMC Phosphor userspace and Web UI

     core-image-minimal: A small image just capable of allowing a device to boot

     core-image-full-cmdline: A small image with more Linux functionality
                              installed, including a ssh server.
jw@HOME:~/openbmc/build$

操作执行之后进入到build目录,如果后续需要换平台,需要先退回上一层目录然后执行命令:

. setup xxx build

注意不要忘了build。如果没有退回上一层,会在build目录下创建xxx目录,这样会导致原本下载好的代码无法使用。

之后就是构建,命令如下:

bitbake obmc-phosphor-image

开始执行构建,这将是一个漫长的过程,当然如果网路和机器性能足够的话,也不会等太长:

jw@HOME:~/openbmc/build$ bitbake obmc-phosphor-image
WARNING: You are running bitbake under WSLv2, this works properly but you should optimize your VHDX file eventually to avoid running out of storage space
Loading cache: 100% |                                                                                   | ETA:  --:--:--
Loaded 0 entries from dependency cache.
Parsing recipes: 100% |##################################################################################| Time: 0:00:10
Parsing of 2707 .bb files complete (0 cached, 2707 parsed). 4382 targets, 566 skipped, 0 masked, 0 errors.
WARNING: No bb files in default matched BBFILE_PATTERN_evb-ast2500 ''
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION           = "2.4.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "ubuntu-20.04"
TARGET_SYS           = "arm-openbmc-linux-gnueabi"
MACHINE              = "evb-ast2500"
DISTRO               = "openbmc-phosphor"
DISTRO_VERSION       = "nodistro.0"
TUNE_FEATURES        = "arm thumb arm1176jzs"
TARGET_FPU           = "soft"
meta
meta-poky
meta-oe
meta-networking
meta-python
meta-phosphor
meta-aspeed
meta-evb
meta-evb-aspeed
meta-evb-ast2500     = "HEAD:67c9d4e715c705cd05fd04f7c8cd4fad300a4666"

Initialising tasks: 100% |###############################################################################| Time: 0:00:01
Sstate summary: Wanted 1629 Local 0 Mirrors 0 Missed 1629 Current 0 (0% match, 0% complete)
NOTE: Executing Tasks
Setscene tasks: 1629 of 1629
Currently 13 running tasks (538 of 4089)  13% |#########                                                               |
0: boost-1.81.0-r0 do_unpack - 7s (pid 4124441)
1: zstd-native-1.5.4-r0 do_compile - 6s (pid 4131014)
2: m4-native-1.4.19-r0 do_configure - 5s (pid 4132100)
# 后面略

构建过程中可能会报错,包括do_fetch报错、do_configure报错等,可以尝试多构建几次,最后都可以成功:

jw@HOME:~/openbmc/build$ bitbake obmc-phosphor-image
Loading cache: 100% |####################################################################################| Time: 0:00:00
Loaded 4381 entries from dependency cache.
Parsing recipes: 100% |##################################################################################| Time: 0:00:00
Parsing of 2707 .bb files complete (2706 cached, 1 parsed). 4382 targets, 566 skipped, 0 masked, 0 errors.
WARNING: No bb files in default matched BBFILE_PATTERN_evb-ast2500 ''
NOTE: Resolving any missing task queue dependencies

Build Configuration:
BB_VERSION           = "2.4.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "ubuntu-20.04"
TARGET_SYS           = "arm-openbmc-linux-gnueabi"
MACHINE              = "evb-ast2500"
DISTRO               = "openbmc-phosphor"
DISTRO_VERSION       = "nodistro.0"
TUNE_FEATURES        = "arm thumb arm1176jzs"
TARGET_FPU           = "soft"
meta
meta-poky
meta-oe
meta-networking
meta-python
meta-phosphor
meta-aspeed
meta-evb
meta-evb-aspeed
meta-evb-ast2500     = "HEAD:67c9d4e715c705cd05fd04f7c8cd4fad300a4666"

Initialising tasks: 100% |###############################################################################| Time: 0:00:01
Sstate summary: Wanted 142 Local 0 Mirrors 0 Missed 142 Current 1487 (0% match, 91% complete)
NOTE: Executing Tasks
NOTE: Tasks Summary: Attempted 4089 tasks of which 3860 didn't need to be rerun and all succeeded.

Summary: There was 1 WARNING message.

生成的二进制位于如下的目录:

jw@HOME:~/openbmc/build/tmp/deploy/images/evb-ast2500$ ls
aspeed-ast2500-evb--6.1.15+git0+580639a973-r0-evb-ast2500-20230730112951.dtb
aspeed-ast2500-evb-evb-ast2500.dtb
aspeed-ast2500-evb.dtb
evb-ast2500-20230730112951.all.tar
evb-ast2500-20230730112951.tar
fitImage
fitImage--6.1.15+git0+580639a973-r0-evb-ast2500-20230730112951.bin
fitImage-evb-ast2500.bin
fitImage-its--6.1.15+git0+580639a973-r0-evb-ast2500-20230730112951.its
fitImage-its-evb-ast2500
fitImage-its-obmc-phosphor-initramfs-evb-ast2500--6.1.15+git0+580639a973-r0-evb-ast2500-20230730112951.its
fitImage-its-obmc-phosphor-initramfs-evb-ast2500-evb-ast2500
fitImage-linux.bin--6.1.15+git0+580639a973-r0-evb-ast2500-20230730112951.bin
fitImage-linux.bin-evb-ast2500
fitImage-obmc-phosphor-initramfs-evb-ast2500--6.1.15+git0+580639a973-r0-evb-ast2500-20230730112951.bin
fitImage-obmc-phosphor-initramfs-evb-ast2500-evb-ast2500
flash-evb-ast2500
image-bmc
image-kernel
image-rofs
image-rwfs
image-u-boot
obmc-phosphor-image-evb-ast2500-20230730112951.qemuboot.conf
obmc-phosphor-image-evb-ast2500-20230730112951.rootfs.manifest
obmc-phosphor-image-evb-ast2500-20230730112951.rootfs.squashfs-xz
obmc-phosphor-image-evb-ast2500-20230730112951.static.mtd
obmc-phosphor-image-evb-ast2500-20230730112951.static.mtd.all.tar
obmc-phosphor-image-evb-ast2500-20230730112951.static.mtd.tar
obmc-phosphor-image-evb-ast2500-20230730112951.testdata.json
obmc-phosphor-image-evb-ast2500.jffs2
obmc-phosphor-image-evb-ast2500.manifest
obmc-phosphor-image-evb-ast2500.qemuboot.conf
obmc-phosphor-image-evb-ast2500.squashfs-xz
obmc-phosphor-image-evb-ast2500.static.mtd
obmc-phosphor-image-evb-ast2500.static.mtd.all.tar
obmc-phosphor-image-evb-ast2500.static.mtd.tar
obmc-phosphor-image-evb-ast2500.testdata.json
obmc-phosphor-initramfs-evb-ast2500-20230730112951.qemuboot.conf
obmc-phosphor-initramfs-evb-ast2500-20230730112951.rootfs.cpio.xz
obmc-phosphor-initramfs-evb-ast2500-20230730112951.rootfs.manifest
obmc-phosphor-initramfs-evb-ast2500-20230730112951.testdata.json
obmc-phosphor-initramfs-evb-ast2500.cpio.xz
obmc-phosphor-initramfs-evb-ast2500.manifest
obmc-phosphor-initramfs-evb-ast2500.qemuboot.conf
obmc-phosphor-initramfs-evb-ast2500.testdata.json
u-boot-evb-ast2500-v2019.04+gitAUTOINC+fd915728e1-r0.bin
u-boot-evb-ast2500.bin
u-boot.bin
vmlinux
vmlinux--6.1.15+git0+580639a973-r0-evb-ast2500-20230730112951.bin
vmlinux-evb-ast2500.bin

使用

到这里构建就完成了,之后就是要启动这个镜像,这需要参考https://github.com/openbmc/docs/blob/master/development/dev-environment.md中的内容。由于没有实际的设备做测试,所以只能使用虚拟机,这就需要依赖于QEMU,但是使用WSL子系统中的qemu-system-arm启动镜像出现了无限重启的情况,所以这里尝试使用Windows下的QEMU。

  1. 在Windows下安装QEMU,确定qemu-system-arm可用。

  2. 将构建的BMC从WSL子系统拿出来,放到指定的位置:

Windows PowerShell
版权所有(C) Microsoft Corporation。保留所有权利。

安装最新的 PowerShell,了解新功能和改进!https://aka.ms/PSWindows

PS C:\Users\jiang> wsl
jw@HOME:/mnt/c/Users/jiang$ cp /home/jw/openbmc/build/tmp/deploy/images/romulus/obmc-phosphor-image-romulus.static.mtd /mnt/e/wsl/
jw@HOME:/mnt/c/Users/jiang$

这里将BMC二进制放到了E盘的wsl目录下,在该目录下执行如下的命令:

qemu-system-arm -m 256 -M ast2500-evb -nographic -drive file=obmc-phosphor-image-evb-ast2500.static.mtd,format=raw,if=mtd

关于QEMU的参数,这里简单介绍下:

  • -m指定了内存的大小。
  • -M指定机器架构。当前支持的架构:
PS C:\Users\jiang> qemu-system-arm.exe -M ?
Supported machines are:
akita                Sharp SL-C1000 (Akita) PDA (PXA270)
ast2500-evb          Aspeed AST2500 EVB (ARM1176)
ast2600-evb          Aspeed AST2600 EVB (Cortex-A7)
# 后续略
  • -nographic表示无图像输出,不过还是会输出到控制台,对于本文来说就是Windows的PowerShell。
  • -driver file=xx指定了启动的系统,这里就是我们的OpenBMC固件系统。
  • -net设定网路参数。
  1. 在PowerShell下执行命令之后就可以将OpenBMC系统启动起来,如下所示:
E:\wsl>qemu-system-arm -m 256 -M ast2500-evb -nographic -drive file=obmc-phosphor-image-evb-ast2500.static.mtd,format=raw,if=mtd


U-Boot 2019.04 (Mar 10 2023 - 01:54:10 +0000)

SOC : AST2500-A1
RST : Power On
LPC Mode : SIO:Enable : SuperIO-2e
Eth : MAC0: RGMII, , MAC1: RGMII,
Model: AST2500 EVB
DRAM:  192 MiB (capacity:256 MiB, VGA:64 MiB, ECC:off)
MMC:   sdhci_slot0@100: 0, sdhci_slot1@200: 1
Loading Environment from SPI Flash... SF: Detected w25q256 with page size 256 Bytes, erase size 4 KiB, total 32 MiB
*** Warning - bad CRC, using default environment

In:    serial@1e784000
Out:   serial@1e784000
Err:   serial@1e784000
Net:
Warning: ethernet@1e660000 (eth0) using random MAC address - 12:18:cf:56:7c:54
eth0: ethernet@1e660000
Warning: ethernet@1e680000 (eth1) using random MAC address - 8e:e3:1c:40:e9:81
, eth1: ethernet@1e680000
Hit any key to stop autoboot:  2 qemu-system-arm: warning: GLib-GIO: Unexpectedly, UWP app `Clipchamp.Clipchamp_2.6.2.0_neutral__yxz26nhyzhsrt' (AUMId `Clipchamp.Clipchamp_yxz26nhyzhsrt!App') supports 41 extensions but has no verbs
qemu-system-arm: warning: GLib-GIO: Unexpectedly, UWP app `Microsoft.ScreenSketch_11.2303.17.0_x64__8wekyb3d8bbwe' (AUMId `Microsoft.ScreenSketch_8wekyb3d8bbwe!App') supports 29 extensions but has no verbs
 0
## Loading kernel from FIT Image at 20080000 ...
   Using 'conf-aspeed-ast2500-evb.dtb' configuration
   Trying 'kernel-1' kernel subimage
     Description:  Linux kernel
     Type:         Kernel Image
     Compression:  uncompressed
     Data Start:   0x2008012c
     Data Size:    3081352 Bytes = 2.9 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: 0x80001000
     Entry Point:  0x80001000
     Hash algo:    sha256
     Hash value:   d1d96902a9f4d8cd71d35cb030c13d935dd6ed8773aa45e0a34ea356e347b83f
   Verifying Hash Integrity ... sha256+ OK
## Loading ramdisk from FIT Image at 20080000 ...
   Using 'conf-aspeed-ast2500-evb.dtb' configuration
   Trying 'ramdisk-1' ramdisk subimage
     Description:  obmc-phosphor-initramfs
     Type:         RAMDisk Image
     Compression:  uncompressed
     Data Start:   0x20377244
     Data Size:    1083876 Bytes = 1 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: unavailable
     Entry Point:  unavailable
     Hash algo:    sha256
     Hash value:   f24d14b2d517b5ee3ef8f7c1031a8ff1dfacaf727eb474a79aeb9b0c1924f6e5
   Verifying Hash Integrity ... sha256+ OK
## Loading fdt from FIT Image at 20080000 ...
   Using 'conf-aspeed-ast2500-evb.dtb' configuration
   Trying 'fdt-aspeed-ast2500-evb.dtb' fdt subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x203706c8
     Data Size:    27311 Bytes = 26.7 KiB
     Architecture: ARM
     Hash algo:    sha256
     Hash value:   dd954d39662a2217b3b1b835554d5e22d8e8729174f8c53532327f425eb55a7e
   Verifying Hash Integrity ... sha256+ OK
   Booting using the fdt blob at 0x203706c8
   Loading Kernel Image ... OK
   Loading Ramdisk to 89e8a000, end 89f929e4 ... OK
   Loading Device Tree to 89e80000, end 89e89aae ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 6.1.15-580639a (oe-user@oe-host) (arm-openbmc-linux-gnueabi-gcc (GCC) 12.2.0, GNU ld (GNU Binutils) 2.40.20230119) #1 Thu Apr  6 00:55:09 UTC 2023
[    0.000000] CPU: ARMv6-compatible processor [410fb767] revision 7 (ARMv7), cr=00c5387d
[    0.000000] CPU: VIPT aliasing data cache, unknown instruction cache
[    0.000000] OF: fdt: Machine model: AST2500 EVB
[    0.000000] Memory policy: Data cache writeback
[    0.000000] Reserved memory: created CMA memory pool at 0x8b000000, size 16 MiB
[    0.000000] OF: reserved mem: initialized node framebuffer, compatible id shared-dma-pool
[    0.000000] cma: Reserved 16 MiB at 0x8a000000
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000080000000-0x000000008bffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080000000-0x000000008bffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x000000008bffffff]
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 48768
[    0.000000] Kernel command line: console=ttyS4,115200n8 root=/dev/ram rw
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes, linear)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes, linear)
[    0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
[    0.000000] Memory: 149728K/196608K available (7168K kernel code, 667K rwdata, 1500K rodata, 1024K init, 148K bss, 14112K reserved, 32768K cma-reserved)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] ftrace: allocating 23672 entries in 47 pages
[    0.000000] ftrace: allocated 47 pages with 5 groups
[    0.000000] trace event string verifier disabled
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] i2c controller registered, irq 17
[    0.000000] clocksource: FTTMR010-TIMER2: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 77222644334 ns
[    0.000119] sched_clock: 32 bits at 25MHz, resolution 40ns, wraps every 86767015915ns
[    0.001174] Switching to timer-based delay loop, resolution 40ns
[    0.003361] Calibrating delay loop (skipped), value calculated using timer frequency.. 49.50 BogoMIPS (lpj=247500)
[    0.003492] pid_max: default: 32768 minimum: 301
[    0.005470] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.005501] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.015532] CPU: Testing write buffer coherency: ok
[    0.023194] cblist_init_generic: Setting adjustable number of callback queues.
[    0.023312] cblist_init_generic: Setting shift to 0 and lim to 1.
[    0.023440] cblist_init_generic: Setting shift to 0 and lim to 1.
[    0.024877] Setting up static identity map for 0x80100000 - 0x80100038
[    0.026412] ASPEED AST2500 rev A1 (04010303)
[    0.031259] devtmpfs: initialized
[    0.038699] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.038797] futex hash table entries: 256 (order: -1, 3072 bytes, linear)
[    0.040158] pinctrl core: initialized pinctrl subsystem
[    0.046111] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.050753] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.052672] hw-breakpoint: debug architecture 0x0 unsupported.
[    0.082781] mc: Linux media interface: v0.10
[    0.082839] videodev: Linux video capture interface: v2.00
[    0.082902] pps_core: LinuxPPS API ver. 1 registered
[    0.082910] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.082953] PTP clock support registered
[    0.094061] clocksource: Switched to clocksource FTTMR010-TIMER2
[    0.111839] NET: Registered PF_INET protocol family
[    0.112552] IP idents hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.114931] tcp_listen_portaddr_hash hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.114980] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.115017] TCP established hash table entries: 2048 (order: 1, 8192 bytes, linear)
[    0.115070] TCP bind hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.115151] TCP: Hash tables configured (established 2048 bind 2048)
[    0.115813] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.115932] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.116933] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.121805] Unpacking initramfs...
[    0.135954] workingset: timestamp_bits=30 max_order=16 bucket_order=0
[    0.138969] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.138991] jffs2: version 2.2. (SUMMARY)  漏 2001-2006 Red Hat, Inc.
[    0.158835] Serial: 8250/16550 driver, 6 ports, IRQ sharing enabled
[    0.163093] printk: console [ttyS4] disabled
[    0.165121] 1e784000.serial: ttyS4 at MMIO 0x1e784000 (irq = 20, base_baud = 1500000) is a 16550A
[    0.326435] printk: console [ttyS4] enabled
[    0.329124] timeriomem_rng 1e6e2078.hwrng: 32bits from 0x(ptrval) @ 1us
[    0.332317] aspeed_gfx 1e6e6000.display: assigned reserved memory node framebuffer
[    0.371403] [drm] Initialized aspeed-gfx-drm 1.0.0 20180319 for 1e6e6000.display on minor 0
[    0.388654] aspeed_gfx 1e6e6000.display: [drm] fb0: aspeed-gfx-drmd frame buffer device
[    0.413113] loop: module loaded
[    0.482273] spi-nor spi0.0: w25q256 (32768 Kbytes)
[    0.512151] random: crng init done
[    0.753987] spi-aspeed-smc 1e620000.spi: CE0 read buswidth:2 [0x203b0641]
[    0.874721] Freeing initrd memory: 1060K
[    0.877843] 5 fixed-partitions partitions found on MTD device bmc
[    0.878942] Creating 5 MTD partitions on "bmc":
[    0.879832] 0x000000000000-0x000000060000 : "u-boot"
[    0.881572] 0x000000060000-0x000000080000 : "u-boot-env"
[    0.882894] 0x000000080000-0x0000004c0000 : "kernel"
[    0.884206] 0x0000004c0000-0x000001c00000 : "rofs"
[    0.885642] 0x000001c00000-0x000002000000 : "rwfs"
[    0.897655] spi-nor spi1.0: mx25l25635e (32768 Kbytes)
[    0.902495] spi-aspeed-smc 1e630000.spi: Calibration area too uniform, using low speed
[    0.903845] spi-aspeed-smc 1e630000.spi: CE0 read buswidth:2 [0x203b0041]
[    0.919797] ftgmac100 1e660000.ethernet: Read MAC address 12:18:cf:56:7c:54 from chip
[    0.925951] RTL8211E Gigabit Ethernet 1e660000.ethernet--1:00: attached PHY driver (mii_bus:phy_addr=1e660000.ethernet--1:00, irq=POLL)
[    0.929635] ftgmac100 1e660000.ethernet eth0: irq 22, mapped at (ptrval)
[    0.931293] ftgmac100 1e680000.ethernet: Read MAC address 8e:e3:1c:40:e9:81 from chip
[    0.934834] RTL8211E Gigabit Ethernet 1e680000.ethernet--1:00: attached PHY driver (mii_bus:phy_addr=1e680000.ethernet--1:00, irq=POLL)
[    0.937590] ftgmac100 1e680000.ethernet eth1: irq 23, mapped at (ptrval)
[    0.952480] aspeed_vhub 1e6a0000.usb-vhub: Initialized virtual hub in USB2 mode
[    0.954489] Mass Storage Function, version: 2009/09/11
[    0.955610] LUN: removable file: (no medium)
[    0.956818] no file given for LUN0
[    0.957808] udc 1e6a0000.usb-vhub:p1: failed to start g_mass_storage: -22
[    0.958950] g_mass_storage: probe of gadget.0 failed with error -22
[    0.960036] Mass Storage Function, version: 2009/09/11
[    0.960883] LUN: removable file: (no medium)
[    0.961586] no file given for LUN0
[    0.962149] udc 1e6a0000.usb-vhub:p2: failed to start g_mass_storage: -22
[    0.963246] g_mass_storage: probe of gadget.1 failed with error -22
[    0.964416] Mass Storage Function, version: 2009/09/11
[    0.965263] LUN: removable file: (no medium)
[    0.966118] no file given for LUN0
[    0.966749] udc 1e6a0000.usb-vhub:p3: failed to start g_mass_storage: -22
[    0.967921] g_mass_storage: probe of gadget.2 failed with error -22
[    0.969508] Mass Storage Function, version: 2009/09/11
[    0.970428] LUN: removable file: (no medium)
[    0.971184] no file given for LUN0
[    0.971748] udc 1e6a0000.usb-vhub:p4: failed to start g_mass_storage: -22
[    0.972842] g_mass_storage: probe of gadget.3 failed with error -22
[    0.973895] Mass Storage Function, version: 2009/09/11
[    0.974741] LUN: removable file: (no medium)
[    0.975583] no file given for LUN0
[    0.976353] udc 1e6a0000.usb-vhub:p5: failed to start g_mass_storage: -22
[    0.977507] g_mass_storage: probe of gadget.4 failed with error -22
[    0.978645] UDC core: g_mass_storage: couldn't find an available UDC
[    0.980024] i2c_dev: i2c /dev entries driver
[    0.986214] at24 3-0050: 1024 byte 24c08 EEPROM, writable, 16 bytes/write
[    0.987659] aspeed-i2c-bus 1e78a100.i2c-bus: i2c bus 3 registered, irq 25
[    0.989541] aspeed-i2c-bus 1e78a300.i2c-bus: i2c bus 7 registered, irq 26
[    0.990940] Driver for 1-wire Dallas network protocol.
[    0.993644] lm75 7-004d: hwmon0: sensor 'lm75'
[    0.995603] SPI driver bmp280 has no spi_device_id for bosch,bmp085
[    1.000920] NET: Registered PF_INET6 protocol family
[    1.006255] Segment Routing with IPv6
[    1.006981] In-situ OAM (IOAM) with IPv6
[    1.008234] NET: Registered PF_PACKET protocol family
[    1.009067] 8021q: 802.1Q VLAN Support v1.8
[    1.013306] printk: console [netcon0] enabled
[    1.014103] netconsole: network logging started
[    1.035707] Freeing unused kernel image (initmem) memory: 1024K
[    1.039784] Checked W+X mappings: passed, no W+X pages found
[    1.040838] Run /init as init process
rofs = mtd4 squashfs   rwfs = mtd5 jffs2
[    2.154262] jffs2: notice: (84) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) found.
find: run/initramfs/rw/cow/var/lib/systemd/random-seed: No such file or directory
Fri Mar  9 12:35:01 UTC 2018
[    2.334539] overlayfs: upper fs does not support tmpfile.
[    2.337840] overlayfs: upper fs does not support RENAME_WHITEOUT.
[    4.325572] systemd[1]: System time before build time, advancing clock.
[    4.474149] systemd[1]: systemd 253.1^ running in system mode (+PAM -AUDIT -SELINUX -APPARMOR -IMA -SMACK +SECCOMP -GCRYPT -GNUTLS -OPENSSL -ACL +BLKID -CURL -ELFUTILS -FIDO2 -IDN2 -IDN -IPTC -KMOD -LIBCRYPTSETUP +LIBFDISK -PCRE2 -PWQUALITY -P11KIT -QRENCODE -TPM2 -BZIP2 -LZ4 -XZ -ZLIB +ZSTD -BPF_FRAMEWORK -XKBCOMMON -UTMP -SYSVINIT default-hierarchy=unified)
[    4.483706] systemd[1]: Detected architecture arm.

Welcome to Phosphor OpenBMC (Phosphor OpenBMC Project Reference Distro) 2.14.0!

[    4.541756] systemd[1]: Hostname set to <evb-ast2500>.
[    4.550899] systemd[1]: Initializing machine ID from random generator.
[    4.757550] systemd[1]: Using hardware watchdog 'aspeed_wdt', version 0, device /dev/watchdog0
[    4.796279] systemd[1]: Watchdog running with a timeout of 2min.
[    4.797929] systemd[1]: Watchdog: reading from /sys/dev/char/247:0/pretimeout_governor
[    4.800023] systemd[1]: Watchdog: failed to read pretimeout governor: No such file or directory
[    4.801847] systemd[1]: Watchdog: setting pretimeout_governor to 'panic' via '/sys/dev/char/247:0/pretimeout_governor'
[    4.804757] systemd[1]: Failed to set pretimeout_governor to 'panic': No such file or directory
[    4.806494] systemd[1]: Failed to set watchdog pretimeout governor to 'panic', ignoring: No such file or directory
[    7.016612] systemd[1]: /lib/systemd/system/phosphor-ipmi-net@.socket:6: Invalid interface name, ignoring: sys-subsystem-net-devices-%i.device
[    7.137420] systemd[1]: Queued start job for default target Multi-User System.
[    7.161803] systemd[1]: Created slice Slice /system/getty.
[  OK  ] Created slice Slice /system/getty.
[    7.170446] systemd[1]: Created slice Slice /system/mapper-wait.
[  OK  ] Created slice Slice /system/mapper-wait.
[    7.176535] systemd[1]: Created slice Slice /system/modprobe.
[  OK  ] Created slice Slice /system/modprobe.
[    7.183669] systemd[1]: Created slice Slice /system/obmc-led-group-start.
[  OK  ] Created slice Slice /system/obmc-led-group-start.
[    7.190534] systemd[1]: Created slice Slice /system/phosphor-certificate-manager.
[  OK  ] Created slice Slice /system/phosphor-certificate-manager.
[    7.197805] systemd[1]: Created slice Slice /system/phosphor-discover-system-state.
[  OK  ] Created slice Slice /syste鈥osphor-discover-system-state.
[    7.205313] systemd[1]: Created slice Slice /system/phosphor-ipmi-net.
[  OK  ] Created slice Slice /system/phosphor-ipmi-net.
[    7.212227] systemd[1]: Created slice Slice /system/phosphor-reset-chassis-on.
[  OK  ] Created slice Slice /system/phosphor-reset-chassis-on.
[    7.219060] systemd[1]: Created slice Slice /system/phosphor-reset-chassis-running.
[  OK  ] Created slice Slice /syste鈥osphor-reset-chassis-running.
[    7.226630] systemd[1]: Created slice Slice /system/phosphor-reset-host-running.
[  OK  ] Created slice Slice /system/phosphor-reset-host-running.
[    7.233226] systemd[1]: Created slice Slice /system/serial-getty.
[  OK  ] Created slice Slice /system/serial-getty.
[    7.239601] systemd[1]: Created slice Slice /system/xyz.openbmc_project.State.Chassis.
[  OK  ] Created slice Slice /syste鈥penbmc_project.State.Chassis.
[    7.249573] systemd[1]: Created slice Slice /system/xyz.openbmc_project.State.Host.
[  OK  ] Created slice Slice /syste鈥z.openbmc_project.State.Host.
[    7.256000] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
[  OK  ] Started Dispatch Password 鈥s to Console Directory Watch.
[    7.261232] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[  OK  ] Started Forward Password R鈥ests to Wall Directory Watch.
[    7.266179] systemd[1]: Reached target Host0 running after reset.
[  OK  ] Reached target Host0 running after reset.
[    7.269445] systemd[1]: Reached target Path Units.
[  OK  ] Reached target Path Units.
[    7.272596] systemd[1]: Reached target Remote File Systems.
[  OK  ] Reached target Remote File Systems.
[    7.286486] systemd[1]: Reached target Slice Units.
[  OK  ] Reached target Slice Units.
[    7.289587] systemd[1]: Reached target Swaps.
[  OK  ] Reached target Swaps.
[    7.300777] systemd[1]: Listening on Syslog Socket.
[  OK  ] Listening on Syslog Socket.
[    7.324171] systemd[1]: Listening on Process Core Dump Socket.
[  OK  ] Listening on Process Core Dump Socket.
[    7.329773] systemd[1]: Journal Audit Socket was skipped because of an unmet condition check (ConditionSecurity=audit).
[    7.337538] systemd[1]: Listening on Journal Socket (/dev/log).
[  OK  ] Listening on Journal Socket (/dev/log).
[    7.343615] systemd[1]: Listening on Journal Socket.
[  OK  ] Listening on Journal Socket.
[    7.350119] systemd[1]: Listening on Network Service Netlink Socket.
[  OK  ] Listening on Network Service Netlink Socket.
[    7.361387] systemd[1]: Listening on udev Control Socket.
[  OK  ] Listening on udev Control Socket.
[    7.367289] systemd[1]: Listening on udev Kernel Socket.
[  OK  ] Listening on udev Kernel Socket.
[    7.373246] systemd[1]: Huge Pages File System was skipped because of an unmet condition check (ConditionPathExists=/sys/kernel/mm/hugepages).
[    7.377520] systemd[1]: POSIX Message Queue File System was skipped because of an unmet condition check (ConditionPathExists=/proc/sys/fs/mqueue).
[    7.399229] systemd[1]: Mounting Kernel Debug File System...
         Mounting Kernel Debug File System...
[    7.432360] systemd[1]: Mounting Kernel Trace File System...
         Mounting Kernel Trace File System...
[    7.476449] systemd[1]: Mounting Temporary Directory /tmp...
         Mounting Temporary Directory /tmp...
[    7.538878] systemd[1]: Starting Load Kernel Module configfs...
         Starting Load Kernel Module configfs...
[    7.613383] systemd[1]: Starting Load Kernel Module efi_pstore...
         Starting Load Kernel Module efi_pstore...
[    7.656240] systemd[1]: Starting Load Kernel Module fuse...
         Starting Load Kernel Module fuse...
[    7.667621] systemd[1]: File System Check on Root Device was skipped because of an unmet condition check (ConditionPathIsReadWrite=!/).
[    7.846291] systemd[1]: Starting Journal Service...
         Starting Journal Service...
[    7.950807] systemd[1]: Starting Generate network units from Kernel command line...
         Starting Generate network 鈥s from Kernel command line...
[    8.107269] systemd[1]: Starting Remount Root and Kernel File Systems...
         Starting Remount Root and Kernel File Systems...
[    8.247561] systemd[1]: Starting Apply Kernel Variables...
         Starting Apply Kernel Variables...
[    8.387080] systemd[1]: Starting Coldplug All udev Devices...
         Starting Coldplug All udev Devices...
[    8.771729] systemd[1]: Mounted Kernel Debug File System.
[  OK  ] Mounted Kernel Debug File System.
[    8.817476] systemd[1]: Mounted Kernel Trace File System.
[  OK  ] Mounted Kernel Trace File System.
[    9.008706] systemd[1]: Mounted Temporary Directory /tmp.
[  OK  ] Mounted Temporary Directory /tmp.
[    9.064132] systemd[1]: modprobe@configfs.service: Deactivated successfully.
[    9.113865] systemd-journald[115]: Collecting audit messages is disabled.
[    9.121763] systemd[1]: Finished Load Kernel Module configfs.
[  OK  ] Finished Load Kernel Module configfs.
[    9.134054] systemd[1]: modprobe@efi_pstore.service: Deactivated successfully.
[    9.185567] systemd[1]: Finished Load Kernel Module efi_pstore.
[  OK  ] Finished Load Kernel Module efi_pstore.
[    9.212820] systemd[1]: modprobe@fuse.service: Deactivated successfully.
[    9.267227] systemd[1]: Finished Load Kernel Module fuse.
[  OK  ] Finished Load Kernel Module fuse.
[    9.284711] systemd[1]: Finished Generate network units from Kernel command line.
[  OK  ] Finished Generate network units from Kernel command line.
[    9.314765] systemd[1]: Finished Remount Root and Kernel File Systems.
[  OK  ] Finished Remount Root and Kernel File Systems.
[    9.345716] systemd[1]: Finished Apply Kernel Variables.
[  OK  ] Finished Apply Kernel Variables.
[    9.355649] systemd[1]: Reached target Preparation for Network.
[  OK  ] Reached target Preparation for Network.
[    9.378157] systemd[1]: FUSE Control File System was skipped because of an unmet condition check (ConditionPathExists=/sys/fs/fuse/connections).
[    9.436381] systemd[1]: Mounting Kernel Configuration File System...
         Mounting Kernel Configuration File System...
[    9.517018] systemd[1]: Starting Rebuild Hardware Database...
         Starting Rebuild Hardware Database...
[    9.520524] systemd[1]: Platform Persistent Storage Archival was skipped because of an unmet condition check (ConditionDirectoryNotEmpty=/sys/fs/pstore).
[    9.591461] systemd[1]: Starting Create System Users...
         Starting Create System Users...
[    9.769333] systemd[1]: Mounted Kernel Configuration File System.
[  OK  ] Mounted Kernel Configuration File System.
[    9.815172] systemd[1]: Finished Rebuild Hardware Database.
[  OK  ] Finished Rebuild Hardware Database.
[   10.092119] systemd[1]: Started Journal Service.
[  OK  ] Started Journal Service.
         Starting Flush Journal to Persistent Storage...
[   10.431905] systemd-journald[115]: Received client request to flush runtime journal.
[  OK  ] Finished Create System Users.
[  OK  ] Finished Flush Journal to Persistent Storage.
         Starting Create Static Device Nodes in /dev...
[  OK  ] Finished Create Static Device Nodes in /dev.
[  OK  ] Reached target Preparation for Local File Systems.
         Mounting /var/volatile...
         Starting Rule-based Manage鈥or Device Events and Files...
[  OK  ] Mounted /var/volatile.
         Starting Load/Save OS Random Seed...
[  OK  ] Reached target Local File Systems.
         Starting Create Volatile Files and Directories...
[  OK  ] Finished Load/Save OS Random Seed.
[  OK  ] Started Rule-based Manager for Device Events and Files.
         Starting Network Configuration...
[  OK  ] Finished Create Volatile Files and Directories.
         Starting Rebuild Journal Catalog...
         Starting Network Name Resolution...
         Starting Network Time Synchronization...
[  OK  ] Finished Rebuild Journal Catalog.
         Starting Update is Completed...
[  OK  ] Finished Update is Completed.
[  OK  ] Started Network Time Synchronization.
[  OK  ] Reached target System Time Set.
[  OK  ] Started Network Name Resolution.
[  OK  ] Reached target Host and Network Name Lookups.
[  OK  ] Started Network Configuration.
[  OK  ] Reached target Network.
         Starting Wait for Network to be Configured...
[  OK  ] Finished Coldplug All udev Devices.
[   16.916445] ftgmac100 1e680000.ethernet eth1: Link is Up - 100Mbps/Full - flow control rx/tx
[   16.923077] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[   17.159974] ftgmac100 1e660000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[   17.169310] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[  OK  ] Found device /sys/subsystem/net/devices/eth0.
[  OK  ] Reached target System Initialization.
[  OK  ] Started Daily rotation of log files.
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Reached target Timer Units.
[  OK  ] Reached target Hardware activated USB gadget.
[  OK  ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket.
[  OK  ] Listening on BMC Webserver socket.
[  OK  ] Listening on D-Bus System Message Bus Socket.
[  OK  ] Listening on dropbear.socket.
[  OK  ] Listening on Phosphor Host鈥le SSH Per-Connection socket.
[  OK  ] Listening on phosphor-ipmi-net@eth0.socket.
[  OK  ] Reached target Socket Units.
         Starting D-Bus System Message Bus...
[  OK  ] Created slice Slice /system/xyz.openbmc_project.Hwmon.
[  OK  ] Started D-Bus System Message Bus.
[  OK  ] Reached target Basic System.
         Starting Avahi mDNS/DNS-SD Stack...
[  OK  ] Started Start bmcweb server.
         Starting Clear one time boot overrides...
         Starting SSH Key Generation...
         Starting Name Service Cache Daemon...
         Starting LDAP daemon...
[  OK  ] Started Phosphor Dump core monitor..
[  OK  ] Started Phosphor certificate manager for authority.
[  OK  ] Started Phosphor certificate manager for bmcweb.
[  OK  ] Started Phosphor certificate manager for nslcd.
         Starting BMC health monitoring...
[  OK  ] Started Lightweight SLP Server.
         Starting OpenBMC ipKVM daemon...
         Starting Permit User Sessions...
         Starting Enable Linux trace events in the boot loader...
         Starting Phosphor Dump Manager...
[  OK  ] Started Fru Device.
         Starting Phosphor Inventory Manager...
         Starting Phosphor LED Group Management Daemon...
         Starting Phosphor Log Manager...
         Starting Phosphor Network Manager...
         Starting Phosphor DBus Service Discovery Manager...
         Starting Phosphor Settings Daemon...
         Starting OpenBMC Software Update Manager...
         Starting Phosphor Download Manager...
         Starting Phosphor Chassis0 State Manager...
         Starting Rsyslog config updater...
         Starting Telemetry...
         Starting Phosphor User Manager...
[  OK  ] Finished Wait for Network to be Configured.
[  OK  ] Started Name Service Cache Daemon.
[  OK  ] Started OpenBMC ipKVM daemon.
[  OK  ] Finished Permit User Sessions.
[  OK  ] Finished Enable Linux trace events in the boot loader.
[  OK  ] Started BMC health monitoring.
[  OK  ] Finished Clear one time boot overrides.
[  OK  ] Started LDAP daemon.
[  OK  ] Started Phosphor Settings Daemon.
[  OK  ] Started Phosphor Inventory Manager.
[  OK  ] Started Phosphor Log Manager.
[  OK  ] Started Rsyslog config updater.
[  OK  ] Started Phosphor DBus Service Discovery Manager.
[  OK  ] Started Telemetry.
[  OK  ] Started Phosphor Download Manager.
[  OK  ] Started Avahi mDNS/DNS-SD Stack.
[  OK  ] Started Phosphor Dump Manager.
[  OK  ] Started OpenBMC Software Update Manager.
[  OK  ] Started Phosphor Chassis0 State Manager.
[  OK  ] Reached target Network is Online.
[  OK  ] Started phosphor systemd target monitor.
         Starting System Logging Service...
[  OK  ] Started Serial Getty on ttyS4.
[  OK  ] Reached target Login Prompts.
         Starting Hostname Service...
         Starting Phosphor Ldap config updater...
         Starting Wait for /org/openbmc/control/power0...
         Starting Wait for /xyz/ope鈥/control/host0/auto_reboot...
         Starting Wait for /xyz/ope鈥ontrol/host0/boot/one_time...
         Starting Wait for /xyz/ope鈥project/control/host0/boot...
         Starting Wait for /xyz/ope鈥?/host0/power_restore_policy...
         Starting Wait for /xyz/ope鈥rol/host0/restriction_mode...
         Starting Wait for /xyz/ope鈥ject/led/groups/bmc_booted...
         Starting Wait for /xyz/openbmc_project/state/bmc0...
         Starting Wait for /xyz/openbmc_project/state/chassis0...
         Starting Wait for /xyz/openbmc_project/state/host0...
         Starting Wait for /xyz/ope鈥c_project/time/sync_method...
         Starting Phosphor Version Software Manager...
         Starting Phosphor BMC State Manager...
[  OK  ] Started System Logging Service.
[  OK  ] Finished SSH Key Generation.
[  OK  ] Finished Wait for /xyz/ope鈥ct/control/host0/auto_reboot.
[  OK  ] Finished Wait for /xyz/ope鈥/control/host0/boot/one_time.
[  OK  ] Finished Wait for /xyz/ope鈥c_project/control/host0/boot.
[  OK  ] Finished Wait for /xyz/ope鈥l/host0/power_restore_policy.
[  OK  ] Finished Wait for /xyz/ope鈥ntrol/host0/restriction_mode.
[  OK  ] Finished Wait for /xyz/openbmc_project/state/chassis0.
[  OK  ] Finished Wait for /xyz/openbmc_project/time/sync_method.
[  OK  ] Started Hostname Service.
[  OK  ] Started Phosphor Ldap config updater.
         Stopping LDAP daemon...
         Starting Phosphor Inband IPMI...
         Starting Phosphor Time Manager daemon...
[  OK  ] Stopped LDAP daemon.
[  OK  ] Started Phosphor Network Manager.
[  OK  ] Started Phosphor Version Software Manager.
[  OK  ] Started Phosphor User Manager.

Phosphor OpenBMC (Phosphor OpenBMC Project Reference Distro) nodistro.0 evb-ast2500 ttyS4

evb-ast2500 login:
  1. 登录系统使用的账号密码是root0penBmc。注意密码的首字母是数字的0,而不是大写的O。登录之后就可以进行各种操作:
root@evb-ast2500:~# ls
bmcweb_persistent_data.json
root@evb-ast2500:~# obmcutil state
CurrentBMCState     : xyz.openbmc_project.State.BMC.BMCState.NotReady
CurrentPowerState   : xyz.openbmc_project.State.Chassis.PowerState.Off
CurrentHostState    : xyz.openbmc_project.State.Host.HostState.Off
BootProgress        : xyz.openbmc_project.State.Boot.Progress.ProgressStages.Unspecified
OperatingSystemState: xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.Inactive

到这里一个可用的BMC镜像就已经启动起来了,但是为了在Windows下能够访问这个BMC,还需要联网,为此需要配置QEMU的网络。

  1. 安装OpenVPN,配置生成网桥:

在这里插入图片描述

之后就可以使用这个tap0了。启动BMC的命令改成:

qemu-system-arm -m 256 -M ast2500-evb -nographic -drive file=obmc-phosphor-image-evb-ast2500.static.mtd,format=raw,if=mtd -net nic -net tap,ifname=tap0

启动BMC之后,可以在Windows下与其通信(红框是BMC配置的IP,注意不要跟网桥的一致):

在这里插入图片描述

最重要的是,可以登录到BMC Web:

在这里插入图片描述

Emmm…这显然不是我们要的结果。

进一步查看evb-ast2500对应的配方,发现它默认是不带Web的!因此我们需要自己何如Web。

最简单的方法就是查看别的平台是如何加Web的,比如meta-ampere\meta-jade\recipes-phosphor\packagegroups\packagegroup-obmc-apps.bbappend下有如下的配置:

RDEPENDS:${PN}-extras:append = " \
                                webui-vue \
                                phosphor-image-signing \
                                phosphor-virtual-sensor \
                                phosphor-misc-usb-ctrl \
                                phosphor-gpio-monitor-monitor \
                               "

RDEPENDS:${PN}-inventory:append = " \
                                   dbus-sensors \
                                   entity-manager \
                                  "

RDEPENDS:${PN}-extras:remove = " phosphor-hwmon"
VIRTUAL-RUNTIME_obmc-sensors-hwmon ?= "dbus-sensors"
RDEPENDS:${PN}-extras:append = " phosphor-virtual-sensor"

为了使用webui-vue,我们也可以创建一个类似的文件,放到meta-aspeed目录下,然后只包含webui-vue:

jw@HOME:~/openbmc$ cat meta-aspeed/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
RDEPENDS:${PN}-extras:append = "webui-vue"

jw@HOME:~/openbmc$

之后再进行bitbake构建,此时会有新的配方(比如nodejs)被构建,所以需要花费一定的时间。使用新的镜像,可以看到Web文件了:

root@evb-ast2500:~# ls /usr/share/www/
DMTF_Redfish_logo_2017.svg  google                      js                          styles
css                         img                         redfish
favicon.ico.gz              index.html.gz               redfish.css

再访问BMC得到如下的结果(由于使用的是私有的证书,所以会有一个拦截,跳过即可):

在这里插入图片描述

账号密码还是root/0penBmc,登录之后进入OpenBMC的Web主界面:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/814474.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

工作中遇到的关于配置问题

工作中遇到的问题 想记录一下 一个程序员小白每天遇到的问题 1.创建了一个Maven的web工程&#xff0c;但是启动一直是404&#xff0c;原服务器未能找到目标资源 解决办法&#xff1a; 选择deployment&#xff0c;点击加号选择war格式就OK啦 目录里面无法创建类&#xff0…

如何在面试IT公司时展现出色的表现

在面试IT技术岗位的过程中&#xff0c;展现出色的表现是至关重要的。下面我将分享一些我个人的经验和观察&#xff0c;希望对大家有所帮助。 首先&#xff0c;提前准备是非常重要的。在面试前&#xff0c;你应该充分了解目标公司的业务和技术需求。这样你就能更好地回答面试官…

一些高频的C++ cache line面试

C那些事之False Sharing与Cache line 最近看到一段代码&#xff0c;手动做的对齐&#xff0c;于是研究一下不对齐又会带来什么影响&#xff1f; template <typename T> class AtomicWithPadding {private:static constexpr int kCacheLineSize 64;uint8_t padding_befor…

HTML+CSS+JavaScript:轮播图的自动播放、手动播放、鼠标悬停暂停播放

一、需求 昨天我们做了轮播图的自动播放&#xff0c;即每隔一秒自动切换一次 今天我们增加两个需求&#xff1a; 1、鼠标点击向右按钮&#xff0c;轮播图往后切换一次&#xff1b;鼠标点击向左按钮&#xff0c;轮播图往前切换一次 2、鼠标悬停在轮播图区域中时&#xff0c;…

闲鱼链接生成 仿闲鱼链接搭建

教程&#xff1a;修改数据库账号密码直接使用。 源码带有教程! 下载程序&#xff1a;https://pan.baidu.com/s/16lN3gvRIZm7pqhvVMYYecQ?pwd6zw3

layui框架学习(36:数据表格_复杂表头)

table数据表格模块中的col属性支持配置复杂表头&#xff0c;其为二维数组&#xff0c;用于描述复杂表头中每个表头单元格的位置和尺寸信息&#xff08;colspan和rowspan描述表头单元格所占行数和列数&#xff09;。   从参考文献2-3给出的示例来看&#xff0c;描述复杂表头的…

[数学公式] 1秒移动x米是多少码 x码一秒钟移动几米

1秒移动x米是多少码&#xff1a;3.6x码 x码一秒钟移动几米&#xff1a;

6、用restful风格写controller方法接口,单元测试依赖

编写单元测试&#xff0c;用restful风格写controller方法 单元测试依赖 实际项目开发中&#xff0c;单元测试与业务代码通常都会要求同步进行 TDD测试驱动开发&#xff1a;先编写单元测试&#xff0c;然后努力去开发业务代码去满足所有的单元测试用例。 添加SpringBoot的测试…

LeetCode_双指针_中等_143.重排链表

目录 1.题目2.思路3.代码实现&#xff08;Java&#xff09; 1.题目 给定一个单链表 L 的头节点 head &#xff0c;单链表 L 表示为&#xff1a; L0 → L1 → … → L~n - 1~ → Ln 请将其重新排列后变为&#xff1a; L0 → Ln → L1 → L~n - 1~ → L2 → L~n - 2~ → … 不…

python网站创建006:常见CSS样式

1. 给标签添加样式有三种方式(在标签上添加、在head中添加、通过独立文件添加)。 其中(在head中添加、通过独立文件添加)是有选择器存在的 直接在标签上添加 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><tit…

如何部署Redis哨兵

目录 一、Redis数据库 二、Redis哨兵模式 三、部署Redis哨兵 第一步 关闭防火墙和安全机制 第二步 修改Redis配置文件 第三步 开启Master主节点 第四步 查看哨兵信息 一、Redis数据库 ●主从复制&#xff1a;主从复制是高可用Redis的基础&#xff0c;哨兵和集群都是在主…

使用 python 读取Excel文件并转换为时间格式

通过Excel 做配置文件调整参数&#xff0c;转换为实时参数&#xff1a; naclo_reduce_ratio pd.read_excel(./config/naclo_reduce_ratio.xlsx, header0) # col_name [Time, r1, r2]time_lst [] for i, row in naclo_reduce_ratio.iterrows():now_time_lst str(row[Time]…

Linux常用命令——dpkg-query命令

在线Linux命令查询工具 dpkg-query Debian Linux中软件包的查询工具 补充说明 dpkg-query命令是Debian Linux中软件包的查询工具&#xff0c;它从dpkg软件包数据库中查询并辨识软件包的信息。 语法 dpkg-query(选项)(参数)选项 -l&#xff1a;列出符合匹配模式的软件包&…

Android studio修改app图标

步骤如下&#xff1a; 1.右键app名称→New→ImageAsset 2. 进行下面的配置 图源&#xff1a;https://blog.csdn.net/Qingshan_z/article/details/126661650 3.配置分辨率 4.图标自动保存在mipmap文件夹下 再启动就更换成功了&#xff01;&#xff01;&#xff01; 参考&…

10、自定义配置文件和自定义失败分析器

自定义配置文件及失败分析器 改变项目配置的方式 默认行为&#xff1a; Spring Boot默认的配置文件&#xff1a;调用SpringApplication的run()方法启动Spring Boot应用时&#xff0c;Spring Boot会自动加载主配置类&#xff08;run方法第一个参数、该参数要用SpringBootAppli…

腾讯云Cloud Studio:基于Claude快速完成Excel工资自动核算

目录 1 什么是Cloud Studio&#xff1f;2 注册与代码管理2.1 账号注册2.2 Git关联 3 实战&#xff1a;Excel工资自动核算3.1 创建项目与配置3.2 “念咒师”Claude GPT3.3 代码编写与运行 1 什么是Cloud Studio&#xff1f; Cloud Studio是腾讯云为开发者提供的一个基于浏览器的…

Redis数据库 | 事务、持久化

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; Redis事务操作 Redis事务是一组命令的集合&#xff0c;这些命令会作为一个整体被执行&#xff0c;要么全部执行成功&#xff0c;要么全部执行失败&#xff1b;Redis事…

牛客网Verilog刷题——VL43

牛客网Verilog刷题——VL43 题目题目解析答案 题目 如图所示为两种状态机中的一种&#xff0c;请根据状态转移图写出代码&#xff0c;状态转移线上的0/0等表示的意思是过程中data/flag的值。 要求&#xff1a; 1、 必须使用对应类型的状态机 2、 使用三段式描述方法&#xf…

SAP MTO 2案例教程PP物料需求计划前台操作

目录 本章介绍 2 显示销售订单BOM 3 库存需求清单 5 单个销售订单运行MRP计划 6 集中运行MRP 9 再显示库存需求清单 11 集中转换采购申请 13 单个销售订单创建生产订单 15 集中转换生产订单 17 批量显示生产订单 19 本章小结 20 本章介绍 本章内容包括&#xff0c;单个销售订单…

【计算复杂性理论】证明复杂性(八):命题鸽巢原理(Propositional Pigeonhole Principle)的指数级归结下界

往期文章&#xff1a; 【计算复杂性理论】证明复杂性&#xff08;Proof Complexity&#xff09;&#xff08;一&#xff09;&#xff1a;简介 【计算复杂性理论】证明复杂性&#xff08;二&#xff09;&#xff1a;归结&#xff08;Resolution&#xff09;与扩展归结&#xff…