3. 鲁班猫系统特色功能¶
3.1. 鲁班猫系统简介¶
鲁班猫系统(LubanCat OS)是野火基于Debian ARM架构制作的Linux发行版, 该系统适配了野火的所有鲁班猫系列微电脑板卡,共同组成嵌入式平台, 为AI、工控、物联网、机器人以及编程教育等应用场景提供了便捷的示例和应用。
野火基于鲁班猫系统提供了大量的行业应用和教程,大大提升了嵌入式应用的部署体验。
3.2. 安装软件¶
LubanCat OS完全支持debian的apt与dpkg在线与离线安装软件。
1 2 3 4 5 6 7 8 | # 在线安装软件(需联网)
# 第一次使用需要更新软件列表
sudo apt update
# 安装软件
sudo apt install [要安装的软件包名]
# 离线安装软件
sudo dpkg -i [要安装的软件deb包文件名]
|
LubanCat OS继承了Debian ARM系统的便捷性,使用APT包管理工具即可直接安装Debian维护的软件, 如 GCC、Python、Opencv、Nginx以及Docker等,免去了传统嵌入式应用部署时自行编译源码的繁琐操作, 提高了稳定性。
具体的软件版本信息可在Debian官网查找到: https://www.debian.org/distrib/packages#search_packages
直接在板卡上安装编译工具链,还能免去交叉编译的麻烦。
3.3. U盘、虚拟串口及虚拟网卡¶
LubanCat OS提供了USB转U盘、虚拟串口以及虚拟网卡功能。
使用时通过USB线把PC与开发板的USB Device(OTG)接口连接起来, 板卡系统正常启动后,在PC的设备管理器可查看到如下设备:
图中依次为板卡适配到PC上的U盘、USB虚拟串口以及USB虚拟网络设备。
在EBFMP157 Pro板中,该接口在 《 EBFMP157_Pro硬件资源图_ 》 右下角的micro USB接口。
3.3.1. U盘功能¶
U盘功能,即板卡成为了U盘,并挂载了自己的/boot目录内容, 连接后在PC上会出现一个名为“BOOT”的U盘,PC可通过U盘的形式访问板卡中/boot目录的文件:
常见应用:
/boot目录里包含了uEnv.txt配置文件,可在PC上修改文件快速调整系统配置,具体见《uEnv.txt配置文件》
/boot目录包含了start.html文件(部分板卡可能没有),在PC上使用浏览器打开可以跳转到对应板卡的说明页面
在PC与板卡之间传输小文件
注意,LubanCat OS视不同设备给/boot目录分配了不同容量,但空间都不大, 只是作为一种途径连通PC与板卡,使用完毕后尽量保持该目录的整洁。
3.3.2. 虚拟串口¶
板卡虚拟出的串口在PC的COM号可通过设备管理器查看到,如图 查看设备管理器 中是COM3。
而该串口在板卡中的设备名为 /dev/ttyGS0
,它的使用方法与其它串口并无不同,参考串口的使用章节说明即可。
3.3.3. 虚拟网卡¶
若 查看设备管理器 中,虚拟网卡设备出现黄色感叹号,需要安装RNDIS驱动:
RNDIS驱动下载
虚拟网卡功能会把PC与板卡通过USB组建至一个局域网中,该局域网的网关为192.168.7.1,
板卡的IP则为 192.168.7.2
,有了该功能后,只要使用USB线连接板卡和PC,
就可以通过板卡的IP或主机名进行SSH访问。
若PC本身能连接互联网,只要在PC上设置网络桥接,那么板卡也能通过桥接网络访问互联网和PC所在的其它网络。
网络桥接的方式可参考右侧的文章:https://jingyan.baidu.com/article/c33e3f48db4af5ea15cbb53d.html
在板卡上可使用ifconfig命令查看USB网卡的具体信息:
1 2 3 4 5 6 7 8 9 10 11 12 | # 在板卡上执行以下命令,查看USB网卡信息
ifconfig
# 以下为输出信息中,USB网卡内容
usb0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.7.2 netmask 255.255.255.252 broadcast 192.168.7.3
inet6 fe80::1ca3:d1ff:fe73:cbad prefixlen 64 scopeid 0x20<link>
ether 1e:a3:d1:73:cb:ad txqueuelen 1000 (Ethernet)
RX packets 10710 bytes 2302240 (2.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 379 bytes 110673 (108.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
|
3.4. fire-config配置程序¶
LubanCat OS自带了fire-config程序,它为终端提供了一个易于操作的方式进行各种系统配置, 包括且不限于以下内容:
修改用户名
配置网络、WiFi
配置本地化
配置系统硬件总线
配置外部硬件设备
使能备份或量产烧录
配置默认启动服务
在板卡上使用sudo权限执行fire-config即可。
# 在开发板执行以下命令
# 注意:由于该工具会改变一系列不属于当前用户的文件,sudo是必须要加的。
sudo fire-config
# 以下为命令输出
Embedfire STM32MP157 Star LubanCat Robot S1 Board
┌─────┤ pi Embedfire stm32mp157 Software Configuration Tool (fire-config) ├────┐
│ │
│ 1 Change User Password Change password for the user pi │
│ 2 Network Configure network settings │
│ 3 Boot Configure options for start-up │
│ 4 Localisation Set up language and regional settings │
│ 5 Bus Configure connections of bus │
│ 6 Device Configure peripheral device │
│ 7 Advanced Configure advanced settings │
│ 8 Shell Config serial-tty and ssh │
│ 9 Help & Update Fire-config Help and Update │
│ │
│ │
│ │
│ │
│ <Select> <Finish> │
│ │
└──────────────────────────────────────────────────────────────────────────────┘
该工具使用键盘的“上下”箭头键来挑选菜单,“左右”或“Tab”用于切换按钮, 使用“Enter”进行确定,使用“ESC”退出。
设置后一定要选择“Finish”来保存确认,若强制退出可能导致配置不会生效,部分功能配置后可能会提示确认重启。
3.5. 开机自启程序¶
LubanCat OS与debian 10一样,采用systemd的方式控制系统服务与自启程序。
配套的带Qt APP的系统默认启动了一个名为bootlogo与actlogo服务,可通过systemctl命令查看:
1 2 3 4 5 6 7 8 9 10 11 12 13 | # 在开发板执行命令
systemctl status bootlogo
# 以下为命令输出
● bootlogo.service - Starts Psplash Boot logo
Loaded: loaded (/lib/systemd/system/bootlogo.service; enabled; vendor preset:
Active: failed (Result: exit-code) since Fri 2021-01-08 08:56:03 UTC; 4min 2s
Process: 209 ExecStart=/bin/sh /opt/scripts/boot/psplash.sh (code=exited, stat
Main PID: 209 (code=exited, status=254)
Jan 08 08:56:03 npi systemd[1]: Started Starts Psplash Boot logo.
Jan 08 08:56:03 npi systemd[1]: bootlogo.service: Main process exited, code=exit
Jan 08 08:56:03 npi systemd[1]: bootlogo.service: Failed with result 'exit-code'
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # 在开发板执行命令
systemctl status actlogo
# 以下为命令输出
systemctl status actlogo
● actlogo.service - Terminate Psplash Act Screen
Loaded: loaded (/lib/systemd/system/actlogo.service; enabled; vendor preset:
Active: failed (Result: exit-code) since Fri 2021-01-08 08:56:16 UTC; 9min ag
Process: 292 ExecStart=/bin/bash /opt/scripts/boot/psplash_quit.sh (code=exite
Main PID: 468 (code=exited, status=1/FAILURE)
Jan 08 08:56:14 npi sudo[428]: root : TTY=unknown ; PWD=/ ; USER=root ; COMM
Jan 08 08:56:15 npi sudo[428]: pam_unix(sudo:session): session opened for user r
Jan 08 08:56:15 npi sudo[428]: pam_unix(sudo:session): session closed for user r
|
可看到bootlogo服务调用了/opt/scripts/boot/psplash.sh脚本,开机启动时的进度条程序就是由它调用执行的。
而actlogo服务调用了/opt/scripts/boot/psplash_quit.sh脚本,野火的Qt app界面程序就是由它调用执行的。
通过修改这两个服务调用的脚本代码,可以控制系统默认启动您自己的应用程序。 当然,也可以创建自己专用的systemd服务启动。
若不希望开机启动运行这两个服务,执行如下命令即可:
1 2 3 4 | # 禁用bootlogo服务
systemctl disable bootlogo
# 禁用actlogo服务
systemctl disable actlogo
|
3.6. uEnv.txt配置文件¶
LubanCat OS在u-boot引导阶段,通过/boot/uEnv.txt文件和boot.scr文件配置额外参数, uEnv.txt可以编辑,用户可通过该文件指定内核等以及要加载的设备树插件,达到根据外接硬件调整加载驱动的目的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | # 使用的内核版本
uname_r=4.19.94-stm-r1
# 主设备树
dtb=stm32mp157a-basic.dtb
###U-Boot Overlays###
###Documentation: https://embed-linux-tutorial.readthedocs.io/zh_CN/latest/linux_driver/device_tree_rgb_led.html
###Master Enable
enable_uboot_overlays=1
#overlay_start
# 设备树插件,通过加载设备树插件设置系统是否加载某个硬件驱动
# 使用#号表示注释、不加载
dtoverlay=/usr/lib/linux-image-4.19.94-stm-r1/overlays/stm-fire-i2c1.dtbo
dtoverlay=/usr/lib/linux-image-4.19.94-stm-r1/overlays/stm-fire-i2c2.dtbo
#dtoverlay=/usr/lib/linux-image-4.19.94-stm-r1/overlays/stm-fire-485r1.dtbo
#dtoverlay=/usr/lib/linux-image-4.19.94-stm-r1/overlays/stm-fire-485r2.dtbo
dtoverlay=/usr/lib/linux-image-4.19.94-stm-r1/overlays/stm-fire-adc.dtbo
#dtoverlay=/usr/lib/linux-image-4.19.94-stm-r1/overlays/stm-fire-bluetooth.dtbo
#overlay_end
cmdline=coherent_pool=1M net.ifnames=0
# 以下配置仅当镜像在SD卡时生效,用于把sd卡的镜像烧录至NAND或eMMC,
# continued为持续烧录(主要用于量产多个板卡),once为只烧录一次
# 去掉#号注释并重启后生效
#flash_firmware=once
# specify kernel eth0 mac address
ethaddr=ae:46:1b:32:fa:d2
# specify storage_media
storage_media=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh
|
查看uEnv.txt文件的内容,它主要分为以下配置功能:
第2行:指定板卡使用的内核版本。
第5行:指定板卡使用的主设备树,其中sd卡也属于eMMC设备类型。 主设备树通常只配置了CPU、内存以及FLASH存储设备。
第10行:使能uboot的插件设备树功能,它是后面加载设备树插件的基础,不熟悉的话不要改动。
第15~21行:要加载的设备树插件,“dtoverlay=”后的为要加载的设备树插件名称,“#”号开头的行为注释,不会加载。 设备树插件与主设备树一起,共同组成了整个板卡加载的硬件驱动,这种插件的形式为系统定制提供了极大的灵活度。
第29行:默认是注释的,且仅当系统运行在sd卡时生效,打开配置后系统重启或上电时会执行烧录流程, 把sd卡的内容完整烧录至板载的eMMC存储设备,“flash_firmware=”后面的“once”表示把sd卡设置为只烧录一次。
fire-config配置程序 对默认硬件设备驱动的使能与关闭以及烧录功能,就是通过改动uEnv.txt文件实现的, 若熟悉uEnv.txt文件规则,直接修改该文件会更方便。
3.6.1. 通过uEnv.txt配置设备树插件¶
野火linux开发板可通过uEnv.txt配置设备树插件,使能或关闭板子上的某些功能。 以LED设备为例,默认情况下板子使能了led相关设备树插件,如下所示
dtoverlay=/usr/lib/linux-image-4.19.94-stm-r1/overlays/stm-fire-led.dtbo
若用户不想使用led相关的设备,可在前面添加‘#’以注释,重启开发板之后就找不到led相关设备了, 如下所示
#dtoverlay=/usr/lib/linux-image-4.19.94-stm-r1/overlays/stm-fire-led.dtbo
对其他设备的操作也是类似的。
3.6.2. 通过uEnv.txt配置环境参数:修改mac地址¶
uEnv.txt文件本质上是配置uboot的环境参数, 基本上所有在uboot中能够设置的参数也能够在uEnv.txt文件中配置。
下面以配置mac为例,通过 /boot/uEnv.txt 设置mac地址,如下所示
1 2 3 4 5 6 7 | #设置第1个网卡的mac地址
ethaddr=ce:9b:4e:14:94:c1
#设置第2个网卡的mac地址
eth1addr=ce:9b:4e:14:94:c2
#设置第3个网卡的mac地址
eth2addr=ce:9b:4e:14:94:c3
#以此类推....
|