下载链接:
通过网盘分享的文件:福昕高级PDF编辑器.7z
链接: https://pan.baidu.com/s/1YGeWigaxTDjRaqUGghDwsg?pwd=nf49 提取码: nf49
下载链接:
通过网盘分享的文件:福昕高级PDF编辑器.7z
链接: https://pan.baidu.com/s/1YGeWigaxTDjRaqUGghDwsg?pwd=nf49 提取码: nf49
这里面都是各种芯片厂家的logo图片,如果想显示logo,最简单的方案就是同名替换。

既然我们知道了logo存放位置,那是否可以直接删除可以不,答案是可以的,但是比较麻烦,因为代码设计的不完善性导致模块化失调,没法直接关闭logo文件检测的逻辑。需要修改地方比较多。退而求其次,干脆干掉显示函数。

去掉logo后,你会发现还有一行小的字,那就是版本显示信息,同样的方案干掉函数。可以直接顶一个宏定义CONFIG_HIDE_LOGO_VERSION


sudo apt-get install wondershaper
sudo modprobe sch_netem
00 18 * * * root wondershaper clear eth0
00 1 * * * root wondershaper eth0 10000 5000
00 10 * * * root wondershaper clear eth0
00 14 * * * root wondershaper eth0 10000 5000
#限制eth0网卡下载速度10000K,上传速度5000K
sudo wondershaper 网卡名字 10000 5000
#清除eth0网卡的网速限制
sudo wondershaper clear 网卡名字
# 查看服务状态
sudo service cron status
# 开启服务
sudo service cron start
# 停止服务
sudo service cron stop
# 重启服务
sudo service cron restart
1、例子
# 如果服务没有开启,开启该服务
sudo service cron restart
# 输入该命令,修改crontab配置。第一次输入该命令时,会提示选择编辑工具,一般选择vim(vi)即可。
crontab –e
# 在上一步打开的终端中(第一次使用该命令的话,在选择编辑工具后),输入下面的内容
# 该内容表示,在每天的0点0分,执行脚本MakeProject.sh
0 0 * * * /home/linduo/Project/MakeProject.sh
Crontab定时任务命令格式
# 格式如下
# minute hour day-of-month month-of-year day-of-week commands
# 00-59 00-23 01-31 01-12 0-6 (0 is sunday)
# 每天0点0分,执行指定脚本
0 0 * * * /home/linduo/Project/MakeProject.sh
# 星期1到星期5,11点30分,执行指定脚本
30 11 * * 1,2,3,4,5 /home/linduo/Project/MakeProject.sh
# 星期1、星期3、星期5,23点00,执行指定脚本,并将内容重定向到文件(使用日期命名)
# 获取日期命令,必须使用如下格式,否则会导致cron执行失败。
00 23 * * 1,3,5 /home/linduo/Project/MakeProject.sh all >> "/home/linduo/Project/Build_$(date +"\%Y-\%m-\%d")".log 2>&1
2、格式
crontab 任务配置基本格式:* * * * command
第1列表示分钟0~59 每分钟用*或者 */1表示
第2列表示小时0~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0,7都可表示星期天)
第6列要运行的命令
3、添加新指令
crontab -e
00 18 * * * root wondershaper clear eth0
00 1 * * * root wondershaper eth0 10000 5000
00 10 * * * root wondershaper clear eth0
00 14 * * * root wondershaper eth0 10000 5000
Telnet连接光猫,用户名root,密码Zte521,输入命令sendcmd 1 DB p DevAuthInfo即可查看所有的用户名密码,但是中兴F607ZA比较奇葩,普通用户和超级管理员登录的页面是不同的,超级管理员的登录页面是:
http://192.168.1.1/cu.html
链接:https://pan.baidu.com/s/1MKkdFj8j7HdbrqX7Q9W45w
提取码:1234
2、默认安装下一步

双击setup.exe文件进行自动化安装,根据提示一步一步直到完成。

一切提示都选择同意。

1.拷贝破解文件到安装目录,我选择的全部是默认的。所以直接拷贝到“C:\Program Files\DS-5 v5.26.0”

2、管理员运行cmd窗口
进入DS5.26的安装目录下:

3.首先进行破解,指令如下:patcher.exe -a

看见上图,恭喜你成功破解了!
4.产生我们最终需要的目的license.dat文件,命令:patcher.exe –license

以上已经生成了我们需要的armcc 和license.dat 文件,剩下的就拷贝了!
1、进入sdk目录,备份ARM_Compiler_5为bkARM_Compiler_5

2、拷贝DS 5.26安装目录下的ARMCompiler5.06u4 到上面的文件夹

3、修改“ARMCompiler5.06u4”改为“ARM_Compiler_5”

4、拷贝license.dat到sdk目录


cmd窗口输入指令:build.bat kernel

祝你成功!
进入官网:https://www.anaconda.com/download/success
下载后一路默认安装就可以

安装完以后,创建yolov11环境:
conda create -n yolov11 python=3.12
激活环境:
conda activate yolov11
Intel GPU ENV:https://anaconda.org/conda-forge/libopenvino-intel-gpu-plugin
To install this package run one of the following:
conda install conda-forge::libopenvino-intel-gpu-plugin
conda install conda-forge/label/openvino_dev::libopenvino-intel-gpu-plugin
管理员权限打开

NVIDA GPU ENV:
进入pytorh官网:https://pytorch.org/get-started/locally/
选择版本:

pip install ultralytics
conda config –remove-key channels
conda config –add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config –add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config –add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config –set show_channel_urls yes
pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple
重置网络:netsh winsock reset catalog
特别是针对LSP却持
在Linux中,线程是一种轻量级的执行单元,可以在进程内独立运行。线程可以分为普通线程和实时线程,它们之间的区别在于其调度和优先级设置。
SCHED_OTHER,普通的调度(非实时线程),应用层设置优先级0,调度器总会给此类线程分配一定的CPU资源,只不过是被分配到的频次和时间片长度较少。每1s中实时线程和普通线程的时间比例是95 :5。
普通线程没有固定的响应时间要求,它们的优先级由系统动态调整。Linux使用CFS调度器来管理普通线程。CFS调度器采用一种称为红黑树的数据结构来维护线程的优先级。每个线程都有一个vruntime值,它表示线程在运行队列中消耗的虚拟时间。CFS调度器会根据线程的vruntime值来确定运行的顺序。优先级较高的线程vruntime值较小,因此能够更早地获得CPU的时间片。
适用场景:实时性要求不高,但要求必须能被执行的线程。
SCHED_FIFO,抢占式调度(实时线程),实时先行,应用层设置优先级1-99,同一优先级的多个线程中,一旦某个抢占式线程获取CPU,除非被更高优先级线程抢占(比如在非实时线程中创建一个更高优先级的实时线程),或该线程主动让出CPU资源,否则该线程将会一直占用CPU(但总会分配一点资源给SCHED_OTHER非实时线程)。
适用场景:实时性要求高,不希望被频繁打断的任务。
SCHED_RR,轮询式调度(实时线程),实时循环,设置优先级1-99,以循环方式运行,每个线程都有一个时间片来执行任务,时间片耗尽后,该线程将被放入队列的末尾,而较低优先级的线程有机会执行。
适用场景:实时性要求高,允许被频繁打断的任务。
在Linux中,可以使用sched_setscheduler函数。这个函数允许我们选择普通线程或实时线程。对于普通线程,可以使用nice函数来动态调整优先级。对于实时线程,可以使用sched_setscheduler函数来设置其类型和优先级。

关于优先级高低和数值大小的关系,在应用层和内核中二者是相反的。
设置线程的优先级需要谨慎,因为过高的优先级可能会导致系统资源的过度占用,从而影响其他线程和进程的正常运行。另外,需要注意的是,只有具有足够权限的用户才能设置较高的实时线程优先级。
总结起来,Linux中的线程分为普通线程和实时线程。普通线程的优先级由系统动态调整,而实时线程的优先级由用户显式设置。通过合理地设置线程的优先级,可以提高系统的性能和响应时间。然而,设置线程的优先级需要慎重考虑,以避免影响其他线程和进程的正常运行。
pthread_t pis_task;
pthread_attr_t attr;
struct sched_param sched_param;
// 初始化线程属性
pthread_attr_init(&attr);
// 设置线程为实时线程
pthread_attr_setinheritsched(&attr, PTHREAD_EXPLICIT_SCHED);
pthread_attr_setschedpolicy(&attr, SCHED_FIFO);
// 设置线程优先级
sched_param.sched_priority = THREAD_PRIORITY;
pthread_attr_setschedparam(&attr, &sched_param);
pthread_create(&pis_task, &attr, PrtMgr_Decode_Task, (void *)&PrintMgr_Init_colorId);
pthread_setname_np(pis_task, "name");
# 导入爬虫库
import requests
# 导入pyquery(数据提取)
from pyquery import PyQuery as pq
# 用于延时请求
import time
# 请求头
headers ={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.9 Safari/537.36',
'Cookie':'aliyungf_tc=AQAAACrtMHyGHA4ARxkbZ27Kgw3kCofh; route=ac205598b1fccbab08a64956374e0f11; JSESSIONID=5B42F8C6E712092B9A963E3F0532AD21; uuid=9065c880-0293-4758-86a8-0a228c6cfb2c; SERVERID=srv-omp-ali-portal10_80; Hm_lvt_94a1e06bbce219d29285cee2e37d1d26=1587280903; Hm_lpvt_94a1e06bbce219d29285cee2e37d1d26=1587280903; UM_distinctid=17191507d62338-03d1defec13f5f-721f3a40-144000-17191507d63400; CNZZDATA1261102524=262517629-1587279306-null%7C1587279306; __ads_session=6NY9VLMBdgmIzmsFHgA=',
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'Host':'www.thepaper.cn'}
# 封装一个获取新闻内容的函数
def get_news(href,title):
# 对新闻内容网址发送请求
response = requests.get(href,headers=headers).text
# 数据初始化
doc =pq(response)
# 通过类选择器news_txt提取新闻内容
news = doc(".index_cententWrap__Jv8jK").items()
# 遍历数据
for x in news:
# 取出数据中的文本数据,获取到新闻信息
new = x.text()
print(new)
# 封装一个获取新闻内容网址和新闻标题的函数
def get_news_title():
# 新闻网首页的链接
url = 'https://www.thepaper.cn/channel_25951'
# 对首页发送请求,并返回文本数据
respoonse = requests.get(url, headers=headers,).text
time.sleep(1)
# 数据初始化
doc = pq(respoonse)
# 通过类选择器news_li 下级标签 h2 a 定位数据
# .itens把数据变成可遍历的数据
a = doc(".small_toplink__GmZhY a").items()
print(a)
# 遍历数据
for x in a:
# 通过属性href提取出新闻网址
href = "https://www.thepaper.cn/" + x.attr("href")
print(href)
# 提取数据中的文本 获取新闻标题
title = x.text()
print(title)
get_news(href,title)
if __name__ == '__main__':
get_news_title()
传统USB打印机如何实现网络打印机转变,发挥打印机余热。目前好多不用的机顶盒,我们刷成Linux系统。把打印机的USB线插到机顶盒上,机顶盒通过网线或者wifi连接到路由器上,实现USB到网络转换。那路由器Linux到底需要做哪些操作呢,接下来咱们一起聊聊。
CUPS是开源的打印机服务开源框架,已集成成千上万的各式打印机驱动,我们不用重复造轮子。
1、安装cups
登陆机顶盒调试,会Linux开发的大家都明白。
apt install cups
2、修改 CUPS 配置文件 /etc/cups/cupsd.conf
将 Listen 修改为 0.0.0.0:631
将 Browsing 修改为 Yes
对应位置加上 Allow all
# Only listen for connections from the local machine.
Listen localhost:631 // [!code --]
Listen 0.0.0.0:631 // [!code ++]
Listen /run/cups/cups.sock
# Show shared printers on the local network.
Browsing Off // [!code --]
Browsing Yes // [!code ++]
BrowseLocalProtocols dnssd
# Restrict access to the server...
Order allow,deny
Allow all // [!code ++]
# Restrict access to the admin pages...
Order allow,deny
Allow all // [!code ++]
# Restrict access to configuration files...
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow all // [!code ++]
# Restrict access to log files...
AuthType Default
Require user @SYSTEM
Order allow,deny
Allow all // [!code ++]
3、重启cups服务
systemctl restart cups
4、登陆服务器web,进行打印机添加
访问 https://ip:631 进入 CUPS 的 Web UI,点击添加 Add Printer



5、windows添加网络打印机
