|
Post Last Edited by maxwell at 2014-8-12 07:56
Ok, Module.symvers didn't help with the format exec error, sadly. I can make those modules work easily when forcing them or using the cross compiled kernel, its modules plus the cross compiled DVB modules.
Yes, you can say, just use the whole cross compiled stuff then. But I hoped to make it work without a cross compiled kernel, like compiling those damn to compile DVB modules and share them with others, without needing them to force the modules or use a whole new kernel and so on.
I will post my way of compiling from the beginning. Maybe you can spot the problem.
Compiling System: VM in Virtualbox, Lubuntu 14.04.1 32 bit
Target System: BPi with Lubuntu image 3.1.1
Kompiling Kernel:
- mkdir somedir
- cd /somedir
- git clone https://github.com/LeMaker/linux-bananapi.git
- cd /somedir/linux-bananapi
- //I don't want localversion to be set, I just rename the .git folder
- mv .git dot_git
- //See if localversion is really not set. If output is blank, it is fine
- scripts/setlocalversion
- //Extract the .config (which I put in "somedir" before) from my running BPi into the linux-bananapi folder
- zcat ../config.gz > .config
- //Do not set default kernel configuration like in the wiki. We want the config from our running BPi
- // So do not do: make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sun7i_defconfig
- //Tweak config if you want, but we don't want. You can check if settings are correctly loaded though.
- make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
- //Did read on the net to do prepare_modules
- ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make modules_prepare
- //Building uImage and modules:
- ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make -j5 uImage
- ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make -j5 modules
- //Overwriting newly created Module.symvers with supplied one from Tony
- //I tested both ways, using the created one to compile DVB modules against it and Tony's one.
- //No difference it ssems.
Copy the Code Kernel stuff is built, we can compile DVB modules now and point to "linux-banapi" now
- //Changing to directory with derivate from Technotrend of media_build (pretty similar to the normal thing from linuxtv.org)
- cd /media_build-bst
- //start fresh
- make clean
- //copy sit2.o into v4l dir. That's the precompiled closed source driver from Technotrend.
- cp ../sit2.o ./v4l
- //Removing the originila .myconfig with my own, because 2 modules just cannot compile for ARM.
- rm ./v4l/.myconfig
- cp ./.myconfig ./v4l/.myconfig
- //Make release and point to the linux sources
- ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf- DIR=/somedir/linux-bananapi/ make release
- //Compile modules
- ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf- INSTALL_MOD_PATH=/home/pi/compile/bpi/output/ make -j5
Copy the Code Now I tar the "media_build-bst" folder and transfer it to the BPi.
Untar on BPi and change to that extracted directory.
Let's install those modules. It includes demod aneverything. Runs totally clean.That's it.
After that, those new modules can only be forced to work. Otherwise I get "format exec error".
If I put cross compiled uImage on BPi, error for new modules are gone, the old ones throw that error now.
If I put cross compiled uImage on BPi and cross compiled modules from Kernel (install with "make install") AND do "make install" with new modules, everything works.
That's the situation. If you have any suggestions, ideas, comments, please respond, thank you.
Maxwell |
|