ASPEED AST2050: Difference between revisions
No edit summary |
No edit summary |
||
| Line 9: | Line 9: | ||
* [https://15h.org/images/1/18/AST2050_Data_Sheet.pdf AST2050 Datasheet] | * [https://15h.org/images/1/18/AST2050_Data_Sheet.pdf AST2050 Datasheet] | ||
* [https://15h.org/images/6/64/Infineon-s25fl128p-128-mbit-3.0-v-flash-memory-datasheet-en.pdf S25FL128P Datasheet] | * [https://15h.org/images/6/64/Infineon-s25fl128p-128-mbit-3.0-v-flash-memory-datasheet-en.pdf S25FL128P Datasheet] | ||
== OpenBMC == | |||
=== Compiling from source === | |||
Compilation has been tested on Debian 9. | |||
'''Debian 9 Dependencies''' | |||
<nowiki> | |||
apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib autotools-dev build-essential chrpath socat libsdl1.2-dev xterm | |||
</nowiki> | |||
Create the missing /etc/perl/find.pl file<ref>https://blog.kempj.co.uk/2015/09/missing-find-pl-compiling-oe/</ref> | |||
<nowiki> | |||
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; | |||
</nowiki> | |||
'''Configuring and Compiling''' | |||
<nowiki> | |||
### 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 | |||
</nowiki> | |||
=== Access your BMC === | |||
Scan your network for a new device listening on port 22, then login with ssh | |||
<nowiki> | |||
nmap -p 22 10.0.0.1/24 | |||
ssh root@IPADDR | |||
</nowiki> | |||
You can set the ethernet MAC address to match the one printed on the BMC module. | |||
<nowiki> | |||
fw_setenv ethaddr 01:23:45:67:89:ab | |||
reboot | |||
</nowiki> | |||
You can access COM2 with screen: | |||
<nowiki> | |||
screen /dev/ttyS0 115200 | |||
</nowiki> | |||
You can use the asus_power.sh command to view/change power states. | |||
<nowiki> | |||
asus_power.sh status | |||
asus_power.sh on | |||
asus_power.sh reset | |||
asus_power.sh off | |||
</nowiki> | |||
Revision as of 06:04, 9 December 2025
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