Debian Desktop 系统使用

来自ARM Wiki
Sunxiaolin讨论 | 贡献2021年8月16日 (一) 16:30的版本
跳转至: 导航搜索

基础信息

  • 用户密码
user: linaro
passwd: linaro

使用示例

视频硬件编解码

  • 使用Qt的multimedia播放视频
$ sudo test_dec-qt.sh arm64

Screenshot from 2020-07-22 14-42-03.png

  • 使用gstreamer播放视频
$ sudo test_dec-gst.sh

Screenshot from 2020-07-22 14-45-33.png

  • 播放4K视频
$ gst-launch-1.0 playbin uri=file:///home/linaro/4k.mp4

Screenshot from 2020-07-22 14-51-55.png

  • 列出一些gstreamer命令
$ gst-launch-1.0 playbin uri=file:///usr/local/test.mp4
$ gst-launch-1.0 uridecodebin uri=file:///usr/local/test.mp4 ! xvimagesink
$ gst-launch-1.0 uridecodebin uri=file:///usr/local/test.mp4 ! rkximagesink
$ gst-launch-1.0 filesrc location=/usr/local/test.mp4 ! queue ! qtdemux  name=dmux dmux.video_0 ! queue ! h264parse ! mppvideodec ! rkximagesink dmux.audio_0 ! queue ! aacparse ! faad ! autoaudiosink
$ gst-inspect-1.0 rkximagesink
  # 查看插件信息
$ gst-discoverer-1.0 /usr/local/test.mp4
  # 查看视频信息
  • mpv播放器

系统自带mpv播放器,集成mpp支持硬解码

$ mpv /home/linaro/4k.mp4
  # 使用mpv播放器播放4k视频
$ mpv /dev/video0
  # 预览摄像头
$ mpv rtsp://admin:adm12345@10.168.1.227/cam/realmonitor?channel=1&subtype=0
  # 播放rtsp流


  • FFmpeg

FFmpeg支持硬件解码

$ ffmpeg -decoders | grep -i mpp
...
 V..... h264_rkmpp           h264 (rkmpp) (codec h264)
 V..... hevc_rkmpp           hevc (rkmpp) (codec hevc)
 V..... vp8_rkmpp            vp8 (rkmpp) (codec vp8)
 V..... vp9_rkmpp            vp9 (rkmpp) (codec vp9)
  # 查看ffmpeg支持的硬件解码器

OpenGL-ES

  • 执行测试脚本
$ sudo test_glmark2_normal.sh

Screenshot from 2020-07-22 09-07-38.png

Screenshot from 2020-07-22 09-12-58.png

WebGL

  • 打开chromium浏览器,在地址栏输入 chrome://gpu 查看硬件加速相关信息

Screenshot from 2020-07-22 10-31-26.png

Screenshot from 2020-07-22 10-50-29.png

OpenCL

  • 安装并运行clinfo,查看OpenCL相关信息
$ sudo apt-get install -f -y clinfo
$ clinfo
Number of platforms                               1
  Platform Name                                   ARM Platform
  Platform Vendor                                 ARM
  Platform Version                                OpenCL 1.2 v1.r14p0-01rel0-git(a79caef).8ddfd7584149d9238dced4e406610de7
  Platform Profile                                FULL_PROFILE
  Platform Extensions                             cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addy
  Platform Extensions function suffix             ARM

  Platform Name                                   ARM Platform
Number of devices                                 1
  Device Name                                     Mali-T860
  Device Vendor                                   ARM
  Device Vendor ID                                0x8602000
  Device Version                                  OpenCL 1.2 v1.r14p0-01rel0-git(a79caef).8ddfd7584149d9238dced4e406610de7
  Driver Version                                  1.2
  Device OpenCL C Version                         OpenCL C 1.2 v1.r14p0-01rel0-git(a79caef).8ddfd7584149d9238dced4e406610de7
  Device Type                                     GPU
  Device Profile                                  FULL_PROFILE
  Max compute units                               4
  Max clock frequency                             800MHz
  Device Partition                                (core)
    Max number of sub-devices                     0
    Supported partition types                     None
  Max work item dimensions                        3
  Max work item sizes                             256x256x256
  Max work group size                             256
...

网络设置

系统下有ifupdown和network-manager两套软件在管理网络,ifupdown的配置文件为/etc/network/interfaces,network-manager通过命令行nmcli来设置网络。network-manager功能更强大,对于/etc/network/interfaces中声明过的网络接口network-manager默认不再管理。系统默认没有对/etc/network/interfaces进行设置,从而network-manager接管了eth0,配置了DHCP。

  • 使用ifupdown设置网络

编辑/etc/network/interfaces,参考设置如下:

allow-hotplug eth0
iface eth0 inet static
    address 192.168.0.10
    gateway 192.168.0.1
    netmask 255.255.255.0
    broadcast 192.168.0.255
    dns-nameservers 1.2.4.8 114.114.114.114

重启系统生效。

  • 有桌面的系统可直接在桌面中设置,也可以使用network-manager的命令行工具nmcli在终端上操作。

桌面设置静态IP方法:

右击桌面右下角网络图标 --> 点击 Edit Connections
先将系统自动生成的连接删除 --> 选中连接 --> 点击 -
再手动添加新的连接 --> 点击 + --> 选中 Ethernet --> 点击 Create --> 选择 Ethernet 条目 --> Device: 手动填写 eth0 或下拉选中后修改为 eth0 (删除 mac 地址字段) --> 选择 IPv4 Settings --> Method: 选中 Manual --> 点击 Add --> 分别输入 192.168.1.157 24 192.168.1.1 --> 点击 Save

命令行设置常用命令:

$ nmcli connection show
  # 查看连接
$ nmcli device status
  # 查看网络接口状态
$ nmcli device show
  # 查看网络接口网络信息
$ nmcli general status
  # 查看总体状态
$ nmcli connection add con-name "my_connection" type ethernet ifname eth0
  # 添加连接
$ nmcli connection up my_connection
  # 使用连接
$ nmcli connection down my_connection
  # 不使用连接
$ nmcli connection delete my_connection
  # 删除连接
$ nmcli connection show id my_connection
  # 查看连接详细信息

设置静态IP命令参考如下:

$ nmcli connection add con-name my_static_ip ifname eth0 type ethernet ip4 192.168.0.10/24 gw4 192.168.0.1
  # 添加名为"my_static_ip"的静态IP连接
  # 生成配置文件/etc/NetworkManager/system-connections/my_static_ip
$ nmcli connection modify my_static_ip ipv4.dns "1.2.4.8 8.8.8.8"
  # 设置DNS
$ nmcli connection up my_static_ip
  # 使用连接
$ nmcli connection down my_static_ip
  # 不使用连接
$ nmcli connection delete my_static_ip
  # 删除连接

设置动态IP命令参考如下:

$ nmcli connection add con-name my_dynamic_ip ifname eth0 type ethernet
  # 添加名为"my_dynamic_ip"的动态IP连接
  # 生成配置文件/etc/NetworkManager/system-connections/my_dynamic_ip
$ nmcli connection up my_dynamic_ip
  # 使用连接
$ nmcli connection down my_dynamic_ip
  # 不使用连接
$ nmcli connection delete my_dynamic_ip
  # 删除连接

连接wifi命令参考如下:

$ nmcli device wifi list
  # 查看wifi列表
$ nmcli device wifi connect norco_2.4G password norco85258506
  # 连接wifi
  # 生成配置文件/etc/NetworkManager/system-connections/norco_2.4G
$ nmcli connection down norco_2.4G
  # 关闭连接
$ nmcli connection delete norco_2.4G
  # 删除连接
$ nmcli radio wifi off
  # 关闭wifi
$ nmcli radio wifi on
  # 打开wifi
$ nmcli con add con-name my_wifi type wifi ifname wlan0 ssid "norco_2.4G" -- wifi-sec.key-mgmt wpa-psk wifi-sec.psk "norco85258506" ipv4.method manual ipv4.address 192.168.0.10/24 ipv4.dns 1.2.4.8 ipv4.gateway 192.168.0.1
  # 连接wifi并设置静态IP

创建Wifi热点:

$ nmcli dev wifi hotspot ifname wlan0 ssid test password "12345678"
  # 创建名为"test"的wifi热点

导出主板上的根文件系统分区镜像rootfs.img

1. 将U盘的第一个分区格式化成ext4格式

2. 在U盘的第一个分区根目录下创建export_rootfs文件

3. 将U盘插到主板上,重新给主板上电

4. 等待rootfs.img自动导出,此时系统会进入recovery模式,不会进入正常系统界面。导出完成后,系统会自动重启进入正常系统界面

5. U盘中的rootfs.img即为根文件系统分区镜像

在Windows电脑主机上制作完整固件

1. 解包完整固件update.img

  • 将下载的烧录包解压到当前文件夹,进入tools目录,将烧录工具windows.zip解压到当前文件夹,进入windows\RKDevTool\rockdev目录,双击执行nc-unpack.bat解包脚本,等待解包完成后各分区镜像保存在Output\Image目录中

Screenshot from 2023-02-01 13-45-54.png

2. 替换根文件系统分区镜像rootfs.img

  • 将导出的根文件系统分区镜像rootfs.img拷贝替换到Output\Image目录中

Screenshot from 2023-02-01 13-50-33.png

3. 打包完整固件update.img

  • 双击执行nc-pack.bat打包脚本,等待打包完成后完整固件update.img保存在Output目录中

Screenshot from 2023-02-01 13-56-02.png

在Windows电脑主机上烧录固件

安装驱动

将下载的烧录包解压到当前文件夹,进入tools目录,将烧录工具windows.zip解压到当前文件夹,进入windows目录,将驱动DriverAssitant_v*.zip解压到当前文件夹,进入DriverAssitant_v*目录,双击DriverInstall.exe安装驱动。 Screenshot from 2023-02-13 15-09-00.png

运行烧录工具

进入tools\windows\RKDevTool\RKDevTool_Release目录,双击RKDevTool.exe运行烧录工具。

连接烧录线

将主板和Windows电脑通过一根USB烧录线进行连接。

让主板进入烧录模式

在主板系统终端下执行命令:

reboot loader

主板会被烧录工具识别成一个LOADER设备或MASKROM设备。
Screenshot from 2023-02-13 16-37-25.png

烧录完整固件update.img

点击“升级固件” --> 点击“固件”并选中完整固件update.img --> 点击“升级”
Screenshot from 2023-02-13 16-46-50.png
烧录完成后,设备自动重启进入正常工作模式。

单独烧录内核分区镜像boot.img

在设备处于LOADER模式下,可以单独烧录boot分区镜像或rootfs等其他分区镜像,点击“设备分区表”可以看到设备的分区信息。
Screenshot from 2023-02-13 17-11-25.png

只勾选boot一栏 --> 确认地址与设备分区地址一致 --> 选中boot.img所在路径 --> 点击“执行”
Screenshot from 2023-02-13 17-13-03.png

烧录完成后,设备会自动重启或需手动断电重启,进入正常工作模式。

在Linux下打包完整固件

unpack.sh用于将完整固件解包成各个分区镜像;打包工具脚本mkupdate.sh用于将各分区镜像打包成一个完整的固件。

  • 将烧录、解包、打包工具linux.tar.gz解压到当前目录
tar xvf linux.tar.gz
  • 解包update.img
cd linux/Linux_Pack_Firmware/rockdev
ln -sfr ../../../../update.img update.img
./unpack.sh

完成后输出文件output/保存在当前目录下。
Screenshot from 2020-12-31 11-27-13.png

  • 根据需要替换指定分区镜像,比如替换根文件系统分区镜像output/Image/rootfs.img
  • 进行必要的移动拷贝,使用初始固件的分区参数、各分区镜像、打包配置文件
mv output/parameter.txt output/Image/
mv output/MiniLoaderAll.bin output/Image/
mv output/package-file .
ln -sfr output/Image/ Image
  • 根据芯片平台执行对应的打包脚本,完成后完整固件update.img保存在当前目录
./rk3399-mkupdate.sh

Screenshot from 2020-12-31 11-48-11.png

在Linux下烧录固件

烧录工具upgrade_tool可用于升级固件。

  • 连接好USB烧录线连接后,在主板的系统终端下执行如下命令,让主板进入烧录模式
reboot loader
  • 将烧录、解包、打包工具linux.tar.gz解压到当前目录,并进行简单设置
tar xvf linux.tar.gz
cd linux/Linux_Upgrade_Tool/Linux_Upgrade_Tool && chmod a+x upgrade_tool && sudo cp upgrade_tool /usr/local/bin
mkdir ~/.config/upgrade_tool/
cp config.ini ~/.config/upgrade_tool/
  • 烧录完整固件及各分区镜像的命令
sudo upgrade_tool uf update.img
  # 烧录完整固件
sudo upgrade_tool di -p parameter.txt
  # 烧录分区参数
sudo upgrade_tool di -uboot uboot.img
  # 烧录uboot分区镜像
sudo upgrade_tool di -b boot.img
  # 烧录内核分区镜像
sudo upgrade_tool di -rootfs rootfs.img
  # 烧录根文件系统分区镜像rootfs.img
sudo upgrade_tool di -r recovery.img
  # 烧录recovery镜像
sudo upgrade_tool di -userdata userdata.img
  # 烧录userdata分区镜像