Автор Тема: [Решено]:Omicom S2 Runtu 12.04 не могу скомпилировать драйвера  (Прочитано 4444 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн greg

  • Постоялец
  • ***
  • Автор темы
  • Сообщений: 214
  • восемь бед, один ресет...
    • ТРЦ Жигалово
Делал как тут http://viaccessfree.biz/forum/showthread.php?s=758a3a73636924b3d8df7657740ef192&p=714322
.............................................
 CC [M]  /home/user/s2-liplianin-v35/v4l/saa7164-cmd.o
  CC [M]  /home/user/s2-liplianin-v35/v4l/saa7164-api.o
  CC [M]  /home/user/s2-liplianin-v35/v4l/saa7164-buffer.o
  CC [M]  /home/user/s2-liplianin-v35/v4l/saa7164-encoder.o
  CC [M]  /home/user/s2-liplianin-v35/v4l/saa7164-vbi.o
  CC [M]  /home/user/s2-liplianin-v35/v4l/saa716x_pci.o
/home/user/s2-liplianin-v35/v4l/saa716x_pci.c:20:20: warning: 'saa716x_msi_handler' defined but not used [-Wunused-function]
  CC [M]  /home/user/s2-liplianin-v35/v4l/saa716x_i2c.o
  CC [M]  /home/user/s2-liplianin-v35/v4l/saa716x_cgu.o
  CC [M]  /home/user/s2-liplianin-v35/v4l/saa716x_msi.o
  CC [M]  /home/user/s2-liplianin-v35/v4l/saa716x_dma.o
  CC [M]  /home/user/s2-liplianin-v35/v4l/saa716x_vip.o
  CC [M]  /home/user/s2-liplianin-v35/v4l/saa716x_aip.o
  CC [M]  /home/user/s2-liplianin-v35/v4l/saa716x_phi.o
  CC [M]  /home/user/s2-liplianin-v35/v4l/saa716x_boot.o
  CC [M]  /home/user/s2-liplianin-v35/v4l/saa716x_fgpi.o
  CC [M]  /home/user/s2-liplianin-v35/v4l/saa716x_adap.o
  CC [M]  /home/user/s2-liplianin-v35/v4l/saa716x_gpio.o
  CC [M]  /home/user/s2-liplianin-v35/v4l/saa716x_greg.o
  CC [M]  /home/user/s2-liplianin-v35/v4l/saa716x_rom.o
/home/user/s2-liplianin-v35/v4l/saa716x_rom.c: In function 'saa716x_eeprom_data':
/home/user/s2-liplianin-v35/v4l/saa716x_rom.c:1070:1: warning: the frame size of 1120 bytes is larger than 1024 bytes [-Wframe-larger-than=]
  CC [M]  /home/user/s2-liplianin-v35/v4l/saa716x_spi.o
  CC [M]  /home/user/s2-liplianin-v35/v4l/saa716x_ff_main.o
In file included from /home/user/s2-liplianin-v35/v4l/saa716x_ff_main.c:47:0:
/home/user/s2-liplianin-v35/v4l/saa716x_ff_cmd.h:6:7: error: unknown type name 'osd_raw_cmd_t'
/home/user/s2-liplianin-v35/v4l/saa716x_ff_cmd.h:8:11: error: unknown type name 'osd_raw_cmd_t'
/home/user/s2-liplianin-v35/v4l/saa716x_ff_cmd.h:10:8: error: unknown type name 'osd_raw_data_t'
/home/user/s2-liplianin-v35/v4l/saa716x_ff_main.c: In function 'dvb_osd_ioctl':
/home/user/s2-liplianin-v35/v4l/saa716x_ff_main.c:335:13: error: 'OSD_RAW_CMD' undeclared (first use in this function)
/home/user/s2-liplianin-v35/v4l/saa716x_ff_main.c:335:13: note: each undeclared identifier is reported only once for each function it appears in
/home/user/s2-liplianin-v35/v4l/saa716x_ff_main.c:336:3: error: unknown type name 'osd_raw_cmd_t'
/home/user/s2-liplianin-v35/v4l/saa716x_ff_main.c:344:49: error: request for member 'cmd_data' in something not a structure or union
/home/user/s2-liplianin-v35/v4l/saa716x_ff_main.c:348:4: error: implicit declaration of function 'sti7109_raw_osd_cmd' [-Werror=implicit-function-declaration]
/home/user/s2-liplianin-v35/v4l/saa716x_ff_main.c:350:4: error: implicit declaration of function 'sti7109_raw_cmd' [-Werror=implicit-function-declaration]
/home/user/s2-liplianin-v35/v4l/saa716x_ff_main.c:358:18: error: 'OSD_RAW_DATA' undeclared (first use in this function)
/home/user/s2-liplianin-v35/v4l/saa716x_ff_main.c:359:3: error: unknown type name 'osd_raw_data_t'
/home/user/s2-liplianin-v35/v4l/saa716x_ff_main.c:366:3: error: implicit declaration of function 'sti7109_raw_data' [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors
make[3]: *** [/home/user/s2-liplianin-v35/v4l/saa716x_ff_main.o] Ошибка 1
make[2]: *** [_module_/home/user/s2-liplianin-v35/v4l] Error 2
make[2]: Leaving directory `/usr/src/linux-headers-3.2.0-36-generic'
make[1]: *** [default] Ошибка 2
make[1]: Выход из каталога `/home/user/s2-liplianin-v35/v4l'
make: *** [all] Ошибка 2


помогите!

поддержка отправила файл omocom.c

с содержанием
/*
 *      omicom.c
 *      
 *      Copyright 2010 acid454 <acid454@dmitrepn>
 *      
 *      This program is free software; you can redistribute it and/or modify
 *      it under the terms of the GNU General Public License as published by
 *      the Free Software Foundation; either version 2 of the License, or
 *      (at your option) any later version.
 *      
 *      This program is distributed in the hope that it will be useful,
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *      GNU General Public License for more details.
 *      
 *      You should have received a copy of the GNU General Public License
 *      along with this program; if not, write to the Free Software
 *      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 *      MA 02110-1301, USA.
 */

#include <linux/kernel.h> /* We're doing kernel work */
#include <linux/module.h> /* Specifically, a module */
#include "budget.h"
#include "stv0299.h"
#include "ves1x93.h"
#include "ves1820.h"
#include "l64781.h"
#include "tda8083.h"
#include "s5h1420.h"
#include "tda10086.h"
#include "tda826x.h"
#include "lnbp21.h"
#include "lnbh24.h"
#include "bsru6.h"
#include "bsbe1.h"
#include "tdhd1.h"
#include "stv6110x.h"
#include "stv090x.h"
#include "isl6423.h"
/*
static int demod_adr;
static int ts1;
static int ts2 = STV090x_TSMODE_SERIAL_CONTINUOUS;
static int adc1;
static int adc2;
module_param(demod_adr, int, 0x68); //104 = 0x68
module_param(ts1, int, STV090x_TSMODE_DVBCI);
//module_param(ts2, int, STV090x_TSMODE_SERIAL_CONTINUOUS);
module_param(adc1, int, STV090x_ADC_2Vpp);
module_param(adc2, int, STV090x_ADC_2Vpp);*/

DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);

static struct stv090x_config omicom_stv090x_config = {
.device = STV0903,
.demod_mode = STV090x_SINGLE,
.clk_mode = STV090x_CLK_EXT,

.xtal = 27000000,
.address = 0x68,

.ts1_mode = STV090x_TSMODE_DVBCI,
.ts2_mode = STV090x_TSMODE_SERIAL_CONTINUOUS,

.repeater_level = STV090x_RPTLEVEL_16,

.tuner_init = NULL,
.tuner_set_mode = NULL,
.tuner_set_frequency = NULL,
.tuner_get_frequency = NULL,
.tuner_set_bandwidth = NULL,
.tuner_get_bandwidth = NULL,
.tuner_set_bbgain = NULL,
.tuner_get_bbgain = NULL,
.tuner_set_refclk = NULL,
.tuner_get_status = NULL,
};


static struct stv6110x_config omicom_stv6110x_config = {
.addr = 0x60,
.refclk = 27000000,
.clk_div = 2,
};


static void frontend_init(struct budget *budget)
{
(void)alps_bsbe1_config; /* avoid warning */

switch(budget->dev->pci->subsystem_device) {
case 0x1020: { /* TT S2-1600n */

struct stv6110x_devctl *ctl;
printk("%s: TT S2-1600n - starting setup\n", __func__);
saa7146_setgpio(budget->dev, 2, SAA7146_GPIO_OUTLO);
msleep(50);
saa7146_setgpio(budget->dev, 2, SAA7146_GPIO_OUTHI);
msleep(250);
/*
omicom_stv090x_config.address = demod_adr;
omicom_stv090x_config.ts1_mode = ts1;
omicom_stv090x_config.ts2_mode = ts2;
omicom_stv090x_config.adc1_range = adc1;
omicom_stv090x_config.adc2_range = adc2;*/
budget->dvb_frontend = dvb_attach(stv090x_attach,
 &omicom_stv090x_config,
 &budget->i2c_adap,
 STV090x_DEMODULATOR_0);

if (budget->dvb_frontend) {
printk("%s: TT S2-1600n - frontend OK\n", __func__);


ctl = dvb_attach(stv6110x_attach,
budget->dvb_frontend,
&omicom_stv6110x_config,
&budget->i2c_adap);

if (ctl == NULL)
printk("%s: __No stv6110x found!\n", __func__);
else {
printk("%s: stv6110x found, initializing...\n", __func__);
omicom_stv090x_config.tuner_init  = ctl->tuner_init;
//omicom_stv090x_config.tuner_sleep  = ctl->tuner_sleep;//???
omicom_stv090x_config.tuner_set_mode  = ctl->tuner_set_mode;
omicom_stv090x_config.tuner_set_frequency = ctl->tuner_set_frequency;
omicom_stv090x_config.tuner_get_frequency = ctl->tuner_get_frequency;
omicom_stv090x_config.tuner_set_bandwidth = ctl->tuner_set_bandwidth;
omicom_stv090x_config.tuner_get_bandwidth = ctl->tuner_get_bandwidth;
omicom_stv090x_config.tuner_set_bbgain  = ctl->tuner_set_bbgain;
omicom_stv090x_config.tuner_get_bbgain  = ctl->tuner_get_bbgain;
omicom_stv090x_config.tuner_set_refclk  = ctl->tuner_set_refclk;
omicom_stv090x_config.tuner_get_status  = ctl->tuner_get_status;
}

/* call the init function once to initialize
  tuner's clock output divider and demod's
  master clock */
if (budget->dvb_frontend->ops.init)
budget->dvb_frontend->ops.init(budget->dvb_frontend);

//dvb_attach(lnbh24_attach,budget->dvb_frontend,&budget->i2c_adap,0,0,0x08);
if (dvb_attach(lnbh24_attach,budget->dvb_frontend,&budget->i2c_adap,0x00,0x00,0x0A) == NULL)
printk("%s: __No lnbh24 found!\n", __func__);
printk("%s: TT S2-1600n - setup complete\n", __func__);

} else {
printk("%s: __No stv090x found!\n", __func__);
//dvb_frontend_detach(budget->dvb_frontend); /* It is NULL here */
budget->dvb_frontend = NULL;
}
}
break;
}

if (budget->dvb_frontend == NULL) {
printk("budget: A frontend driver was not found for device [%04x:%04x] subsystem [%04x:%04x]\n",
      budget->dev->pci->vendor,
      budget->dev->pci->device,
      budget->dev->pci->subsystem_vendor,
      budget->dev->pci->subsystem_device);
} else {
if (dvb_register_frontend(&budget->dvb_adapter, budget->dvb_frontend))
goto error_out;
}
return;

error_out:
printk("budget: Frontend registration failed!\n");
dvb_frontend_detach(budget->dvb_frontend);
budget->dvb_frontend = NULL;
return;
}


static int omicom_attach (struct saa7146_dev* dev, struct saa7146_pci_extension_data *info)
{
struct budget *budget = NULL;
int err;

budget = kmalloc(sizeof(struct budget), GFP_KERNEL);
if( NULL == budget ) {
return -ENOMEM;
}

dprintk(2, "dev:%p, info:%p, budget:%p\n", dev, info, budget);

dev->ext_priv = budget;

err = ttpci_budget_init(budget, dev, info, THIS_MODULE, adapter_nr);
if (err) {
printk("==> failed\n");
kfree (budget);
return err;
}

budget->dvb_adapter.priv = budget;
frontend_init(budget);

ttpci_budget_init_hooks(budget);

return 0;
}

static int omicom_detach (struct saa7146_dev* dev)
{
struct budget *budget = (struct budget*) dev->ext_priv;
int err;

if (budget->dvb_frontend) {
dvb_unregister_frontend(budget->dvb_frontend);
dvb_frontend_detach(budget->dvb_frontend);
}

err = ttpci_budget_deinit (budget);

kfree (budget);
dev->ext_priv = NULL;

return err;
}

static struct saa7146_extension omicom_extension;
static struct budget_info OmicomS2_info = {
.name = "Omicom S2 PCI",
.type = 0
};
static struct saa7146_pci_extension_data OmicomS2 = {
.ext_priv = &OmicomS2_info,
.ext = &omicom_extension
};
static struct pci_device_id pci_tbl[] = {
MAKE_EXTENSION_PCI(OmicomS2, 0x14c4, 0x1020),
{
.vendor    = 0,
}
};
extern void ttpci_budget_irq10_handler(struct saa7146_dev *dev, u32 * isr);
static struct saa7146_extension omicom_extension = {
.name = "OmicomS2 dvb",
.flags = SAA7146_USE_I2C_IRQ,

.module = THIS_MODULE,
.pci_tbl = pci_tbl,
.attach = omicom_attach,
.detach = omicom_detach,

.irq_mask = MASK_10,
.irq_func = ttpci_budget_irq10_handler,
};
//static struct saa7146_extension budget_extension;
//#define MAKE_BUDGET_INFO(x_var,x_name,x_type)
//MAKE_BUDGET_INFO(OmicomS2, "Omicom S2 PCI", BUDGET_TT); //BUDGET_TT = 0





static int __init omicom_init(void)
{
return saa7146_register_extension(&omicom_extension);
}

static void __exit omicom_exit(void)
{
saa7146_unregister_extension(&omicom_extension);
}

module_init(omicom_init);
module_exit(omicom_exit);

MODULE_LICENSE("GPL");
MODULE_AUTHOR("acid454, pk");
MODULE_DESCRIPTION("driver for the SAA7146 based so-called "
  "budget PCI DVB cards by Siemens, Technotrend, Hauppauge");

....................

Драйвера для Omicom DVB-S2 карты на чипсете 0903.
Тут только исходный код, при установке необходима компиляция с используемым ядром.

дальше я снова завис.......
« Последнее редактирование: Январь 19, 2013, 18:50:04 от HsH »
«Железо»: та часть компьютера, которую можно пнуть, в отличие от программного обеспечения, которое можно только обматерить.

Оффлайн greg

  • Постоялец
  • ***
  • Автор темы
  • Сообщений: 214
  • восемь бед, один ресет...
    • ТРЦ Жигалово
«Железо»: та часть компьютера, которую можно пнуть, в отличие от программного обеспечения, которое можно только обматерить.