首页 > 系统相关 >RISCV Ubuntu Linux内核更换

RISCV Ubuntu Linux内核更换

时间:2023-06-11 19:11:05浏览次数:42  
标签:sudo Linux RISCV Ubuntu modules VERSION install linux OUTPUT

交叉编译内核

#!/bin/bash
# LINUXSRC=/root/linux
export LINUXSRC=/keystone/linux
export OUTPUT=/keystone/build/linux.build

#export CONFIG=/keystone/conf/linux64-defconfig
export CONFIG=/keystone/build/config-5.19.0-1012-generic

export CROSS_COMPILE=riscv64-unknown-linux-gnu-
export ARCH=riscv

mkdir -p $OUTPUT/_install
touch $OUTPUT/.exists

cp $CONFIG /keystone/build/linux.build/.config
make -C $LINUXSRC O=$OUTPUT CROSS_COMPILE=riscv64-unknown-linux-gnu- ARCH=riscv olddefconfig
make -C $LINUXSRC O=$OUTPUT CROSS_COMPILE=riscv64-unknown-linux-gnu- ARCH=riscv modules -j16
make -C $LINUXSRC O=$OUTPUT CROSS_COMPILE=riscv64-unknown-linux-gnu- ARCH=riscv -j16

# https://blog.csdn.net/Mculover666/article/details/126164289
# Linux内核编译安装模块并打包
mkdir -p ${OUTPUT}/_install
make INSTALL_MOD_PATH=${OUTPUT}/_install modules_install O=${OUTPUT}

STRIP=${CROSS_COMPILE}strip
find ${OUTPUT}/_install/ -name "*.ko" | xargs $STRIP --strip-debug \
	--remove-section=.comment --remove-section=.note --preserve-dates

mod_dir=`ls ${OUTPUT}/_install/lib/modules | awk '{ print $1 }'`
rm ${OUTPUT}/_install/lib/modules/${mod_dir}/build
rm ${OUTPUT}/_install/lib/modules/${mod_dir}/source
tar -zcf ${OUTPUT}/install_${mod_dir}.tar.gz -C ${OUTPUT}  _install

目前为止我们有${OUTPUT}/install_${mod_dir}.tar.gz, ${OUTPUT}/arch/riscv/boot/Image.gz, ${OUTPUT}/System.map, ${OUTPUT}/.config

内核替换

假设我们编译出的内核的版本号为$VERSION, 也就是上文中的${mod_dir}。那么,我们将需要的文件传输到RISC v的板子上(或者qemu模拟器中),开始对内核进行替换:

sudo cp .config /boot/config-$VERSION
sudo cp Image.gz /boot/vmlinuz-$VERSION
sudo cp System.map /boot/System.map-$VERSION
tar -zxf install_${VERSION}.tar.gz -C /tmp
sudo cp -r /tmp/_install/lib/modules/${VERSION} /lib/modules
sudo update-initramfs -c -k ${VERSION}
sudo u-boot-update
sudo reboot

标签:sudo,Linux,RISCV,Ubuntu,modules,VERSION,install,linux,OUTPUT
From: https://www.cnblogs.com/harrypotterjackson/p/17473414.html

相关文章

  • 一些实用的linux命令
    一、cd的几个小技巧cd–#回到上次所在目录,这个技巧我原来还真是不知道,感觉还是比较有用,省略了很多输入。cd#回到主目录cd~#同样也是回到主目录当进入到一个很深的目录后,一不小心从该目录跳出了,该怎么办呢,别急,这时有cd–命令可以快速跳回上一次cd命令执行之前的目录中,通常也......
  • 用日志记录Linux用户执行的每一条命令(history)
    工作中,需要把用户执行的每一个命令都记录下来,并发送到日志服务器的需求,为此我做了一个简单的解决方案。这个方案会在每个用户退出登录时把用户所执行的每一个命令都发送给日志守护进程rsyslogd,你也可通过配置“/etc/rsyslog.conf”进一步将日志发送给日志服务器第一种方法第二种......
  • linux使用flock文件锁解决脚本重复执行问题
    linux的crontab命令,可以定时执行操作,最小周期是每分钟执行一次。关于crontab实现每秒执行可参考我之前的文章《linuxcrontab实现每秒执行》现在有个问题,如果设定了任务每分钟执行一次,但有可能一分钟内任务并没有执行完成,这时系统会再执行任务。导致两个相同的任务在执行。例如:?......
  • linux sort,uniq,cut,wc命令详解
        sortsort命令对File参数指定的文件中的行排序,并将结果写到标准输出。如果File参数指定多个文件,那么sort命令将这些文件连接起来,并当作一个文件进行排序。sort语法[root@www~]#sort[-fbMnrtuk][fileorstdin]选项与参数:-f:忽略大小写的差异,例如A与......
  • linux命令行elasticsearch查询工具es2unix
    当想在linux的命令行中查看elasticsearch的状态时,可以用es2unix这个工具,插件地址: https://github.com/elasticsearch/es2unix。它是elasticsearch官方推出的,可以通过命令来查看es的各种状态,安装方法curl-sdownload.elasticsearch.org/es2unix/es>/bin/eschmod+x/bin/es这......
  • Linux的启动顺序
      Linux是一个多用户、多任务‘支持多线程和多CPU的操作系统,可以想象到它的启动会有多么复杂。                  1.Linux的启动流程及涉及的程序或者模块  在你打开计算机的电源之后,计算机的硬件会启动BIOS或者UEFI来加载并检查设备,比如......
  • linux 内核版本
    截止支持时间CentOSversion  Releasedate  Fullupdates[40][41]  Maintenanceupdates[40][41]3  2004-03-19  2006-07-20  2010-10-31[42]4  2005-03-09  2009-03-31  2012-02-29[42][43]5  2007-04-12  2014-01-31  2017-03-3......
  • Burp Suite Professional / Community 2023.6 (macOS, Linux, Windows) - Web 应用安
    BurpSuiteProfessional/Community2023.6(macOS,Linux,Windows)-Web应用安全、测试和扫描BurpSuiteProfessional,Test,find,andexploitvulnerabilities.请访问原文链接:https://sysin.org/blog/burp-suite-pro-2023/,查看最新版。原创作品,转载请保留出处。作者......
  • linux 脚本基础实战1
    脚本完成功能1.显示出本机的ip地址2.如果ip地址中有3这个数字,打印出当前的系统时间3.如果ip地址中不含3这个数字,批量建立用户magedu_00,magedu_01,...magedu_100,所有用户同属于magedu组4.打印/etc/passwd这个文件中可以登陆的用户(非/usr/sbin/nologin)5.yum安装ngin......
  • 透过 Go 语言探索 Linux 网络通信的本质
    前言各种编程语言百花齐放、百家争鸣,但是“万变不离其中”。对于网络通信而言,每一种编程语言的实现方式都不一样;但其实,调用的底层逻辑都是一样的。linux系统底层向上提供了统一的Socket通信系统函数,动态链接库/lib64/libc.so中就是实现网络通信的关键类库。下面我们会以Go......