2. 运行开发板与串口终端登录¶
本章主要讲解如何使用配套的开发板,让开发板的系统运行起来!
2.1. 开发板的启动方式¶
STM32MP1系列芯片支持多种启动方式,在我们配套的开发板上主要使用其中的NAND-FLASH、eMMC、SD卡及USB启动方式。 通过调整BOOT拨码开关可以设置不同的启动方式。
拨码BOOT开关的一侧会写着ON字样,把拨码调至ON一侧表示对应的选项为高电平1,调至另一侧为0, 不同启动方式配置见下表,也可以直接查看开发板上的丝印说明。
下表为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启动方式,只要上电就会自动运行。
以下为开发板的启动操作步骤:
- 根据自己开发板的版本和 BOOT拨码开关启动配置表 设置拨码开关(出厂配置通常是配套的,检查确认即可)。 
- 若使用HDMI显示屏,需要在开发板上电前要连接好显示屏。 
- 使用DC电源给开发板供电(Pro开发板使用DC 12V电源)。注意由于Pro开发板底板设备较多,功耗大, 只使用USB线给开发板供电是无法正常运行的! 
- 按下电源开关,给开发板上电。 
- 对于带屏幕的开发板,可以直接通过触摸屏控制开发板。 
- 开发板支持鼠标和键盘,有需要可以通过USB接口连接至开发板。 
- 对于不带屏幕的开发板,可以通过串口终端控制开发板。关于串口终端的使用请参考下一小节的内容。 
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 终端软件,它非常易用且功能强大,对中文支持也好。
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
