Linux内核开发环境配置

2021-06-17  本文已影响0人  JackHCC

Linux不同版本内核安装

查看Linux版本

cat /etc/redhat-release

查看内核版本

uname -r

解压内核压缩包

tar xf linux-2.6.30.tar.gz

Linux内核源码安装流程

1,安装依赖
yum -y install gcc
yum -y install gcc-c++ 
yum install make
 -- 或者
yum groupinstall "Development Tools"
 -- 或者
yum install gcc gcc-c++ kernel-devel
--安装ncurses
yum install gcc make ncurses ncurses-devel perl
yum update

2,下载源码包
cd /tmp
wget https://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.26.tar.bz2

bzip2 -d linux-2.6.32.26.tar.bz2
tar -xvf linux-2.6.32.26.tar -C /usr/src/

3,安装前配置

cd /usr/src/linux-2.6.32.26/

make menuconfig
  """ 此命令运行将弹出"kernel configuration"界面 """
  """ 按"ESC",点"YES"退出即可 """
  """ 如需定制内核,请按提示进行选择 """
make oldconfig
  """ 如果定制内核,则不需要此步 """
  """ 为要编译的内核源码使用当前系统内核配置文件 """
  """ 当前目录下将会创建 ".config" 文件 """

4,编译安装
make [-jn]
  """ n 为数字,如:make -j4 拆分 4 个作业任务并行编译,加快编译速度 """
  """ 使用 make -j 则不限制并行编译的任务数,但是出错率可能会高一些 """
  """ 如果不使用任何编译参数,一两个小时也是很常见的 """
make modules_install  --安装内核模块

make install  --安装内核

reboot

5,验证并测试
uname -a 

VSCode远程连接开发配置

Mac安装homebrew

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

启动ssh的服务:

systemctl start sshd.service

设置开机自动启动ssh服务

systemctl enable sshd.service

配置远程ssh

参考文章 ssh安装配置

在本地创建密钥
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa-remote-ssh
将公钥上传到服务器
将ssh key放到服务器上
scp ~/.ssh/id_rsa.pub 用户名@ip:/home/id_rsa.pub
此处将用户名和ip换成你的服务器账户和服务器ip。
pbcopy < ~/.ssh/id_rsa-remote-ssh.pub
登录服务器并将公钥放到服务器ssh认证文件中
cat /home/id_rsa.pub >> ~/.ssh/authorized_keys 

Centos7上源码编译安装llvm 11.0.0

1. 下载llvm-project

直接通过git clone,由于项目文件非常多,所以size很大。试了几次一直超时失败,无奈只能下载压缩包。

报错:

error: RPC failed; curl 18 transfer closed with outstanding read data remaining

fatal: The remote end hung up unexpectedly

fatal: early EOF

fatal: index-pack failed

解决:https://blog.csdn.net/it_liuchengli/article/details/77040806

下载压缩包 llvm-project-11.0.0.tar.xz,这个xz文件大小约80M。

解压:xz -d llvm-project-11.0.0.tar.xz,生成了一个 802M 的tar包。
再解:tar -xvf llvm-project-11.0.0.tar ,生成一个 ./llvm-project-11.0.0 目录
cd llvm-project-11.0.0

2. 升级gcc版本

编译llvm,需要gcc至少为 5.1版本,centos默认安装的是 gcc 4.8.5。

按照如下步骤升级了 gcc 到 7.3.1。

yum install centos-release-scl
yum install devtoolset-7
当前登陆session生效
scl enable devtoolset-7 bash
source /opt/rh/devtoolset-7/enable

执行下列命令,永久生效

echo "source /opt/rh/devtoolset-7/enable" >> ~/.bash_profile 
source /opt/rh/devtoolset-7/enable

查看版本,已经是 7.3.1 了

[root@localhost Downloads]# gcc --version
gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

3. 编译安装llvm

在 llvm-project-11.0.0 目录中创建一个build目录

mkdir build
cd build

然后开始编译:

其中 -DLLVM_ENABLE_RTTI=ON 这个选项需要重点说明一下。由于我的目的是为了研究bpf技术,所以不可避免的会涉及到编译安装bpftrace这个工具。在编译bpftrace工程的时候如果没有打开 LLVM 的RTTI,会导致编译失败。而这个编译选项默认是关闭的,所以这里必须明确打开这个功能。

image

此命令用于检测 llvm 是否包含 rtti 特性

cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_RTTI=ON -DLLVM_ENABLE_PROJECTS="clang;libcxx;libcxxabi" -G "Unix Makefiles" ../llvm

然后 make,这个过程需要很长时间。

image

make成功,然后再 make install

报错可能需要 sudo make install

image

clang 11.0.0,安装成功

image
上一篇 下一篇

猜你喜欢

热点阅读