一、Linux的以太网驱动(基于Zynq XC7Z020)
Linux以太网驱动架构由三部分组成。首先,是Linux的网络架构,负责管理和协调网络设备之间的通信。其次,是以太网MAC数据驱动,负责数据的接收与发送。最后,以太网PHY驱动则用于初始化PHY设备,并读取网络状态。
在注册与初始化设备阶段,Linux需要先注册模块与平台设备,并在probe函数中申请网络结构体net_device,对相关变量与函数进行赋值,并完成net_device的注册。
在接收数据时,Linux采用NAPI(Network I/O)方式,先关闭中断,循环读取缓存区中的数据。此阶段需要编写poll函数,并在probe函数中初始化该函数。最大循环次数设置为64,值将传递给xx_poll函数。在中断中关闭接收中断并启用NAPI调度。
发送数据则通过上层协议将数据保存在sk_buff中,然后通过eth_start_xmit函数进行传输。在该函数中,需将sk_buff中的有效数据放入缓冲区,并将缓冲区数据通过MAC发送出去。
以太网MAC数据驱动主要依赖以太网描述符进行数据收发控制。描述符由两个32位寄存器组成,包含地址和状态控制器。描述符数量可多,通过寄存器写入首地址与数量,数据自动通过DMA存入描述符地址中。当一个描述符地址写满,处理器自动继续写入下一个地址。
发送数据时,数据地址保存在sk_buff中,根据其数量将数据分块,每块大小与描述符缓存大小一致。然后,将描述符对应状态位标记(置1或置0),即可实现数据发送。
以太网PHY驱动包括初始化PHY设备与读取网络状态两部分。初始化过程中,设置PHY工作模式、电压等参数。读取网络状态时,通过特定寄存器获取PHY运行状态、链路状态等信息。
二、以太币挖矿,用什么来挖
以太币挖矿教程
1、在硬盘上新建文件夹,比C:Eth。之后所有挖矿软件就存放在这里。
2、下载以下软件
1)Geth——选择Geth-Win下载然后解压
2)Ethminer——下载解压到同一个文件夹,重命名为“miner”
3)Ethereum Wallet(以太坊钱包)——下载Win以太坊钱包,解压之后重命名“wallet”
安装好所有软件
3、打开命令提示符(同时点击Win和R键或者点击开始菜单然后输入cmd)。命令提示符是命令行解析器,让你在操作系统中执行命令输入的软件。
4、输入cdeth之后按回车
回车或返回键是用来确认命令的,因此每次输入命令之后都需要按这个键。cd是用来更换当前目录的命令。这里我们导航到C:硬盘的根目录,然后切换到eth文件夹。
5、重新输入geth账户,按确定键。就是让Geth为我们创建新账户。你需要设置密码然后重复输入(请注意自己看不到输入字段)。Geth会激活你的地址、公钥和私钥。保存好密码,别忘了。
6、最小化命令提示符之后切换到钱包文件夹,运行Ethereum-Wallet.exe。区块链就立即开始同步了。这个过程需要些时间,因为现在区块链容量已经达到27GB。下载完成之后需要再次输入密码。
之后你就拥有以太坊钱包了。但是没有余额,所以接下来你需要建立ethminer。暂时可以最小化钱包了。
挖矿
三、Linux系统连接以太网与WIFI的方法
检查网卡是否存在问题以及相应的模块是否加载,若驱动存在问题则需要先安装相应的驱动。
无线网卡可以通过USB接入系统,通过lsusb命令查看无线网卡信息。
激活以太网卡后,插入网线,通常即可连接到网络。若未连接,需检查网卡和网络通路。
PPPoE是拨号上网,如ADSL等,连接时需输入用户名与密码进行认证。安装pppoeconf或rp-pppoe包,通过pppoe-setup生成配置文件,调整参数,用户名与密码存储在chap-secrets文件中。
普通无线网络连接时,可能需要密码验证。可使用网络管理软件或工具,如Wireless Extension(WE)和Wireless Tools,常用命令包括iwconfig、iwlist等。
iw是一种基于nl80211的新的CLI配置实用程序,替代了采用无线扩展接口的旧工具iwconfig。iwconfig和iw只能连接采用WEP加密方式的网络,WPA(Wi-Fi Protected Access)是一种加强无线网络安全的技术标准,其认证客户端是wpa_supplicant,负责完成认证和加密工作。
使用wpa_cli配置网络连接,首先创建配置文件wpa_supplicant.conf,内容包括网络名、密码等信息,然后开启wpa_supplicant,运行wpa_cli进行连接。
iwd(iNet无线守护程序)是由英特尔为Linux编写的一个无线网络守护程序,能优化资源利用,连接操作可应用成命令行参数。
对于使用网页认证的无线网络,如校园网等,用户需要通过Web+DHCP认证方式登录。在Windows和安卓系统中,连接后通常会自动跳出登录界面,而在Linux中,可能需要手动打开网页进行认证。
参考文献包括关于网络配置、以太网和无线网络的资料,以及关于在Linux操作系统下进行PPPoE拨号上网和强制门户的相关信息。
四、Linux 固定usb转以太网网卡名称
面对客户的需求,由于特定库只识别eth0和eth1这两个网卡名称,而在主板上,一个RJ45网口与USB转接的以太网设备相连。当使用USB 2.0转接时,设备通常被识别为eth1,但USB 3.0的设备可能会被识别为usb0,这就需要对USB转以太网的代码进行调整。
首先,可以在启动脚本/etc/rc.local中进行修改,通过ifconfig或ip link命令来设置网卡的配置。然而,brctl工具在某些Linux系统(如arm主板)中可能不可用,这会带来一些不便。另一种解决方案是利用udev的设备管理功能。在/etc/udev/rules.d目录下,创建一个名为73-special-net-names.rules的文件,用于为USB转以太网设备指定固定的网卡名称。
在73-special-net-names.rules中,可以这样设置:当检测到一个MAC地址为空的USB设备,且属于网络子系统时,将其命名为eth1,并给予所有用户读写执行权限。例如,SUBSYSTEM=="net", KERNEL=="usb*", KERNELS=="1-1.2", MODE:="0777", NAME="eth1"。这个规则是根据设备节点的父设备信息来定制的,可以通过udevadm info命令来查找和匹配。
需要注意的是,这种策略可能不适用于所有USB转以太网设备,因为它们的MAC地址可能会变化。对于RJ45网口,其MAC地址通常保持不变,因此可能需要单独处理其名称。有关更详细的设置和优化方法,可以参考孙愚在博客园的文章和Linux-固定usb转网口名称的相关教程。
本文来自用户投稿,不代表币大牛资讯立场,如若转载,请注明出处:https://www.98xmw.com/zhis/13469.html
发表回复
评论列表(0条)