PC 配置与预装

Info.png 推荐设置:本地Linux PC

1 目的[edit]

本文介绍并描述了激活和运行STM32 MPU平台所需的硬件配置。

2 推荐的PC配置[edit]

PC要求取决于要使用的软件包

下表为根据目标软件包选择和配置主机PC环境提供了指导:

主机环境 入门包 开发者软件包 分发软件包
Windows(64位)
 使用Windows7和Windows10进行测试
 首选版本Windows 10
本地 虚拟机 虚拟机
Linux(64位)
 使用Ubuntu 18.04 和 16.04进行测试
本地 本地 + 其他软件包(参见Linux PC章节) 本地 + 其他软件包(参见Linux PC章节)


尽管对PC硬件配置没有绝对的最低要求,但意法半导体建议在使用开发者软件包分发软件包时满足或超过以下硬件配置要求。

下表与经过验证的最低配置对应:

硬件项目 经过验证的最低配置 意见/建议
CPU 酷睿i5-2540M @ 2.6GHz 
双核(4线程) 
3MB缓存
必须采用64位指令集
8核/线程或更高配置开发者软件包分发软件包更进一步的良好配置。
RAM 8GB 建议采用16GB或更大的内存,尤其是对于虚拟机设置、开发者软件包and分发软件包
硬盘驱动器 320GB 使用分发软件包分发软件包时,1TB可能为更好的配置。

3 Linux PC[edit]

采用Ubuntu 18.04Linux PC为建议设置。还应支持其他Ubuntu版本,请参阅Yocto手册[1]

Info.png 意法半导体解决方案已在运行Ubuntu 18.04 LTS(和Ubuntu 16.04 LTS)的Linux PC上进行过测试和验证。


3.1 检查Internet访问[edit]

  • 必须提供通过http和https协议进行的Internet访问。

至少对于开发者软件包分发软件包是必须的。

以下命令允许检查借助http/https协议的Internet访问:

PC $> wget -q www.google.com && echo "Internet access over HTTP/HTTPS is OK !" || echo "No internet access over HTTP/HTTPS ! You may need to set up a proxy."

如果返回“OK”消息,则说明网络配置正确。在这种情况下,请跳过该部分的其他选项,然后跳至下一个部分(安装其他软件包)。

任何其他情况均可能表明需要http/https协议代理。
为http/https协议设置代理的最佳解决方案为通过shell变量http_proxy和https_proxy:

PC $> export http_proxy=http://<MyProxyLogin>:<MyProxyPassword>@<MyProxyServerUrl>:<MyProxyPort>
PC $> export https_proxy=http://<MyProxyLogin>:<MyProxyPassword>@<MyProxyServerUrl>:<MyProxyPort>

因为您的密码可能包含“特殊字符”,所以您需要将密码转换为ASCII十六进制代码。通过这种方式,您可以使用以下命令将<MyProxyPassword>转换为十六进制代码:

PC $> echo -n " <MyProxyPassword>" | od -A n -t x1 -w128 | head -1 | tr " " "%"


使用以下命令再次检查Internet访问:

PC $> wget -q www.google.com && echo "Internet access over HTTP/HTTPS is OK !" || echo "No internet access over HTTP/HTTPS ! You may need to set up a proxy."


  • sudoInternet访问命令

对于分发包是必须的。


sudo命令在root用户环境中执行;默认情况下,未将Internet代理设置应用于root用户。
在创建通过sudo命令传递代理设置的别名后Root用户应能够浏览互联网:

PC $> alias sudo='sudo http_proxy=$http_proxy'

检查sudo命令是否成功(需要Internet访问):

PC $> sudo apt-get update


  • 通过git://、ssh://以及其他特定协议来访问互联网

对于分发包分发包是必须的。
除了http/https协议外(用于90%的Internet流量),可能需要一些其他协议,如git://或ssh://。

例如,在分发软件包的上下文中,某些“git fetch”命令可能需要“git://协议”。
为了通过代理来支持这些协议,最佳方法为直接在$HOME/.gitconfig文件(core.gitproxy)中设置代理,并使用诸如 cockscrew[2] 的工具将git://流量转换为http流量:

PC $> sudo apt-get update
PC $> sudo apt-get install corkscrew

PC $> git config --replace-all --global core.gitproxy "$HOME/bin/git-proxy.sh"
PC $> git config --add --global core.gitproxy "none for <MyPrivateNetworkDomain>" (optionnal and for example .st.com, localhost, ...)
PC $> echo 'exec corkscrew <MyProxyServerUrl> <MyProxyPort> $* $HOME/.git-proxy.auth' > $HOME/bin/git-proxy.sh
PC $> chmod 700 $HOME/bin/git-proxy.sh
PC $> echo '<MyProxyLogin>:<MyProxyPassword>' > $HOME/.git-proxy.auth
PC $> chmod 600 $HOME/.git-proxy.auth

以下是用于测试该代理设置的命令:

PC $> git ls-remote git://git.openembedded.org/openembedded-core > /dev/null && echo OK || echo KO

该命令应返回“OK”,否则代理设置错误。

3.2 安装额外的软件包[edit]

对于开发者软件包分发软件包是必须的。

为执行基础开发任务、基础交叉编译(通过开发者软件包)或如OpenEmbedded进行的更复杂的交叉编译(通过分发软件包),应安装一些额外的Ubuntu软件包:

PC $> sudo apt-get update
PC $> sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping
PC $> sudo apt-get install libsdl1.2-dev xterm
PC $> sudo apt-get install make xsltproc docbook-utils fop dblatex xmlto
PC $> sudo apt-get install python-git
  • 一些“开发者软件包”用例所需的软件包:
PC $> sudo apt-get install ncurses-dev libncurses5-dev libncursesw5-dev lib32ncurses5 libssl-dev linux-headers-generic u-boot-tools device-tree-compiler bison flex g++
  • 存储库软件包(用于下载“分发软件包”源代码):
PC $> sudo apt-get install repo
 For Ubuntu 16.04 you should use the legacy repo, procedure to install 这里
  • 一些有用的工具:
PC $> sudo apt-get install coreutils bsdmainutils sed curl bc lrzsz corkscrew cvs subversion mercurial nfs-common nfs-kernel-server libarchive-zip-perl dos2unix texi2html diffstat libxml2-utils

您也可以安装Java Runtime Engine,这对于STM32CubeMXSTM32CubeProgrammer是必须的。

PC $> sudo apt-get install default-jre

3.2.1 安装额外的Android软件包[edit]

Android logo.png 以下信息与Android™发行版有关
在下载和安装STM32MPU distribution for Android™之前,确保您的系统满足以下要求:
  • 64位Linux® 环境。
  • 至少150 GB的可用磁盘空间。如果执行多个构建,则需要更多空间。
  • 至少8 Gb的RAM/swap。如果您在虚拟机上运行Linux,则至少需要16 GB的RAM/交换空间。

有关更多详细信息,请参见AOSP网站的要求页面。


安装Android网站上列出的必需软件包后,使用以下命令安装构建Android环境所需的软件包(分发软件包):

sudo apt-get update
sudo apt-get install chrpath curl libxml2-utils gdisk pv python-pycryptopp python-crypto autotools-dev automake libusb-1.0-0-dev


为确保主机与设备之间的USB通信(通过ADB),请参见ADB §设备连接


要运行Android提供的测试(CTSVTS),请参见Android平台测试

在该阶段:您的环境已准备好用于Android构建、调试和测试。


3.3 其他配置[edit]

  • 每个mmc最多允许16个分区

默认情况下,在Linux系统上,mmc最多允许8个分区。所有程序包(入门包...)均需要10个以上的存储设备分区。为了将每个设备的分区数扩展到16,必须将以下选项添加到modprobe:

PC $> echo 'options mmc_block perdev_minors=16' > /tmp/mmc_block.conf
PC $> sudo mv /tmp/mmc_block.conf /etc/modprobe.d/mmc_block.conf
  • 检查区域设置

对于分发包是必须的。

区域设置用于某些应用程序/命令(包括分发软件包应用程序/命令)。
验证区域设置是否如下:

PC $> locale
LANG=en-US.UTF-8

如果locale命令返回与上面显示的配置不同的配置,则必须按以下方式重新配置:

PC $> sudo update-locale LANG=en_US.UTF-8
  • 将用户添加到基本组中

用户登录应属于基本Linux组,如diskttydialoutplugdev
使用groups命令来列出当前用户的组:

PC $> groups

如果需要,将用户添加到缺失的<组>

PC $> sudo adduser $USER <group>

然后,重新启动PC。

3.4 设置Git用户信息[edit]

对于开发者软件包分发软件包是必须的。
如果正在使用commit和/或push命令,则git[3]需要用户信息:


PC $> git config --global user.name "Your Name"
PC $> git config --global user.email "you@example.com"

4 Windows PC[edit]

入门包可在Windows上运行。
开发者软件包分发软件包需要Linux环境。

Warning.png 尽管根据报告,意法半导体解决方案在Linux虚拟机上运行时能够正常工作,但只根据Linux本地设置进行过验证...


有几种方法可在Windows主机PC上运行Linux系统,意法半导体建议使用虚拟机系统

  1. 装虚拟机,如VMWare[4]
  2. 设置与您的虚拟机兼容的64位Ubuntu映像

意法半导体还以实验方式在WSL2(Linux 2的Windows子系统)上运行了开发者软件包分发软件包,参见WSL2章节

4.1 虚拟机系统[edit]

4.1.1 虚拟机安装[edit]


意法半导体已选择VMWare作为Linux虚拟机解决方案。

VMWare是一家专门从事虚拟化解决方案的商业公司。支持在Windows PC上运行Linux虚拟机的可用解决方案包括:

  • 商用VMWare Workstation Player(付费解决方案)(在此处下载[5])
  • 家用VMWare Workstation Player(免费解决方案)(在此处下载[6])

请继续安装虚拟机。

在运行虚拟机之前,确保已在BIOS中激活虚拟化(对于任何零售PC,默认情况下应该已激活虚拟化)。



4.1.2 下载虚拟机的Ubuntu映像[edit]

"osboxes.org"[7]网站提供了与VMWare(*.vmdk)兼容的虚拟机映像。

已在Ubuntu 18.04(64位) 和Ubuntu 16.04(64位)上验证并测试安装程序。

[8]上下载可用的64位Ubuntu映像,并执行以下操作:

  1. 解压下载的文件
  2. 在VMware中,使用从osboxes.org下载的Ubuntu虚拟磁盘创建虚拟机。

建议至少将主机的一半专用于虚拟机:

- CPU: 2 cores at least,
- RAM: 6 Gbytes or more is a good choice (the more RAM allocated to Virtual Machine the better - the RAM allocated to Virtual Machine must be 2GB minimum),
- Network: NAT is good and an easy way to benefit form a network connection within the virtual machine.

从osboxes.org下载的虚拟磁盘的虚拟大小约为500GB。即使虚拟磁盘文件的实际大小在开始时较小,但在编译分发软件包或开发者软件包后,大小可能增加到500GB。

Info.png 对于VMware,您需要先创建默认虚拟机,然后添加以前下载的.vmdk文件。

请参见VMwarePlayer屏幕截图教程

4.1.3 启动Ubuntu映像[edit]

Warning.png 对于“AZERTY”键盘用户:

默认键盘配置为“QWERTY”。
要将键盘配置为“AZERTY”,请先打开一个会话(注意键盘布局为QWERTY)。
提示:默认用户“osboxes.org”的密码为“osboxes.org”。
提示:通过点击在QWERTY中配置的AZERTY键盘上的“:”,可输入“.”字符。
会话打开后,点击屏幕顶部/右侧的“En”图标,选择法语(“Fr”)键盘布局,并将其移动到列表中的第一个位置。
也可以选择完全删除“En”键盘。如果不存在“Fr”选项,则可以在“文本输入设置”菜单中添加该选项。

Ubuntu的默认登录名和密码的默认凭据均为“osboxes.org”。

Warning.png 调整屏幕分辨率:

虚拟机使用的(默认)分辨率为800x600(最小可用分辨率)。无法自动调整为显示器分辨率。为调整分辨率,请单击“设置”图标(屏幕顶部/右侧的“齿轮”),然后单击“系统设置...”。>“显示”并为显示器选择适当的分辨率(不要忘记单击“屏幕分辨率设置”窗口底部/左侧的“应用”按钮)。

为更好地使用VMware虚拟机,请安装“vmware-tools”,以便能够使用剪贴板在VMware和Windows之间拖放和复制/粘贴文件。以下文档提供了vmware-tools的分步安装过程:PreRequisite-Vmware-tools.pdf


虚拟机已启动并运行!

必须根据Linux PC章节中提供的建议来完成Ubuntu设置

Warning.png USB连接速度:

STM32CubeProgrammer需要通过USB连接来访问STLink(调试器和串行端口)。以下因素可能会严重影响虚拟机中运行的Linux与外部USB设备之间的USB连接的速度:

  • 虚拟机USB设置;
  • 主机PC中的USB控制器;
  • 连接到主机PC的USB设备;
  • USB主机和USB设备之间的任何USB集线器。

如果USB连接速度过低,我们建议:

  • 尝试不同的虚拟机USB配置;
  • 将USB设备直接连接到主机USB端口(无任何USB集线器);
  • 尝试将USB设备连接到主机的另一个USB端口(某些PC在不同的USB端口上具有不同的USB控制器)。

4.2 WSL2(实验性)[edit]

管意法半导体强烈建议使用Linux®环境,开发者软件包分发软件包仍可以在WSL2(Windows的Linux 2子系统)环境中工作。WSL是Windows 10®提供的功能。
意法半导体在WSL上未成功运行开发者软件包分发软件包,但在WSL2上成功运行。WSL2自18917版开始在Windows 10®上可用。


WSL 2是该架构的新版本,它使Windows的Linux子系统能够在Windows上运行ELF64 Linux二进制文件(更多详情请访问aka.ms/wsl2)。

  • WSL2 - 安装 :
  • WSL2 - 限制 :
    • 截止目前(09/2019),WSL2尚不支持USB设备、串口等硬件(更多详情)。
      这意味着,应通过本地Windows使用STM32CubeProgrammer
    • 无法通过Windows本地文件浏览器来浏览WSL2文件。
      要在WSL2和Windows之间共享文件,首选方法为使用WSL2的挂载点/mnt/c并进行复制。
  • WSL2 - 建议 :

4.3 参考[edit]