目录

 

一、环境准备

二、获取源代码

三、编译

四、安装

五、配置开启启动项

六、安装过程中遇到的问题


一、环境准备

1、VMware Workstation虚拟机

2、虚拟机中安装 Ubuntu-20.04.1 操作系统 (内核版本为 5.4.0)

二、获取源代码

1、www.kernel.org

linux 下载安装CODESYS_linux

2、下载后源代码为 linux-5.8.7.tar.xz 格式压缩包,存放于/home/ubuntu/Desktop/Linux目录下,通过下面两条命令解压

       cd  /home/ubuntu/Desktop/Linux

       xz -d linux-5.8.7.tar.xz     (生成linux-5.8.7.tar)

       tar -xvf linux-5.8.7.tar      (生成linux-5.8.7目录)

三、编译

1、环境准备(由于在安装Ubuntu系统时,使用了最小化安装,所以编译时会缺少一些软件包)

sudo apt install make gcc libncurses-dev flex bison libssl-dev libelf-dev

2、配置内核(以下操作均在 /home/ubuntu/Desktop/Linux/linux-5.8.7 目录下完成)

(1) 保持源码干净

make mrproper 

           此操作会将历史编译过程中配置的内核功能配置文件清除掉,只有第一次执行内核编译前才进行此操作,其它情                            况若需要清除前一次编译过程的残留数据,只需用下面的命令:
                  make clean
                  此命令仅删除编译过程产生的中间文件和目标文件,而不会删除历史配置。

(2)设置内核功能选项

          在正式编译内核之前,我们首先必须配置需要包含哪些模块。

menuconfig

cp /boot/config-$(uname -r) .config

make menuconfig 可在字符界面中显示功能配置的图形界面,如下图。

linux 下载安装CODESYS_配置文件_02

                 根据上图中功能提示配置需要的功能,本次实验中采用的是默认的配置,通过键盘上的左右键选择<Save>保存配置,                   得到新内核的配置文件,如下图。使用键盘上的左右键选择<OK>按钮,通过键盘上的回车键确认保存配置。

linux 下载安装CODESYS_启动项_03

3、编译内核和模块

(1)清除之前编译出的中间文件和目标文件

make clean

(2)编译内核

make bzImage  或者  make bzImage -jn

          -jn 意思是并发执行,可以提高速度,一般情况 下n不要大于CPU核数

          例: -j4 表示同时编译的任务数。如果操作系统中有4个CPU核心,可通过-j4加快编译的速度。

(3)编译内核模块

make modules

四、安装

1、安装内核模块

make modules_install

2、安装内核

make install

五、配置开启启动项

修改 Ubuntu 操作系统的默认启动项,使系统重启后进入新编译的linux-5.8.7内核。

1、输入下列命令将内核作为引导,将数字更改为自己编译的版本号

sudo update-initramfs -c -k 5.8.7

2、更新启动项列表

update-grub2

3、修改默认启动菜单的配置文件

sudo vim /etc/default/grub

linux 下载安装CODESYS_启动项_04

      注释 GRUP_TIMEOUT_STYLE=hidden 列。
             修改 GRUB_TIMEOUT 的值为10 。(可修改为其它数值)

      GTUB_DEFAULT=0,表示从第一个内核启动(linux-5.8.7位于第一个)。

linux 下载安装CODESYS_启动项_05

      保存修改,重启系统,可看到启动菜单项。选择advanced,进入后选择刚编译安装好的内核进入即可。

linux 下载安装CODESYS_内核_06

linux 下载安装CODESYS_linux 下载安装CODESYS_07

3、确认内核

uname -r 

      查看 当前运行内核版本 是否与 安装的内核版本 一致。

六、安装过程中遇到的问题

1、虚拟机分配内存过小,导致出现如下图错误

      not syncing: System is deadlocked on Memory

linux 下载安装CODESYS_linux_08