HP ENVY - 13-ad001la Устройство чтения карт PCI Pop-Os 19.10 не работает

В дополнение к решению Патрика функциональность команды killall может быть воспроизведена с помощью следующего:

pkill -15 [process name]

Например, чтобы убить все запущенные процессы memcached, нужно написать следующее:

pkill -15 memcached

' -15' является числовым представлением сигнала SIGTERM POSIX. Чтобы получить список всех сигналов POSIX, которые могут быть отправлены процессу, используйте следующую команду:

kill -l

Будет возвращена следующая таблица:

1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL      10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS      34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX

Дополнительную информацию о том, что делает каждый сигнал, можно найти здесь .

3
19.04.2020, 02:41
2 ответа

Это не может работать, поскольку идентификатор устройства AU6625 был добавлен только в linux 5.6 .

(некоторые драйверы поддерживают «принудительное использование» модулей даже при несоответствии, но я бы не стал ждать, пока устройства чтения карт поддерживают это)

2
28.04.2021, 23:18

(Этот текст является автоматическим переводом с французского на английский.)

Здравствуйте,
мой опыт работы с этой картой.:

*"Alcor Micro AU6625 PCI-E Flash card reader controller"*

Если вы хотите перекомпилировать ядро ​​Linux, карта работает очень хорошо с драйвером AU6621, уже включенным в ядро ​​(, начиная с версии ядра 5.5.6 ). Просто «переименуйте» его в исходном коде модуля, а затем перекомпилируйте ядро ​​Linux. У меня это работает с версии ядра 5.5.9. Я использую его уже несколько месяцев без (явных )проблем, с этими версиями ядер (5.5.9, 5.5.16, 5.6.7, 5.6.9)

моя среда:

"HP ENVY Laptop 13-ad1xx"
LSPCI
02:00.0 Unassigned class [ff00]: Alcor Micro AU6625 PCI-E Flash card reader controller
Debian
Stock linux kernel: https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.6.7.tar.xz

Предупреждение, я не разработчик, я просто системный администратор, который любит время от времени перекомпилировать ядро ​​Linux.

В оставшейся части этого поста предполагается, что вы уже знаете, как перекомпилировать ядро ​​Linux. В противном случае лучше не продолжать этот процесс; Неправильная сборка ядра и его запуск могут быть очень опасными, вы можете повредить все данные на жестком диске.

Как только источники извлечены,следующие файлы должны быть скорректированы (найден командой оболочки "$ grep -i -n -r "AU662" *" )в корне распакованных исходных кодов ядра.

Заменить все ссылки с «6621» на «6625».

До изменения :$ grep -i -r -n "AU662"*

*drivers/misc/cardreader/alcor_pci.c:5: * Driver for Alcor Micro AU6601 and AU6621 controllers*
*drivers/misc/cardreader/alcor_pci.c:37:static const struct alcor_dev_cfg au6621_cfg = {*
*drivers/misc/cardreader/alcor_pci.c:41:static const struct alcor_dev_cfg au6625_cfg = {*
*drivers/misc/cardreader/alcor_pci.c:48:    { PCI_DEVICE(PCI_ID_ALCOR_MICRO, PCI_ID_AU6621),*
*drivers/misc/cardreader/alcor_pci.c:49:       .driver_data = (kernel_ulong_t)&au6621_cfg },*
*drivers/misc/cardreader/alcor_pci.c:50:    { PCI_DEVICE(PCI_ID_ALCOR_MICRO, PCI_ID_AU6625),*
*drivers/misc/cardreader/alcor_pci.c:51:       .driver_data = (kernel_ulong_t)&au6625_cfg },*
*drivers/misc/cardreader/Kconfig:8:   au6621.*
*drivers/mmc/host/alcor.c:5: * Driver for Alcor Micro AU6601 and AU6621 controllers*
*drivers/mmc/host/alcor.c:892:      /* The clk will not work on au6621. We need to trigger data*
*include/linux/alcor_pci.h:5: * Driver for Alcor Micro AU6601 and AU6621 controllers*
*include/linux/alcor_pci.h:19:#define PCI_ID_AU6621             0x6621*
*include/linux/alcor_pci.h:20:#define PCI_ID_AU6625             0x6625*
*include/linux/alcor_pci.h:36: * 0x10 - ADMA phy address. AU6621 only?*
*include/linux/alcor_pci.h:45: * The au6601 and au6621 have different DMA engines with different issues. One*
*include/linux/alcor_pci.h:46: * For example au6621 engine is triggered by addr change. No other interaction*
*include/linux/alcor_pci.h:54:#define AU6621_DMA_PAGE_CNT           0x05*
*include/linux/alcor_pci.h:57:/* ADMA ctrl? AU6621 only. */*
*include/linux/alcor_pci.h:58:#define AU6621_DMA_CTRL               0x0c*
*include/linux/alcor_pci.h:59:#define AU6621_DMA_ENABLE         BIT(0)*

После изменения:

*drivers/misc/cardreader/alcor_pci.c:5: * Driver for Alcor Micro AU6601 and AU6625 controllers*
*drivers/misc/cardreader/alcor_pci.c:37:static const struct alcor_dev_cfg au6625_cfg = {*
*drivers/misc/cardreader/alcor_pci.c:41:/*static const struct alcor_dev_cfg au6625_cfg = {*
*drivers/misc/cardreader/alcor_pci.c:48:    { PCI_DEVICE(PCI_ID_ALCOR_MICRO, PCI_ID_AU6625),*
*drivers/misc/cardreader/alcor_pci.c:49:       .driver_data = (kernel_ulong_t)&au6625_cfg },*
*drivers/misc/cardreader/Kconfig:8:   au6625.*
*drivers/mmc/host/alcor.c:5: * Driver for Alcor Micro AU6601 and AU6625 controllers*
*drivers/mmc/host/alcor.c:892:      /* The clk will not work on au6625. We need to trigger data*
*include/linux/alcor_pci.h:5: * Driver for Alcor Micro AU6601 and AU6625 controllers*
*include/linux/alcor_pci.h:19:#define PCI_ID_AU6621             0x6621*
*include/linux/alcor_pci.h:20:#define PCI_ID_AU6625             0x6625*
*include/linux/alcor_pci.h:36: * 0x10 - ADMA phy address. AU6625 only?*
*include/linux/alcor_pci.h:45: * The au6601 and au6625 have different DMA engines with different issues. One*
*include/linux/alcor_pci.h:46: * For example au6625 engine is triggered by addr change. No other interaction*
*include/linux/alcor_pci.h:54:#define AU6625_DMA_PAGE_CNT           0x05*
*include/linux/alcor_pci.h:57:/* ADMA ctrl? AU6625 only. */*
*include/linux/alcor_pci.h:58:#define AU6625_DMA_CTRL               0x0c*
*include/linux/alcor_pci.h:59:#define AU6625_DMA_ENABLE         BIT(0)*

Два важных замечания:

  • начиная с ядра 5.6.x, похоже, запускается драйвер AU6625, включенный в ядро, но этот включенный драйвер пока не работает (по крайней мере, в моей конфигурации и до ядра 5.6.9, которое я сейчас использую )Поэтому вы должны «закомментировать» или удалить эту новую часть из кода.

  • После перезагрузки этого нового скомпилированного ядра команда «lspci» будет по-прежнему отображать «Неназначенный класс…».
    для меня

    02 :00.0 Неназначенный класс [ff00] :Alcor Micro AU6625 PCI -E Контроллер считывателя флэш-карт

Но карта в любом случае работает очень хорошо и монтируется в моем файловом менеджере (Nautilus ), как и любой другой.

dmesg

May 10 13:35:35 MylapX kernel: [    0.818161] pci 0000:02:00.0: [1aea:6625] type 00 class 0xff0000
May 10 13:35:35 MylapX kernel: [    0.818209] pci 0000:02:00.0: reg 0x10: [mem 0xb4200000-0xb4200fff 64bit]
May 10 13:35:35 MylapX kernel: [    0.818386] pci 0000:02:00.0: supports D1 D2
May 10 13:35:35 MylapX kernel: [    0.818388] pci 0000:02:00.0: PME# supported from D1 D2 D3hot D3cold

May 10 13:35:35 MylapX kernel: [    2.845290] alcor_pci 0000:02:00.0: enabling device (0000 -> 0002)

May 10 13:35:39 MylapX kernel: [    7.617586] mmc0: Skipping voltage switch
May 10 13:35:39 MylapX kernel: [    7.877031] mmc0: new high speed SDXC card at address aaaa
May 10 13:35:39 MylapX kernel: [    7.880661] mmcblk0: mmc0:aaaa ACLCF 119 GiB 
May 10 13:35:39 MylapX kernel: [    7.896324]  mmcblk0: p1

фдиск -л

Disk /dev/mmcblk0: 119.9 GiB, 127865454592 bytes, 249737216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device         Boot Start       End   Sectors   Size Id Type
/dev/mmcblk0p1      32768 249737215 249704448 119.1G  7 HPFS/NTFS/exFAT

$ дф -ч

Filesystem      Size  Used Avail Use% Mounted on
/dev/mmcblk0p1  120G   98G   22G  82% /media/user/3561-6331
0
28.04.2021, 23:18

Теги

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