Microsoft.WSL2

博客介绍了在Ubuntu系统下编译Linux内核的步骤,包括安装依赖、编译内核等,还提及在WSL中直接编译Linux内核的方法。此外,解决了Ubuntu系统中/var/log/messages文件访问问题,以及编译模块时出现的symbol module_layout版本不一致的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. Install a recent Ubuntu distribution
2. sudo install build-essential flex bison libssl-dev libelf-dev

安装依赖

sudo install build-essential flex bison libssl-dev libelf-dev

3. make KCONFIG_CONFIG=Microsoft/config-wsl

编译成功后,项目根目录会产生 vmlinux,把该文件复制到 windows 文件系统中,例如 c:\tmp

cp ./vmlinux /mnt/c/tmp/

编译内核

所以直接编译

make KCONFIG_CONFIG=Microsoft/config-wsl

Extracting build for bpf tools support:
1. uname -r # Get your WSL kernel distro,
2. Check out the tagged git branch for your kernel and build as above.
3. cp -r . /lib/modules/4.19.104-microsoft-standard/build   # matching the directory with uname -r

Install instructions:
1. Copy the bzImage to a Windows path such as /mnt/c/bzImage.
2. Create a .wslconfig file in Windows user directory:

[wsl2]
kernel=C:\\bzImage

 

 

1./var/log/messages

首先说一下这个文件的存在,在Ubuntu系统中,这个文件你访问可能提示找不到这个文件

可能会出现以上的问题,但是,这个文件在Ubuntu系统下是存在的,只是配置文件中将这个文件的相关信息给注释了
我们可以去/etc/rsyslog.d/50-default.conf 这个文件中去去掉注释即可 .,原文件如下

#
# Some "catch-all" log files.
#
#*.=debug;\
#        auth,authpriv.none;\
#        news.none;mail.none     -/var/log/debug
#*.=info;*.=notice;*.=warn;\
#        auth,authpriv.none;\
#        cron,daemon.none;\
#       mail,news.none          -/var/log/messages
#
#

 sudo /etc/init.d/rsyslog restart
    [ ok ] Restarting rsyslog (via systemctl): rsyslog.service.

2.

 [原创]错误提示:disagrees about version of symbol module_layout,解决方法

机器:ubuntu 12

问题描述:编译模块的时候提示错误:-1 Invalid module format

通过命令:
dmesg

发现原因其实是:disagrees about version of symbol module_layout

解决方法:

1.先检查当前安装的内核版本
uname -r

2.检查Makefile里指定的kernel源码路径,修改指向正确的路径。保证版本号一致。

LINUX_KERNEL_PATH:=/usr/src/kernels/2.6.32-358.2.1.el6.x86_64

2.1.如果在/usr/src/目录下没有当前安装的内核的源码,那么下载一份重新编译。

2.1.1 ubuntu 下执行命令:

1 sudo apt-get install linux-source

  centos和ret hat下执行命令:

1 yum install kernel-devel

2.1.2 上面命令完成后,在/usr/src目录下可以找到安装的源码。对于ubuntu来说因为下载的是源码所以得接着编译。

在源码目录执行命令(编译完成大概需要30分钟):
make

3.重新编译安装。

原因:Makefile里设置kernel源码的路径错误,没有和当前的内核版本一致,导致版本验证不通过,无法安装。
标签: module_layout

 

题外话:WSL直接编译Linux内核

  下载Linux内核,解压后进入目录中执行命令make menuconfig,如下:

在这里插入图片描述

  随后进入图形化界面,配置信息直接按照默认设置即可,故直接退出即可,如下:

在这里插入图片描述

  接着对内核进行编译,依次使用命令如下:

sudo make -j4
sudo make modules_install
sudo make install
  • 1
  • 2
  • 3

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  至此,完成内核编译。编译时间大约5mins。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值