Jump to content

How to build my own image or kernel?


Recommended Posts

3 hours ago, vore76 said:

Anybody who can give some hints?


Manual work to adjust patches is required since there were many changes since. If you don't know how, perhaps try to hire people to do that for you.

Link to comment
Share on other sites

9 hours ago, vore76 said:

scripts/Makefile.lib:308: recipe for target 'arch/arm/dts/sun7i-a20-bananapi.dtb' failed
dts/Makefile:38: recipe for target 'arch-dtbs' failed
Makefile:1061: recipe for target 'dts/dt.dtb' failed
[ error ] ERROR in function compile_uboot [ compilation.sh:204 ]
[ error ] U-boot compilation failed 
[ o.k. ] Process terminated

 

 

Go to your output/debug/ folder and check the log files for more detailed information.

Link to comment
Share on other sites

14 hours ago, Werner said:

 

Go to your output/debug/ folder and check the log files for more detailed information.

 

Hello!

The only useful stuff I can find is in "compilation.log"

Error: arch/arm/dts/.sun7i-a20-bananapi.dtb.pre.tmp:378.3-11 syntax error
FATAL ERROR: Unable to parse input tree
make[2]: *** [arch/arm/dts/sun7i-a20-bananapi.dtb] Error 1
make[1]: *** [arch-dtbs] Error 2
make: *** [dts/dt.dtb] Error 2

I'm using this for my private stuff. I can't afford to hire a person for this. But I will donate some money to the project as I already did in the past. If it's impossible to build something with the new kernel it's Ok.

Link to comment
Share on other sites

Donations give you nothing in return. You support what you already get. They current ly cover less than 0.5% of project costs. Now think again what you are asking ...

Wrote on mobile

Link to comment
Share on other sites

Which makes any donation not less value, don't you think? ;)

 

Anyway. I try to build a kernel package on current (5.3.x) on my own to verify. What I have notice so far is that general-sunxi-overlays.patch did not apply properly.

I'll check back on this later this day.

 

Edit: Built was successful.

Link to comment
Share on other sites

Hi, 

The majority of users that are interested in building their own kernel are doing so because they have installed Ubuntu on their system and they wish to make a small change to the kernel for that system. In many cases the user just wants to make a kernel configuration change.

The purpose of this page is to give that user a minimum amount of information for them to meet the goal of making a simple change to the kernel, building it and installing their kernel. It is not intended to be the definitive guide to doing Ubuntu kernel development.

Link to comment
Share on other sites

On 11/16/2018 at 12:25 AM, 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

"If file userpatches/sources/$LINUXFAMILY.conf exists, it will be used in addition to the default one from config/sources."

But there is no "sources" folder on userpatches!

userpatches.png

Link to comment
Share on other sites

21 hours ago, lanefu said:

You are not right, I shouldn't create any sources folder.

This is stranch code from

build/lib/configuration.sh
 

if [[ -f $USERPATCHES_PATH/sources/families/$LINUXFAMILY.conf ]]; then

display_alert "Adding user provided $LINUXFAMILY overrides"

source "$USERPATCHES_PATH/sources/families/${LINUXFAMILY}.conf"

fi

 

But true code are in build/lib/compilation.sh
 

if [[ -f $USERPATCHES_PATH/$LINUXCONFIG.config ]]; then

display_alert "Using kernel config provided by user" "userpatches/$LINUXCONFIG.config" "info"

cp "${USERPATCHES_PATH}/${LINUXCONFIG}.config" .config

else

display_alert "Using kernel config file" "config/kernel/$LINUXCONFIG.config" "info"

cp "${SRC}/config/kernel/${LINUXCONFIG}.config" .config

fi

So for my Orange Pi 4 with my build script

./compile.sh  BOARD=orangepi4 BRANCH=current RELEASE=hirsute BUILD_MINIMAL=yes BUILD_DESKTOP=no KERNEL_ONLY=no KERNEL_CONFIGURE=yes  COMPRESS_OUTPUTIMAGE=sha,gpg,img BSPFREEZE=yes REPOSITORY_INSTALL="" EXTERNAL=no EXTRAWIFI=no AUFS=no WIREGUARD=no INSTALL_KSRC=yes OFFLINE_WORK=yes BSPFREEZE=yes

I need put linux-rockchip64-current.config into build/userpatches. To check that armbian get my file I look at console

 

Using kernel config provided by user

linux-rockchip64-current.config

Link to comment
Share on other sites

hi @kentAVR

Sorry I see that the confusion was now.  It was around user provided Kernel Configuration vs user provide Kernel Source Config.

here's an example of a kernel source config you could override.. https://github.com/armbian/build/blob/master/config/sources/families/rockchip64.conf

and yes, yourre correct, the pattern for providing a kernel build config in the top of the userpatches/ folder following the appropriate naming convention.

image.png

Link to comment
Share on other sites

menuconfig is strange magic!

 

Look!

 

1) I set my settings of kernel.

2) I save my settings of kernel to file /home/a/Documents/myArmbians/8armbian/linux-rockchip64-current.config

3) I load settings from /home/a/Documents/myArmbians/8armbian/linux-rockchip64-current.config

4) I verify settings and its ok

5) I do Exit, armbian save my settings (and block file) and write me

[ o.k. ] Exporting new kernel config [ /home/a/Documents/myArmbians/8armbian/build/output/config/linux-rockchip64-current.config ]

6) I am going to file from 5) and verify and... My settings is reseted! WTF?
 

So right magic way is:

1) I set my settings of kernel.

2) I save my settings of kernel to file /home/a/Documents/myArmbians/8armbian/linux-rockchip64-current.config

3) Exit and STOP (Ctrl+Z) armbian build system.

4) put file from step 2) to /home/a/Documents/myArmbians/8armbian/build/userpatches/linux-rockchip64-current.config

5) wating message from armbian

[ o.k. ] Exporting new kernel config [ /home/a/Documents/myArmbians/8armbian/build/output/config/linux-rockchip64-current.config ]

6) do not stop build! Just go to this file and verify. Usually it contains my settings.

 

P.S. I use Orange Pi 4B

Link to comment
Share on other sites

I am trying to build U-Boot from source with docker using this guide. The Armbian commit hash is 3c4b890ead32720fbfc77356c9600c4ff08a91a3

 

./compile.sh docker-shell RELEASE=focal BOARD=orangepipcplus BRANCH=current

Than

./compile.sh 'prepare_host && compile_sunxi_tools && install_rkbin_tools'

And dot error:

/root/armbian/lib/main.sh: line 576: compile_sunxi_tools: command not found

Could someone help with the issue? Thanks in advance.

Edited by MikePooh
Armbian commit hash added
Link to comment
Share on other sites

3 hours ago, MikePooh said:

I am trying to build U-Boot from source with docker using this guide.


This documentation is deprecated for around 48h. Not sure when we will be able to understand how this affects on reality.

 

Not that optimal, but you will be able to proceed:

 

./compile.sh docker RELEASE=focal BOARD=orangepipcplus BRANCH=current KERNEL_ONLY=yes KERNEL_CONFIGURE=yes REPOSITORY_INSTALL="kernel,armbian-config,armbian-firmware"

 

Link to comment
Share on other sites

Answering my own question. I was needed to change U-Boot configuration during Armbian build. According to this manual, and answers given above I've run following command:

./compile.sh docker RELEASE=focal BOARD=orangepipcplus BRANCH=current KERNEL_ONLY=yes KERNEL_CONFIGURE=no CREATE_PATCHES=yes REPOSITORY_INSTALL="kernel,armbian-config,armbian-firmware"

Just before U-Boot build step patch looking dialog appears.

Than I've put needed settings to my boards U-Boot defconfig file

/armbian/cache/sources/u-boot/v2021.10/configs/orangepi_pc_plus_defconfig

CONFIG_ENV_IS_IN_EXT4=y
CONFIG_ENV_EXT4_DEVICE_AND_PART="1:1"
CONFIG_ENV_EXT4_FILE="/boot/uboot.env"
CONFIG_ENV_EXT4_INTERFACE="mmc"

Than pressed Enter in build terminal.

Patch has been applied and I've got U-Boot with desired params.

Link to comment
Share on other sites

21 hours ago, MikePooh said:

And is there any way to call U-Boot menuconfig?

 

This could also be implemented  - it should not be difficult. Its very rare used, which is why we never did that or have plans to do it.

Link to comment
Share on other sites

I read a few instructions for building a kernel. But because better safe than sorry. ;)

 

I want to upgrade the kernel of my Orange Pi 4 to a newer one. it runs now:

4-OrangePi:~:# uname -a
Linux 4-OrangePi 5.10.63-rockchip64 #21.08.2 SMP PREEMPT Wed Sep 8 10:57:23 UTC 2021 aarch64 aarch64 aarch64 GNU/Linux

 

So, for me as beginner with my headless setup it's:

1. run compile.sh

2. Choose U-boot and kernel packages

3. Do not change the kernel configuration

4. Choose the board. Orange Pi 4

5. There we go. Output goes to output/debs/

6. Copy all the debs files to my Orange Pi 4 and run sudo dpkg -i *.deb

 

 

Link to comment
Share on other sites

  • Werner unpinned and unfeatured this topic

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines