Как найти PCI-адрес интерфейса Ethernet?

Простейший путь:

Просто щелкните правой кнопкой мыши рамку видео, в которой воспроизводится видео, и выберите «Копировать URL-адрес видео» (в зависимости от используемого вами браузера) и вставьте ссылку в адресную строку, и браузер должен попросить вас сохранить файл.

Еще предпочтительный путь:

Если вы любите загружать видео, которое вы видите, на YouTube (в основном на основе Flash ) или на любом другом сайте (в случае видео HTML5) у вас есть два варианта:

Использование диспетчера загрузки и добавление видеороликов (HTML 5 видео предоставит вам прямые URL-адреса). Используя что-то вроде сценария Greasemonkey, который добавит кнопку «Загрузить» под любым видео, которое вы видите на YouTube (предпочтительнее для видео Flash, так как у них не будет прямых ссылок).

В случае менеджера загрузок для Ubuntu я рекомендую DownThemAll надстройка для Firefox (по умолчанию для веб-браузера для Ubuntu.

И для добавления кнопки «Загрузить» на YouTube сначала вам нужно установить DownThemAll в Firefox, а затем использовать этот скрипт, чтобы добавить эту «потрясающую» кнопку на YouTube. И хорошо, что этот сценарий Greasemonkey доступен и для других веб-браузеров .

Обновить

Сценарий Greasemonkey, упомянутый выше, не работает, однако, я в настоящее время использую это дополнение Firefox, которое работает просто тонкий и добавить довольно кнопку загрузки под видеокадром.

1
задан 31 July 2015 в 00:27

4 ответа

ethtool также покажет вам pci для интерфейса (bus-info:)

me@ubuntu:~$ ethtool -i eth0
driver: i40e
version: 1.5.16
firmware-version: 5.04 0x800024cd 0.0.0
bus-info: 0000:06:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
3
ответ дан 23 May 2018 в 18:37

Кажется, вы можете связать их вместе IRQ.

ifconfig -a 

будет печатать устройства ethernet, включая прерывание.

например.

eth2      Link encap:Ethernet  HWaddr 00:25:11:19:8b:77  
          inet addr:192.168.1.3  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::225:11ff:fe19:8b77/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:39958 errors:0 dropped:0 overruns:0 frame:0
          TX packets:34512 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:21410099 (21.4 MB)  TX bytes:4802798 (4.8 MB)
          Interrupt:43 Base address:0xa000
[d3 ], а

lspci -v

дает информацию PCI с IRQ

, например.

04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller (rev 01)
    Subsystem: Acer Incorporated [ALI] Device 0245
    Flags: bus master, fast devsel, latency 0, IRQ 43
    I/O ports at e800 [size=256]
    Memory at febff000 (64-bit, non-prefetchable) [size=4K]
    Expansion ROM at febc0000 [disabled] [size=128K]
    Capabilities: <access denied>
    Kernel driver in use: r8169
    Kernel modules: r8169

, так как я вижу, что оба являются 43, я могу сделать вывод, что eth2 04:00.0

2
ответ дан 23 May 2018 в 18:37
  • 1
    Спасибо за ваш добрый ответ. lshw обеспечил мне лучшее решение :) – Waqas 31 July 2015 в 08:25

Эта информация доступна в sysfs, не нужны помощники, такие как lshw / lspci / ethtool / udevadm:

$ grep PCI_SLOT_NAME /sys/class/net/*/device/uevent
/sys/class/net/enp4s0/device/uevent:PCI_SLOT_NAME=0000:04:00.0
/sys/class/net/wlp2s0/device/uevent:PCI_SLOT_NAME=0000:02:00.0
1
ответ дан 23 May 2018 в 18:37
  • 1
    Не под vmware, где нет символической ссылки устройства – Sam Liddicott 9 March 2018 в 16:00
  • 2
    Может быть, потому, что виртуальное сетевое устройство VMware не основано на Ethernet? – Vladimir Panteleev 9 March 2018 в 19:19
  • 3
    Благодарю. Вы в основном правы, я скоро обнаружил, но я не смог найти свой комментарий, чтобы удалить его. Произошло то, что устройство было привязано к igb_uio для DPDK, и поэтому исходные узлы устройств больше не были доступны. – Sam Liddicott 12 March 2018 в 19:20

Другое решение, используя udevadm

udevadm info -a -p /sys/class/net/eth{0..10} | awk '/device.*eth/'

{0..10} - проверяет исходные файлы с eth0 ... eth10

Поэтому вы можете использовать эту команду

pci_address=$(udevadm info -a -p /sys/class/net/eth{0..10} | awk -F/ '/device.*eth/ {print $4}')

Пример вывода

looking at device '/devices/pci0000:00/0000:00:03.0/net/eth0':

Поэтому адрес

0000:00:03.0

Или в вашем случае с помощью одной команды [ ! d7]

% pci_address=$(udevadm info -a -p /sys/class/net/eth{0..10} | awk -F/ '/device.*eth/ {print $4}')
% echo $pci_address
0000:00:03.0

или в скрипте

#!/bin/bash
udevadm info -a -p /sys/class/net/"$1" | awk -F/ '/device.*eth/ {print $4}'

Вызвать скрипт с помощью

script_name eth0

Вывод:

0000:00:03.0
0
ответ дан 23 May 2018 в 18:37
  • 1
    Аккуратная программа, udevadm! узнал что-то новое. +1 – Sergiy Kolodyazhnyy 31 July 2015 в 10:42
  • 2
    @Serg Мне нужно другое решение;) – A.B. 31 July 2015 в 10:43
  • 3
    @ A.B. lshw и выше подход дают мне два разных результата. Не должны ли оба предоставить одинаковый адрес pci? ура – Waqas 18 August 2015 в 11:23
  • 4
    @ Вакас, я не понимаю. – A.B. 18 August 2015 в 11:28

Другие вопросы по тегам:

Похожие вопросы: