abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 12:44 | Komunita

Od 7. do 10. června proběhla v Berlíně Linux Audio Conference 2018. Na programu byla řada zajímavých přednášek, seminářů a vystoupení. Videozáznamy lze zhlédnout na media.ccc.de.

Ladislav Hagara | Komentářů: 0
dnes 09:44 | Pozvánky

Červencový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 7. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát bude přednáška na téma: automatizační nástroj Ansible, kterou si připravil Martin Vicián.

xkucf03 | Komentářů: 0
14.7. 22:44 | Nová verze

Bylo oznámeno vydání KDE Frameworks 5.48.0, tj. nové verze aktuálně 72 knihoven rozšířujících multiplatformní framework Qt. Řešena je mimo jiné bezpečnostní chyba CVE-2018-10361 v KTextEditoru zneužitelná k lokální eskalaci práv. Knihovny KDE Frameworks jsou dnes využívány nejenom KDE Plasmou a KDE Aplikacemi.

Ladislav Hagara | Komentářů: 5
14.7. 20:11 | Nová verze

Byl vydán Debian 9.5, tj. pátá opravná verze Debianu 9 s kódovým názvem Stretch. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Předchozí instalační média Debianu 9 Stretch lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.

Ladislav Hagara | Komentářů: 8
13.7. 23:55 | Komunita

V Národní technické knihovně (NTK) je 150 nových počítačů s operačním systémem Linux, konkrétně s linuxovou distribucí Fedora. Do konce prázdnin si na nich lze zahrát počítačovou hru Factorio (Wikipedie). V pondělí 23. 7. proběhne LAN party s vývojáři této hry.

Ladislav Hagara | Komentářů: 0
13.7. 17:33 | Zajímavý software

Fanatical (Wikipedie) má ve slevě řadu počítačových her běžících také na Linuxu. Balíček her Fanatical Strategy Bundle lze koupit za 1,99 eur.

Ladislav Hagara | Komentářů: 1
13.7. 11:44 | Zajímavý software

Byla vydána počítačová hra Warhammer 40,000: Gladius - Relics of War běžící také na Linuxu. Koupit ji lze na GOG, Humble Store i na Steamu. Videoukázka na YouTube.

Ladislav Hagara | Komentářů: 0
13.7. 10:33 | Komunita

Guido van Rossum, původní tvůrce a doposud vedoucí projektu Python, oznámil, že opouští svou roli, tedy již se nebude podílet na tvorbě PEP a výběru hlavních vývojářů, odchází na odpočinek a do budoucna bude nejvýše řadovým přispěvatelem. Situace vyplynula mj. z procesu schvalování PEP 572.

Fluttershy, yay! | Komentářů: 4
12.7. 17:22 | Nasazení Linuxu

Článek na OMG! Ubuntu! představuje vesmírného interaktivního asistenta CIMON (Crew Interactive Mobile CompaniON) vyvinutého ve spolupráci firem Airbus a IBM. Uvnitř této osmikilogramové koule s osmipalcovým displejem běží Ubuntu. Více ve videu na YouTube.

Ladislav Hagara | Komentářů: 7
12.7. 12:00 | Zajímavý software

Uživatelé Androidu si z Google Play mohou nainstalovat aplikaci Notes by Firefox od Mozilly. Jedná se o jednoduchý poznámkový blok synchronizovaný z rozšířením Firefoxu Notes z Firefox Test Pilotu.

Ladislav Hagara | Komentářů: 7
Jak čtete delší texty z webových stránek?
 (77%)
 (21%)
 (5%)
 (7%)
 (2%)
 (10%)
Celkem 351 hlasů
 Komentářů: 40, poslední 29.6. 10:21
    Rozcestník
    Nástroje

    07ca:0337 AVerMedia A867 DVB-T dongle

    Identifikace pod Linuxem

    Bus 001 Device 006: ID 07ca:0337 AVerMedia Technologies, Inc. A867 DVB-T dongle

    Postup zprovoznění pod Linuxem

    Ovladač je značně zastaralý a nelze zkompilovat na jádrech 3.5 a vyšší. Povedlo se mi napsat patch pro zprovoznění na Linux Mint 17 resp. Ubuntu 14.04 s jádrem 3.13. Nezkoušel jsem dálkový ovladač, proto uvádím částečná podpora.

    1. Nainstalujte zdrojové a hlavičkové soubory jádra:
      sudo apt-get install linux-source
      sudo apt-get install linux-headers-`uname -r`
      
    2. Zdrojové soubory rozbalte
      cd /usr/src
      tar -xjvf linux-source-XYZ
    3. Vytvořte symbolický odkaz v /lib/modules/jádro/source na zdrojové soubory jádra
      ln -s /usr/src/linux-source-XYZ /lib/modules/`uname -r`/source
    4. Ze stránek výrobce si stáhněte originální ovladač zde a rozbalte do adresáře /usr/local/src/a867_drv_v1.0.29
    5. Vytvořte patch soubor a867_v1.0.29.patch a uložte do adresáře a867_drv_v1.0.29

      Aplikujte patch

      patch -p1 -i a867_v1.0.29.patch
    6. Kompilace a instalace ovladače
      make
      make install 
    7. Pokud vše proběhlo jak má, vytvořil se soubor a867.ko, který se zkopíroval do adresáře /lib/modules/j`uname -r`/kernel/drivers/media/usb/dvb-usb
      Po instalaci doporučuji aktualizovat informace o modulech
      depmod -a

    Poznámka

    a867_v1.0.29.patch

    Při kopírování patche z WEBu je problém, že většina řádků je zakončena CRLF znaky. Tento detail, ale způsobí, že patch nejde aplikovat. Dneska jsem ještě objevil mušku - na uložto už jsem novou verzi nedával. Jedná se o Makefile řádek ifneq (,$(wildcard $(KSRC)/drivers/media/dvb/.))^M. Správně je ifNeq.

    diff -uprN a867_drv_v1.0.29/af903x-fe.c a867_drv_v1.0.29_new/af903x-fe.c
    --- a867_drv_v1.0.29/af903x-fe.c    2012-05-22 15:45:29.000000000 +0200
    +++ a867_drv_v1.0.29_new/af903x-fe.c    2014-08-12 19:42:39.973513655 +0200
    @@ -6,15 +6,18 @@
    #include <linux/list.h>
    #include <linux/module.h>

    +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0))
    +#include <linux/kthread.h>
    +#endif
    +
    #include "af903x.h"
    #include "dvb_frontend.h"
    #include "standard.h"
    -
    +#include <linux/dvb/frontend.h>
    #define A333_FREQ_MIN    44250000
    #define A333_FREQ_MAX    867250000


    -
    static int alwayslock; // default to 0
    module_param(alwayslock, int, 0644);
    MODULE_PARM_DESC(alwayslock, "Whether to always report channel as locked (default:no).");
    @@ -22,7 +25,7 @@ MODULE_PARM_DESC(alwayslock, "Whether to

    struct af903xm_state {
    struct dvb_frontend demod;
    -    fe_bandwidth_t current_bandwidth;
    +    u32 current_bandwidth;
    uint32_t current_frequency;

    struct completion thread_exit;
    @@ -305,22 +308,28 @@ static int af903x_identify(struct af903x
    return 0;
    }

    -static int af903x_get_frontend(struct dvb_frontend* fe,
    -                struct dvb_frontend_parameters *fep)
    +
    +static int af903x_get_frontend(struct dvb_frontend* fe)
    {
    +    struct dtv_frontend_properties *fep = &fe->dtv_property_cache;    
    struct af903xm_state *state = fe->demodulator_priv;
    +    u32 delsys;

    deb_data("- Enter %s Function -\n",__FUNCTION__);
    +
    +    delsys = fep->delivery_system;
    memset(fep, 0, sizeof(*fep));
    +    fep->delivery_system = delsys;
    +
    fep->frequency = state->current_frequency;
    fep->inversion = INVERSION_AUTO;
    -    fep->u.ofdm.bandwidth = state->current_bandwidth;
    +    fep->bandwidth_hz = state->current_bandwidth;
    return 0;
    }

    -static int af903x_set_frontend(struct dvb_frontend* fe,
    -                struct dvb_frontend_parameters *fep)
    +static int af903x_set_frontend(struct dvb_frontend* fe)
    {
    +    struct dtv_frontend_properties *fep = &fe->dtv_property_cache;
    struct af903xm_state *state = fe->demodulator_priv;
    struct af903x_ofdm_channel ch;
    u16 bw=0;
    @@ -338,15 +347,15 @@ static int af903x_set_frontend(struct dv
    return -EINVAL;
    }

    -    switch(fep->u.ofdm.bandwidth) {
    -    case BANDWIDTH_8_MHZ: bw=8; break;
    -    case BANDWIDTH_7_MHZ: bw=7; break;
    -    case BANDWIDTH_6_MHZ: bw=6; break;
    +    switch(fep->bandwidth_hz) {
    +    case 8000000: bw=8; break;
    +    case 7000000: bw=7; break;
    +    case 6000000: bw=6; break;

    case 6:  
    case 7:
    case 8:
    -        bw = fep->u.ofdm.bandwidth;
    +        bw = fep->bandwidth_hz;
    deb_data("- %s wrong bw value: %d -\n",__FUNCTION__, fep->u.ofdm.bandwidth);
    break;
    default:
    @@ -360,7 +369,7 @@ static int af903x_set_frontend(struct dv
    ch.Bw               = bw;
    deb_data("- %s freq=%d KHz, bw=%d MHz -\n",__FUNCTION__, ch.RF_kHz,  ch.Bw);

    -    state->current_bandwidth = fep->u.ofdm.bandwidth;
    +    state->current_bandwidth = fep->bandwidth_hz;
    state->current_frequency = fep->frequency;

    ret = af903x_tune(fe, &ch);
    @@ -371,6 +380,8 @@ static int af903x_set_frontend(struct dv
    return ret;
    }

    +
    +
    static int af903x_read_status(struct dvb_frontend *fe, fe_status_t *stat)
    {
    DWORD dwError;
    @@ -539,9 +550,10 @@ static void af903x_release(struct dvb_fr
    }

    static struct dvb_frontend_ops af903x_ops = {
    +    .delsys = { SYS_DVBT },
    .info = {
    .name = "A867 USB DVB-T",
    -        .type = FE_OFDM,
    +        //.type = FE_OFDM,
    .frequency_min      = A333_FREQ_MIN,
    .frequency_max      = A333_FREQ_MAX,
    .frequency_stepsize = 62500,
    @@ -590,7 +602,7 @@ struct dvb_frontend * af903x_attach(u8 t

    return demod;
    }
    -
    +//EXPORT_SYMBOL(af903x_attach);

    static Dword Monitor_GPIO8(void)
    {
    @@ -688,7 +700,10 @@ static int af903x_monitor_thread_func(vo
    sigfillset(&current->blocked);
    sprintf(current->comm, "%s", thread_name);
    #else
    +
    +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0))
    daemonize("%s", thread_name);
    +#endif
    allow_signal(SIGTERM);
    #endif
    siginitsetinv(&current->blocked, sigmask(SIGKILL)|sigmask(SIGINT)|\
    @@ -769,7 +784,11 @@ void af903x_start_monitor_thread(struct
    if( atomic_add_unless(&st->thread_created, 1, 1) ) {
    st->thread_should_stop = 0;
    init_completion(&st->thread_exit);  
    +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0))
    kernel_thread(af903x_monitor_thread_func, st, 0);
    +#else
    +                kthread_run(af903x_monitor_thread_func, st, "af903x_monitor");
    +#endif
    }
    #endif //USE_MONITOR_TH

    diff -uprN a867_drv_v1.0.29/af903x-tuner.c a867_drv_v1.0.29_new/af903x-tuner.c
    --- a867_drv_v1.0.29/af903x-tuner.c    2010-11-10 04:46:22.000000000 +0100
    +++ a867_drv_v1.0.29_new/af903x-tuner.c    2014-08-12 19:42:39.973513655 +0200
    @@ -9,13 +9,15 @@
    #define IF2  36150       // IF2 frequency = 36.150 MHz
    #define FREF 16000       // Quartz oscillator 16 MHz

    -static int tuner_set_params(struct dvb_frontend *fe, struct dvb_frontend_parameters *params)
    +static int tuner_set_params(struct dvb_frontend *fe)
    {
    +    struct dtv_frontend_properties *params = &fe->dtv_property_cache;
    struct tuner_priv *priv=NULL;
    DWORD dwError = Error_NO_ERROR;
    DWORD freq = params->frequency ;// 1000; // Hz -> kHz

    -    priv->bandwidth = (fe->ops.info.type == FE_OFDM) ? params->u.ofdm.bandwidth : 0;
    +    priv->bandwidth = (params->delivery_system == SYS_DVBT) ? params->bandwidth_hz : 0;
    +    //priv->bandwidth = (fe->ops.info.type == FE_OFDM) ? params->bandwidth_hz : 0;

    deb_data("%s - freq : %d , bandwidth : %dn",__FUNCTION__, freq,priv->bandwidth);

    @@ -24,6 +26,8 @@ static int tuner_set_params(struct dvb_f

    return 0;
    }
    +
    +
    static int tuner_get_frequency(struct dvb_frontend *fe, u32 *frequency)
    {
    struct tuner_priv *priv = fe->tuner_priv;
    @@ -70,6 +74,7 @@ static const struct dvb_tuner_ops tuner_
    .sleep         = tuner_sleep,

    .set_params    = tuner_set_params,
    +
    .get_frequency = tuner_get_frequency,
    .get_bandwidth = tuner_get_bandwidth
    };
    diff -uprN a867_drv_v1.0.29/Makefile a867_drv_v1.0.29_new/Makefile
    --- a867_drv_v1.0.29/Makefile    2010-11-10 04:46:22.000000000 +0100
    +++ a867_drv_v1.0.29_new/Makefile    2014-08-12 19:43:32.077515006 +0200
    @@ -1,7 +1,6 @@

    EXTRA_CFLAGS = -DEXPORT_SYMTAB

    -BUILD_DEP = dvb-usb/dvb-usb-common.h dvb-usb/dvb-usb.h dvb-usb/dvb-usb-ids.h dvb-core/dvb_frontend.h dvb-core/dvbdev.h dvb-core/dmxdev.h dvb-core/dvb_demux.h dvb-core/dvb_net.h dvb-core/demux.h dvb-core/dvb_ringbuffer.h frontends/dvb-pll.h

    ifneq ($(KOBJ),)
    version := $(shell egrep -e '^VERSION ' $(KSRC)/Makefile | awk 'BEGIN{FS="="}{print $$2}' | tr -d ' ')
    @@ -29,9 +28,24 @@ INSTALL := $(shell which install)
    DEPMOD  := $(shell which depmod || which /sbin/depmod || echo "true You should now run depmod")

    # SYSTEM DVB setting
    +ifneq (,$(wildcard $(KSRC)/drivers/media/dvb/.))
    +BUILD_DEP = dvb/dvb-usb/dvb-usb-common.h dvb/dvb-usb/dvb-usb.h dvb/dvb-usb/dvb-usb-ids.h dvb/dvb-core/dvb_frontend.h dvb/dvb-core/dvbdev.h dvb/dvb-core/dmxdev.h dvb/dvb-core/dvb_demux.h dvb/dvb-core/dvb_net.h dvb/dvb-core/demux.h dvb/dvb-core/dvb_ringbuffer.h dvb/frontends/dvb-pll.h
    +
    +MISSINGFILE := $(shell for i in $(BUILD_DEP); do if [ ! -f $(KSRC)/drivers/media/$$i ]; then echo $$i; fi; done)
    +
    DVB_FLAGS += -I$(KSRC)/drivers/media/dvb/dvb-core/
    DVB_FLAGS += -I$(KSRC)/drivers/media/dvb/dvb-usb/
    DVB_FLAGS += -I$(KSRC)/drivers/media/dvb/frontends/
    +else
    +BUILD_DEP = usb/dvb-usb/dvb-usb-common.h usb/dvb-usb/dvb-usb.h dvb-core/dvb-usb-ids.h dvb-core/dvb_frontend.h dvb-core/dvbdev.h dvb-core/dmxdev.h dvb-core/dvb_demux.h dvb-core/dvb_net.h dvb-core/demux.h dvb-core/dvb_ringbuffer.h dvb-frontends/dvb-pll.h
    +
    +MISSINGFILE := $(shell for i in $(BUILD_DEP); do if [ ! -f $(KSRC)/drivers/media/$$i ]; then echo $$i; fi; done)
    +
    +DVB_FLAGS += -I$(KSRC)/drivers/media/dvb-core/
    +DVB_FLAGS += -I$(KSRC)/drivers/media/usb/dvb-usb/
    +DVB_FLAGS += -I$(KSRC)/drivers/media/dvb-frontends/
    +endif
    +
    EXTRA_CFLAGS += $(DVB_FLAGS)

    EXTRA_CFLAGS += -Wno-unused-value -Wno-unused-variable -Wno-unused-parameter \
    @@ -41,20 +55,23 @@ a867-objs := af903x-core.o af903x-device
    demodulator.o demodulatorextend.o usb2impl.o user.o mxl5007t.o Maxlinear_MXL5007.o Afa_AF9007.o
    obj-m += a867.o

    -MISSINGFILE := $(shell for i in $(BUILD_DEP); do if [ ! -f $(KSRC)/drivers/media/dvb/$$i ]; then echo $$i; fi; done)

    ifeq ($(MISSINGFILE),)
    default:
    make -C $(KSRC) O=$(KOBJ) SUBDIRS=`pwd` modules
    else
    default:
    -    @echo Missing files that required to build driver: $(KSRC)/drivers/media/dvb/$(MISSINGFILE)
    -    @echo Try to get kernel source closest to $(CURRENT) from www.kernel.org and then copy to $(KSRC)/drivers/media/dvb  
    +    @echo Missing files that required to build driver: $(KSRC)/drivers/media/$(MISSINGFILE)
    +    @echo Try to get kernel source closest to $(CURRENT) from www.kernel.org and then copy to $(KSRC)/drivers/media  
    endif

    install:
    -    @install -d $(DESTDIR)/lib/modules/$(CURRENT)/kernel/drivers/media/dvb/a867
    -    $(INSTALL) -c -D -m 644 -c a867.ko $(DESTDIR)/lib/modules/$(CURRENT)/kernel/drivers/media/dvb/a867/
    +    if [ -d "$(DESTDIR)/lib/modules/$(CURRENT)/kernel/drivers/media/dvb" ];then  \
    +             install -d $(DESTDIR)/lib/modules/$(CURRENT)/kernel/drivers/media/dvb/a867; \
    +             install -c -D -m 644 -c a867.ko $(DESTDIR)/lib/modules/$(CURRENT)/kernel/drivers/media/dvb/a867/;    \
    +        else \
    +               install -c -D -m 644 -c a867.ko $(DESTDIR)/lib/modules/$(CURRENT)/kernel/drivers/media/usb/dvb-usb/;   \
    +        fi  
    /sbin/depmod -a

    remove:

    Dokument vytvořil: Skokan, 11.8.2014 21:26 | Poslední úprava: Skokan, 12.8.2014 20:20 | Historie změn | Zobrazeno: 1099×

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.