ASPEED AST2050
The AST2050 chipset is an Integrated Remote Management Processor introduced by ASPEED Technology Inc. It is a high performance and highly integrated SOC device designed to support various management functions required for server platforms which require baseboard management, virtual storage functions, and/or KVM-over-IP functions.
Open source support for the AST2050's VGA output (text-mode only) was implemented in coreboot by Raptor Engineering[1]. Full VGA output support requires ASPEED's closed source VGABIOS to be included in the coreboot rom. A rudimentary port of OpenBMC was also developed by Raptor Engineering[2].
Official Documentation
OpenBMC
Compiling from source
Compilation has been tested on Debian 9.
Debian 9 Dependencies
apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib autotools-dev build-essential chrpath socat libsdl1.2-dev xterm
Create the missing /etc/perl/find.pl file[3]
warn "Legacy library @{[(caller(0))[6]]} will be removed from the Perl core distribution in the next major release. Please install it from the CPAN distribution Perl4::CoreLibs. It is being used at @{[(caller)[1]]}, line @{[(caller)[2]]}.\n";
# This library is deprecated and unmaintained. It is included for
# compatibility with Perl 4 scripts which may use it, but it will be
# removed in a future version of Perl. Please use the File::Find module
# instead.
# Usage:
# require "find.pl";
#
# &find('/foo','/bar');
#
# sub wanted { ... }
# where wanted does whatever you want. $dir contains the
# current directory name, and $_ the current filename within
# that directory. $name contains "$dir/$_". You are cd'ed
# to $dir when the function is called. The function may
# set $prune to prune the tree.
#
# For example,
#
# find / -name .nfs\* -mtime +7 -exec rm -f {} \; -o -fstype nfs -prune
#
# corresponds to this
#
# sub wanted {
# /^\.nfs.*$/ &&
# (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) &&
# int(-M _) > 7 &&
# unlink($_)
# ||
# ($nlink || (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_))) &&
# $dev < 0 &&
# ($prune = 1);
# }
#
# Set the variable $dont_use_nlink if you're using AFS, since AFS cheats.
use File::Find ();
*name = *File::Find::name;
*prune = *File::Find::prune;
*dir = *File::Find::dir;
*topdir = *File::Find::topdir;
*topdev = *File::Find::topdev;
*topino = *File::Find::topino;
*topmode = *File::Find::topmode;
*topnlink = *File::Find::topnlink;
sub find {
&File::Find::find(\&wanted, @_);
}
1;
Configuring and Compiling
### Fetch Sources git clone -b fido https://git.15h.org/mrothfuss/ast2050-yocto-poky.git ast2050-yocto-poky cd ast2050-yocto-poky git clone -b fido https://git.15h.org/mrothfuss/ast2050-yocto-openembedded.git meta-openembedded git clone https://git.15h.org/mrothfuss/ast2050-yocto-openbmc.git meta-openbmc ### Setup Build export TEMPLATECONF=meta-openbmc/meta-raptor/meta-asus/conf source oe-init-build-env cp -Rp ../local-aspeed.conf conf/local.conf touch conf/sanity.conf ### Set root password # The default root password for SSH is 0penBmc. # Generate a new encrypted password string: printf "%q\n" $(openssl passwd -1) # Edit the config file (EXTRA_USERS_PARAMS), replace the password hash with the one you generated. vim conf/local.conf ### Build. Your ROM will be at tmp/deploy/images/asus/flash-asus-DATETIME bitbake asus-image
Access your BMC
Scan your network for a new device listening on port 22, then login with ssh
nmap -p 22 10.0.0.1/24 ssh root@IPADDR
You can set the ethernet MAC address to match the one printed on the BMC module.
fw_setenv ethaddr 01:23:45:67:89:ab reboot
You can access COM2 with screen:
screen /dev/ttyS0 115200
You can use the asus_power.sh command to view/change power states.
asus_power.sh status asus_power.sh on asus_power.sh reset asus_power.sh off