20240819解决飞凌的OK3588-C的核心板的适配以太网卡RTL8211F-CG在百兆模式下通过交换机上外网

news2024/11/15 13:25:43

20240819解决飞凌的OK3588-C的核心板的适配以太网卡RTL8211F-CG在百兆模式下通过交换机上外网
2024/8/19 18:00


缘由:由于自制的飞凌的OK3588-C的核心板的底板对空间要求高/敏感,并且对网速要求不高,百兆即可满足要求。
也就直接使用千兆网卡芯片RTL8211F-CG的百兆模式了,4线,节省一半的面积!
当然,你也可呢过会说,直接使用百兆网卡芯片不就得了?
你是对的,由于网卡芯片MAC/PHY的严重降价,你已经找不到纯粹的百兆网卡芯片了,直接上千兆,降级到百兆使用。

现象:飞凌的OK3588-C的核心板通过底板的RTL8211F-CG和电脑直连,可以让USB转千兆网卡协商成为百兆模式!
链接速度(接受/传输 ):100/100 (Mbps)

root@ok3588:/#
root@ok3588:/# ethtool eth0
Settings for eth0:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Full
                                100baseT/Full
                                1000baseT/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Full
                                100baseT/Full
                                1000baseT/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                             100baseT/Half 100baseT/Full
        Link partner advertised pause frame use: No
        Link partner advertised auto-negotiation: Yes
        Link partner advertised FEC modes: Not reported
        Speed: 100Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 2
        Transceiver: external
        Auto-negotiation: on
        MDI-X: Unknown
        Supports Wake-on: ug
        Wake-on: d
        Current message level: 0x0000003f (63)
                               drv probe link timer ifdown ifup
        Link detected: yes
root@ok3588:/#

电脑和飞凌的OK3588-C的核心板可以互PING。
核心板:192.168.0.232
电脑:192.168.0.88


root@ok3588:/# 
root@ok3588:/# ifconfig
eth0      Link encap:Ethernet  HWaddr F6:2F:1C:58:C5:DA  
          inet addr:192.168.0.232  Bcast:0.0.0.0  Mask:255.255.255.0

          inet6 addr: fe80::f42f:1cff:fe58:c5da/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3346 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3081 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:287967 (281.2 KiB)  TX bytes:261406 (255.2 KiB)
          Interrupt:79 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:131 errors:0 dropped:0 overruns:0 frame:0
          TX packets:131 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:338490 (330.5 KiB)  TX bytes:338490 (330.5 KiB)

root@ok3588:/# ping 192.168.0.88 
PING 192.168.0.88 (192.168.0.88) 56(84) bytes of data.
64 bytes from 192.168.0.88: icmp_seq=1 ttl=128 time=2.92 ms
64 bytes from 192.168.0.88: icmp_seq=2 ttl=128 time=1.64 ms

64 bytes from 192.168.0.88: icmp_seq=3 ttl=128 time=1.42 ms
64 bytes from 192.168.0.88: icmp_seq=4 ttl=128 time=1.44 ms
64 bytes from 192.168.0.88: icmp_seq=5 ttl=128 time=1.50 ms


Microsoft Windows [版本 10.0.22621.3296]
(c) Microsoft Corporation。保留所有权利。

C:\Users\QQ>adb shell
root@ok3588:/# ping 192.168.0.88
PING 192.168.0.88 (192.168.0.88) 56(84) bytes of data.
64 bytes from 192.168.0.88: icmp_seq=1 ttl=128 time=1.42 ms
64 bytes from 192.168.0.88: icmp_seq=2 ttl=128 time=1.45 ms

64 bytes from 192.168.0.88: icmp_seq=3 ttl=128 time=1.54 ms
64 bytes from 192.168.0.88: icmp_seq=4 ttl=128 time=1.44 ms
64 bytes from 192.168.0.88: icmp_seq=5 ttl=128 time=1.66 ms
^C
--- 192.168.0.88 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 1.422/1.501/1.656/0.087 ms
root@ok3588:/# exit
logout


飞凌的OK3588-C的核心板通过底板的RTL8211F-CG经交换机中转,确认协商异常:(还是千兆模式)
root@ok3588:/# 
root@ok3588:/# ethtool eth0
Settings for eth0:
    Supported ports: [ TP MII ]
    Supported link modes:   10baseT/Full 
                            100baseT/Full 
                            1000baseT/Full 
    Supported pause frame use: Symmetric Receive-only
    Supports auto-negotiation: Yes
    Supported FEC modes: Not reported
    Advertised link modes:  10baseT/Full 
                            100baseT/Full 
                            1000baseT/Full 
    Advertised pause frame use: Symmetric Receive-only
    Advertised auto-negotiation: Yes
    Advertised FEC modes: Not reported
    Link partner advertised link modes:  10baseT/Half 10baseT/Full 
                                         100baseT/Half 100baseT/Full 
                                         1000baseT/Full 
    Link partner advertised pause frame use: Symmetric Receive-only
    Link partner advertised auto-negotiation: Yes
    Link partner advertised FEC modes: Not reported
    Speed: 1000Mb/s
    Duplex: Full
    Port: Twisted Pair
    PHYAD: 2
    Transceiver: external
    Auto-negotiation: on
    MDI-X: Unknown
    Supports Wake-on: ug
    Wake-on: d
    Current message level: 0x0000003f (63)
                   drv probe link timer ifdown ifup
    Link detected: yes
root@ok3588:/# 
root@ok3588:/# 
root@ok3588:/# 


时间长了就会变成:
root@ok3588:/# 
root@ok3588:/# 
root@ok3588:/# ethtool eth0
Settings for eth0:
    Supported ports: [ TP MII ]
    Supported link modes:   10baseT/Full 
                            100baseT/Full 
                            1000baseT/Full 
    Supported pause frame use: Symmetric Receive-only
    Supports auto-negotiation: Yes
    Supported FEC modes: Not reported
    Advertised link modes:  10baseT/Full 
                            100baseT/Full 
                            1000baseT/Full 
    Advertised pause frame use: Symmetric Receive-only
    Advertised auto-negotiation: Yes
    Advertised FEC modes: Not reported
    Speed: Unknown!
    Duplex: Unknown! (255)
    Port: Twisted Pair
    PHYAD: 2
    Transceiver: external
    Auto-negotiation: on
    MDI-X: Unknown
    Supports Wake-on: ug
    Wake-on: d
    Current message level: 0x0000003f (63)
                   drv probe link timer ifdown ifup
    Link detected: no

root@ok3588:/# 


电话飞凌,得知有人这样干过,出过同样的问题。
解决方法:锁死RTL8211F-CG的最高速度为百兆,这样它就不会再千兆出错了!

Z:\OK3588_Linux_fs\kernel\drivers\net\ethernet\stmicro\stmmac\stmmac_main.c
static void stmmac_validate(struct phylink_config *config,
                unsigned long *supported,
                struct phylink_link_state *state)
{
    struct stmmac_priv *priv = netdev_priv(to_net_dev(config->dev));
    __ETHTOOL_DECLARE_LINK_MODE_MASK(mac_supported) = { 0, };
    __ETHTOOL_DECLARE_LINK_MODE_MASK(mask) = { 0, };
    int tx_cnt = priv->plat->tx_queues_to_use;
    int max_speed = priv->plat->max_speed;

    phylink_set(mac_supported, 10baseT_Half);
    phylink_set(mac_supported, 10baseT_Full);
    phylink_set(mac_supported, 100baseT_Half);
    phylink_set(mac_supported, 100baseT_Full);
    phylink_set(mac_supported, 1000baseT_Half);
    phylink_set(mac_supported, 1000baseT_Full);
    phylink_set(mac_supported, 1000baseKX_Full);

    phylink_set(mac_supported, Autoneg);
    phylink_set(mac_supported, Pause);
    phylink_set(mac_supported, Asym_Pause);
    phylink_set_port_modes(mac_supported);

修改为:
static void stmmac_validate(struct phylink_config *config,
                unsigned long *supported,
                struct phylink_link_state *state)
{
    struct stmmac_priv *priv = netdev_priv(to_net_dev(config->dev));
    __ETHTOOL_DECLARE_LINK_MODE_MASK(mac_supported) = { 0, };
    __ETHTOOL_DECLARE_LINK_MODE_MASK(mask) = { 0, };
    int tx_cnt = priv->plat->tx_queues_to_use;
    int max_speed = priv->plat->max_speed;

    phylink_set(mac_supported, 10baseT_Half);
    phylink_set(mac_supported, 10baseT_Full);
    phylink_set(mac_supported, 100baseT_Half);
    phylink_set(mac_supported, 100baseT_Full);
    //phylink_set(mac_supported, 1000baseT_Half);
    //phylink_set(mac_supported, 1000baseT_Full);
    //phylink_set(mac_supported, 1000baseKX_Full);

    phylink_set(mac_supported, Autoneg);
    phylink_set(mac_supported, Pause);
    phylink_set(mac_supported, Asym_Pause);
    phylink_set_port_modes(mac_supported);


接交换机 初看 是改过来了。
我 搜索的时候 找到很多1000的地方。确认只需要关闭 这三行?

之前可以,先试下呢


确认可以PING百度了!
(一)静态IP模式:
root@ok3588:/# 
root@ok3588:/# cd /etc/network/
root@ok3588:/etc/network# ls -l
total 24
drwxr-xr-x 2 root root 4096 Mar  9  2023 if-down.d
drwxr-xr-x 2 root root 4096 Mar  9  2023 if-post-down.d
drwxr-xr-x 2 root root 4096 Mar  9  2023 if-pre-up.d
drwxr-xr-x 2 root root 4096 Mar  9  2023 if-up.d
-rw-r--r-- 1 root root  130 Mar  9  2023 interfaces
-rwxr-xr-x 1 root root  846 Mar  9  2023 nfs_check
root@ok3588:/etc/network# 
root@ok3588:/etc/network# cat interfaces 
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.0.232
netmask 255.255.255.0
gateway 192.168.0.1

root@ok3588:/etc/network# 
root@ok3588:/etc/network# cp interfaces interfaces.bak1
root@ok3588:/etc/network# 
root@ok3588:/etc/network# vi interfaces
root@ok3588:/etc/network# 
root@ok3588:/etc/network# cat interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.3.232
netmask 255.255.255.0
gateway 192.168.3.1

root@ok3588:/etc/network# 
root@ok3588:/etc/network# diff interfaces interfaces.bak1 
--- interfaces
+++ interfaces.bak1
@@ -3,7 +3,7 @@
 
 auto eth0
 iface eth0 inet static
-address 192.168.3.232
+address 192.168.0.232
 netmask 255.255.255.0
-gateway 192.168.3.1
+gateway 192.168.0.1
 
root@ok3588:/etc/network# 


内网/局域网测试:
root@ok3588:/# 
root@ok3588:/# ping 192.168.3.85
PING 192.168.3.85 (192.168.3.85) 56(84) bytes of data.
64 bytes from 192.168.3.85: icmp_seq=1 ttl=64 time=0.404 ms
64 bytes from 192.168.3.85: icmp_seq=2 ttl=64 time=0.439 ms

64 bytes from 192.168.3.85: icmp_seq=3 ttl=64 time=0.490 ms
64 bytes from 192.168.3.85: icmp_seq=4 ttl=64 time=0.426 ms
64 bytes from 192.168.3.85: icmp_seq=5 ttl=64 time=0.378 ms
64 bytes from 192.168.3.85: icmp_seq=6 ttl=64 time=0.381 ms
64 bytes from 192.168.3.85: icmp_seq=7 ttl=64 time=0.361 ms
64 bytes from 192.168.3.85: icmp_seq=8 ttl=64 time=0.326 ms
64 bytes from 192.168.3.85: icmp_seq=9 ttl=64 time=0.499 ms
64 bytes from 192.168.3.85: icmp_seq=10 ttl=64 time=0.309 ms
64 bytes from 192.168.3.85: icmp_seq=11 ttl=64 time=0.315 ms
64 bytes from 192.168.3.85: icmp_seq=12 ttl=64 time=0.398 ms


viewpro@viewpro-ThinkBook-16-G5-IRH:~$
viewpro@viewpro-ThinkBook-16-G5-IRH:~$ ping 192.168.3.232
PING 192.168.3.232 (192.168.3.232) 56(84) bytes of data.
64 bytes from 192.168.3.232: icmp_seq=1 ttl=64 time=0.489 ms
64 bytes from 192.168.3.232: icmp_seq=2 ttl=64 time=0.305 ms

64 bytes from 192.168.3.232: icmp_seq=3 ttl=64 time=0.387 ms
64 bytes from 192.168.3.232: icmp_seq=4 ttl=64 time=0.317 ms


外网测试:
root@ok3588:/# 
root@ok3588:/# ping www.baidu.com
ping: www.baidu.com: Temporary failure in name resolution

root@ok3588:/# 


root@ok3588:/# 
root@ok3588:/# cd /etc/
root@ok3588:/etc# 
root@ok3588:/etc# ls -l resolv.conf 
lrwxrwxrwx 1 root root 18 Mar  9  2023 resolv.conf -> ../tmp/resolv.conf
root@ok3588:/etc# 

飞凌的人在保定PING百度之后,得到北方百度的IP地址:110.242.68.66
将名字服务器nameserver 8.8.8.8写入到/etc/resolv.conf中
【神奇的是,典型的DNS:114.114.114.114无效了】

echo nameserver 8.8.8.8 > /etc/resolv.conf


【切记,必须要有空行】

然后通过adb登录飞凌的OK3588-C的核心板,即可PING通百度了!

C:\Users\QQ>adb shell
adb server version (40) doesn't match this client (41); killing...
* daemon started successfully
root@ok3588:/# ping www.baidu.com
PING www.a.shifen.com (183.2.172.42) 56(84) bytes of data.
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=1 ttl=54 time=7.26 ms
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=2 ttl=54 time=7.04 ms

64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=3 ttl=54 time=7.16 ms
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=4 ttl=54 time=7.37 ms
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=37 ttl=54 time=7.45 ms
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=38 ttl=54 time=7.44 ms
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=39 ttl=54 time=6.67 ms
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=40 ttl=54 time=6.41 ms
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=41 ttl=54 time=6.81 ms

C:\Users\QQ>


由于/etc/resolv.conf链接到/tmp/resolv.conf上。也就是重启之后失效!
飞凌建议在开机自启动脚本中每次都重新生成这个文件了!


(二)静态IP模式:
配置ETH0的动态IP:
root@ok3588:/etc/network# vi interfaces 
root@ok3588:/etc/network# cat interfaces 
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
#address 192.168.0.232
#netmask 255.255.255.0
#gateway 192.168.0.1

root@ok3588:/etc/network# 


重启,获取动态IP失败:
Starting iptables: OK
Starting bluetoothd: OK
Starting network: udhcpc: started, v1.34.1
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: no lease, failing
FAIL
starting weston... done.


那就再来一遍:
root@ok3588:/# udhcpc 
udhcpc: started, v1.34.1
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting discover


启动的时候udhcpc获取动态IP成功:
Starting system message bus: done
Starting iptables: OK
Starting bluetoothd: OK
Starting network: udhcpc: started, v1.34.1
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting select for 192.168.3.209, server 192.168.3.1
udhcpc: lease of 192.168.3.209 obtained from 192.168.3.1, lease time 86400
deleting routers
adding dns 192.168.3.1
OK
starting weston... done.
Starting dropbear sshd: OK
Starting lighttpd: OK


root@ok3588:/# 
root@ok3588:/# 
root@ok3588:/# ifconfig
eth0      Link encap:Ethernet  HWaddr F6:2F:1C:58:C5:DA  
          inet addr:192.168.3.209  Bcast:192.168.3.255  Mask:255.255.255.0

          inet6 addr: fe80::f42f:1cff:fe58:c5da/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:190 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:27233 (26.5 KiB)  TX bytes:1410 (1.3 KiB)
          Interrupt:79 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:125 errors:0 dropped:0 overruns:0 frame:0
          TX packets:125 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:337818 (329.9 KiB)  TX bytes:337818 (329.9 KiB)

root@ok3588:/# 
root@ok3588:/# cat /etc/resolv.conf 
nameserver 192.168.3.1 # eth0
root@ok3588:/# 
root@ok3588:/# ping www.baidu.com
PING www.baidu.com (183.2.172.185) 56(84) bytes of data.
64 bytes from www.baidu.com (183.2.172.185): icmp_seq=1 ttl=54 time=8.29 ms
64 bytes from www.baidu.com (183.2.172.185): icmp_seq=2 ttl=54 time=7.02 ms

64 bytes from www.baidu.com (183.2.172.185): icmp_seq=3 ttl=54 time=6.41 ms
64 bytes from www.baidu.com (183.2.172.185): icmp_seq=4 ttl=54 time=7.19 ms
64 bytes from www.baidu.com (183.2.172.185): icmp_seq=5 ttl=54 time=6.64 ms
64 bytes from www.baidu.com (183.2.172.185): icmp_seq=6 ttl=54 time=6.86 ms
64 bytes from www.a.shifen.com (183.2.172.185): icmp_seq=7 ttl=54 time=6.80 ms
64 bytes from www.a.shifen.com (183.2.172.185): icmp_seq=8 ttl=54 time=6.71 ms
64 bytes from www.a.shifen.com (183.2.172.185): icmp_seq=9 ttl=54 time=6.88 ms
64 bytes from www.a.shifen.com (183.2.172.185): icmp_seq=10 ttl=54 time=6.86 ms
64 bytes from www.a.shifen.com (183.2.172.185): icmp_seq=11 ttl=54 time=6.55 ms
64 bytes from 183.2.172.185: icmp_seq=12 ttl=54 time=6.71 ms
64 bytes from www.baidu.com (183.2.172.185): icmp_seq=13 ttl=54 time=8.96 ms
64 bytes from www.baidu.com (183.2.172.185): icmp_seq=14 ttl=54 time=6.87 ms
64 bytes from www.baidu.com (183.2.172.185): icmp_seq=15 ttl=54 time=15.5 ms
64 bytes from www.baidu.com (183.2.172.185): icmp_seq=16 ttl=54 time=6.20 ms
64 bytes from 183.2.172.185: icmp_seq=17 ttl=54 time=13.8 ms
64 bytes from 183.2.172.185: icmp_seq=18 ttl=54 time=6.91 ms
^C64 bytes from 183.2.172.185: icmp_seq=19 ttl=54 time=6.49 ms

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

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

相关文章

质量体系 | 这些医疗器械质量管理标准/法规有什么区别?

在医疗器械行业中,确保产品质量和安全至关重要,而ISO 9001、ISO 13485、GMP、中国《医疗器械生产质量管理规范》和QS820等标准/法规为行业提供了明确的指导。 ISO9001 ISO9001:2015 Quality management systems-Requirements(质量管理体系要…

通过ros2服务来控制程序的启动和关闭

运行handle.py程序,启动服务节点,调用服务节点控制程序的启动和关闭,本例为启动和关闭一个python程序(每隔一秒打印hello,world),运行截图如下: 一、创建服务节点 handle.py import rclpy from rclpy.no…

无人机之航拍挑选注意事项

航拍无人机的挑选,主要从安全稳定、航拍画质、云台防抖、图传距离、续航时间等因素来考虑。 一、安全稳定 安全稳定性,是我们选择航拍无人机的首要参考标准。毕竟再好的镜头、再好的外形设计、再好的航拍功能,如果没有安全稳定的飞行&#x…

【若依 - 前后端不分离版】SysCaptchaController 详解:生成与处理验证码

文章目录 一、SysCaptchaController 类概述1. 类的功能2. 主要功能 二、验证码生成流程1. 接口定义2. 代码流程解析2.1. 设置响应头2.2. 生成验证码2.3. 存储验证码2.4. 返回验证码图片 三、处理异常和流关闭1. 异常处理2. 流关闭 四、实际应用中的验证码处理1. 验证码生成和展…

【数模修炼之旅】05 拟合模型 深度解析(教程+代码)

【数模修炼之旅】05 拟合模型 深度解析(教程代码) 接下来 C君将会用至少30个小节来为大家深度解析数模领域常用的算法,大家可以关注这个专栏,持续学习哦,对于大家的能力提高会有极大的帮助。 1 拟合模型介绍及应用 …

无缝融入,即刻智能[三]:Dify-LLM平台知识库构建(多路召回、精排重排),43K+星标见证专属智能方案

无缝融入,即刻智能[三]:Dify-LLM平台知识库构建(多路召回、精排重排),43K+星标见证专属智能方案 大语言模型的训练数据一般基于公开的数据,且每一次训练需要消耗大量算力,这意味着模型的知识一般不会包含私有领域的知识,同时在公开知识领域存在一定的滞后性。为了解决这一…

SSM学生社团管理系统—计算机毕业设计源码20360

目 录 摘要 1 绪论 1.1 研究背景 1.2 研究意义 1.3论文结构与章节安排 2 学生社团管理系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据增加流程 2.2.2 数据修改流程 2.2.3 数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系…

python3爬虫(未完结)

一个简单的例子:爬取自己的csdn博客,统计每篇博客的访问量,制作一个柱状图,以访问量从大到小的方式显示。 1. 首先从“个人主页”爬取所有所有文章的链接 1.1 打开个人主页,右键->检查:可以看到每篇文章…

如何使用Java SpringBoot+Vue搭建二手闲置交易系统?

✍✍计算机毕业编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java、…

四步解决国标设备接入问题

用国标协议完成多品牌设备统一接入,是智能设备在多场景应用中都会碰到的安装步骤。国标接入常常过程复杂,这边介绍一种相对简便的方法,用萤石开放平台的“国标设备添加工具”接入 Step1:私信我获取安装包 私信我获取国标设备添加…

Nginx服务器申请及配置免费SSL证书

免费SSL证书申请 背景: 我的情况是这样,域名解析是华为云的,然后免费证书在腾讯云申请。但是大致的配置流程都是一样的 在腾讯云平台申请免费的SSL证明(目前有效期是9天),申请步骤如下 主要步骤说明 申请免费SSL证书配置证书到域…

自定义变量添加到分机呼叫信息(mod_cti基于FreeSWITCH)

文章目录 前言联系我们添加流程1. 修改cti.json配置2. 配置自动外呼进入排队转坐席3. 变量同步到坐席通道 4. 导入号码添加自定义变量 前言 在默认配置中,分机的呼叫信息会被推送到redis的hash表中,hash表名:calls。我们可以通过修改配置&am…

【大模型LLMs】RAG实战:基于LlamaIndex快速构建RAG链路(Qwen2-7B-Instruct+BGE Embedding)

【大模型LLMs】RAG实战:基于LlamaIndex快速构建RAG链路(Qwen2-7B-InstructBGE Embedding) 1. 环境准备2. 数据准备3. RAG框架构建3.1 数据读取 数据切块3.2 构建向量索引3.3 检索增强3.4 main函数 参考 基于LlamaIndex框架,以Qwe…

【GitLab】使用 Docker 安装 GitLab 1:配置 SSH 端口

使用 Docker 安装 GitLab 要求修改ssh端口 GitLab 使用 SSH 通过 SSH 与 Git 交互。默认情况下,GitLab 使用端口22。 要在使用 GitLab Docker 映像时使用其他端口,您可以执行以下操作之一: 更改服务器的 SSH 端口(推荐)。 更改 GitLab Shell SSH 端口。 更改服务器的 SSH …

电测量数据交换DLMS∕COSEM组件第62部分:COSEM接口类(4)

1.7COSEM服务器模型 COSEM服务器被构建为3层体系结构如图3所示。 图4示例说明如何用COSEM服务器模型构建一台组合式计量设备。 1.8COSEM逻辑设备 1.8.1概述 COSEM逻辑设备包含一组COSEM对象,每个物理设备均应包含一个“Management logical device”。对COSEM逻辑设备…

MPLS相关实验

一、实验拓扑图以及实验要求 1、实验拓扑图 2、实验要求 合理利用IP地址进行分配R3、R4、R5、R6运行ospf在R2、R3、R4、R5、R6上运行MPLSR1上使用静态,R7上运行rip协议,R8上运行ospf协议全网可达 二、实验分析 合理利用IP地址进行分配R3、R4、R5、R6…

将自己的网站改造成可安装的PWA

概述 本文是一篇水文,感兴趣的读者可以看看。分享一下怎么讲自己的网站改造成可安装的PWA。 PWA简介 渐进式 Web 应用(Progressive Web App,PWA)是一个使用 web 平台技术构建的应用程序,但它提供的用户体验就像一个…

死锁问题分析和解决——资源回收时

1.描述问题 在完成线程池核心功能功能时,没有遇到太大的问题(Any,Result,Semfore的设计),在做线程池资源回收时,遇到了死锁的问题 1、在ThreadPool的资源回收,等待线程池所有线程退出时&#xff…

2024年【浙江省安全员-C证】复审模拟考试及浙江省安全员-C证作业模拟考试

题库来源:安全生产模拟考试一点通公众号小程序 浙江省安全员-C证复审模拟考试参考答案及浙江省安全员-C证考试试题解析是安全生产模拟考试一点通题库老师及浙江省安全员-C证操作证已考过的学员汇总,相对有效帮助浙江省安全员-C证作业模拟考试学员顺利通…

C++进阶(14)类型转换、IO流

文章目录 一、类型转换C语言隐式类型转换强制类型转换 C类型转换的情况类型转换的函数(4个) 二、IO流1、缓冲区2、提高输入输出效率3、文件操作文件权限写操作 --- ofstream文本方式写入二进制方式写入 读操作 --- ifstream文本方式读取二进制方式读取 其…