常规命令如下:
rpm -qi 包名 查看一个包的详细信息 rpm -qf 文件名 查看一个文件是由哪个包安装的 rpm -ql 包名 查看一个包安装了哪些文件 rpm -qa 查看系统中安装了哪些包 rpm -e 删除包rpm -ivh 安装包 rpm -Uvh 升级包 rpm -i --nodeps 安装某个包有依赖关系时,忽略依赖关系,强制安装 rpm -Uvh xxx.rpm --nodeps --force 强制的
rpm降级版本安装
rpm -Uvh --oldpackage xxx.rpm
查看RPM包里的内容
如果只相知道包里的文件列表执行:
rpm -qpl packetname
如果想要导出包里的内容,而不是安装,那么执行:
rpm2cpio pkgname | cpio -ivd
rpm编译
1. 执行rpm -i you-package.src.rpm 2. cd /usr/src/redhat/SPECS (前两步和方法一相同) 3. rpmbuild -bb your-package.specs 一个和你的软件包同名的specs文件 -ba 既生成src.rpm又生成二进制rpm -bs 只生成src的rpm -bb 只生二进制的rpm -bp 执行到pre -bc 执行到 build段 -bi 执行install段 -bl 检测有文件没包含
spec文件
%pre rpm安装前执行的脚本 %post rpm安装后执行的脚本 %preun rpm卸载前执行的脚本 %postun rpm卸载后执行的脚本
arm可以找rpm包的网站
https://pkgs.org/
https://cbs.centos.org/koji/index
https://dl.fedoraproject.org/pub/epel/7/
Creset_usb_bus()
{
for i in `find /sys/bus/usb/devices/usb*`
do
hubport="${i: -1}-1"
if [ -d ${i}/${hubport} ]
then
# 重置root hub下的端口
echo 0 > ${i}/${hubport}/authorized
echo 1 > ${i}/${hubport}/authorized
# 强制设置power从auto到on
echo on > ${i}/${hubport}/power/control
fi
done
}
pacmd load-module module-combine-sink sink_name=multi_sound_card # 加载 combine 模块` pacmd set-default-sink alsa_output.platform-rt5651-sound.stereo-fallback # 设置默认声卡到rt5651上 pacmd set-default-sink multi_sound_card # 设置声卡为同时输出 pacmd set-default-sink alsa_output.platform-hdmi-sound.stereo-fallback #设置默认声卡到HDMI上
ntpdate -u time.nist.gov ntpdate -u ntp.api.bz hwclock -w
chmod +w /etc/sudoers vim /etc/sudoers 增加 user root ALL=(ALL) ALL user ALL=(ALL) ALL chmod -w /etc/sudoers
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
/etc/systemd/logind.conf HandleLidSwitch=ignore HandleLidSwitchDocked=ignore
lightdm配置文件 [SeatDefaults] autologin-user=user
export QT_DEBUG_PLUGINS=1
getconf PAGE_SIZE
/etc/udev/rules.d SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{ifindex}=="2", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" udevadm info --query=path --path=/sys/class/net/eth0 --attribute
qtchooser -install qt5.12.2 /usr/local/Qt-5.12.2/bin/qmake export QT_SELECT=qt5.12.2
export LANG=zh_CN.UTF-8 export LANGUAGE=zh_CN.zh
taskkill /pid WIN_PID -f
经总结主要原因是14版本之后注册了两个LSP协议(vSockets DGRAM、vSockets STREAM)导致异常!
解决方法:使用LSP修复工具(例如:360安全卫士/金山毒霸里的LSP工具)修复LSP网络协议,或者重置下网络链接
1.在《启动和关闭windows功能》中 启用smb/cifs功能
2.在本地安全策略中设置《LAN管理器身份验证级别》设置为,发送LM和NTLM-如果已协商。则使用NTLM v2 会话安全
3.在《网络和共享中心》设置高级共享设置为 启动文件共享,关闭密码保护的共享
4.在smb.conf 中,设置 security=share
cd /etc/lightdm/lightdm.conf xserver-command=X -background none -nocursor 增加-nocursor
[pack] packsizelimit = 2g window = 0
linux下添加用户后,会在系统里自动加一个邮箱(系统邮箱),路径是:/var/spool/mail/用户名.
rm -rf /var/spool/mail/用户名
Get-FileHash -Algorithm MD5 *.tar.gz
dd if=/dev/zero of=test.img status=progress
rngd -r /dev/urandom
To free pagecache: echo 1 > /proc/sys/vm/drop_cachesTo free dentries and inodes: echo 2 > /proc/sys/vm/drop_cachesTo free pagecache, dentries and inodes: echo 3 > /proc/sys/vm/drop_caches
/etc/security/pwquality.conf minlen = 6 minclass = 2 usercheck = 0
arecord -Dhw:0,0 -r48000 -f S16_LE -c 2 | aplay -Dhw:0,0 -r48000
link trainning 通过LTSSM(Link Training and Status State Machine)完成。在这个过程中,可以发现并确定如下:
训练时序由位对齐,符号对齐和交换物理层参数三个部分组成,
TS1和TS2用来传输PCIE链路的配置信息
TS1 Ordered Set的具体符号描述如下

TS2 Ordered Set的具体符号描述如下

在发送器进入电气空闲状态时,必须发送EIOS Ordered Set

EIEOS用作确保能够检测到电气空闲退出状态,当使用128/130b时,还用于块对齐
EIEOS在5.0GT/s的符号格式(8/10b)和8.0GT/s的符号格式(128/130b)如下

gen3的EIEOS数据块格式如下

在training的过程中,TS1和TS2的符号6-15作为链路极性标志,如果极性反转,则
在L0s到L0过渡时用于位锁定和符号锁定,FTS的符号信息如下

作为数据块的开始符号,在 Configuration.Idle, Recovery.Idle, 和 Tx_L0s状态下传输,SDS的符号信息如下

链路错误主要发生在解码错误,帧错误,符号丢失,缓冲区溢出或丢失,块对齐,错误通常发生在L0状态,也会在L0到Recovery上发生。如不在L0状态上发生的链接错误,LTSSM状态机不会转换到Recovery上。
协商的行为主要是先从2.5GT/s上启动Link Training,然后在Training Sequence(TS1/TS2)中可以获取支持的速率大小,然后以2.5GT/s的速率走到L0状态,然后从L0走到Recovery状态,重新开始以新的速率Link Training。
对于pcie的带宽根据pcie的协议版本来决定,同样的pcie的总体带宽根据lane的数量来决定。
对于pcie来说,gen3可以兼容gen1,对于lane来说,可以将x8拆分成x4+x4。
对于pcie的lane顺序来说,lane可以交织,也就是lane0可以接lane3,lane1接lane2,lane2接lane1,lane3接lane0
也就是说,对于pcie3.0 x16来说。可以作为单纯的x16的gen3连接,也可以作为2个x8.或4个x4,或16个x1,同时对于每个lane,都可以是gen3(8GT)或gen2(5GT)或gen1(2.5GT)
LTSSM状态机如下所示

每个阶段的解释如下
对于LTSSM状态机的状态情况下的Link Status如下图

从上图可以知道,例如LinkUp状态,在Configuration时可能是1可能是0,这是指的如果是从detect--->polling--->configuration,则此时是0,到recivery才是1.但是如果是从recovery或其他状态进入configuration,则此时的link up是1
Detect的默认状态从Quiet开始,然后默认以2.5GT/s进行均衡,均衡完成之后,等待12ms超时或电气空闲状态Broken后,进入Active,在进入active后的再一个12ms内检测接收器,如果在lane上接收到Detection Sequence,则进入Polling,否则进入quiet。

发送器先进入Active状态
如果在Configuration状态

其他细节不详述,(见4.2.6.3)如下图所示

Recovery的子状态机如下所示,不详述

L0没有子状态机,如果处于L0,在改变Link Width时进入Recovery,也可以进入L0s,或L1或L2状态。
通过FTS可以进入L0状态

当长时间没有TLP和DLLP时,发送端通知接收端进入L1状态,如果接收端不同意则进入L0s状态,如果同意则进入L1状态

L2状态属于更节能的状态,所以都会重新Detect,与L0,L0s,L1不同的是,它们都是通过Recovery

Disabled没有子状态机,当禁用标志位起来时就是Disabled状态机,如果标志清空,则重新进入Detect
回环通过配置进入,如果退出回环则重新detect,状态机如下

Hot Reset没有子状态机,默认通过控制进入Hot Reset,或者接收两个连续的TS1,并带有Hot Reset标志作为进入Hot Reset
PCIE3.0默认速度在8.0GT/s,为了提高信号的质量,从3.0开始提供了链路均衡。后面每个版本都额外均衡一次。对于PCIE3.0,Tx端发送Rx EQ的均衡设置,Rx做出响应,最终获得一个最优的均衡组合 和眼图(信号质量)
对于pcie而言,先基于2.5GT/s进行传输,然后由一方发送更改速度请求,从而另一方发送均衡请求,进入Recovery状态,进行均衡,最后确定PCIE的速度。其均衡的步骤总共有四步,对于Downstream Port来说有1-3阶段,对于Upstream Port来说有0-3阶段。因为第一个阶段是从DSP发送TS2 Ordered Set给USP做均衡。
当均衡完成,信号从LTSSM状态机的Recovery.RcvrLock,Recovery.RcvrCfg,Recovery.Idel转向L0状态,如下图

整个均衡的过程如下图

对于均衡过程中发送的Presets的格式如下

均衡也是属于LTSSM状态机的开始或组成部分(基于Recovery),对于上电过程,默认先以2.5GT/b的速率从Detect--->Polling--->Configuration--->L0--->Recovery,最后进入Recovery。然后再通过动态链路均衡(上文)来发起调速请求。如下是LTSSM状态机
