0
GYU

No firmeware download (MN88472)

Recommended Posts

Dear Igor,

 

I made a custom 4.1 kernel with your script, where a staging driver (mn88472) is included.

 

I'am trying to use an Astrometa DVB stick with mn88472 demodulator, but it's not working. Everything seems fine, no errors, every module loaded, firmware is in it's place. If I run wscan, it goes through every frequency, but it doesn't find any channel. The most weird thing is that two or three times it worked, but I don't know why, and I am not able to reproduce it. (I am using DVB-C so it's sure that the signal is fine)

 

I investigated the source code of the mn88472 module, and as I see, I should get a notice about the firmware load status. An error message or something about the successfully loading, and this message is completely missing.

 

So I followed the steps about debugging firmware related things described here, but after applying "udevadm monitor --property", I don't get any udev event which contains "ACTION=add" and "SUBSYSTEM=firmware".

 

Is there any way to force loading firmware onto an usb device? If yes, how can I do that?

 

Thank you for your help, and your cool kernels!

 

Gyuri

 

ps:

I already tried changing rc poll time as described here, but it not helps. I've got similar i2c reg read/write failures, but compering to ubuntu PC configuration, it's almost the same. The only difference between the PC or Banana system is the lack of the firmware message on the banana.

 

I tried feeding the device from external power too -just for sure- but I got the same i2c errors, and no firmware downloading.

Share this post


Link to post
Share on other sites

I read there were problems regarding I2C with latest kernel. Try 4.0.8 or other. 

 

The rest I think you are doing right. You should get an error if firmware is missing.

 

Thanks.

Share this post


Link to post
Share on other sites
If I using 4.1 ubuntu trusty in text mode, then fw download fine, but i2c errors there.

If lxde loaded and I use lxterminal, no firmware related messages.

 

So I take your advice, and made a Debian wheezy with 4.0.8 kernel, by changing this line in compile.sh: KERNELTAG="v4.0.8" 

 

But these i2c errors still there, as wscan goes through the frequencies:

rtl2832 2-0010: i2c reg read failed -32

r820t 3-003a: r820t_write: i2c wr failed=-32 reg=05 len=1: f3

 

Tonight I will try to make a 4.0.8 ubuntu trusty.

 

 

I've got two questions:

- Is it enough to change only KERNELTAG variable in the compile.sh to get a 4.0.8 kernel, or should I do something else too?

- Is it possible to make an ubuntu image with 3.16 kernel? (on PC I use this one, and it's good for this dvb stick)

 

Thanks,

Gyuri

Share this post


Link to post
Share on other sites

I would go for it because on PC it's good for my dvb stick, with the linuxtv.org v4l drivers.

 

So I set KERNELTAG="v3.16.0", KERNEL_CONFIGURE="yes", and selected trusty mainline, but when menuconfig appeared on the screen, on the top left it was 4.2.

 

The image is starts to boot, and fails. I'll give it a try again later.

Share this post


Link to post
Share on other sites

ARM kernel might be very different than what we have on PC and support for our devices just started around 3.16 ... Further. Ubuntu kernels are different than Vanilla's kernel.org

 

Best chances are with 4.x or latest 3.19

 

Wrote on mobile phone

Share this post


Link to post
Share on other sites

Sorry for the offtopic post, but if I set KERNELTAG="v3.19.0" in compile.sh and select "Bananapi"->"trusty"->"next mainline" I get this error:

[ ok ] Patching kernel v3.19.0
error: pathspec 'v3.19.0' did not match any file(s) known to git.

Or without the trailing zero:

[ ok ] Patching kernel v3.19
patching file arch/arm/boot/dts/sun7i-a20-cubietruck.dts
Hunk #1 FAILED at 71.
1 out of 1 hunk FAILED -- saving rejects to file arch/arm/boot/dts/sun7i-a20-cubietruck.dts.rej
can't find file to patch at input line 31
Perhaps you used the wrong -p or --strip option?


 

Share this post


Link to post
Share on other sites

Sorry Igor, but I get almost the same error if I try v3.19.8 as if I try v3.19 (without the trailing zero)

 

I tried to delete the lib folder as well, but it not helps.

root@avlaptop:~# ./compile.sh
Already up-to-date.

[ ok ] Building Bananapi Ubuntu 3.2 trusty next
[ ok ] Syncing clock
[ ok ] Downloading u-boot
Already up-to-date.
[ ok ] Downloading linux-mainline
Already up-to-date.
[ ok ] Downloading sunxi-tools
Already up-to-date.
[ ok ] Downloading rt8192cu
Already up-to-date.
[ ok ] Downloading sunxi-display-changer
Already up-to-date.
[ ok ] Compiling sunxi tools
[ ok ] Patching kernel v3.19.8
patching file arch/arm/boot/dts/sun7i-a20-cubietruck.dts
Hunk #1 FAILED at 71.
1 out of 1 hunk FAILED -- saving rejects to file arch/arm/boot/dts/sun7i-a20-cubietruck.dts.rej
can't find file to patch at input line 31
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- a/arch/arm/boot/dts/sun7i-a20-bananapro.dts
|+++ b/arch/arm/boot/dts/sun7i-a20-bananapro.dts
--------------------------
File to patch:

If you have a little time for this, could you check it please? Here is the used compile.sh.

 

I'd like to say thank you again, for taking the time to make these images, and helping for beginners like me.

#!/bin/bash 
# 
#   Edit and execute this script - Ubuntu 14.04 x86/64 recommended
#
#   Check https://github.com/igorpecovnik/lib for possible updates
#

# method
KERNEL_ONLY="no"                            # build kernel only
SOURCE_COMPILE="yes"                        # force source compilation
KERNEL_CONFIGURE="yes"                       # change default configuration
KERNEL_CLEAN="yes"                          # MAKE clean before compilation
USEALLCORES="yes"                           # Use all CPU cores
BUILD_DESKTOP="no"                          # desktop with hw acceleration for some boards 

# user 
DEST_LANG="en_US.UTF-8"                     # sl_SI.UTF-8, en_US.UTF-8
CONSOLE_CHAR="UTF-8"                        # console charset
TZDATA="Europe/Budapest"                   # time zone
ROOTPWD="1234"                              # forced to change @first login
SDSIZE="3000"                               # SD image size in MB
AFTERINSTALL=""                             # command before closing image 
MAINTAINER="Igor Pecovnik"                  # deb signature
MAINTAINERMAIL="igor.pecovnik@****l.com"    # deb signature
GPG_PASS=""                                 # set GPG password for non-interactive packing

# advanced
KERNELTAG="v3.19.8"                          # kernel TAG - valid only for mainline
UBOOTTAG="v2015.07"                         # kernel TAG - valid for all sunxi
FBTFT="yes"                                 # https://github.com/notro/fbtft 
EXTERNAL="yes"                              # compile extra drivers
FORCE="yes"                                 # ignore manual changes to source

# source is where we start the script
SRC=$(pwd)
# destination
DEST=$(pwd)/output                                      
# get updates of the main build libraries
if [ -d "$SRC/lib" ]; then
    cd $SRC/lib
    git pull 
else
    # download SDK
    apt-get -y -qq install git
    git clone https://github.com/igorpecovnik/lib
fi
source $SRC/lib/main.sh

Share this post


Link to post
Share on other sites

If you have a little time for this, could you check it please? Here is the used compile.sh.

 

Patches are not always compatible far from original version. You need to adjust them manually or try disabling them. Look into patching.sh ...

Share this post


Link to post
Share on other sites

Finally I am able to use the DVB-C part of the Astrometa DVB stick (MN88472) with Banana Pi.

 

I made a kernel 4.2.0 wheezy image with Igor's script. In the kernel config I enabled almost everything in

- Device Drivers -> I2C

- Device Drivers -> Multimedia support

- Device Drivers -> Staging drivers -> Multimedia 

 

Here you can find the .config file and my image for download.

 

After you started the banana:

# If you use the image linked above then 
# (dvb-apps libdigest-sha-perl make gcc git patch patchutils libproc-processtable-perl) are already installed.
# apt-get install dvb-apps libdigest-sha-perl make gcc git patch patchutils libproc-processtable-perl

apt-get install w-scan
cd /lib/firmware
wget http://palosaari.fi/linux/v4l-dvb/firmware/MN88472/02/3fbb92e59bd20acedcaa82cfb37b0be3/dvb-demod-mn88472-02.fw

reboot

# Connect astrometa device AFTER(!!!) boot is complete, system ready

# Use scan with the "initial-tuning-data-file" of your TV provider
# Mine is the hungarian Digikabel. Check yours in /usr/share/dvb/dvb-c/ or make one for yourself
scan -A2 -f1 /usr/share/dvb/dvb-c/hu-Digikabel

# or you can use w-scan to find DVB-C transponders for you with this command:
w_scan -f c

# if you can't find any transponder, try disconnect and reconnect the stick, and run scan or w_scan again

Cheers :D

 

Thanks again for you Igor!

Share this post


Link to post
Share on other sites

A few small notes to this project:

 

If disconnect-reconnect won't helps, then disconnect

modprobe -r r820t rtl2832 dvb_usb_rtl28xxu rtl2832_sdr mn88472

then reconnect. If someone knows how to remove these modules automatically on disconnect, please share with me.  

 

It's very good that I can find channels with SCAN, but tvheadend and mumudvb still thinks that both frontends are DVB-T. If I do a SCAN, and after that I start Tvheadend or Mumudvb, then they know that frontend #1 is dvb-c, but could't find services. But as I read about this "stick with multi frontend" vs tvheadend problem, it's caused by the lower version of dvbapi 5.5. But I have no clue how to update dvbapi...

 

And one more note: I can't run scan twice, without disconnect-reconnect between the scans. For the 2nd time without disconnecting the stick, it won't find anything. Probably that's why tvheadend & mumu won't find services after running scan too...

 

So there will be a lot to do.... or wait a lot :D

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
0