Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.
Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
Společnost Amazon miliardáře Jeffa Bezose vypustila na oběžnou dráhu první várku družic svého projektu Kuiper, který má z vesmíru poskytovat vysokorychlostní internetové připojení po celém světě a snažit se konkurovat nyní dominantnímu Starlinku nejbohatšího muže planety Elona Muska.
Poslední aktualizací začal model GPT-4o uživatelům příliš podlézat. OpenAI jej tak vrátila k předchozí verzi.
Google Chrome 136 byl prohlášen za stabilní. Nejnovější stabilní verze 136.0.7103.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 8 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »Podpora: | částečná |
Ovladač: | dodává výrobce |
Adresa ovladače: | http://avertv.avermedia.com/Support/DownloadCoun.. |
Zastaralý: | ano |
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.
sudo apt-get install linux-source sudo apt-get install linux-headers-`uname -r`
cd /usr/src tar -xjvf linux-source-XYZ
ln -s /usr/src/linux-source-XYZ /lib/modules/`uname -r`/source
Aplikujte patch
patch -p1 -i a867_v1.0.29.patch
make make install
depmod -a
a867_v1.0.29.patch
diff -rupBN 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-11 19:36:41.181953750 +0200 @@ -6,15 +6,18 @@ #include #include +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)) +#include +#endif + #include "af903x.h" #include "dvb_frontend.h" #include "standard.h" - +#include #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(¤t->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(¤t->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 -rupBN 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 2013-04-25 21:13:22.000000000 +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 -rupBN 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-11 19:20:29.137928544 +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 +ifeq (,$(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:25 | Zobrazeno: 1387×
Tiskni
Sdílej: