Howto update the kernel only - VIM Pro

Hi, I need to update the kernel in a VIM Pro system running an Ubuntu server image.
Do you have any information on how to update kernel/modules and initrd from U-boot in a way you do not overwrite the full emmc (and the whole system). Has anybody tried something similar?


Yep, read the Load Images with U-Boot via TFTP for the instructions, and you can also refer the Khadas Docs for further details.


Is there any guide for this update?
I need to update the kernel only , not full emmc image.

and I tried the gouwa comment but, the link page “Load images with U-Boot via TFTP” doesn’t open.


Hello, The link may be stale, have a look here.

thanks for your promptly reply

1 Like


I am trying to update with U-Boot via TFTP.
currently after kernel building, I couldn’t find the some download image files.

Below is my building step.

cd fenix
source env/

select in menu.

VIM3 -> uboot-mainline -> Ubuntu -> bionic -> xfce

#build kernel only
make kernel

“-----build log -----”

OBJCOPY arch/arm64/boot/Image
Building modules, stage 2.
MODPOST 1746 modules
warning: same module names found:
make[1]: Leaving directory ‘/media/sunkwikim/SSD/projects/amlogic/fenix/build/linux-mainline-5.5-rc2’


Then I want to try below guide.
Linux Kernel Image
Download and run Linux:

kvim# tftp 1080000 zImage
kvim# tftp 10000000 uInitrd
kvim# tftp 20000000 kvim.dtb
kvim# booti 1080000 10000000 20000000

but, I couldn’t find the built image files(zImage, uinitrd, kvim.db). please let me know where the download image build out.


Uboot tftp download files directly to ram
And after Linux start u need upload this files again and put to proper place

Could you guide me how to update new built files the after linux starting?

Please give me a guide in detail such as building command, image files etc.
I am not familiar with VIM3 Board environment.

Hi, hyphop
could you give me any update about this issue?


for example its /boot folder (for last khadas ubuntu)

root@Khadas:/boot# ls -l1 /boot
total 50556
-rw-r--r-- 1 root root      868 Dec 30 17:05 aml_autoscript
-rw-r--r-- 1 root root      796 Dec 30 17:05 aml_autoscript.txt
-rw-r--r-- 1 root root      800 Dec 30 17:05
-rw-r--r-- 1 root root     8183 Dec 30 17:05 boot.ini
-rw-r--r-- 1 root root     8501 Dec 30 17:05 boot.scr
-rw-r--r-- 1 root root   156725 Dec 30 16:38 config-4.9.206
lrwxrwxrwx 1 root root       11 Jan  9 12:11 dtb -> dtb-4.9.206
drwxr-xr-x 2 root root     4096 Dec 30 17:06 dtb-4.9.206
-rw-r--r-- 1 root root     2733 Jan  9 12:14 env.txt
-rw-r--r-- 1 root root  8469135 Dec 30 17:08 initrd.img-4.9.206
-rw-rw-r-- 1 root root     1994 May 31  2018 remote.conf
-rw-r--r-- 1 root root     8501 Dec 30 17:05 s905_autoscript
-rw-r--r-- 1 root root     8429 Dec 30 17:05 s905_autoscript.cmd
-rw-r--r-- 1 root root  5612780 Dec 30 16:38
lrwxrwxrwx 1 root root       15 Jan  9 12:11 uInitrd -> uInitrd-4.9.206
-rw-r--r-- 1 root root  8469199 Dec 30 17:08 uInitrd-4.9.206
-rw-r--r-- 1 root root 28979712 Dec 30 16:38 vmlinuz-4.9.206
lrwxrwxrwx 1 root root       15 Jan  9 12:11 zImage -> vmlinuz-4.9.206

1 is - copy new kernel initrd and dtb files to /boot

cp  vmlinuz-new uInitrd-new dtb-new /boot
# fix links
ln -sf vmlinuz-new zImage
ln -sf uInitrd-new uInitrd 
ln -sf /boot/dtb-new dtb.img

2 is - copy all new kernel modules

cp -a /tmp/modules/new /lib/modules/

PS: u can use scp - for remote copy
PSS: anyway u must understand always what are u doing :wink:


1 Like

hi hyphop. Thanks for your support. now it’s works.