使用menuconfig配置milkv duo linux kernel

使用menuconfig配置milkv duo linux kernel

前言

官方的buildroot SDK包含很多不同的部分如uboot,linux kernel,buildroot,opensbi. 这些都有自己的配置目录,直接运行build.sh脚本来生成img的时候,build.sh会把对应部分的config目录下的config文件拷贝到其编译的代码所在的目录然后进行编译,所以如果要使用menuconfig配置linux kernel的话就需要先找到build.sh使用的kernel的配置文件,然后拷贝到存放kernel代码的目录,然后menuconfig修改config,最后在拷贝回去,只有拷贝回去build.sh脚本才能使用。更改才会生效,具体操作如下

具体操作

下面是修改duo256m的示例,带~号的行为输入的命令(命令不包括~)

第一步找到duo256m linux kernel配置文件存放的地方
build/boards/cv181x/cv1812cp_milkv_duo256m_sd/linux/cvitek_cv1812cp_milkv_duo256m_sd_defconfig

拷贝到linux kernel目录下,注意改成.config
~ cp build/boards/cv181x/cv1812cp_milkv_duo256m_sd/linux/cvitek_cv1812cp_milkv_duo256m_sd_defconfig linux_5.10/.config

切换到linux目录进行menuconfig
~ cd linux_5.10/
~ make ARCH=riscv menuconfig

如下图:

需要修改或开启kernel选项的话可以使用/键进行搜索,如CONFIG_CGROUP_FREEZER 按/然后输入cgroup_freezer就可以进行查找,其中location表示选项的路径位置,prompt为选项的名字,结果如下

修改后save保存,再把当前目录下的.config文件拷贝到原来build.sh使用的linux kernel的config目录,注意名字也要改回去
~ cp .config ../build/boards/cv181x/cv1812cp_milkv_duo256m_sd/linux/cvitek_cv1812cp_milkv_duo256m_sd_defconfig

再回到buildroot_sdk目录,执行build.sh就可以了
~ cd ..
~ ./build.sh milkv-duo256m
1 Like

2023.12.31 学会自己编译内核了,编译了一个内存全开内核,可使用内存240M

duo256M_linux_Kernel_Memory_240M.zip

参考本文章 编译的动态图记录

duo256

$ git diff  memmap.py
+++ b/build/boards/cv181x/cv1812cp_milkv_duo256m_sd/memmap.py
@@ -40,10 +40,10 @@ class MemoryMap:
     # =================
     # Multimedia buffer. Used by u-boot/kernel/FreeRTOS
     # =================
-    ION_SIZE = 75 * SIZE_1M
-    H26X_BITSTREAM_SIZE = 2 * SIZE_1M
+    ION_SIZE = 0 * SIZE_1M
+    H26X_BITSTREAM_SIZE = 0 * SIZE_1M
     H26X_ENC_BUFF_SIZE = 0
-    ISP_MEM_BASE_SIZE = 20 * SIZE_1M
+    ISP_MEM_BASE_SIZE = 0 * SIZE_1M
     FREERTOS_RESERVED_ION_SIZE = H26X_BITSTREAM_SIZE + H26X_ENC_BUFF_SIZE + ISP_MEM_BASE_SIZE