Linux中的PCI驱动总结

Linux中的PCI驱动总结,第1张

l Pci驱动注册

Pci_register_driver(struct pci_driver *drv)

Static struct pci_driver pci_driver= {

.name = DRV_NAME,

.id_table = pci_pci_tbl,

.probe = pci_init_one,

.remove = _devexit_p(pci_remove_one),

}

l Pci配置空间

Pci_read_config_byte/word/dword(struct pci_dev *pdev,int offset,int *value)

Pci_write_config_byte/word/dword(struct pci_dev *pdev,int offset,int *value)

l Pci的I/O和内存空间

Pci_resource_start(struct pci_dev *dev,int bar) bar的范围0-5;功能:从配置区相应寄存器得到I/O区域的基址

Pci_resource_length(struct pci_dev *dev,int bar)bar的范围0-5;功能:从配置区相应寄存器得到I/O区域的内存区域长度

Request_mem_fegion(io_base,length,name)申请I/O端口

Request_mem_region(io_base,length,name)释放I/O端口

Pci_enable_device启用设备的I/O

Pci_set_master设定设备工作在总线主设备模式

    以前都是使用ifconfig来配置网络,今天开始尝试使用nmcli 。

1、网络接口名称

    centos7或者红帽7中,以en开头标识以太网,之前的版本是eth开头。同时,wl标识waln接口,ww标识wwan接口。

  接下里就是网卡类型, p代表pci物理位置,o代表板载,s代表热插拔。最后数字表示索引、id或端口。 比如笔者的虚拟机上enp0s3,pci网卡slot3。

    如果无法确定固定名称则采用传统的ethn的方式。

2、查看网络配置

    使用ip addr显示ip地址,ip addr show eth0显示网卡eth0 , ip -s link show eth0 显示连接状态,可用查看到数据包。netstat -i也可以罗列网卡并查看数据流量。

3、查看路由与排查

    ip route检查系统路由表,

    ping网关地址。ping -c4是ping 4次, timeout 4则是超时时间4秒。

    tracepath或者traceroute命令追踪到目标主机的网络状态。

4、端口与服务

    TCP服务使用套接字.socket作为通信的端点,其由IP地址、协议和端口组成。服务器通常监听标准端口,客户端使用随机可用端口。标准端口在/etc/services中列出。

    查看监听端口:ss和netstat命令。

  5、使用nmcli查看网络

    networkmanager是监控和管理网络的守护进程,可用通过命令行与图形界面来与networkmanager通信,并将配置文件保存在/etc/sysconfig/network-scripts目录中。

    使用nmcli查看网络信息:

    nmcli con show  查看网络接口

    nmcli con show --active  查看活动网络接口

    nmcli con show  "enp0s3"  查看enp0s3网络的详情信息

    nmcli device status 查看设备的信息

    nmcli device show enp0s3  查看 enp0s3设备的信息

  6、使用nmcli配置网络

    可以为网络设备配置多个网络连接(配置文件),但是一次只能由一个保持活动状态。

    创建一个"default"新连接,并使用dhcp获取网络。

    nmcli con add con-name "default" type ethernet ifname eth0

    创建一个静态连接,配置静态IP,并设置不自动连接。

    nmcli con add con-name "static" type ethernet ifname eth0 autoconnect no ip4 172.25.0.12/24 gw4 172.25.0.254

    更改为静态链接。

    nmcli con up "static"

    更改为dhcp链接。

    nmcli con up "default"

    查看使用信息。

    nmcli con  add  help

    修改配置,过多就不阐述了。

    nmcli con mod

    nmcli 命令摘要:

7、编辑网络配置文件

    接口配置文件时控制单个网络设备的软件接口,网络设备可以有多个配置文件,但是只有一个时激活状态。

ifcfg配置文件选项(辅助IP地址将配置文件中的选项添加1)

    配置过程:

a、修改 ifcfg配置文件

b、使用nmcli命令使配置生效或者重启进程

    nmcli con reload

    nmcli con down “ID”  ,nmcli con up “ID”

c、通过ping验证网络配置

8、主机名和名称解析

    hostname 查看主机名

    hostnamectl status 查看主机信息

    hostnamectl set-hostname 设置主机名

    静态主机名储存在/etc/hostname文件中。名称解析用于将主机名转为IP地址,反之亦可,在/etc/hosts中定义。

    可用使用getent hosts your_hostname,利用/etc/hosts来测试主机名解析。

    如果/etc/hosts中没有,则会查找/etc/ resolv.conf文件。

方法如下:

设备配置空间修改

修改PCIE配置空间的命令为:setpci。

NAME

setpci _ configure PCI devices

SYNOPSIS

setpci [options] devices

对于setpci命令来说,主要的参数如下:-s [[[[]:]]:][][.[]]

就是我们要指定设备,然后修改其配置空间。常用命令格式和参数如下:

setpci -s BUSID:DEVID.FUNCID REGISTEROFFSET.B=NEWVALUE

setpci -s BUSID:DEVID.FUNCID REGISTEROFFSET.W=NEWVALUE

setpci -s BUSID:DEVID.FUNCID REGISTEROFFSET.L=NEWVALUE

如:

setpci -s 0:14.0 60.B=6

是将设备0:14.0设备,PCI配置空间便宜量为0x60,写入新的字节值为6。查看PCI配置空间修改是否生效,可以通过lspci命令来查看,如设置0:14.0后,读取命令为lspci _s 0:14.0 _xxx。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7238000.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存