13 13
Igor

read first How to build my own image or kernel?

Recommended Posts

7 minutes ago, dony71 said:

However I notice it build driver for kernel 4.14.81 while my system has kernel 4.14.78

How to force compilation to make kernel 4.14.78 ?


Just make a new kernel with a module that you need and install it over the current one. This is simple and fairly safe in this case.

Share this post


Link to post
Share on other sites
Just now, Igor said:


Just make a new kernel with a module that you need and install it over the current one. This is simple and fairly safe in this case.

 

the problem is new kernel doesn't work which means i need serial console port which i don't have now

it will be more work to do rather than compiling a module fit to my current kernel

Share this post


Link to post
Share on other sites
1 minute ago, dony71 said:

the problem is new kernel doesn't work which means i need serial console port which i don't have now

it will be more work to do rather than compiling a module fit to my current kernel


Kernel breakage from 4.14.78 - 4.14.81 is almost impossible. You build new kernel, copy image and dtb package to the board and install them with dpkg -i *.deb.

It must work. I do this every day.

 

If you want to compile some particular version: KERNELBRANCH="tag:v4.14.78"

Share this post


Link to post
Share on other sites
3 minutes ago, Igor said:


Kernel breakage from 4.14.78 - 4.14.81 is almost impossible. You build new kernel, copy image and dtb package to the board and install them with dpkg -i *.deb.

It must work. I do this every day.

 

If you want to compile some particular version: KERNELBRANCH="tag:v4.14.78"

 

Thanks, for now I will try KERNELBRANCH method

I will debug later why kernel broken after I get serial console

Also I have question about add driver module

Current mainline doesn't include snd-soc-pcm5102a driver so I need to modify .config to add this

However everytime I build kernel using KERNEL_KEEP_CONFIG=no, it's always overwritten

Anything I'm missing?

Share this post


Link to post
Share on other sites
1 hour ago, Igor said:


We spent several years to learn and several years to make this system :)

https://docs.armbian.com/Developer-Guide_User-Configurations/#user-provided-kernel-config

I try put  userpatches/linux-sunxi-next.config and it seems user kernel config is being used but there is no snd-soc-pcm5102a.ko

Also try KERNELBRANCH, but still using 4.14.81

 

sudo ./compile.sh KERNELBRANCH='tag:v4.14.78' KERNEL_KEEP_CONFIG=no KERNEL_ONLY=yes KERNEL_CONFIGURE=no BUILD_DESKTOP=no BOARD=bananapim2plus BRANCH=next RELEASE=stretch

 

Attached compile log and linux-sunxi-next.config

I just add "CONFIG_SND_SOC_PCM5102A=m" in config and copy "pcm5102a.c" in "linux-4.14.y/sound/soc/codecs"

 

linux-sunxi-next.config

output.log

Share this post


Link to post
Share on other sites
3 hours ago, dony71 said:

I try put  userpatches/linux-sunxi-next.config and it seems user kernel config is being used but there is no snd-soc-pcm5102a.ko

Also try KERNELBRANCH, but still using 4.14.81

 

sudo ./compile.sh KERNELBRANCH='tag:v4.14.78' KERNEL_KEEP_CONFIG=no KERNEL_ONLY=yes KERNEL_CONFIGURE=no BUILD_DESKTOP=no BOARD=bananapim2plus BRANCH=next RELEASE=stretch

 

Attached compile log and linux-sunxi-next.config

I just add "CONFIG_SND_SOC_PCM5102A=m" in config and copy "pcm5102a.c" in "linux-4.14.y/sound/soc/codecs"

 

linux-sunxi-next.config

output.log

 

I put KERNELBRANCH='tag:v4.14.78' in userpatches/lib.config and now can generate v.4.14.78 kernel

userpatches/linux-sunxi-next.config still problem, "CONFIG_SND_SOC_PCM5102A=m" not being executed

Share this post


Link to post
Share on other sites
6 hours ago, dony71 said:

userpatches/linux-sunxi-next.config still problem, "CONFIG_SND_SOC_PCM5102A=m" not being executed


This could mean that there are no drivers for it in the kernel (enabling non existing support is pointless. it must exists to be enabled). Or not solved dependencies (something that needs to be enabled before to enable this). 

Share this post


Link to post
Share on other sites
12 hours ago, Igor said:

This could mean that there are no drivers for it in the kernel

I didn't check under 4.14.y, but under 4.19.y it is present there : cache/sources/linux-mainline/linux-4.19.y/sound/soc/codecs/Kconfig

18 hours ago, dony71 said:

"CONFIG_SND_SOC_PCM5102A=m" not being executed

Check if it present under cache/sources/linux-mainline/linux-4.14.y/sound/soc/codecs/Kconfig

Share this post


Link to post
Share on other sites
25 minutes ago, martinayotte said:

I didn't check under 4.14.y, but under 4.19.y it is present there : cache/sources/linux-mainline/linux-4.19.y/sound/soc/codecs/Kconfig

Check if it present under cache/sources/linux-mainline/linux-4.14.y/sound/soc/codecs/Kconfig

It's not there and I have to add it 

However while running ./compile.sh, this Kconfig will be overwritten from original source since it's being modified

To get "pcm5102a.c" compiled successfully, I have to modify and copy this Kconfig on-the-fly during compilation

Maybe you have better idea how to avoid compile script overwrite this file?

Share this post


Link to post
Share on other sites
1 minute ago, dony71 said:

It's not there and I have to add it 

I think you misunderstood the way Kconfig works ...

Kconfig is a list of available options, you should not edit it unless you are adding new drivers, in which can you would need to create a patch.

Check if this file exist : cache/sources/linux-mainline/linux-4.14.y/sound/soc/codecs/pcm5102a.c

If it doesn't exist, then, there is no way to have that driver under 4.14.y.

If it is exist, then you probably messed up about the way to add CONFIG_SND_SOC_PCM5102A in your build...

Share this post


Link to post
Share on other sites

pcm5102a.c is not exist but I can get it from sun8i-fay branch and  copy it manually in directory. I know this is not proper way to add driver in the kernel but I don't know how is the proper way?

Share this post


Link to post
Share on other sites
10 minutes ago, dony71 said:

pcm5102a.c is not exist but I can get it from sun8i-fay branch and  copy it manually in directory. I know this is not proper way to add driver in the kernel but I don't know how is the proper way?

Then, you will need to edit Kconfig and Makefile, then create a patch for those changes, and placed the patch under userpatches/kernel/sunxi-next/ .

 

Share this post


Link to post
Share on other sites

I assume you work from a ubuntu 18.04 machine (no docker or whatsoever):

In case you messed with the cached kernel besides a generate patch session.. In can be that the patch you'll generate isn't properly.. So just wipe out the kernel and start from a freshly downloaded one. The buildscript sometimes doesn't revert new files which didn't exist before.. add sources to clean level or just wipe out the mainline kernel.

Share this post


Link to post
Share on other sites

I used this as a patch. That enables building of the pcm5102a module. Put it in userpatches/kernel/yourkernel

 

I got the feeling that Kconfig just doesnt show entries without a text in menuconfig.

diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig
index c367d110..87c6ae4c 100644
--- a/sound/soc/codecs/Kconfig
+++ b/sound/soc/codecs/Kconfig
@@ -680,7 +680,7 @@ config SND_SOC_PCM3168A_SPI
 	select REGMAP_SPI
 
 config SND_SOC_PCM5102A
-	tristate
+	tristate "Texas Instruments PCM5102A CODEC - I2S"
 
 config SND_SOC_PCM512x
 	tristate

 

Share this post


Link to post
Share on other sites

Hello,

 

which Folder does compile.sh use for storage?

My build system has two partitions and my "/" is running full when building armbian.

 

Thanks

Stefan

Share this post


Link to post
Share on other sites
4 hours ago, SK_D said:

Hello,

 

which Folder does compile.sh use for storage?

My build system has two partitions and my "/" is running full when building armbian.

 

Thanks

Stefan


It creates subdirectory cache (sources, tools, ..) and output (debs, images, debug, ...)

Share this post


Link to post
Share on other sites
15 minutes ago, Igor said:


It creates subdirectory cache (sources, tools, ..) and output (debs, images, debug, ...)

Both located under git repo?

Share this post


Link to post
Share on other sites
19 minutes ago, SK_D said:

Both located under git repo?


Of course. Have you try by the book 1st?:

 

apt-get -y install git
git clone https://github.com/armbian/build
cd build
./compile.sh

 

Share this post


Link to post
Share on other sites

Hello

I use compile.sh and customize-image.sh to make my own custom image and every think is all right and work great.

But now I need to set hardware config item "i2c0" = true as default (like here - in armbina-config)

1.png.a204d01a61b68dcab10d32ba9f3a4e0d.png

 

I thought that I will select this item by "show a kernel configuration menu before compilation", but installation process dose not show me "Toggle hardware config"

2.png.5b6a7e88b2dc770d1218669a9eb73124.png

 

how can I do it in my customize-image.sh (set item "i2c0" = true)?

Share this post


Link to post
Share on other sites
39 minutes ago, Igor said:


Of course. Have you try by the book 1st?:

 


apt-get -y install git
git clone https://github.com/armbian/build
cd build
./compile.sh

 

Of course I do this way. I'll lock at home.

Share this post


Link to post
Share on other sites
On 5/23/2015 at 2:06 AM, Igor said:
Preparation

 

Supported build environment is Ubuntu Bionic 18.04 x64 (minimal iso image).

 

  • a guest inside a VirtualBox or other virtualization software,
  • a guest managed by Vagrant . This uses Virtualbox (as above) but does so in an easily repeatable way. Please check the Armbian with Vagrant README for a quick start HOWTO,
  • inside a Docker ,  systemd-nspawn  or other container environments (example),
  • running natively on a dedicated PC or a server (not recommended),
  • 20GB disk space or more and 2GB RAM or more available for the VM, container or native OS,
  • superuser rights (configured  sudo  or root access).
     
Execution

apt-get -y install git
git clone https://github.com/armbian/build
cd build
./compile.sh

This will download all necessary sources, execute compilation and/or build a boot-able image. Most of things will be cached so next run will be extremely faster!


Real time examples:
 

 

 

 

Hi Igor,

I'm working on Orange Pi Zero. I created .deb file (u-boot, image, source) like you (in video 1). But i don't know how to run script to compile for SD card(in video 2). Please tell me how to run this script! I want to create the .img file for write to my SD card.

Thanks!

Share this post


Link to post
Share on other sites
On 11/15/2018 at 11:56 AM, dony71 said:

already spend 3 days now with kernel compilation

maybe i'm not really good of doing this, but will keep learning though slow

@Igor where to put u-boot .config for userpatches?

Share this post


Link to post
Share on other sites
3 hours ago, dony71 said:

where to put u-boot .config for userpatches?


That feature is not supported. You need to use u-boot patch to patch the u-boot board config file.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
13 13