1.在Ubuntu 16.04(AMD64)中安装Xilinx ISE 14.7
2.udevçruleså®å¶åè°è¯
3.udev机制
4.Linux网卡文件配置linux网卡文件
在Ubuntu 16.04(AMD64)中安装Xilinx ISE 14.7
Ubuntu安装Xilinx ISE .7的源码操作详解
本文内容更新至年2月日。该教程旨在介绍在Ubuntu .下安装Xilinx ISE .7的安装详细过程,对于其它Ubuntu版本和Xilinx ISE更新,源码请自行查找更近期的安装指导资料。
首先访问Xilinx官网下载Linux版本的源码安装程序,随后解压缩。安装vlc源码注意在执行安装时,源码确保在安装路径及系统配置文件中使用英文字符,安装避免使用含中文字符的源码路径,以免安装程序出现无反应或显示异常。安装
在安装Xilinx ISE的源码过程中,可能会遇到驱动安装失败的安装问题,尤其在使用特定硬件或环境配置时。源码遇到该问题时,安装通常需要手动安装所需的源码线缆驱动。请查找在线资源获取驱动文件,瓶盖码源码并遵循官方指南进行安装。
初次运行ISE会提示需要获取许可,选择对应的许可信息进行操作即可。此时大部分功能应能正常运行,但烧录芯片操作可能需要额外的驱动支持。接下来,手动安装线缆驱动。
通过指定路径下载与系统架构相匹配的线缆驱动源代码,安装完成后确保ISE可以正确识别并访问你的FPGA开发板。
配置环境变量对于Xilinx ISE的正常工作至关重要。执行相应的脚本文件,添加必要的环境变量配置。特别注意,确保在修改/etc/udev/rules.d路径时遵循正确的文件编号规则,并考虑系统的im云源码位与位差异。正确配置后,应该能够通过IDE运行、调试FPGA程序。
安装完成并配置好环境后,应能够顺利运行Xilinx ISE,进行FPGA实验与设计。
以上步骤详细介绍了在Ubuntu上安装Xilinx ISE的操作流程,并解决了一些常见问题。在实际操作过程中遇到具体问题时,建议查阅Xilinx官网资料、用户论坛或相关的社区讨论。
udevçruleså®å¶åè°è¯
udevçruleså®å¶åè°è¯
å¨å®å¶é¡¹ç®ä¸ï¼å¯¹å¤è®¾ççææç管çåºæ¬é½å¨udev/systemd-udevæ¥ç®¡çãè¿é没æ对åºæ¬çudev使ç¨/rules书åè¿è¡ä»ç»ã
1. udevçruleså¯è½çä½ç½®
/lib/udev/rules.d -- udevé»è®¤/é¢ç½®çrules
/etc/udev/rules.d/ -- å®å¶çrulesï¼ ä¼å 级é«äº/lib/udev/rules.dï¼å®æ¹å»ºè®®å®¢æ·åçrulesé½æ¾è¿é
è³äºæ¾å¨åªä¸ªä½ç½®ï¼èªå·±å³å®å°±å¥½ï¼æ¢ç¶ä½ å¨ä¿®æ¹ç³»ç»å°±åºè¯¥ç¥éä½ å¨åä»ä¹
2. å®å¶èªå·±çrules
å®å¶çææçäºä»¶ï¼å ·ä½å°ruleså°±æ¯ï¼
1ï¼è¿æ»¤å°æ£ç¡®çudeväºä»¶ã
2ï¼æå®æ§è¡çå¨ä½ï¼ruleséçâRUNâï¼é常æ¯èæ¬ï¼æ¯ç«è¦å®æä¸ä¸ªåè½ï¼ç»å¤§å¤æ°åºæ¯é½ä¸æ¯ä¸ä¸ªå½ä»¤è½æå®çï¼
3.å°è¿éå°±è¦è®¾è®¡å°rulesçè°è¯äº
1ï¼å¦ä½ç¥éè¦è¿æ»¤çæ¯æ¡ä»¶ï¼
2ï¼å¦ä½å°å¿ è¦çåæ°ä¼ éç»RUNæ§è¡çèæ¬ï¼
æ¹æ³1:
udevadm monitor -p
-- çæµæ以çkernel/udevdççææäºä»¶ï¼ -pé项å¾æå¿ è¦ï¼æå°åºæ¬æ¬¡çææäºä»¶çä¸äºå±æ§
è¿éå°±æ¯æ¯è¾è®¾å¤æå ¥åæåºæ¶çäºä»¶å±æ§çä¸åï¼å¯ä½ä¸ºè¿æ»¤çæ¡ä»¶
æ¯å¦ï¼
rulesæ件对äºè§åï¼
å°è¿éå¾å¤æ¶åå°±è½æ»¡è¶³è¦æ±äºï¼å¦æè¿æ解å³ä¸éçåºæ¯ï¼å°±è¦è¿ä¸æ¥ä¿®æ¹è¿æ»¤æ¡ä»¶ã
man udevéä¼æç»å¤§é¨åçå ³é®åçä¿¡æ¯ï¼æ³å ¨é¨çå°±åªè½å»æ¸æºç ï¼ã
æ¹æ³2:
éè¿å¨RUNæå®çèæ¬éä¼ éåæ°ï¼æ¥æ¾å°è®¾å¤åå¨åä¸åå¨çå±æ§å·®å¼ã
æ¯å¦ï¼
åèä¿¡æ¯ï¼
aï¼ãudev è§åçå¹é é®
ACTIONï¼ ãã ããããããäºä»¶ (uevent) çè¡ä¸ºï¼ä¾å¦ï¼add( æ·»å è®¾å¤ )ãremove( å é¤è®¾å¤ )ã
KERNELï¼ ãã ããããããå æ ¸è®¾å¤å称ï¼ä¾å¦ï¼sda, cdromã
DEVPATHï¼ããããããã 设å¤ç devpath è·¯å¾ã
SUBSYSTEMï¼ ãããããã 设å¤çåç³»ç»å称ï¼ä¾å¦ï¼sda çåç³»ç»ä¸º blockã
BUSï¼ ãããããããããã 设å¤å¨ devpath éçæ»çº¿å称ï¼ä¾å¦ï¼usbã
DRIVERï¼ ãããã ãããã 设å¤å¨ devpath éç设å¤é©±å¨å称ï¼ä¾å¦ï¼ide-cdromã
IDï¼ ããããããã ãããã设å¤å¨ devpath éçè¯å«å·ã
SYSFS{ filename}ï¼ ãããã设å¤ç devpath è·¯å¾ä¸ï¼è®¾å¤çå±æ§æ件âfilenameâéçå 容ã
ãããããããããããããããä¾å¦ï¼SYSFS{ model}==âSTSSâ表示ï¼å¦æ设å¤çåå·ä¸º STSSï¼å该设å¤å¹é 该 å¹é é®ã
ãããããããããããããããå¨ä¸æ¡è§åä¸ï¼å¯ä»¥è®¾å®æå¤äºæ¡ SYSFS ç å¹é é®ã
ENV{ key}ï¼ ãããããã ã ç¯å¢åéãå¨ä¸æ¡è§åä¸ï¼å¯ä»¥è®¾å®æå¤äºæ¡ç¯å¢åéç å¹é é®ã
PROGRAMï¼ããããããããè°ç¨å¤é¨å½ä»¤ã
RESULTï¼ ãããããããã å¤é¨å½ä»¤ PROGRAM çè¿åç»æã
bï¼ãudev çéè¦èµå¼é®
NAMEï¼ãããããããããããå¨ /devä¸äº§çç设å¤æ件åãåªæ第ä¸æ¬¡å¯¹æ个设å¤ç NAME çèµå¼è¡ä¸ºçæï¼ä¹åå¹é çè§åå对该设å¤ç NAME èµå¼è¡ä¸ºå°è¢«å¿½ç¥ãå¦æ没æä»»ä½è§å对设å¤ç NAME èµå¼ï¼udev å°ä½¿ç¨å æ ¸è®¾å¤å称æ¥äº§ç设å¤æ件ã
SYMLINKï¼ããããããããã 为 /dev/ä¸ç设å¤æ件产ç符å·é¾æ¥ãç±äº udev åªè½ä¸ºæ个设å¤äº§çä¸ä¸ªè®¾å¤æ件ï¼æ以为äºä¸è¦çç³»ç»é»è®¤ç udev è§åæ产ççæ件ï¼æ¨è使ç¨ç¬¦å·é¾æ¥ã
OWNER, GROUP, MODEï¼ãã为设å¤è®¾å®æéã
ENV{ key}ï¼ãããããããããå¯¼å ¥ä¸ä¸ªç¯å¢åéã
cï¼ãudev çå¼åå¯è°ç¨çæ¿æ¢æä½ç¬¦
Linux ç¨æ·å¯ä»¥éæå°å®å¶ udev è§åæ件çå¼ãä¾å¦ï¼my_root_disk, my_printerãåæ¶ä¹å¯ä»¥å¼ç¨ä¸é¢çæ¿æ¢æä½ç¬¦ï¼
$kernel, %kï¼ãããããããã设å¤çå æ ¸è®¾å¤å称ï¼ä¾å¦ï¼sdaãcdromã
$number, %nï¼ããããããã 设å¤çå æ ¸å·ç ï¼ä¾å¦ï¼sda3 çå æ ¸å·ç æ¯ 3ã
$devpath, %pï¼ããããããã设å¤ç devpathè·¯å¾ã
$id, %bï¼ãããããããããã设å¤å¨ devpathéç ID å·ã
$sysfs{ file}, %s{ file}ï¼ãã 设å¤ç sysfsé file çå 容ãå ¶å®å°±æ¯è®¾å¤çå±æ§å¼ã
$env{ key}, %E{ key}ï¼ãããä¸ä¸ªç¯å¢åéçå¼ã
$major, %Mï¼ãããããããã设å¤ç major å·ã
$minor %mï¼ãããããããã设å¤ç minor å·ã
$result, %cï¼ããããããããPROGRAM è¿åçç»æã
$parent, %Pï¼ãããããã ç¶è®¾å¤ç设å¤æ件åã
$root, %rï¼ãããããããã udev_rootçå¼ï¼é»è®¤æ¯ /dev/ã
$tempnode, %Nï¼ãããããã临æ¶è®¾å¤åã
%%ï¼ããããããããããããç¬¦å· % æ¬èº«ã
$$ï¼ãããããããããããããç¬¦å· $ æ¬èº«ã
对æ¯ä¸ä¸åmanéçå·®å«ï¼$sysfs{ file}ï¼è¿ä¸ªå¨å®é 解å³é®é¢çæ¶åæ¯å¾æç¨çã
è¿ç§æ¹æ³éåè°è¯ç³»ç»å¯å¨çæ¶å对rulesçè°è¯ï¼è¿ä¸ªè¿ç¨ä¸æ¯æ²¡å¾udevadmin monitor使ç¨çãï¼å½ç¶ï¼å¯ä»¥å°è¯èªå·±åä¸ä¸ªsystemdå¯å¨æå¡ï¼è¿å°±æ¶åå°å¯å¨çæ¶æºãå ³èãå½±åï¼å®é æä½ä¼æ¯é¢æ³çå¤æï¼
è¿éæ两个ç¹ï¼
1. env - å¯ä»¥æ¯udeväºä»¶éçå±æ§ï¼-pæå°çï¼
2. $sysfs{ file}, è¿éçfileå°±æ¯å¨ç³»ç»/sysç®å½ä¸å¯¹åºçèç¹ä¸çæ件ï¼æäºæ åµä¸åªè½å¨sysfsçfileçå åæè½åç¡®åºåäºä»¶ã
udev机制
在Linux系统中,当U盘插入时需要自动打开其目录,但每次挂载点不固定,如/media/sda1和/media/sda4。王巍源码这时,了解udev机制就显得尤为重要。udev是一个设备管理系统,负责在设备注册后自动生成设备节点。在内核3.2.0版本中,设备注册流程涉及device_create、device_create_vargs、device_register和device_add等函数,它们会触发kobject_uevent和uevent_helper的调用,生成包含ACTION、DEVPATH和SUBSYSTEM等环境变量的uevent事件。
内核启动时会预设一些环境变量,例如TSLIB_TSDEVICE和QTDIR。uevent_helper在内核源码中初始化为"/sbin/hotplug",尽管在系统中可能找不到这个程序,微办公源码但其在注册设备时会被调用。例如,当USB按键、狗注册或U盘插入时,uevent_helper会配合环境变量,调用call_usermodehelper来创建设备节点。
在嵌入式环境中,udev可能被替换为mdev,特别是对于2.6版本之后的系统。查看 BusyBox 的 mdev.c 和 mdev_main,可以看到设备注册时会生成设备节点,如通过make_device和mknod函数。若要对设备节点进行定制,如自动挂载U盘,就需要解析配置文件/etc/mdev.conf。配置文件的格式定义了设备的权限和自定义操作,例如设置sda[1-9]+设备的挂载与卸载操作。
在实际应用中,公司文件系统的配置可能与标准流程不同,例如通过修改/etc/udev/scripts/mount.sh来统一处理U盘挂载。只需修改相关部分,将挂载点从"/media/$name"改为"/upan",以确保所有U盘都能被挂载到统一目录下,实现自动挂载功能。
总之,udev机制是Linux设备管理的关键部分,通过理解其工作原理和配置文件,可以更好地定制设备行为,如实现U盘的自动挂载。在实际操作中,根据设备的注册流程和配置文件,进行适当的调整和定制是实现所需功能的关键。
Linux网卡文件配置linux网卡文件
在Linux系统中,若需修改网卡名称,可遵循以下步骤:
1. 打开`/etc/udev/rules.d/-persistent-net.rules`文件,将`eth0`更改为`em1`,`eth1`更改为`em2`。仅需更改`name`字段,无需修改`kernel`字段。
2. 将网卡配置文件重命名。将`ifcfg-eth0`文件重命名为`ifcfg-em1`,将`ifcfg-eth1`文件重命名为`ifcfg-em2`。
3. 编辑网卡配置文件,如`ifcfg-em1`,将网卡名称修改为正确名称,并删除UUID(如果没有则无需操作)。
4. 重启服务器。重启后,网卡名称将更新,网络服务应正常运行。
要获取Linux网卡信息,可执行以下步骤:
1. 启动Linux操作系统并登录到桌面。
2. 打开终端。
3. 在终端中输入命令`ifconfig eth0`并回车。
4. 解读网卡信息:
- 查看基本信息:使用`lspci`命令。
- 查看详细信息:使用`lspci -vvv`命令,并查找`Ethernet`字样。
- 查看网卡驱动:使用`lspci -vvv`命令查找网卡设备详细信息,包括驱动。
- 使用`lsmod`命令列出所有加载的驱动,包括网卡驱动。
- 查看模块信息:使用`modinfo`命令,指定模块名称,或使用`ethtool -i`命令指定网络设备名称。
- 查看网络接口队列数:使用`ethtool -S`命令指定网络设备名称。
- 查看网卡驱动源码版本号:解压网卡驱动源码,查看对应`.spec`文件中的版本信息。
若需恢复网卡配置文件,可以使用`netconfig`命令。
初学者需掌握如何在Linux中查看网卡信息。具体步骤如下:
1. 启动Linux操作系统并登录到桌面。
2. 打开终端。
3. 在终端中输入命令`ifconfig eth0`并回车。
信息解读:
1. 第一行显示网卡类型和MAC地址。
2. 第二行显示IPV4地址、广播地址和子网掩码。
3. 第三行显示IPV6地址。
4. 第五行显示接收的数据包总数以及错误、丢失的数据包数。
5. 第六行与第五行对应,显示发送的数据包总数以及错误、丢失的数据包数。
6. 第八行显示接收和发送的字节数。
在Linux中若要重初始化网卡,可删除`/etc/sysconfig/network-scripts/ifcfg-eth0`文件,并重新创建一个新的配置文件。之后,可以使用`setup`命令重新添加网卡配置。