LinuxForum.Fans
Тема

CX25850 не могу победить

Автор: rubl_zk 7 сообщений 2781 просмотров
#378661

Имеется карточка с чипами CX25850 и CX25821. Предполагается сделать из компа видеорегистратор на базе данной карты. Проблема в том, что при загрузке ядро не загружает драйвер под мою карту и соответственно не создаются устройства /dev/video*.
Исходные данные:

uname -a

text
Linux avreg 3.14.0 #4 Thu May 1 15:17:08 MSK 2014 i686 GNU/Linux

dmesg | grep cx25821

text
[ 1561.750513] cx25821: unknown parameter 'tuner' ignored
[ 1561.750768] cx25821: driver version 0.0.106 loaded

lsmod | grep cx258

text
cx25821                44202  0
btcx_risc              12499  1 cx25821
videobuf_dma_sg        17124  1 cx25821
videobuf_core          21583  2 videobuf_dma_sg,cx25821
v4l2_common            12867  1 cx25821
videodev              103526  2 cx25821,v4l2_common
i2c_core               23647  8 drm,i2c_i801,cx25821,drm_kms_helper,i2c_algo_bit,v4l2_common,radeon,videodev

lspci -v

text
03:00.0 Multimedia video controller: Conexant Systems, Inc. CX25850
        Subsystem: Device 5644:4e4c
        Flags: bus master, fast devsel, latency 0, IRQ 9
        Memory at fd400000 (64-bit, non-prefetchable) [size=2M]
        Capabilities: [40] Express Endpoint, MSI 00
        Capabilities: [80] Power Management version 3
        Capabilities: [90] Vital Product Data
        Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [200] Virtual Channel

Можно заметить что в выводе нет Kernel driver in use: ....................

Смотрим подробнее про карточку:
lspci -vvvvnnnn

text
03:00.0 Multimedia video controller [0400]: Conexant Systems, Inc. CX25850 [14f1:8200]
        Subsystem: Device [5644:4e4c]
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 9
        Region 0: Memory at fd400000 (64-bit, non-prefetchable) [size=2M]
        Capabilities: [40] Express (v1) Endpoint, MSI 00
                DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us
                        ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                        RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
                        MaxPayload 128 bytes, MaxReadReq 512 bytes
                DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
                LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Latency L0 <2us, L1 <4us
                        ClockPM- Surprise- LLActRep- BwNot-
                LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk-
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
        Capabilities: [80] Power Management version 3
                Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold-)
                Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [90] Vital Product Data
                No end tag found
        Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
                Address: 0000000000000000  Data: 0000
        Capabilities: [100 v1] Advanced Error Reporting
                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
                AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
        Capabilities: [200 v1] Virtual Channel
                Caps:   LPEVC=1 RefClk=100ns PATEntryBits=1
                Arb:    Fixed+ WRR32+ WRR64+ WRR128-
                Ctrl:   ArbSelect=WRR64
                Status: InProgress-
                Port Arbitration Table [240] <?>
                VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
                        Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
                        Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
                        Status: NegoPending- InProgress-
                VC1:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
                        Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
                        Ctrl:   Enable- ID=1 ArbSelect=Fixed TC/VC=00
                        Status: NegoPending- InProgress-

В заключении добавлю, что перед сборкой ядра в каталоге /usr/src/linux-3.14/drivers/media/pci/cx25821 поправил файл cx25821-core.c:
строку:
if (dev->pci->device != 0x8210) {
заменил на:
if (dev->pci->device != 0x8210 && dev->pci->device != 0x8200) {

А так же далее:
блок:
/* CX25821 No Brand */
.vendor = 0x14f1,
.device = 0x8210,
.subvendor = 0x0000,
.subdevice = 0x0000,
заменил на:
/* CX25820 No Brand */
.vendor = 0x14f1,
.device = 0x8200,
.subvendor = 0x0000,
.subdevice = 0x0000,
Но это не привело к нужному результату, драйвер так и не подцепился.
Подскажите где и что еще можно покрутить, может я что-то не так делаю и недопонимаю.

#378662
"rubl_zk" написал:
Подскажите где и что еще можно покрутить, может я что-то не так делаю и недопонимаю.

Покажите

text

dmesg | grep firmware
#378663
Lupo Alberto написал:
[quote="rubl_zk"]Подскажите где и что еще можно покрутить, может я что-то не так делаю и недопонимаю.

Покажите

text

dmesg | grep firmware

[/quote]

root@avreg:/home/sanya# dmesg | grep firmware
[ 3.280320] radeon 0000:01:00.0: Direct firmware load failed with error -2
[ 3.335558] r600_cp: Failed to load firmware "radeon/R700_rlc.bin"
[ 3.335601] [drm:rv770_init] *ERROR* Failed to load firmware!

Сделал:
apt-get install firmware-linux-nonfree libgl1-mesa-dri xserver-xorg-video-ati
Изменился вывод dmesg | grep firmware

text
[    3.194191] radeon 0000:01:00.0: Direct firmware load failed with error -2
[    3.238791] smc: error loading firmware "radeon/RV710_smc.bin"
[    3.238897] radeon 0000:01:00.0: Direct firmware load failed with error -2
[    3.242089] radeon 0000:01:00.0: radeon_uvd: Can't load firmware "radeon/RV710_uvd.bin"
#378666

Как руками:
modprobe -v cx25821

text
insmod /lib/modules/3.14.0/kernel/drivers/media/media.ko
insmod /lib/modules/3.14.0/kernel/drivers/media/v4l2-core/videodev.ko
insmod /lib/modules/3.14.0/kernel/drivers/media/v4l2-core/v4l2-common.ko
insmod /lib/modules/3.14.0/kernel/drivers/media/v4l2-core/videobuf-core.ko
insmod /lib/modules/3.14.0/kernel/drivers/media/v4l2-core/videobuf-dma-sg.ko
insmod /lib/modules/3.14.0/kernel/drivers/media/common/btcx-risc.ko
insmod /lib/modules/3.14.0/kernel/drivers/media/pci/cx25821/cx25821.ko

Устройства /dev/video* не создаются так и при включении модуля в автозагрузку:
zcat initrd.img-3.14.0 | cpio -i --list | grep modprobe

text
12463 блоков
lib/modprobe.d
lib/modprobe.d/aliases.conf
etc/modprobe.d
etc/modprobe.d/saa1734
etc/modprobe.d/radeon-kms.conf
etc/modprobe.d/fbdev-blacklist.conf
etc/modprobe.d/cx25821
etc/modprobe.d/alsa-base.conf
etc/modprobe.d/dkms.conf
etc/modprobe.d/alsa-base-blacklist.conf
sbin/modprobe

cat /etc/modprobe.d/cx25821

text
options cx25821

Правильность содержимого этого файла под сомнением.

В догонку:
cat /boot/config-3.14.0 | grep 25821

text
CONFIG_VIDEO_CX25821=m
CONFIG_VIDEO_CX25821_ALSA=m
#378887

А Conexant, по моему, не поддерживает Линукс и там надо драйвера писать самому. Была проблема с ТВ-тюнером на Конексант, не решили, пока не поменяли карту

#379270

Не поддерживается. Официальный ответ:


No, it is not supported. Although I think that it might not be difficult
provided the datasheets can be obtained since I suspect that it is just a
cx2584x chip multiplied by however many channels are implemented. And a
driver for the cx2584x does exist.
#380260

Благодарю за ответы, всем спасибо. В добавлении хочу сказать, что карта на чипе bt878 заводится, изображение с нее получаю, хоть пока и с полосками, но думаю это вопрос времени, нужно подбирать.

Войдите или зарегистрируйтесь, чтобы ответить.