Bianbu Cloud 上快速验证K3自定义内核

申请一个实例

打开云平台页面:Bianbu Cloud 点击右上角 立刻注册

可选择 手机号注册微信/QQ 登录。 如果已有账号,直接登录即可。

在右上角导航栏点击 申请实例,进入申请页面。

直接滚动到最下面选择设备规格,点击K3

填写相关信息,内存建议选择16G的,其支持串口终端,32G的不支持。

点击开始远程进入设备

下载内核

配置公私钥认证,首先生成一对秘钥

ssh-keygen -t rsa 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/bianbu/.ssh/id_rsa): 
Enter passphrase for "/home/bianbu/.ssh/id_rsa" (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/bianbu/.ssh/id_rsa
Your public key has been saved in /home/bianbu/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:xxx
xx

查看公钥内容

cat ~/.ssh/id_rsa.pub 

将公钥内容添加到 https://git.spacemit.com/-/user_settings/ssh_keys/

下载代码,建议指定depth使用浅克隆,可以极大加快下载速度

git clone git@git.spacemit.com:buildroot-k3/linux-6.18.git --depth=300

编译内核(开启KEXEC)

安装编译依赖

sudo apt-get install gcc-15 bison flex bc cpio libssl-dev rsync libssl3 openssl u-boot-tools git libdw-dev systemtap-sdt-dev libaudit-dev libslang2-dev libelf-dev libiberty-dev liblzma-dev libcap-dev libnuma-dev python3-dev libbabeltrace-dev libunwind-dev libtraceevent-dev libpfm4-dev pkg-config kmod xmlto asciidoc debhelper libncurses-dev kexec-tools

选择配置

cd linux-6.18
make k3_bianbu_defconfig

修改配置,开启KEXEC

make menuconfig

输入/ 进入搜索

按数字1

按空格打开图示选项

按右方向键,移动光标到保存,回车

回车

之后移动光标到退出,回车,重复此操作退出菜单

此时执行如下命令编译出deb包,预计1小时

KERNELRELEASE=6.18.3 LOCALVERSION='-custom' KDEB_SOURCENAME=linux-riscv-spacemit-custom KDEB_PKGVERSION=6.18.3-1 KDEB_CHANGELOG_DIST=resolute-porting make -j8 bindeb-pkg

安装内核

用dpkg -i命令安装内核包

sudo dpkg -i ../linux-image-6.18.3-custom_6.18.3-1_riscv64.deb

重启

sudo reboot

执行如下命令,检查是否生效

zcat /proc/config.gz | grep CONFIG_KEXEC
CONFIG_KEXEC_CORE=y
CONFIG_KEXEC=y
# CONFIG_KEXEC_FILE is not set

修改内核,编译,快速替换内核

此时就可以开始自己修改内核。

修改后为加速验证速度,不需要编译出deb包,直接编译出文件即可

cd ~/linux-6.18
make -j8

然后用kexec跳过bootloader,直接启动新内核

sudo kexec -l arch/riscv/boot/Image --initrd=/boot/initrd.img-6.18.3-generic --append="$(cat /proc/cmdline)" && sudo kexec -e

可以打开串口调试界面查看启动日志

ssh则需先新开一个会话,然后关闭原有会话

系统无法启动后如何重置/刷机

如果启动报错,可以选择重启,即可恢复到能正常启动的内核。

如需重新刷机,则参考下图步骤

FAQ

  1. 如何进入uboot终端?

注意:仅16G内存的支持。

首先重启

然后立刻刷新页面

进入串口调试界面

在uboot启动过程中按s,进入uboot终端

注意,系统检测到10分钟没有启动就会自动重启,因此在uboot终端要操作快一点。

2 个赞