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连接的形式进行办公或者文件下载。

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

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JMeter性能测试:命令行执行

1. 环境准备 安装JMeter http://jmeter.apache.org/ 下载最新版本的JMeter 解压下载的压缩包 配置环境变量 为了更方便地从任何目录运行JMeter,将JMeter的bin目录添加到系统环境变量中。 2. 创建测试计划 在执行命令行测试之前,需要创建一个JMete…

宝塔部署纯Vue项目,无后端

1.打包项目 生成一个dist文件夹 2.创建云服务器根目录 3.创建站点 4.上传文件 5.访问

【quarkus系列】构建可执行文件native image

目录 序言为什么选择 Quarkus Native Image?性能优势便捷的云原生部署 搭建项目构建可执行文件方式一:配置GraalVM方式二:容器运行错误示例构建过程分析 创建docker镜像基于可执行文件命令式构建基于dockerfile构建方式一:构建mic…

M功能-open feign的使用-支付系统(四)

target:离开柬埔寨倒计时-219day 这张图片一直是我idea的背景图,分享出来啦… 前言 支付平台使用的是基于springcloud的微服务,服务之间的调用都是使用openfeign,而我们每个服务对外暴露的接口响应都会在外部封装一层code之类的信…

在Bash中解析命令行参数的两种样例脚本

文章目录 问题回答以空格分隔选项和参数以等号分隔选项和参数 参考 问题 假设,我有一个脚本,它会被这样一行调用: ./myscript -vfd ./foo/bar/someFile -o /fizz/someOtherFile或者这个: ./myscript -v -f -d -o /fizz/someOtherFile ./fo…

【NumPy】NumPy实战入门:索引与切片(sort、argsort、searchsorted)详解

🧑 博主简介:阿里巴巴嵌入式技术专家,深耕嵌入式人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍:分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向…

[NOIP 2014] 寻找道路

[NOIP 2014] 寻找道路 在有向图 G 中,每条边的长度均为 11,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件: 路径上的所有点的出边所指向的点都直接或间接与终点连通。在满足条件 11 的情…

全局查询筛选器适用场景 以及各场景示例

EF Core中的全局查询筛选器(Global Query Filters)是一种强大的功能,可以在实体框架的DbContext级别为特定的EntityType设置默认的过滤条件。这些筛选器自动应用于所有涉及到相关实体的LINQ查询中,无论是直接查询还是通过Include或…

统计计算四|蒙特卡罗方法(Monte Carlo Method)

系列文章目录 统计计算一|非线性方程的求解 统计计算二|EM算法(Expectation-Maximization Algorithm,期望最大化算法) 统计计算三|Cases for EM 文章目录 系列文章目录一、基本概念(一)估算 π \pi π(二&…

【设计模式】JAVA Design Patterns——Commander(指挥官模式)

🔍目的 用于处理执行分布式事务时可能遇到的所有问题。 🔍解释 处理分布式事务很棘手,但如果我们不仔细处理,可能会带来不想要的后果。假设我们有一个电子商务网站,它有一个支付微服务和一个运输微服务。如果当前运输…

学习图形推理

学习图形推理 1.位置规律1.1平移1.2翻转、旋转2.样式规律2.1加减异同2.2黑白运算3.属性规律3.1对称性3.2曲直性3.3开闭性4.数量规律4.1面4.2线数量4.3笔画数4.4点数量4.5素数量5.空间重构5.1相对面5.2相邻面-公共边5.3相邻面-公共点5.4相邻面-画边法题型 一组图:从左往右找规律…

编程-辅助工具-Git下载

文章目录 1、前言2、Git官网地址3、迅雷下载 1、前言 采用Git能下载github上的代码,其下载是采用官网下载的,但是下载速度比较慢,网上也推荐了镜像的方式,但是有些链接失效了,突然有一天想起用迅雷是不是合适&#xf…

DDR基本原理

1. 简介 DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory,双数据率同步动态随机存储器)通常被我们称为DDR,其中的“同步”是指内存工作需要同步时钟,内部命令的发送与数据传输都以它为基准。DDR…

【社会信用体系1003】 企业违规新解:社会信用环境改善的实证分析!

今天给大家分享的是来自于国内顶级期刊金融研究2023年发表论文——《社会信用环境改善降低了企业违规吗?——来自“中国社会信用体系建设”的证据》所用到的重要数据集,该文章从企业层面探讨了社会信用系统建设对企业违规行为的影响,更精准地…

牛客NC164 最长上升子序列(二)【困难 贪心+二分 Java/Go/PHP/C++】

题目 题目链接: https://www.nowcoder.com/practice/4af96fa010c44638a7e112abf65f7237 思路 贪心二分 所谓贪心,就是往死里贪,所以对于最大上升子序列,结尾元素越小,越有利于后面接上其他的数,也就可能变…

使用 Elasticsearch 作为 Azure OpenAI On Your Data 的向量数据库

作者:来自 Elastic Paul Oremland 背景介绍 最近,微软通过 Azure OpenAI 服务 "On Your Data" 将 Elasticsearch 直接集成到 Azure 中。"On Your Data" 使组织能够利用强大的 AI 模型(如 GPT-4 和 RAG 模型)…

想知道期权的交易方式有哪些吗?新手必看!

今天期权懂带你了解想知道期权的交易方式有哪些吗?新手必看!期权指投资者在支付了一定的权利金之后,将拥有未来某个时间协定价格买入或者卖出的权利。 期权的交易策略方式有哪些? 买入看涨期权: 使用场景&#xff1a…

C# WPF入门学习主线篇(四)—— Button的常用属性

本期来详细介绍一下WPF中Button组件的属性都有哪些 一、准备阶段 首先,打开我们之前创建好的工程。 这是我们之前几期一起做过的工程,现在重新创建一个button,来熟悉一下他的属性。 选中创建的button,点击属性栏 二、接下来介绍…

layui扩展件(xm-select)实现下拉框

layui扩展件&#xff08;xm-select&#xff09;实现下拉框 扩展组件 xm-select 效果图 html代码 <div class"layui-inline"><label class"layui-form-label">职位</label><div class"layui-input-inline" style"wid…

小皮面板中访问不了本地的sqli网站---解决方法

今天想在sqli-labs中做题&#xff0c;却发现自己访问不了网站 1、具体的错误原因如下 2、查了一下&#xff0c;可能是因为自己访问的域名不对 3、修改了域名为&#xff1a;http://sqli-labs:81/Less-2/便可以访问了 4、然后接下来我有遇到一个错误&#xff0c;这个问题是php版…