Linux
文章平均质量分 53
本专栏主要包括了关于Linux的各种知识,内核、内核编程等等
木可木可❀
一个努力的小小白~
展开
-
fatal error: bits/libc-header-start.h: No such file or directory #include <bits/libc-header-start.h>
在测试p4-ovs时,将p4程序编译成C程序没有问题,但是把C程序编译为.o文件时出现了如下的错误:查找原因,一个博客说法如下:这多半是你所编译的项目是在64位机器上生成32位的项目,你需要安装对应的gcc 32位的库;此时检查gcc一定有-m32的存在;你系统中gcc没有安装multilib 库;使用这个库可以在64位的机器上产生32位的程序或者库文件;你可以选择:apt install gcc-multilib进行完善安装;也可以只编译特定平台的文件: 例如 make x86_6原创 2022-03-25 11:24:12 · 2133 阅读 · 0 评论 -
插入内核模块时提示:ERROR:could not insert module ...../file.ko : File exits 解决办法
在插入内核模块的时候提示我 文件已经存在,但在这之前我插入内核模块提示我无法正常插入,为了避免模块有问题,所以还是决定删掉原本的模块再插入一次,这里给大家提供一个方法。查看当前的模块有哪些lsmod可以看到里面有正在运行的模块,如果找到了自己要插入的模块,那么执行删除操作sudo rmmod openvswitch然后再重新插入就可以了sudo insmod datapath/linux/openvswitch.ko然后就可以正常插入模块了。...原创 2022-03-25 10:08:14 · 6309 阅读 · 0 评论 -
OVS安装配置时出现configure: error:……,version newer than 5.0.x is not supported
OVS安装配置出现configure error问题阐述:在安装OVS过程中,需要先./configure对环境进行检查,要构建Linux内核模块,以便能够运行基于内核的交换机,需要在–with-linux上传递内核构建目录的位置。例如,要构建一个运行的Linux实例:./configure --with-linux=/lib/modules/$(uname -r)/build但是过程中出现错误,内容显示:configure: error: Linux kernel in /lib/mo转载 2022-03-25 09:47:20 · 530 阅读 · 0 评论 -
Linux内核升级(降级)
Linux升级内核的正确姿势很多童鞋在玩耍linux发行版的时候,都会遇到各种各样的问题,比如:网卡不能使用,亮度不能调节,触摸板不能识别,蓝牙不能使用等等,这些关系都和linux的内核有关系。什么是linux内核?Linux内核(英语:Linux kernel),是一种开源的类Unix操作系统宏内核。Linux内核最早是于1991年由芬兰黑客林纳斯·托瓦兹为自己的个人计算机开发的,他当时在Usenet新闻组comp.os.minix登载帖子,这份著名的帖子标志着Linux内核计划的正式开始原创 2022-03-25 09:44:13 · 4352 阅读 · 1 评论 -
Ubuntu20.04 P4-OvS安装教程
P4-OvSGit项目地址:GitHub - osinstom/P4-OvS: Bringing the power of P4 to OvS!安装文档:https://github.com/osinstom/P4-OvS/blob/p4/Documentation/intro/install/general.rst安装步骤#第一步 ==安装依赖项依赖==# apt-get update# sudo apt-get install -y automake cmake libjudy-d转载 2022-03-25 09:20:14 · 1741 阅读 · 1 评论 -
linux切换内核版本
前言做测试,需要在5.8.0的linux内核上才能正常运行,当前操作系统的linux内核为5.13.0-37-generic,需要更改运行的内核版本,所以简单记录一下怎么切换内核版本。环境操作系统:Ubuntu20.04CPU架构:x86_64目标内核版本:5.8.0步骤1. 确认当前操作系统是支持在目标内核版本上运行,这个自行百度吧2. 查看当前使用的内核版本:uname -r当前的内核版本为5.13.0-37-generic ,这里没有截图,大家执行命令后就可以.原创 2022-03-24 22:31:54 · 11360 阅读 · 0 评论 -
手动安装m4、autoconf、automake、libtool
安装m4wget http://mirrors.kernel.org/gnu/m4/m4-1.4.13.tar.gztar -xzvf m4-1.4.13.tar.gzcd m4-1.4.13./configure –prefix=/usr/localmake && make install安装autoconfwget http://mirrors.kernel.org/gnu/autoconf/autoconf-2.63.tar.gztar -xzvf autoc原创 2022-03-22 16:32:41 · 1119 阅读 · 0 评论 -
解决ubuntu安装libssl-dev失败
问题描述在ubuntu进行apt操作时,提示libssl依赖不匹配,如:The following packages have unmet dependencies: libssl-dev : Depends: libssl1.0.0 (= 1.0.1-4ubuntu5.7) but 1.0.1c-3ubuntu2.2 is to be installed Recommends: libssl-doc but it is not going to be install转载 2022-03-22 14:36:54 · 2998 阅读 · 2 评论 -
Ubuntu的.config文件夹在哪?
打开/home目录,按Ctrl+H,就可以看到.config文件夹了原创 2022-03-19 19:27:30 · 5980 阅读 · 2 评论 -
DPDK编译出现错误 error: this statement may fall through [-Werror=implicit-fallthrough=] 解决方法
今天在编译dpdk的时候出现了error: this statement may fall through [-Werror=implicit-fallthrough=]的错误提示,实际上之前就遇到一次,当时也解决了,结果这次又遇到就忘了,又弄了好久,所以干脆就在这里记录一下,以防未来可能还会用到。。。提示这个错误,根据网上的教程提示,说是因为有 Makefile 文件里有 -Werror 这个参数导致的,这个参数会导致一些警告也编程error,所以要找到对应的 Makefile 文件将里面的 -Wer原创 2022-03-17 22:59:58 · 8545 阅读 · 3 评论 -
Ubuntu18.04 编译出现fatal error: bits/libc-header-start.h: No such file or directory
apt-get installgcc-multilib , 环境没有完善,安装这个即可转载 2022-03-14 22:05:23 · 379 阅读 · 0 评论 -
Linux网络虚拟化:1、名称空间和veth
Network namespace是linux内核提供的进行网络隔离的功能,每一个名称空间内有自己独立的网络协议栈,有自己独立的路由表等。Docker容器网络的实现和隔离就是通过网络名称空间实现的。操作网络名称空间# 添加[root@localhost ~]# ip netns add ns1# 查看[root@localhost ~]# ip netns listns1[root@localhost ~]# ip netns showns1# 在名称空间内执行命令[root转载 2022-03-13 15:05:38 · 640 阅读 · 0 评论 -
fatal error :numa.h:No such file or directory 解决方法
在编译DPDK的时候,出现了如下错误提示,fatal error: numa.h: No such file or directory原因是缺少安装包,执行如下命令即可。Ubuntu:$ apt-get install libnuma-dev原创 2022-03-06 10:01:48 · 4671 阅读 · 2 评论 -
C++ internal compiler error:killed (program cc1plus)
1.问题描述在编译p4c的时候报了一个错c++: internal compiler error: Killed (program cc1plus)Please submit a full bug report主要是在编译过程中,内存不够造成的。2.解决方案使用swap创建临时分区sudo dd if=/dev/zero of=/swapfile bs=64M count=16#count的大小就是增加的swap空间的大小,64M是块大小,所以空间大小是bs*count原创 2022-03-03 21:30:05 · 6186 阅读 · 1 评论 -
ubuntu开启远程ssh连接
1. 更新源列表打开"终端窗口",输入"sudo apt-get update"-->回车-->"输入当前登录用户的管理员密码"-->回车,就可以了。2. 安装openssh-server在终端中输入: sudo apt-get install openssh-server原创 2022-03-01 14:22:19 · 2614 阅读 · 0 评论 -
fatal error:Killed signal terminated program cc1plus错误解决方法
在进行make编译的时候,有的时候会出现fatal error:Killed signal terminated program cc1plus的错误提示,这是因为虚拟机的内存分配小了导致的,只需要将虚拟机的内存设置大一些即可原创 2022-02-27 22:18:07 · 7038 阅读 · 0 评论 -
unable to access https://github.com/....解决方法
git config --global url."https://".insteadOf git://可以把git:// 替换成 https:// 方便使用 https 协议相反的,如果想要将https 替换成 git,比如我们平时下载不到github的东西,提示 unable to access https://github.com/.......的时候就可以用git config --global url."git://".insteadOf https://这个方法来解决..原创 2022-02-27 15:35:55 · 22341 阅读 · 2 评论 -
DPDK执行测试文件报错
最近在安装DPDK的时候,由于没有开启大页导致在执行测试用例的时候报错了,具体:./build/helloworld然后报错make[2]: *** [lib/netdev-dpdk.lo] Error 1make[2]: *** Waiting for unfinished jobs....make[2]: Leaving directory `/home/vagrant/ovs'make[1]: *** [all-recursive] Error 1make[1]: Leavin原创 2022-02-26 11:04:41 · 463 阅读 · 0 评论 -
wget下载到指定目录并指定文件名
wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ./tmp/miniconda3.sh下载到tmp文件夹,并命名为miniconda3.sh如果就是当前目录,可以写成:wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O miniconda3.sh...转载 2022-02-25 20:00:26 · 5940 阅读 · 0 评论 -
使用 wget 提示 scheme missing
今天在使用wget命令下载东西的时候,出现了scheme missing的错误提示应该是wget位置找不到的原因,可以用whereis wget查看wget安装在了哪然后再按照路径的形式执行wget 来代替原本的wget/usr/bin/wget http://.............原创 2022-02-25 10:01:59 · 4963 阅读 · 0 评论 -
Vagrant+Virtual Box简单安装虚拟机教程
一、下载安装VirtualBoxVirtualBox官网打开官网链接,然后点击官网正中心大大的download选择下载windows版本下载完成后安装即可。注意:这里本机是windows所以选的是windows host,千万别认为要装linux选成了Linux distributions!二、下载安装vagrantvagrant官网点击download选择windows、64位版本的,再点击download等待下载完成 安装即可。三、初始化vagr原创 2022-02-24 10:39:05 · 678 阅读 · 0 评论 -
c++: fatal error: Killed signal terminated program cc1plus解决
今天在下载编译p4c的是时候,速度极慢,并且跑了半天给我跳出来一个这个错误:c++: fatal error: Killed signal terminated program cc1plus后来搜了一下,说是因为内存分配的大小不够(其实之前也遇到过,但是给忘了,所以这次就在这里记录一下)方法:将虚拟机关掉,将分配的内存调大一些就可以了。。。所以我准备试一下,希望能成功。...原创 2022-02-23 15:14:58 · 3118 阅读 · 0 评论 -
protobuf 安装教程
sudo apt-get install autoconf automake libtool curl make g++ unzipgit clone https://github.com/google/protobuf.gitcd protobuf./autogen.sh./configure这里提示了一个错误,说是third_party文件里没有googletest的信息,这里需要另外下载googletest文件,这里有一个疑问,,我下载最新版1....原创 2022-02-23 10:49:03 · 1801 阅读 · 0 评论 -
ldconfig命令的作用
ldconfig是一个动态链接库管理命令为了让动态链接库为系统所共享,还需运行动态链接库的管理命令--ldconfigldconfig 命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态 链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为 /etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.ldconfig通常在系统启动..转载 2022-02-23 10:33:42 · 320 阅读 · 0 评论 -
bpftool安装教程
安装bpftool:原本是没有安装bpftool的,输入bpftool后提示如上图所示,提示了集中安装方法,分别是安装不同的版本。由于我一开始也不会用,所以就选了第一个版本最高的,根据提示输入命令确实成功安装了,但是用不了,,,,因为我忽略了自己的内核版本。。。于是又按照提示输入:apt install linux-tools-5.13.0-30-generic并执行了第二条命令:apt install linux-tools-generic于...原创 2022-02-20 22:09:52 · 4860 阅读 · 0 评论 -
Ubuntu编译出现:gelf.h: No such file or directory
最近在学习使用XDP时,进行make编译的时候出现了gelf.h: No such file or directory的错误提示实际上就是缺少了头文件,应该是在下载某些包的时候没有带上这个,所以需要另外下载,那么可以使用以下命令解决:sudo apt-get install libelf-dev就可以解决了,之后进行make编译的时候不再出错。这里我的Ubuntu的版本是20.04在https://github.com/sslab-gatech/opensgx/issues/20原创 2022-02-20 21:06:58 · 12544 阅读 · 5 评论 -
可编程网络Data Path 及 XDP
目录可编程网络DataPath XDP 的基本架构 XDP 的软件要求 XDP 的硬件要求 XDP 的工作流程及使用 XDP 的工作模式 XDP 的工作流程 Hello World XDP 的应用 参考 进阶参考 可编程网络DataPath大部分网络数据的最终生产者和消费者都是应用程序,在一个计算机中,网络数据包需要经过网卡 <=> 系统内核 <=> 应用程序,才能完成传输。Linux 有严格的内核和用户空间隔离,网络数据在内核.转载 2022-02-20 17:28:04 · 1057 阅读 · 0 评论 -
Ubuntu安装包时出现unable to locate libbpf解决方法
在安装包时提示了unable to locate xxxx 的情况,这里记录一下上网查找了资料,说是因为更换了源的原因,更换源后没有更新,所以会出现无法找到包的情况,但是实际上我是更新了,关于更换ubuntu的源的方法可以参考我另外一篇文章:Ubuntu 20.04 更换阿里源_木可木可❀的博客-CSDN博客实际上在最后我已经执行了sudo apt-get update进行更新,但是还是提示了这个错误,gcc等的下载又没有任何问题,,所以我重启了一下,依旧不行,说明肯定不是更新的问题,应该是这个原创 2022-02-20 14:42:02 · 1223 阅读 · 0 评论 -
xdp-ebpf 简介
根据众多博客资料,言简意赅的介绍xdp-ebpf. 小白一个,个人理解。勿喷!1、bfp:Berkeley Packet Filter, 用于过滤filter 网络报文packet的架构。是tcpdump(linux)和wireshark(windows)乃至网络监控(network monitoring)领域的基石。其背后的思想是:“与其把数据包复制到用户空间执行用户态程序过滤,不如把过滤程序灌进内核去”...转载 2022-02-12 11:15:59 · 562 阅读 · 0 评论 -
Ubuntu 20.04 更换阿里源
Ubuntu20.04的换源和Ubuntu18.04有一些不同,不能直接在软件设置中更改(我没找到),所以用了命令行来进行更改,这里参考了1、备份/etc/apt/sources.list 文件sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak2、编辑/etc/apt/sources.list文件, 我用的vim,也可以用别的编辑器编辑sudo nano /etc/apt/sources.list3、在文件前面添加下原创 2022-02-11 10:46:03 · 9146 阅读 · 0 评论 -
Linux 防火墙开放特定端口 (iptables)
查看状态:iptables -L -n下面添加对特定端口开放的方法:使用iptables开放如下端口/sbin/iptables -I INPUT -p tcp --dport 8000 -j ACCEPT保存/etc/rc.d/init.d/iptables save重启服务service iptables restart查看需要打开的端口是否生效?/etc/init.d/iptables status法2:或直接编辑/etc/sysconfig/iptables-A INPUT转载 2022-02-09 14:14:43 · 23875 阅读 · 1 评论 -
Ubuntu18.04安装bmv2
1、下载bmv2源码git clone git://github.com/p4lang/behavioral-model.git2、安装bmv2依赖文件cd behavioral-model./install_deps.sh (此脚本安装bmv2依赖库)这里我在安装的时候出了一些问题,说是无法访问https://github.com/apache/thrift.git/,个人认为这里的原因是github有的时候会访问不到导致的,本身这个步骤是没有问题的,...原创 2022-02-06 16:50:05 · 1492 阅读 · 0 评论 -
ubuntu18.04配置P4环境
主要安装五个组件及其依赖库文件:bmv2, p4c, PI, mininet, P4 tutorials(官方实例)1. 准备: 新建P4文件并将其加入环境变量,用于存储P4的组件: mkdir P4 cd P4 echo"P4_HOME=$(pwd)">> ~/.bashrcsource ~/.bashrc2. 安装依赖库proto...转载 2022-01-27 15:47:51 · 556 阅读 · 1 评论 -
Ubuntu系统下文件带小锁如何解决
问题描述:配置环境过程中莫名其妙文件带锁,不能读写甚至不能删除操作。遇到过不少次了,这次记录下,久了不用就忘了。方法一:单个文件被锁的情况sudo chmod 777 filenamefilename换成你需要解锁的文件即可,例如:sudo chmod 777 main.cpp.那么被锁的main.cpp文件就解锁了。方法二:文件夹带锁:这个时候不能用上面的方法了,因为你解锁了当面文件夹,文件夹里面的内容会全部带锁。这个时候:sudo chown -R username fil原创 2022-01-27 10:36:12 · 14581 阅读 · 6 评论 -
如何解决c++: internal compiler error: 已杀死 (program cc1plus)
1.发现问题今天在安装PCL的过程中,反复出现一个现象,提示出现c++: internal compiler error: 已杀死 (program cc1plus)。报错情况:反复查找一直以为是安装的版本版本问题或者是依赖问题,最后发现是自己的交换空间不足,当初安装的时候分配交换空间是2G,临时增加了2G交换空间,问题解决。2.解决问题方法1、创建临时分区命令sudo dd if=/dev/zero of=/swapfile bs=64M count=32#count的大小转载 2022-01-27 10:21:09 · 5195 阅读 · 1 评论 -
ubuntu18.04安装protobuf
安装步骤sudo apt-get install autoconf automake libtool curl make g++ unzipgit clone https://github.com/protocolbuffers/protobuf.gitcd protobufgit submodule update --init --recursive第一次执行这个命令的时候,是错误的,又执行了一次,就正确了,所以大家可以试试执行两次这个命令原创 2022-01-26 22:45:11 · 1320 阅读 · 2 评论 -
ubuntu下修改环境变量添加PYTHONPATH方法
Ubuntu下设置环境变量有三种方法,一种用于当前终端,一种用于当前用户,一种用于所有用户:一:用于当前终端:在当前终端中输入:export PATH=$PATH:<你的要加入的路径>不过上面的方法只适用于当前终端,一旦当前终端关闭或在另一个终端中,则无效。export NDK_ROOT=/home/jiang/soft/Android-ndk-r8e #只能在当前终端使用。二:用于当前用户:在用户主目录下有一个 .bashrc 隐藏文件,可以在此文件中加入 PA..转载 2022-01-25 16:41:58 · 1438 阅读 · 1 评论 -
ubuntu环境下安装DPDK
一、System Requirements1、build-essential2、python3.5 or later3、meson、ninja (建议使用pip3安装最新版本, 安装时添加--user)4、pyelftools(0.22+, apt install python3-pyelftools)5、libnuma-devNote:我使用pip3安装meson默认安装在/home/tp/.local/bin下(具体问题具体分析),需要将其添加到环境变量中,之后才可使用.exp原创 2022-01-24 20:45:57 · 2482 阅读 · 0 评论 -
如何在Ubuntu中开启大页
为了对内存进行管理,操作系统对内存实施分页管理。内存页面的默认大小被设置为4096字节(4KB),原则上内存页面大小可以配置,但是大多数的操作系统视线中还是采用的默认的4KB页面。现在4KB大小的页面在某些情况下不适用了,可能需要手动去更改,接下来介绍一下更改ubuntu中的页面为大页面的方式。查看页面大小:getconf PAGESIZE看透明大页面是否打开:cat /sys/kernel/mm/transparent_hugepage/enabled显示为 mad..原创 2022-01-22 09:52:10 · 3344 阅读 · 0 评论 -
pip和pip3
pip和pip3的区别pip是一个现代的,通用的Python包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。 如果系统中只安装了Python2,那么就只能使用pip。 如果系统中只安装了Python3,那么既可以使用pip也可以使用pip3,二者是等价的。 如果系统中同时安装了Python2和Python3,则pip默认给Python2用,pip3指定给Python3用。pip3的下载:sudo apt install python3-pip我不太记得pip是...原创 2022-01-22 09:17:28 · 612 阅读 · 0 评论