2. 运行开发板与串口终端登录

本章主要讲解如何使用配套的开发板,让开发板的系统运行起来!

2.1. 开发板的启动方式

STM32MP1系列芯片支持多种启动方式,在我们配套的开发板上主要使用其中的NAND-FLASH、eMMC、SD卡及USB启动方式。 通过调整BOOT拨码开关可以设置不同的启动方式。

拨码BOOT开关的一侧会写着ON字样,把拨码调至ON一侧表示对应的选项为高电平1,调至另一侧为0, 不同启动方式配置见下表,也可以直接查看开发板上的丝印说明。

下表为BOOT拨码开关配置的启动方式:

BOOT拨码开关启动配置表

编号

名称

NAND

eMMC

SD

USB

1

BOOT1

1

0

1

0

2

BOOT2

1

1

0

1

3

BOOT3

0

0

1

1

其中的USB启动模式主要用来配合ST官方的STM32CubeProgrammer工具烧录镜像。

2.2. 启动步骤

开发板出厂时默认都烧录了Debian Linux系统,确认根据存储器类型设置了正确的boot启动方式,只要上电就会自动运行。

以下为开发板的启动操作步骤:

  1. 根据自己开发板的版本和 BOOT拨码开关启动配置表 设置拨码开关(出厂配置通常是配套的,检查确认即可)。

  2. 若使用HDMI显示屏,需要在开发板上电前要连接好显示屏。

  3. 使用DC电源给开发板供电(Pro开发板使用DC 12V电源)。注意由于Pro开发板底板设备较多,功耗大, 只使用USB线给开发板供电是无法正常运行的!

  4. 按下电源开关,给开发板上电。

  5. 对于带屏幕的开发板,可以直接通过触摸屏控制开发板。

  6. 开发板支持鼠标和键盘,有需要可以通过USB接口连接至开发板。

  7. 对于不带屏幕的开发板,可以通过串口终端控制开发板。关于串口终端的使用请参考下一小节的内容。

2.3. 默认用户名、密码、主机名和IP

开发板出厂的Linux系统默认支持使用串口终端以及SSH终端进行控制, 也就是说可以使用串口通讯以及网络通讯的形式,在PC上使用命令行控制开发板。

2.3.1. 默认用户名和密码

串口终端与SSH终端都使用以下相同的用户名和密码:

普通用户(带sudo权限):

1
2
账户: debian
密码: temppwd

ROOT用户:

1
2
账户: root
密码: root

若要修改用户名,可以使用 usermod 命令,修改密码可以使用 passwd 命令。

2.3.2. 默认主机名和IP

使用SSH终端登录时,可以通过主机名和IP连接板子:

1
2
主机名: npi
IP不固定,默认由路由动态分配,可先通过串口终端连接,使用 ifconfig 命令查看具体IP。

若要修改主机名,修改 /etc/hostname 文件中的内容即可。

2.4. 串口终端登录

2.4.1. 默认串口终端参数与驱动

开发板串口终端使用的默认串口通讯参数为: 115200-N-8-1

提示

使用USB转串口时,都需要先安装对应的驱动。 配套的 USB转TTL串口线 都使用CH340驱动,驱动下载链接:http://www.wch.cn/products/CH340.html

2.4.2. 串口终端软件推荐

在Windows下有很多种终端工具,例如MobaXterm、secureCRT、xShell、Putty等, 此处我们推荐使用 MobaXterm 终端软件,它非常易用且功能强大,对中文支持也好。

下载地址: https://mobaxterm.mobatek.net/download.html

2.5. 板子上电自动登录

想要使板子上电时自动登录,只需要修改 /lib/systemd/system/serial-getty@.service 文件即可, 以上电自动登录debian用户为例,打开 /lib/systemd/system/serial-getty@.service 文件 找到以 ExecStart 开头的一行,如下所示

1
ExecStart=-/sbin/agetty -o '-p -- \\u' --keep-baud 115200,38400,9600 %I $TERM

将其修改为

1
ExecStart=-/sbin/agetty  --autologin debian --keep-baud 115200,38400,9600 --noclear %I vt220

若想要以root用户自动登录,只需要将以上的debian替换为root即可。

2.6. 使用systemd-network设置静态ip

Systemd已成为了大多数发行版的标准配置, 使用了Systemd,就不需要再用init了。 Systemd 取代了initd,成为系统的第一个进程(PID 等于 1),其他进程都是它的子进程。 这里简单介绍如何使用systemd-network来设置静态ip

2.6.1. 步骤一

在板子上执行以下两条命令

1
2
3
 mv /etc/network/interfaces /etc/network/interfaces.save

 systemctl enable systemd-networkd
  • 第一条指令将之前/etc/network/interfaces文件重命名为interfaces.save

  • 第二条指令使能systemd-networkd服务

2.6.2. 步骤二

在/etc/systemd/network目录下增加需要配置的网卡配置信息文件,文件以.network后缀作为结尾。 如新建一个配置网卡eth1文件 eth1.network,文件内容如下:

1
2
3
4
5
6
7
[Match]
Name=eth1

[Network]
Address=192.168.1.20/24
Gateway=192.168.1.1
DNS=192.168.1.1

关于systemd-network更多资料可参考以下链接: https://wiki.archlinux.org/index.php/Systemd-networkd