1.VPP 编译、源码安装、安装使用及插件开发注意事项
2.Ubuntu16.04中配置p4编程环境(二)
3.Gentoo 安装基本系统全过程记录
4.linuxå¯ä»¥å¨swapååºä¸å®è£
5.WSL2 安装并下载、源码编译AOSP源码
6.faceswap论坛搬运-安装篇
VPP 编译、安装安装、源码使用及插件开发注意事项
VPP(Vector Packet Processing)是安装h5麻将源码一个由Cisco开发的开源可扩展框架,用于提供易于使用的源码高性能交换和路由功能。它通过使用各种插件(Plugin)来处理网络协议,安装这些插件可以在配置代码中指定其后续操作。源码插件间的安装处理逻辑通过返回的索引链接起来,形成一个处理流程。源码
VPP的安装核心在于其高性能处理机制,它将相同类型的源码包放在数组中,利用CPU缓存提高效率,安装并通过SSE、源码AVX指令加速(x平台)、NEON指令加速(ARM平台)或AltiVec技术加速(PowerPC平台)。Bihash实现了一个高效的检索表结构,支持读写分离。
VPP安装非常简单,无需编译步骤,直接从官方网站下载源代码,通过apt/yum更新后,执行apt/yum install vpp即可完成安装。不过需要注意的是,安装的版本可能较低。
在使用VPP时,新版本内置了DPDK,但默认情况下未启用高性能模式。默认运行方式可能为socket/af_packet,性能一般。如果你熟悉交换机指令,VPP的使用方式会很熟悉,具有自动补全、帮助和显示信息的功能。创建虚拟网口与VPP建立通信通常使用veth技术。
创建虚拟网口时,xp系统源码结构如需让VPP运行,通常需要通过命令创建网口并开启主机到VPP的通道。具体操作可参考以下示例:创建虚拟网口与VPP内部建立通讯。
VPP提供了一套完整的命令系统,允许用户进行详细的配置和调试。使用VPP指令时,通过ping .0.0.2检查网络连通性,同时VPP内部的show int命令可以显示统计数据的变化情况,而主机通过tcpdump工具可以抓取到包。
编写插件时,可以参考src/examples/sample_plugin/sample中的示例代码。插件初始化代码在sample.c/sample_init函数中,其中VNET_FEATURE_INIT宏定义了前导节点及插入到哪个节点前面。默认位置为ethernet-input,即适配器输入的前面。vnet_feature_enable_disable函数用于激活节点,参数1通常包含前一步中定义的值。在插件命令执行时,如sample macswap,将调用相应的节点逻辑。
丢包操作可以通过在插件初始化时获取error_drop节点的全局索引,然后将需要丢弃的包存储到目标位置,并使用vlib_put_frame_to_node函数将包放入error_drop节点。实现时,可以使用vlib_get_next_frame获取目标包地址,然后使用put_frame函数将包放入指定位置。
编写和编译插件的流程相对标准,使用emacs进行编辑。VPP的源码编译相对简单,通常只需执行几条命令即可。需要注意的是,在编译过程中,可能会遇到如内存分配不足等问题,因此在虚拟机环境和图形界面下需进行相应的优化。同时,在特定版本和环境下,无纸化会议源码下载可能需要额外的依赖库和配置文件。
在安装和配置VPP时,可能会遇到一些常见的问题,例如无法打开日志文件、组vpp不存在等。这些问题通常可以通过调整配置文件或创建相关目录来解决。在某些版本和环境下,安装时可能需要额外的依赖包,如intel-ipsec-mb、dpdk、rdma-core、xdp-tools、quicly、meson等,确保在编译和安装过程中正确配置这些依赖。
最后,确保在安装和运行VPP时有足够的磁盘空间,特别是在配置DPDK时,需要充足的内存资源。如果在HyperV下的Ubuntu.环境中遇到问题,可能需要额外的配置和优化。对于较新的Ubuntu版本,确保使用的是适合VPP版本的系统软件包,避免因版本不兼容导致的问题。
Ubuntu.中配置p4编程环境(二)
在Ubuntu . LTS (内核4..0--generic)上搭建p4编程环境,耗时一周,经历了不少挑战。下面分享详细的安装步骤,供参考。
一、安装依赖项与gmock
首先,从源码下载gmock并编译。确保所有单元测试通过,完成后将gmock-1.7.0改名到gmock。
二、安装protobuf
protobuf是python 源码深度剖析关键组件,下载稳定版本,解压后运行脚本。务必确保make check所有模块通过,解决错误后再继续。
三、安装p4c - 编译器核心
从源码下载p4c,如遇到问题可尝试git替代。编译过程中,注意内存不足问题,可能需要创建swap分区。确保所有单元测试通过后,进行安装。
四、bmv2 - 软件交换机环境
下载bmv2源码,安装依赖并升级pip,编译并通过所有单元测试后安装,查看版本确认安装成功。
五、grpc - 通信框架
grpc用于透明通信,安装时确保所有测试通过。
六、安装PI - 控制平面实现
PI的安装相对简单,基本无问题。
七、mininet - 网络仿真器
mininet用于构建虚拟网络拓扑。
八、p4-tutorials - 官方教程与实验
完成所有基础组件后,可以开始学习和实践p4教程。
九、安装完成
最终的P4目录结构如下,工作主要在tutorials目录,其他为工具组件。至此,p4环境已经配置完毕,可以开始你的学习之旅了。
Gentoo 安装基本系统全过程记录
下载iso 从Gentoo官网下载最新版的付费下载视频源码minimal镜像,并通过rufus或dd命令刻录为iso文件。在Windows系统中推荐使用rufus,它是开源免费且操作简单的工具。在Linux系统中,利用dd命令进行iso文件刻录。 配置无线网 确认U盘已正确安装,并通过输入lsblk查看对应设备。使用dd命令将Minimal镜像写入U盘,完成时间约为几分钟。重新启动计算机,从U盘启动,过程中选择键盘模式并确认,之后会进入红色提示符界面。 联网配置 如果使用有线网络,网络已默认连接。通过ping命令确认网络连接状态。若使用无线网络,需手动配置。使用lspci -k检查设备驱动是否加载,使用dmesg | grep firmware查看内核中固件信息。使用iwconfig查看无线网卡名称,通常为wlp3s0,根据实际设备名称进行后续配置。 编辑配置文件 在/etc/conf.d/net中添加以下内容,确保与实际设备名称相符:modules_wlp3s0="wpa_supplicant"
wpa_supplicant_wlp3s0="-Dwext"
config_wlp3s0="dhcp"
生成wpa_supplicant.conf文件,输入无线SSID和密码,确保文件路径正确。 编辑启动脚本 在/etc/init.d目录下创建或修改脚本文件,确保其正确链接到对应的网络设备文件,如ln -s net.lo net.wlp3s0,然后使用/etc/init.d/net.wlp3s0 start启动网络。 测试网络连接 执行ping命令测试网络连接状态。 磁盘分区与挂载 确认网络连接正常后,使用cfdisk对硬盘进行分区。根据设备的启动模式选择分区方案。对于UEFI模式,分区方案可能如下:分区 大小 挂载点
/dev/sda1 M 引导分区 /boot/efi
/dev/sda2 8G 交换分区 swap
/dev/sda3 G 根分区 /
/dev/sda4 G 用户主目录 /home
完成分区后,使用write命令确认分区信息,然后格式化和挂载分区,确保正确挂载根分区、引导分区、交换分区和用户主目录分区。 下载stage3 使用cd命令进入根分区,下载stage3文件。通过links命令选择合适的Gentoo镜像,并输入下载命令开始下载stage3文件。下载完成后,检查文件是否存在并解压。 配置系统 配置make.conf文件,根据CPU核心数设置MAKEOPTS参数,通常为-j5。选择合适的配置文件并更新系统。 安装内核源码 使用emerge命令安装sys-kernel/gentoo-sources包,以获取内核源码。根据提示完成安装。 编译内核 使用genkernel一键编译内核,检查内核版本,并安装所需的固件。配置主机名并设置自动启动网络。 安装工具 安装系统日志记录、Cron守护程序、文件索引、DHCP客户端和无线网络工具等,确保系统功能完整。 配置引导 配置GRUB引导加载程序,确保与系统模式相匹配。安装GRUB2,使用grub-install命令将GRUB2文件安装到适当位置,并运行grub-mkconfig生成引导配置文件。 基本系统安装完成 重启系统后,gentoo基本系统已成功安装。此时,从chroot环境中退出并卸载分区,重新启动系统进入Gentoo环境。创建普通用户以支持桌面登录,后续将安装显卡驱动、触摸板驱动和桌面环境,敬请关注下篇文章。linuxå¯ä»¥å¨swapååºä¸å®è£
å¯ä»¥ãå®è£ Linuxè³å°éè¦ä¸¤ä¸ªååºï¼ä¸ä¸ªæ¯æ ¹ååºâ/âï¼è¦ä½¿ç¨ç£çç主ååºï¼èéé»è¾ååºï¼ç¨äºåå¨ç³»ç»ç主è¦æ件ãä¸ä¸ªæ¯äº¤æ¢ååºï¼å³swapååºãLinuxæ¯ä¸ç§èªç±åå¼æ¾æºä»£ç çç±»UNIXæä½ç³»ç»ã该æä½ç³»ç»çå æ ¸ç±æ纳æ¯Â·æç¦å ¹å¨å¹´æ5æ¥é¦æ¬¡åå¸ã
WSL2 安装并下载、编译AOSP源码
安装WSL2
参考链接:安装WSL要求Windows 版本及更高版本(内部版本及更高版本)或Windows 。在power shell或cmd执行如下命令。
执行完之后就安装了Linux for Windows,并且打开了Windows的虚拟机平台和Linux子系统功能,并设置wsl默认版本为2。也可以手动安装,先在控制面板中找到启用或关闭Windows功能,勾选虚拟机平台和适用于Linux的Windows子系统功能。然后在应用商店找到Linux子系统(例如Ubuntu)进行安装。
如果是升级安装wsl,可能还需要同时升级linux内核。直接下载msi升级安装文件,点击安装即可。具体可参考:旧版WSL的手动安装步骤
硬盘设置
这里分为两类,一是将AOSP源码放在Windows文件系统下,二是将源码放置在WSL中。对于前者,需要修改文件目录的大小写敏感,新建完源码目录后,用管理员身份打开Windows的Powershell,执行以下命令:
其中的path就是刚新建用来同步AOSP源码的目录,需要注意的是,这个命令只对指定的目录有效,不会改变已存在的子目录的大小写敏感,所以要在同步代码之前设置好。根据文章:WSL编译AOSP必要的几个前置工作,还需要重新挂载磁盘。如果源码放在了Windows驱动器上,比如说F:\aosp,在WSL中的路径应该是/mnt/f/aosp这种形式的,此时需要以drvfs文件系统重新挂载盘符,否则编译到中途会报错:
注意,每次WSL重启,在编译之前都需要执行这步操作,也可以将它新建成WSL的一个开机服务,确保每次打开WSL都会执行这两段命令。如果是将源码放置在WSL中,需要注意WSL默认占用C盘空间,保证C盘有足够的空间,或者将WSL迁移到别的盘符。因为我的硬盘没有分区,不用担心占满C盘的空间,所以直接将源码放在WSL中编译。WSL安装之后默认是GB大小,对于AOSP的编译是不够的。可通过df命令查看容量,下面是我编译完之后的容量,可以看到占用了GB。
扩展WSL 2虚拟硬盘的大小 如何管理WSL磁盘空间
输出如下:
经过如上操作,将wsl的虚拟磁盘大小调整到1TB。
源码下载
创建bin,并加入path:
下载repo:
下载代码有两种方式,使用每月更新的初始化包或者传统初始化方式。
下载mirrors.tuna.tsinghua.edu.cn...,下载完成后记得根据checksum.txt的内容校验一下。由于所有代码都是从隐藏的.repo目录中checkout出来的,所以我们只保留了.repo目录,下载后解压再repo sync一遍即可得到完整的目录。使用方法如下:
此后,每次只需运行repo sync即可保持同步。
建立工作目录并初始化仓库: repo init -u mirrors.tuna.tsinghua.edu.cn... 如果需要某个特定的Android版本(列表): repo init -u mirrors.tuna.tsinghua.edu.cn... -b android-4.0.1_r1 同步源码树(以后只需执行这条命令来同步): repo sync 详细可见:AOSP | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror Android源码(AOSP)下载与编译 - 掘金
设置WSL内存大小
直接编译源码,会因为内存不足导致失败,通过free -m查看内存,只有4GB内存,swap空间只有2GB。可以通过设置WSL配置文件来修改相关配置属性。在用户目录下新建.wslconfig文件,在文件管理器输入%USERPROFILE%可找到用户文件夹。注意这里新建.wslconfig文件不要用新建文本文件的方式,这样文件可能没法被正确识别。可以通过命令行输入code .wslconfig的方式。
配置文件如下,根据自己的硬件配置尽可能多的分配多点资源,在编译完成后也能修改回来。我电脑是GB内存,所以给WSL配置GB内存,还有GB swap空间。
编译源码
编译源码就是常规流程,lunch项根据自己需要进行选择,编译线程数根据机器配置选择。
编译可能会报错缺少库文件,直接安装即可。sudo apt-get install libncurses5 如果需要编译出CMakeLists文件,方便导入CLion,需要在编译前添加环境变量。
编译成功!!
导入Clion效果。
若需要导入Android Studio中,还需要生成配置索引。
这一步需要Java环境,提前安装一下。sudo apt install openjdk--jdk
最终效果如下:
faceswap论坛搬运-安装篇
在Windows系统中,安装faceswap的过程相对简便。安装程序会自动处理大部分工作,包括显卡驱动(若使用)之外的所有组件。首先,确认你的显卡驱动是最新的;然后,从官方网站下载faceswap安装包。安装过程中,可能会遇到Windows智能屏幕的警告,这通常是由于程序从网络下载资源引起的,可自行查看源码或编译确认安全。选择安装位置,通常默认设置适合大多数用户。自定义安装时,注意安装faceswap版本,根据显卡类型(Nvidia、AMD或CPU)进行选择,并设置Conda环境名(默认即可,但会删除同名现有环境)。
安装程序会逐步下载和安装Git、MiniConda3,以及faceswap及其依赖包。faceswap的下载和Conda环境的创建可能需要时间,取决于网络速度。安装完成后,会创建桌面快捷方式以便启动faceswap GUI。若遇到安装失败,通常检查网络问题,重新运行或报告错误。
Linux环境下,安装faceswap同样简单,无论使用何种发行版。确保显卡驱动更新,下载安装程序后,在终端执行bash脚本。安装过程中会询问关于Conda的使用和安装路径,根据提示操作。faceswap在虚拟环境中运行,可自定义环境名。安装faceswap后,可以选择创建桌面快捷方式,然后确认并开始安装。