GYU Posted August 1, 2015 Posted August 1, 2015 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.
Igor Posted August 1, 2015 Posted August 1, 2015 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.
GYU Posted August 3, 2015 Author Posted August 3, 2015 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
Igor Posted August 3, 2015 Posted August 3, 2015 Why would you go for 3.16? It's possible, just change TAG.
GYU Posted August 4, 2015 Author Posted August 4, 2015 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.
Igor Posted August 4, 2015 Posted August 4, 2015 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
GYU Posted August 4, 2015 Author Posted August 4, 2015 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?
Igor Posted August 5, 2015 Posted August 5, 2015 v3.19.0 does not exists. For valid tags check here: https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/refs/tags v3.19.8 is what you need.
GYU Posted August 5, 2015 Author Posted August 5, 2015 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
Igor Posted August 5, 2015 Posted August 5, 2015 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 ...
GYU Posted September 17, 2015 Author Posted September 17, 2015 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 Thanks again for you Igor! 1
Igor Posted September 18, 2015 Posted September 18, 2015 ... and I merged this config with default + added firmware. https://github.com/igorpecovnik/lib/commits/second Next build should work out of the box with this hardware and the rest what has been enabled. 1
GYU Posted September 19, 2015 Author Posted September 19, 2015 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
Igor Posted September 19, 2015 Posted September 19, 2015 Perhaps move to Jessie and development version of TVheadend?
Recommended Posts