Restart modulu pro USB

Restart modulu pro USB
« kdy: 26. 02. 2019, 13:30:25 »
Mam 3x DVB-T usb tuner a pokryvam 3 multiplexy. Obcas sa stane, ze niektory z tunerov vypadne (je mozne, ze na nom neni signal, ale pravdepodobne tam signal je, lebo na ostatnych dvoch vsetko funguje a napajane su z jednej anteny cez spliter).
Urcite by pomohlo ak by som ho fyzicky reinsertol, ale som od neho trochu vzdialeny.
Dalsou z moznosti by bolo restart servera, ale to neprichadza do uvahy, pretoze na servery mi bezia aj ine sluzby a nakoniec dvb server je v LXC, takze by som musel restartnut cely proxmox (stop/start lxc nema zmysel).
Uvazujem o odstraneni a zavedeni modulu do kernelu, ale modul sa neda odobrat, pretoze sa pouziva
Kód: [Vybrat]
lsmod | grep dvb
Kód: [Vybrat]
dvb_usb_rtl28xxu       40960  4
dvb_usb_v2             40960  1 dvb_usb_rtl28xxu
dvb_core              126976  2 dvb_usb_v2,rtl2832
rc_core                36864  7 ir_lirc_codec,lirc_dev,dvb_usb_v2,dvb_usb_rtl28xxu
Kód: [Vybrat]
rmmod dvb_usb_rtl28xxunepomohol ani prepinac -rf
Kód: [Vybrat]
rmmod: ERROR: Module dvb_usb_rtl28xxu is in useAko by som mohol odstranit a zaviest modul, resp. je nejake ine riesenie, ktore som uz spomenul ?
« Poslední změna: 26. 02. 2019, 14:30:25 od Petr Krčmář »


czipis

  • ***
  • 212
    • Zobrazit profil
    • E-mail
Re:restart modulu
« Odpověď #1 kdy: 26. 02. 2019, 14:06:04 »
zkus reset konkretniho usb portu.
nekolik ruznych metod je popsano napr. zde https://askubuntu.com/questions/645/how-do-you-reset-a-usb-device-from-the-command-line

Re:Restart modulu pro USB
« Odpověď #2 kdy: 28. 02. 2019, 09:08:09 »
Ta prva moznost zafungovala
Kód: [Vybrat]
/* usbreset -- send a USB port reset to a USB device */

#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/ioctl.h>

#include <linux/usbdevice_fs.h>


int main(int argc, char **argv)
{
    const char *filename;
    int fd;
    int rc;

    if (argc != 2) {
        fprintf(stderr, "Usage: usbreset device-filename\n");
        return 1;
    }
    filename = argv[1];

    fd = open(filename, O_WRONLY);
    if (fd < 0) {
        perror("Error opening output file");
        return 1;
    }

    printf("Resetting USB device %s\n", filename);
    rc = ioctl(fd, USBDEVFS_RESET, 0);
    if (rc < 0) {
        perror("Error in ioctl");
        return 1;
    }
    printf("Reset successful\n");

    close(fd);
    return 0;
}

Re:Restart modulu pro USB
« Odpověď #3 kdy: 28. 02. 2019, 13:54:35 »
Jen, aby nesekl hardwarově myslím, že "ven z toho" přerušení napájení.
Zde odkaz https://raspberrypiandstuff.wordpress.com/2017/08/04/rtl_433-on-a-raspberry-pi-made-bulletproof/
kde reset RTL2838 USB je pod Phytonem.