Jump to content

How to compile kernel with modified source


Recommended Posts

Hi,

 

I am having some trouble to compile the kernel after I have made some minor changes to one of the source files.

to minimize recompilation of unchanged code files I chose the following settings in compile.sh:

KERNEL_ONLY="yes"             
SOURCE_COMPILE="yes"    
KERNEL_CONFIGURE="no" 
KERNEL_CLEAN="no"  

 

to avoid having my changes overwitten by the original files I set

FORCE_CHECKOUT="no"                        # igre manual changes to source

 

I am afraid I have not managed to recompile the kernel using these settings.

What happens instead is:

 

(1) the script still tries to sync with the source but produces some error messages:

error: Your local changes to the following files would be overwritten by checkout:
Please, commit your changes or stash them before you can switch branches.

(...)

You are not currently on a branch. Please specify which
branch you want to merge with. See git-pull(1) for details.

 

(2) I then receive a number of warnings telling me that fixes and upgrades have already been applied and also some OKs where fixes are applied without checking I suppose.

 

The script then ends with the message

Runtime [ 0 min ]
 

I am quite hopeful that It should be possible to rebuild only the modified parts of the whole bunch by executing the make command with the appropriate prerequisites. Unfortunately i have not been able to find out what these are.

 

What is the recommended way to rebuild the armbian kernel with minor changes/edits?

How can I avoid the repeated git pull attempts? Setting FORCE_CHECKOUT="no" did not help much.

Thanks!

 

Andreas

Link to comment
Share on other sites

I thougt I might just add what I am actually trying to do:

I want to use the Bananapi to run a software synthesizer. This will only work when the audio latency is lower than what is currently possible.

 

To achieve a lower audio ouput lateny I changed the minimum output buffer size in

/home/ansum/armbian/sources/linux-sunxi-dev/sound/soc/sunxi/sunxi-codec like this:

 

static struct snd_pcm_hardware sunxi_pcm_playback_hardware =
{

    (...)

    .buffer_bytes_max    = 128*256,
    .period_bytes_min    = 256*4,
    .period_bytes_max    = 256*32,
    .periods_min        = 2,
    .periods_max        = 8,

(...)

 

I would love to see if this was a good Idea or something stupid :)

Link to comment
Share on other sites

You are doing properly ... just there is one issue which I need to fix. It doesn't build the kernel because it already exits ... so delete the .deb files which goes with this kernel and it will proceed with compilation. 

 

Those parameters are about to be slightly redesigned ... waiting for time & energy ;)

Link to comment
Share on other sites

Thanks Igor for the hint. I will try that next time when I recompile the kernel.

Things are really looking bright by now. I have meanwhile found a path through the jungle - I just recompiled everything from scratch and then implanted the modified sunxi-codec.ko from the .deb into the live system.

I then only had to modify the synthesizer source a bit to make it request a smaller buffer size and have already managed to get an output latency of 1024 samples@44100Hz (roughly 23 ms) without any dropouts.

This is a very god start since I haven't implemented any optimizations on the source code yet . (I assume the process is running on a single core now.)

I can not thank you enough for making Armbian available and for the efforts you are taking to provide such good support to your users. I would have surely abandoned the Banana Pi alltogether if I had not found your project since without Armbian I never would have been able to access the power of that little big machine.

 

Andreas

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines