OrangePi Kunpeng Pro 开箱测评之一步到喂

前情提要:大家好,我是Samle。有幸接到 CSDN 发来的测评邀请,下面针对 OrangePi Kunpeng Pro 开发板进行一些实践操作,让大家能更好的上手这块板子。


以下内容来自 官方说明

  • OrangePi Kunpeng Pro采用4核64位处理器+AI处理器,集成图形处理器,支持8TOPS AI算力,拥有8GB/16GB LPDDR4X,可以外接32GB/64GB/128GB/256GB eMMC模块,支持双4K高清输出。

  • OrangePi Kunpeng Pro引用了相当丰富的接口,包括两个HDMI输出、GPIO接口、Type-C电源接口、支持SATA/NVMe SSD 2280的M.2插槽、TF插槽、千兆网口、两个USB3.0、一个USB Type-C 3.0、一个Micro USB(串口打印调试功能)、两个MIPI摄像头、一个MIPI屏等,预留电池接口等。

  • OrangePi Kunpeng Pro支持openEuler操作系统,满足大多数AI算法原型验证、推理应用开发的需求,同时可以为各种应用场景提供更高效的算力,如云计算、大数据、分布式存储、高性能计算等。



接下来我将从外观、环境搭建、相关服务部署等多个方面进行介绍,下面就让我们进入正题:

一、开箱

1.1 外观展示

382d6a527877497f8bc3ef4cfb6fe9ad.jpg bbb418e83f9b43e9be6ff1f8c24a121e.jpg
8b2678ec5c184a3594d7d8015fdc4078.jpg b2e055849422423aa48d5f894a7a0a6e.jpg

整个板子尺寸107x68mm,重量82g,不考虑散热模块厚度的话,比一般手机略小。相关硬件接口如下所示:

6a3b7b09c1be4289ae21ef831937155b.png

1.2 性能/接口参数

官方参数

项目参数
CPU4核64位处理器+ AI处理器
GPU集成图形处理器
AI算力8TOPS算力
内存LPDDR4X:8GB/16GB(可选),速率:3200Mbps
存储• SPI FLASH:32MB
• SATA/NVME SSD(M.2接口2280)
• eMMC插槽:32GB/64GB/128GB/256GB(可选),eMMC5.1 HS400
• TF插槽
Wi-Fi+蓝牙Wi-Fi 5双频2.4G和5G
BT4.2/BLE
以太网收发器10/100/1000Mbps以太网
显示• 2xHDMI2.0 Type-A TX 4K@60FPS
• 1x2 lane MIPI DSI via FPC connector
摄像头2x2-lane MIPI CSI camera interface,兼容树莓派摄像头
USB• USB 3.0 HOST x2
• USB Type-C 3.0 HOST x1
• Micro USB x1 串口打印功能
音频3.5mm耳机孔音频输入/输出
按键1x关机键、1xRESET键、2x启动方式拨动键、1x烧录按键
40PIN40PIN 功能扩展接口,支持以下接口类型:GPIO、UART、I2C、SPI、 I2S、PWM
风扇风扇接口x1
预留接口2PIN电池接口
电源Type-C PD 20V IN ,标准65W
支持的操作系统openEuler

1.3 上电开机

拿到板子第一步,当然是开机啦,那对于这个光秃秃的开发板,我们来看下要怎样正常开机。

1.3.1 拨码开关

开发板支持从 TF 卡、eMMC 和 SSD(支持 NVMe SSD 和 SATA SSD)启动。具体想从哪个设备启动是由开发板背面的两个拨码(BOOT1 和 BOOT2)开关来控制的。

4520b2efd168491b811131833f1d43d0.png
拨码开关

BOOT1 和 BOOT2 两个拨码开关都支持左右两种设置状态,所以总共有 4种设置状态,开发板目前只使用了其中的三种。不同的设置状态对应的启动设备如下表所示:

拨码开关 BOOT1拨码开关 BOOT2对应的启动设备
未使用
SATA SSD 和 NVMe SSD
eMMC
TF 卡
1.3.2 HDMI接口

一开始当然还是借助显示屏进行装机比较方便,开发板有两个 HDMI 接口(目前只有 HDMI0 支持显示 Linux 系统的桌面,HDMI1 显示 Linux 系统桌面的功能还需等软件更新),如果想显示 Linux 系统的桌面,可以将开发板的 HDMI0 接口连接到 HDMI 显示器。

31e7001c5029424fb56659f03b05ae3b.png
HDMI0接口位置

1.3.3 电源接口

有两个TypeC接口,右侧那个是电源接口,开发板上电开机后,需要等待一段时间,HDMI 显示器才会显示 Linux 系统的登录界面。关机键无开机功能,上电等待自动开机。

6af82e82bca64776a338a160b9869371.png
TypeC电源接口


bb716ed4193946c6a37942d44b347661.jpg
真实接线效果

上电后等待几秒钟,即可正常开机,默认初始账号 openEuler 密码 openEuler。默认 rootopenEuler 用户的密码都为 openEuler

72200753d58a4f4f8a270d9488142291.jpg 40b9fe7ad6e94051a1cc0a7318703330.jpg

二、使用说明

正常开机和接入显示设备后,我们就可以开始着手下一步的使用。

2.1 SSH连接

为了方便我们远程连接终端(不至于一直接着显示屏,毕竟众所周知,显示屏最贵的是占地面积)。
开发板默认开放SSH连接,需要先知道板子在内网的IP地址。

2.1.1 查看IP地址

网线连接模式下,(HDMI显示)桌面右上角点击可查看主菜单。点击有线展开有线设置。

0d37ca32b2ff450fa6d0a914a8a376be.jpg 6a4376b4abd84051af7f71dd31f23f43.jpg

网络有线设置的最右侧设置按钮,点击可查看IP地址。

fc9691989e864f1c9a4f6516729f95cc.jpg 3c535bd94f294f7d8e00bbd8cbb14556.jpg

2.1.2 使用SSH连接

这样我们就可以不用外接显示设备,使用任意SSH工具即可连接:账号 root 密码 openEuler

0256054415d5406ca64e830ed4a7fbb7.png 89400f97552b44328207f296f389c566.png

2.1.3 设置静态IP地址

默认分配的IP地址可能经常变动,不利于固定的使用SSH进行连接,这里需要设置静态 IP 地址。

8bdf9162d60342ec992b338d28743d71.jpg
设置静态IP,使用WIFI连接也需要进行相类似的操作进行配置即可。

d 如果使用WIFI,记得将有线网络关闭,并关闭自动连接,避免设置了相同的静态IP造成冲突导致无网络。

使用设置的IP进行连接,可以看到,IP地址已经修改成功。

549c3f99c576434b95ad63530ff43e2c.png
重新连接

2.1.4 修改Root账户密码

使用账号 root 密码 openEuler在SSH登陆,输入以下指令重设密码即可。

passwd root

2.2 安装Docker

Docker容器部署服务对于拓展功能来说还是相当方便的,所以接下来我们安装一下Docker

# 更新软件包索引
sudo yum makecache
# 安装Docker
sudo yum install docker -y
# 启动Docker服务
sudo systemctl start docker
# 设置Docker开机自启
sudo systemctl enable docker
# 验证Docker安装成功
sudo docker -v
# 下载docker-compose
curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 修改二进制文件的执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装是否成功
docker-compose --version

2.3 内网穿透 + SSH连接

2.3.1 内网穿透

参考 NPS内网穿透保姆级教程NPS内网穿透搭建(使用docker实现) 将SSH穿透到外网,以便于应对任意连接的WIFI

比如预先设置好连接手机热点,即可畅享在任何场合携带一个算力服务器

# 拉取镜像
docker pull ffdfgdfg/npc
# 创建挂载目录
mkdir -p /mnt/sdc/nps/conf
# 在NPS服务端创建客户端并展开可以查看到`客户端命令`,将命令中的server和key用来启动容器
docker run --restart=always -d --name=npc --net=host -v /mnt/sdc/nps/conf:/conf ffdfgdfg/npc -server=server-host:server-port -vkey=server-key -type=tcp
bdfcbdc47834484097c98b7ac3bdcbed.png
创建穿透隧道
2.3.2 SSH链接

即可使用外网的IP和端口进行SSH链接

4e8606b15b7e4f298c512d4b2ff6eac6.png
使用腾讯云OrcaTerm远程连接

通过右侧监控可以看到,这块OrangePi Kunpeng Pro开发板拥有4核8G的性能配置。

2.3.3 部署SSH连接工具

为了方便我们在任意有网设备上进行SSH连接,可以部署一个SSH连接工具sshwifty

# 拉取镜像
docker pull niruix/sshwifty:latest
# 创建挂载目录
mkdir -p /opt/sshwifty
# 生成秘钥 一路回车即可
openssl req -newkey rsa:4096 -nodes -keyout /opt/sshwifty/domain.key -x509 -days 90 -out /opt/sshwifty/domain.crt
# 启动容器
docker run --restart=always -d --name=sshwifty -p 5680:8182 -v /opt/sshwifty:/certs --env SSHWIFTY_DOCKER_TLSCERT="$(cat /opt/sshwifty/domain.crt)" --env SSHWIFTY_DOCKER_TLSCERTKEY="$(cat /opt/sshwifty/domain.key)" niruix/sshwifty:latest

再开穿透把5680开放到外部网络,方便使用(验证公网IP可访问,一样需要加https)

3a0c908602f64311bf9a3ad9214f8ae9.png 3fbedf8a188b489c9254c475f627ab62.png

2.4 远程桌面

远程桌面的连接形式由两种:使用Windows系统带有的远程连接进行链接,或者使用VNC,需要先使用显示器操作开放一下远程。

默认密码为openEuler

使用VNC需要先开放对应权限

f7829e51c5e84d07b97bf659e60e9aa3.png 65d9af01d72c4d4cab473532194d74f3.png

以上开放权限后,仍需在后续开启对应服务

2.4.1 XRDP + Windows远程连接

i 【异常】使用root账号登陆远程桌面会闪退

参考链接

# 引入下载源
wget https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
rpm -ivh epel-release-latest-8.noarch.rpm --nodeps
# 安装不上的时候试着删除yum remove epel-release后重新执行上面的下载安装
# 安装远程连接软件 xrdp
yum -y install xrdp
# sed -i 's/port=3389/port=3390/g' /etc/xrdp/xrdp.ini
sed -i 's/max_bpp=32/max_bpp=24/g' /etc/xrdp/xrdp.ini
touch .xsession
echo xfce4-session > /root/.xsession
chmod +x /root/.xsession
systemctl restart xrdp && systemctl enable xrdp
# 删除前面引入的下载源配置文件
rm -rf /etc/yum.repos.d/epel*
9ca4ddbd36974021b760dafc75590361.png 27846bc7402e4f3aa934cffbf9610818.png
2.4.2 VNC
# 这两行指令好像没用上
yum install python3-pip
pip3 install websockify
# 启动VNC服务器(如果在前面  2.4 远程桌面 没有设置VNC,这一步可能要设置密码,默认应该是openEuler)
vncserver
# 终止多余的会话
vncserver -kill :2
# 查看VNC占用端口(59开头的)
netstat -tulpn | grep ":59"
>>> tcp        0      0 0.0.0.0:5901            0.0.0.0:*               LISTEN      19675/Xvnc
>>> tcp6       0      0 :::5901                 :::*                    LISTEN      19675/Xvnc
# 这个方法不行
# 将VNC服务器的端口映射到一个HTTP端口(例如:6080)
# websockify 5681 localhost:5901
# 通过HTTP协议直接连接VNC服务器
# http://OpenEulerIP:5681/vnc.html

参考 Web方式交付VNC 安装 novnc 将VNC服务发布到WEB端

yum install git npm
git clone https://github.com/novnc/noVNC.git
cd ./noVNC/utils/
# 要将生成的self.pem文件放到noVNC/utils底下 一路回车
openssl req -new -x509 -days 365 -nodes -out self.pem -keyout self.pem
# 切回主菜单
cd
# 切到项目地址
cd ./noVNC
# 安装依赖
npm install
# 切回主菜单
cd
# 测试启动项目,设置为localhost:5681的话只能通过穿透访问
./noVNC/utils/novnc_proxy --vnc localhost:5901 --listen 0.0.0.0:5681
# 通过HTTP协议直接连接VNC服务器
# http://OpenEulerIP:5681/vnc.html
30060318ce96485ab924f741bb4ac721.png
通过HTTP协议直接连接VNC服务器
2.4.2.1 NoVnc设置开机自启动
  1. 创建文件夹存放日志

    mkdir -p /opt/vnc
    
  2. 设置环境变量

    vim ~/.bashrc
    

    写入

    export HOME=/root
    

    执行生效

    source ~/.bashrc
    
  3. 创建rc-local.service文件
    如果存在的话可以不用创建

    sudo vim /etc/systemd/system/rc-local.service
    

    写入

    [Unit]
    Description=/etc/rc.local Compatibility
    ConditionPathExists=/etc/rc.local
    [Service]
    Type=forking
    ExecStart=/etc/rc.local start
    TimeoutSec=0
    StandardOutput=tty
    RemainAfterExit=yes
    SysVStartPriority=99
    [Install]
    WantedBy=multi-user.target
    
  4. 写入rc.local文件

    vi /etc/rc.local
    # vi /etc/rc.d/rc.local
    

    加入启动指令

    # 环境变量不生效报:vncserver: The HOME environment variable is not set.
    # 直接在指令前指定环境变量
    export HOME=/root
    # 不在这里启动vncserver 否则会连接异常
    # nohup sudo /usr/bin/vncserver > /opt/vnc/vncserver.log 2>&1 &
    nohup sudo /root/noVNC/utils/novnc_proxy --vnc localhost:5901 --listen 0.0.0.0:5681 > /opt/vnc/novnc.log 2>&1 &
    

    保存后授权文件

    chmod +x /etc/rc.local
    chmod +x /etc/rc.d/rc.local # 授权
    
  5. 启用服务

    sudo systemctl enable rc-local
    
  6. 启动服务并检查状态

    sudo systemctl start rc-local.service
    sudo systemctl status rc-local.service
    
  7. 重启测试

    reboot
    
  8. 或者脚本启动
    构造脚本

    vi start_vnc.sh
    

    写入

    #!/bin/bash
    # nohup sudo vncserver > /opt/vnc/vncserver.log 2>&1 &
    nohup sudo /root/noVNC/utils/novnc_proxy --vnc localhost:5901 --listen 0.0.0.0:5681 > /opt/vnc/novnc.log 2>&1 &
    

    设置

    vi /etc/rc.local
    

    加入启动指令

    export HOME=/root
    /root/start_vnc.sh
    
2.4.2.2 vncserver开机自启

w 注意:如果不使用以下方法设置,而使用rc.local开机启动vncserver,可能会导致连接异常

1913680fc40e46d2b558d5e575a7a76a.png
连接异常
  1. 添加映射用户
    编辑文件/etc/tigervnc/vncserver.users
    例如设置用户root来启动VNC显示,则添加一行 :1=root

    vi /etc/tigervnc/vncserver.users
    

    d 此处添加的用户必须是已经存在的系统用户,否则会报错提示用户不存

    726e49ac3fa24fce9eb84bc081d99c57.png

  2. 拷贝示例服务文件
    根据步骤1,将示例文件命名为对应编号的配置文件。

    cp /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
    
  3. 重新加载 systemd 配置

    systemctl daemon-reload
    
  4. 启动服务

    # 设置开机自启
    systemctl enable vncserver@:1.service
    # 启动服务
    systemctl start vncserver@:1.service
    # 验证服务
    systemctl status vncserver@:1.service
    # 检查服务版本
    vncserver -version
    
  5. 重启测试

    reboot
    
    b3f49410ff9948e5bea97e040cf2881f.png
    最终效果

三、用途探索

b77bbfa20303456a9ae6b08aabd539f2.png

可以看到,OrangePi Kunpeng Pro开发板预装了openEuler 22.03 (LTS-SP3)系统 以及GNOME 3.38.6可视化图形界面。实际可用内存7.4G,不具备独立显卡,使用llvmpipe (LLVM 12.0.1, 128 bits)进行图形渲染。

下面可以来看下,拥有这样一块便于携带、性能相对富裕的开发板,能够来做些什么呢:

3.1 私人网盘

# 拉取 NextCloud 镜像
sudo docker pull nextcloud
# 创建挂载目录
mkdir -p /opt/nextcloud
# 启动容器并映射到5682端口
sudo docker run -d --restart=always --name nextcloud -p 5682:80 -v /opt/nextcloud:/data nextcloud
0b0926f37f8c45f5b33fd56bd16ff761.png 15e3751d674d401382b7c071ba92e941.png

修改IP绑定

docker exec -it nextcloud bash
apt-get update
apt-get install vim
vim config/config.php

修改 trusted_domains,添加我们需要访问的域名或IP,IP 需要填写端口,域名直接写二级域名

'trusted_domains' => 
array (
  0 => '192.168.11.22:8111',
  1 => 'omv.local',
),
7243947602fb48e2b1273fc3b7c713ca.png

重启容器

docker restart nextcloud

3.2 自建集成服务

写一个简单的页面用来管理我们部署的服务,方便快速使用。

afbc7de4a30f419688e96a0a40f226e6.png 125b2c2f378e4104843a65dbce29ad37.png


四、扩容

  • 移动硬盘格式化为FAT32/exFAT

  • 插入移动硬盘后运行命令

    sudo fdisk -l
    

    根据大小找到系统盘和移动硬盘,然后执行下面的命令,把SD卡里的系统复制到硬盘中

    sudo dd bs=4M if=/dev/mmcblk1 of=/dev/sda
    

    拷贝需要一定的时间,请耐心等待

    1dc06bf2f66d4d458c28e7526e1fb66a.png

  • 需要注意几个问题:

    • bs=4M,M必须大写,否则会报错(dd invalid number 4m)
    • if=/dev/mmcblk1 是系统分区
    • of=/dev/sda 后面是内存卡的路径
  • 断电拔卡
    关机断电后,拔出SD卡替换原有的系统TF卡,然后再上电开机。

  • 磁盘分区
    可以看到存储空间并未完全使用,通过拷贝仅使用了原来的空间大小。

    23e8e5024ea4449c95ff639e2713c80c.png

    还需要输入以下指令帮助我们调整分区

    # 把/dev/mmcblk1下的第一个分区扩充到100%(应该这个是失效的,可以考虑跳过使用下面的指令)
    sudo parted /dev/mmcblk1 resizepart 1 100%
    >>> 信息: 你可能需要 /etc/fstab。
    
    # 再尝试使用(应该是这个指令生效了)
    parted -l
    # 出现如下信息
    >>> 型号:SD SD128 (sd/mmc)
    >>> 磁盘 /dev/mmcblk1:128GB
    >>> 扇区大小 (逻辑/物理):512B/512B
    >>> 分区表:gpt
    >>> 磁盘标志:
    >>> 编号  起始点  结束点  大小   文件系统  名称  标志
    >>>  1    839MB   128GB   127GB  ext4
    
    # 这个时候使用
    sudo fdisk -l
    # 或者使用均
    lsblk
    # 均可以看到已经拓展到118G,但是实际根目录还是32G
    # 磁盘空间存在异常,还需要调整(参考下面处理异常)
    >>> /dev/mmcblk1p1 1638400 249670622 248032223 118.3G Linux 文件系统
    
  • 处理异常
    换回原先的TF卡,将新卡当做U盘插入,调整修复磁盘空间

    e2fsck -f /dev/sda1
    sudo resize2fs /dev/sda1
    
    4db7cba601ef4f31a00528cbd6eec1f0.png a9e292602f314f79bc7fea508ed114ac.png

五、总结

当你做完以上步骤,恭喜你,你已经使用OrangePi Kunpeng Pro开发板,成功自己搭建了一个Linux服务器。

  • 你可以在任意地方,远程连接上放在家里的这块板子,通过VNC连接的形式进行办公或者文件下载。

  • 如果你厌倦了各大网盘的网速或者私密性,这块板子就是你的私人网盘。

  • 如果你配了自己的手机热点,你还可以随身携带这块板子,在任意地方开启服务。

  • 如果你懂一点点代码,想拥有更多服务可以自由自在的定制化开发。

今天的装机教程就到这里,谢谢大家观看。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/651656.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux-RTC】

Linux-RTC ■ rtc_device 结构体■ RTC 时间查看与设置■ 1、时间 RTC 查看■ 2、设置 RTC 时间 ■ rtc_device 结构体 Linux 内核将 RTC 设备抽象为 rtc_device 结构体 rtc_device 结构体,此结构体定义在 include/linux/rtc.h 文件中 ■ RTC 时间查看与设置 ■ 1…

SpringBoot 结合 WebSocket 实现聊天功能

目录 一、WebSocket 介绍 二、源码 2.1 pom.xml 2.2 WebSocket配置类,用于配置WebSocket的相关设置 2.3 自定义WebSocket处理器类,用于处理WebSocket的生命周期事件 2.4 自定义WebSocket握手拦截器,用于增强WebSocket的握手过程 2.5 Ses…

衍生品赛道的 UniSwap:SynFutures 或将成为行业领军者

经过一个周期的发展,DeFi 已经成为基于区块链构建的最成功的去中心化应用,并彻底改变了加密市场的格局。加密货币交易开始逐步从链下转移到链上,并从最初简单的 Swap 到涵盖借贷、Staking、衍生品交易等广泛的生态系统。 在 DeFi 领域&#x…

stream-并行流

定义 常规的流都是串行的流并行流就是并发的处理数据&#xff0c;一般要求被处理的数据互相不影响优点&#xff1a;数据多的时候速度更快&#xff0c;缺点&#xff1a;浪费系统资源&#xff0c;数据少的时候开启线程更耗费时间 模版 Stream<Integer> stream1 Stream.of…

《Ai企业知识库》-模型实践-rasa开源学习框架-搭建简易机器人-环境准备(针对windows)-02

rasa框架 Conversational AI Platform | Superior Customer Experiences Start Here 阿丹: 其实现在可以使用的ai的开发框架有很多很多&#xff0c;就需要根据各个模型的能力边界等来讨论和设计。 rasa整体流程以及每一步的作用 NLU(自然语言理解): 自然语言理解&#xff…

[docker] docker 安全知识 - 镜像,port registry

[docker] docker 安全知识 - 镜像&#xff0c;port & registry 这是第一篇&#xff0c;安全部分还有一篇笔记就记完了 说实话&#xff0c;看完了要学的这些东西&#xff0c;感觉大多数安全问题都可以通过验证登录的合法性去解决 镜像 镜像的问题还是比较多的&#xff0…

【学习记录】服务器转发使用tensorboard

场景 代码在服务器上运行&#xff0c;想使用tensorboard查看训练的过程。 但是服务器上不能直接访问地址&#xff0c;所以要转发端口到本地&#xff0c;从而在本地网页中能够打开tensorboard。 参考&#xff1a;https://zhuanlan.zhihu.com/p/680596384 这时我们需要建立本地…

LVGL圆弧、线条、图片、色环、按钮矩阵、文本区域、键盘部件

目录 LVGL圆弧部件 LVGL线条部件 LVGL图片部件 LVGL色环部件 LVGL按钮矩阵部件 LVGL文本区域部件 LVGL键盘部件 LVGL圆弧部件 圆弧部件以弧形滑动的形式来调节、显示某个参数的值。 圆弧部件组成部分&#xff1a; 背景弧&#xff08;LV_PART_MAIN&#xff09; 前景弧&am…

实现 Vue 标签页切换效果的组件开发

在本次开发中&#xff0c;我们将实现一个 Vue 组件&#xff0c;用于展示和切换标签页。 背景有移动动画效果 该组件将具有以下功能&#xff1a; 标签页左右滚动点击标签页切换内容关闭指定标签页支持多种标签页风格 以下是实现该组件的具体步骤&#xff1a; 创建 Vue 组件…

APM2.8下载固件的方法(两种办法详解)

1.把APM飞控用安卓手机的USB线插入电脑。 选择COM口&#xff0c;不要选择auto&#xff0c;如果你没有COM口说明你驱动安装有问题。 波特率115200。点击相应的图标就可以下载固件到飞控板。 请注意&#xff1a;烧录APM必须选择INSTALL FIRMWARE LEAGACY,第一个是用于刷pixhawk的…

数据泄露防护:企业如何通过软件限制U盘使用

在数字化办公时代&#xff0c;数据安全已成为企业运营中的一个关键议题。U盘作为一种便携式的数据存储和传输工具&#xff0c;其使用在企业内部非常普遍。然而&#xff0c;U盘的不当使用也可能导致严重的数据泄露问题。本文将探讨企业如何通过软件解决方案&#xff0c;有效限制…

2024 年科技裁员综合清单

推荐阅读&#xff1a; 独立国家的共同财富 美国千禧一代的收入低于父辈 创造大量就业机会却毁掉了财富 这四件事是创造国家财富的关键 全球财富报告证实联盟自始至终无能 美国人已陷入无休止债务循环中&#xff0c;这正在耗尽他们的财务生命 2024 年&#xff0c;科技行业…

告别低效率||智能BI财务分析软件

在当今信息爆炸的时代&#xff0c;财务数据作为企业运营的核心&#xff0c;其处理和分析的效率直接关系到企业的决策速度和市场竞争力。奥威BI软件凭借其卓越的性能和智能化的分析功能&#xff0c;为企业提供了一套高效、准确的财务分析解决方案。 奥威BI软件在财务分析中的优…

行为设计模式之职责链模式

文章目录 概述原理代码实现小结 概述 职责链模式(chain of responsibility pattern) 定义: 避免将一个请求的发送者与接收者耦合在一起,让多个对象都有机会处理请求.将接收请求的对象连接成一条链,并且沿着这条链传递请求,直到有一个对象能够处理它为止. 在职责链模式中&…

【Mybatis】映射文件获取新增记录的id

我们在讲JDBC的时候讲过在插入新数据值的时候需要获得到自动生成的那个主键id的值 ①获取PreparedStatement的对象的时候 PreparedStatement st conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS ); ②在执行SQL语句后 st.executeUpdate();ResultSet rs st.ge…

Springboot项目——博客平台

前言&#xff1a;为巩固之前学习的知识&#xff0c;同时锻炼自己的代码能力&#xff0c;项目经验&#xff0c;熟悉前后端交互方式等&#xff0c;特此完成一个博客平台系统。&#xff08;总之&#xff0c;为了学习&#xff0c;为了进步&#xff09; 博客平台&#xff1a;本项目…

QQ名片满级会员装x助手HTML源码

源码介绍 QQ名片满级会员展示生成HTML源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;双击html文件可以本地运行效果&#xff0c;也可以上传到服务器里面&#xff0c;保存素材去选择QQ个性名片-选择大图模板-把图上传照片墙即可 源码效果 源码下载 蓝奏云&#xff1a;http…

如何远程访问Redis?

远程访问Redis是一种常见的需求&#xff0c;特别是在分布式系统或跨地域网络中。通过远程访问&#xff0c;我们可以轻松地对远程的Redis数据库进行操作和管理。 天联保障数据安全 对于远程访问Redis的安全性问题&#xff0c;我们可以借助天联来保障数据的安全。天联是一种基于…

mybatisplus填充公共字段MetaObjectHandler后不生效解决方式

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import org.apache.ibatis.reflection.MetaObject; import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component;import java.util.Date;/*** 拦截处理公共字…

开发一个comfyui的自定义节点

文章目录 目标功能开发环境comfyui自定义节点的实现原理仓库地址完整代码目标功能 开发一个comfyui的自定义节点,该节点的功能是:可以对comfyui工作流中最终输出的图像添加一些自定义文案,且可以指定文案在图像上的位置、文案的字体样式、字体大小、字体颜色等。最终效果如…