Skip to content
View in the app

A better way to browse. Learn more.

Armbian Community Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

How to build my own image or kernel?

Featured Replies

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.

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.

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.

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.

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

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

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

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

  • Author
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"

 

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.

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

 

 

  • Werner unpinned and unfeatured this topic

I am building custom img for OrangePi 3b v2.1. Now the board config file located here use

 BOOT_FDT_FILE="rockchip/rk3566-orangepi-3b.dtb"

 

I should change it to 

BOOT_FDT_FILE="rockchip/rk3566-orangepi-3b-v2.dtb"

 

Now I have the dtb file where should I place it if img to be build for 5.xx legacy kernel?

 

Are there any other things I should take care beforehand. I must say v2.1 do use a different WIFI/BT chip, broadcom AP6256 ...any additions to config files I can do beforehand?

Edited by ioncube

Hi,

In the documentation (https://docs.armbian.com/Developer-Guide_User-Configurations/#user-provided-kernel-config) it says:
"User provided kernel config:
If the file userpatches/linux-$LINUXFAMILY-$BRANCH.config exists, it will be used instead of the default one from config."

 

Is there a way to define only the desired changes to the kernel parameters?

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...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.