установить экспресс-карту USB 3.0 под Linux (Arch Linux) (попытался добавить параметр ядра intel_iommu = off pciehp.pciehp_force = 1)

Вы можете использовать bc и printf :

printf "%0.f" "$(bc <<<"$(date +"%s.%N")*1000")"

Это дает количество миллисекунд с января 1970 года. Я специально не использовал опцию scale = n в bc , потому что это не округляет значение, а убирает все остальное (я знаю, это педантично). bc читает из файла или со стандартного ввода. - это здесь строка , которая расширяет содержимое и предоставляет его в качестве стандартного ввода для bc . Он передается в printf для округления значения.


Рассмотрите это как пример:

$ d=$(date "+%s.%N")
$ echo $d; bc <<<"scale=0; ($d*1000)/1"; printf "%0.f" "$(bc <<<"$d*1000")"
1445423229.512731661 # plain date
1445423229512 # bc with scale
1445423229513 # bc/printf

Тогда в цикле это будет выглядеть так:

command | while read line; do
  d=$(printf "%0.f" "$(bc <<<"$(date +"%s.%N")*1000")")
  echo "$d $line"
done >file

1
07.05.2019, 15:36
4 ответа

Tengo el mismo problema o uno similar. Abrí un hilo aquí :https://bbs.archlinux.org/viewtopic.php?pid=1784837

Mis pruebas dieron como resultado que apareció con el kernel 4.12.8 -1 -ARCH. Y en otra laptop esta misma tarjeta funciona -ahora con linux 4.15.15.

2
27.01.2020, 23:14

Хм. Если я что-то не упустил, похоже, что контроллер инициализируется дважды:

[    5.195136] xhci_hcd 0000:05:00.0: xHCI Host Controller
[    5.195145] xhci_hcd 0000:05:00.0: new USB bus registered, assigned bus number 3
[    5.202621] xhci_hcd 0000:05:00.0: hcc params 0x014051cf hci version 0x100 quirks 0x00000090
....
[    5.203568] xhci_hcd 0000:05:00.0: xHCI Host Controller
[    5.203572] xhci_hcd 0000:05:00.0: new USB bus registered, assigned bus number 4
[    5.204014] usb usb4: We don't know the algorithms for LPM for this host, disabling LPM.

В Информации о продукте Renesas говорится, что, несмотря на наличие двух портов для каждого устаревшего корневого концентратора USB 3.0/USB 2.0, существует только один корневой концентратор, поэтому я не понимаю, что происходит.

Если два экземпляра xhci_hcdпытаются управлять картой одновременно, то, конечно, это пойдет не так.

Следующее, что я должен сделать, это просмотреть исходный код xhci_hcdи перекомпилировать его с поддержкой отладки. Для этого требуется опыт программирования, поэтому, если вы не знаете, как это сделать, в качестве альтернативы отправьте отчет об ошибке для любого средства отслеживания ошибок ядра xhci_hcd, даже если разработчики просто скажут вам, что я глуп, а повторная инициализация — это нормально.

Редактировать

При просмотре отладочных сообщений это выглядит очень странно:

[    2.423207] xhci_hcd 0000:05:00.0: Finished xhci_run for USB2 roothub
[    2.423420] xhci_hcd 0000:05:00.0: Endpoint 0x81 ep reset callback called
[    2.423547] xhci_hcd 0000:05:00.0: set port power, actual port 0 status  = 0x2a0
[    2.423563] xhci_hcd 0000:05:00.0: set port power, actual port 1 status  = 0x2a0
[    2.423613] xhci_hcd 0000:05:00.0: xHCI Host Controller
[    2.423616] xhci_hcd 0000:05:00.0: new USB bus registered, assigned bus number 2
[    2.423621] xhci_hcd 0000:05:00.0: // Turn on HC, cmd = 0x5.
[    2.426468] xhci_hcd 0000:05:00.0: Finished xhci_run for USB3 roothub
[    2.426630] xhci_hcd 0000:05:00.0: Endpoint 0x81 ep reset callback called
[    2.426798] xhci_hcd 0000:05:00.0: set port power, actual port 0 status  = 0x2a0
[    2.426819] xhci_hcd 0000:05:00.0: set port power, actual port 1 status  = 0x2a0
[    2.426893] xhci_hcd 0000:05:00.0: remove, state 1
[    2.427674] xhci_hcd 0000:05:00.0: USB bus 2 deregistered
[    2.427731] xhci_hcd 0000:05:00.0: remove, state 1

Итак, после инициализации всего и на USB 2.0, и на корневом концентраторе USB 3.0 вызывается сброс. Они удаляются, а затем драйвер снова пытается инициализировать все это (, что является второй инициализацией, которую я видел ). Только на этот раз сильно не получается.

В исходном коде ядра функция xhci_endpoint_resetимеет комментарии вроде «Возможно, нам потребуется реализовать config ep cmd в xhci 4.8.1» и «Пока просто напечатайте отладку, чтобы следить за ситуацией».

Так что это определенно дело разработчиков ядра. Обязательно дополните отчет об ошибке выводом отладки.

3
27.01.2020, 23:14

С новейшим текущим ядром 5.0.10-arch1-1-ARCHкарта работает. Но в моей системе это работает только тогда, когда я вставляю устройство перед загрузкой.

Другие решения:

В приведенной выше ссылке Ксавьер говорит здесь , что он нашел обходной путь, добавив параметр ядра -pci=nomsiв параметры загрузки. Я не исследовал это дальше.

1
27.01.2020, 23:14

Добавление iommu=softк параметрам grub решило мою проблему

0
17.04.2021, 16:12

Теги

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