玩linux已经有半年多的时间了,在这半年时间里,我的linux系统重装了已经不下于十次了吧。最近心血来潮,玩了一把kali linux (大学霸),除了无线网卡驱动没有之外,其他的都很满意,比之前用的ubuntu系列的好多了。我知道有好多人都在用ubuntu系统,主要是因为这个系统用的人多,社区力量比较大,你能遇到的问题别人都已经遇到过了,在网上都可以找到很多关于ubuntu这个系统出问题之后的解决方案。ubuntu的确是入门的好东西。但是他也有好多缺点:不怎么稳定,在ubuntu用过一段时间之后,你会发现电脑开机之后会弹出很多错误信息,我特别讨厌这个,就把这个弹框禁止了,后来开机就没有这个可恶的东西了。但是如果不禁止的话这个就有点不友好了。ubuntu的源太旧了,有好多软件用apt 安装后会发现版本太旧了,根本没办法用,然后的自己从官网上下载,然后编译安装。对于一个想学好linux 的人来说,这些不算什么,但是源太旧的话就失去了源存在的意义了,不是吗。最后我觉着ubuntu的界面实在是不好看,尽管网上有人说ubuntu的界面不错,但是我觉得真的不好看,当然桌面可以自己装,这个不算什么。
Linux内核从3.x开始引入设备树的概念,用于实现驱动代码与设备信息相分离。在设备树出现以前,所有关于设备的具体信息都要写在驱动里,一旦外围设备变化,驱动代码就要重写。引入了设备树之后,驱动代码只负责处理驱动的逻辑,而关于设备的具体信息存放到设备树文件中,这样,如果只是硬件接口信息的变化而没有驱动逻辑的变化,驱动开发者只需要修改设备树文件信息,不需要改写驱动代码。比如在ARM Linux内,一个.dts(device tree source)文件对应一个ARM的machine,一般放置在内核的"arch/arm/boot/dts/"目录内,比如exynos4412参考板的板级设备树文件就是"arch/arm/boot/dts/exynos4412-origen.dts"。这个文件可以通过$make dtbs命令编译成二进制的.dtb文件供内核驱动使用。
Linux内核从3.x开始引入设备树的概念,用于实现驱动代码与设备信息相分离。在设备树出现以前,所有关于设备的具体信息都要写在驱动里,一旦外围设备变化,驱动代码就要重写。
这些问题虽然在线上经常看到,但我们似乎很少去深究。如果真的能透彻地把这些问题理解到位,我们对性能的掌控能力将会变得更强。
之前不是在树莓派里装了raspberryPi官方的系统吗,就是类似于debian的一个系统,然后我不想让它吃灰,就先后安装了花生壳搞内网穿透、AdGuardHome来当家庭路由器的DNS服务器,拦截一下辣鸡流量、frp内网穿透、aria2下载器,但是还是不满足的我一下狠心,把TF卡给格式化了,寻找起了Openwrt的镜像~~~
在使用CentOS Linux的过程中,有时候会遇到一个错误信息,提示“Device eth0 does not seem to be present”的问题。这个错误通常发生在网络配置方面出现问题的情况下,导致网络接口 eth0 无法正常识别。 在本篇博客文章中,我们将介绍解决这个问题的一些方法。
本人使用kali linux也有五六年了吧,就在昨晚执行了下面升级命令之后就发生了惨案:重启电脑之后上不了无线网。
Windows 开发环境: Windows 7 64bit 、Windows 10 64bit
查看模块信息:modifo < name> 其中包含version信息或 ethtool-i < name>
所以,当网卡接收到数据包后,要通知 Linux 内核有数据需要处理。另外,网卡驱动应该提供让 Linux 内核把数据把发送出去的接口。
一、前言 CentOS6.5不像CentOS7和Unbuntu那样自动安装好了无线网卡驱动,因此需要我们折腾一下。 二、安装前的准备工作 [a] 检查无线网卡驱动的安装情况(通过查看网络接口的安装情况来检查) 在虚拟终端下输入: #> iwconfig 若显示如下信息,则表示未安装无线网卡驱动 lo no wireless extensions. # 本地
上一篇文章中《图解Linux网络包接收过程》,我们梳理了在Linux系统下一个数据包被接收的整个过程。Linux内核对网络包的接收过程大致可以分为接收到RingBuffer、硬中断处理、ksoftirqd软中断处理几个过程。其中在ksoftirqd软中断处理中,把数据包从RingBuffer中摘下来,送到协议栈的处理,再之后送到用户进程socket的接收队列中。
刚换了几天 Manjaro Linux,无法联网,只显示本地 lo 网络连接。好像是升级内核和系统后,网卡驱动出现了问题。切换回 Debian 系,问题一致。最后发现在 Ubuntu Launchpad 内的网卡驱动 Realtek 8852AE, 8852BE, and 8853CE WiFi drivers 可以完美运行。
最近要给团队做一个长期的内部分享,主题就是Linux内核中数据包的处理流程。
一、背景说明 在之前的篇章中,提到在webvirtmgr里安装linux系统的vm,下面说下安装windows系统虚拟机的操作记录: 由于KVM管理虚拟机的硬盘和网卡需要virtio驱动,linux系统默认支持virtio驱动,所以安装linux系统虚拟机的时候只需要加载iso镜像即可。 但是windows系统默认不支持virtio驱动,需要另外下载virtio驱动,在安装windowss虚拟机过程中,需要选择virtio驱动路径,继而加载驱动,最后才可以识别到驱动。 下面是安装windows serve
测试环境系统viata 网卡Broadcom 802.11g 其他的linux方法类似。 1. 从[url]http://ndiswrapper.sourceforge.net/[/url]下载ndiswrapper 软件。此软件是用来使Linux运行windows无线网卡驱动,从而达到驱动无线的目的。 2. 依次打开设备管理器-网路适配器-无线网卡-驱动程序标签-驱动程序详细信息。查看驱动程序都由什么文件构成。并从相对的目录提取出想对应的文件。
Linux内核对网络包的接收过程大致可以分为接收到RingBuffer、硬中断处理、ksoftirqd软中断处理几个过程。其中在ksoftirqd软中断处理中,把数据包从RingBuffer中摘下来,送到协议栈的处理,再之后送到用户进程socket的接收队列中。
公网下载地址:http://mirrors.tencent.com/install/windows/virtio_64_1.0.9.exe
半年前我以源码的方式描述了网络包的接收过程。之后不断有粉丝提醒我还没聊发送过程呢。好,安排!
在云计算时代,虚拟机和容器已经成为标配。它们背后的网络管理都离不开一样东西,就是虚拟网络设备,或者叫虚拟网卡,tap/tun 就是在云计算时代非常重要的虚拟网络网卡。
MediaTek T750 是一款面向新一代5G CPE无线产品,可应用于5G固定无线接入(FWA)和移动热点(MiFi)等设备,为家庭、企业和移动用户带来高速5G连接,芯片平台采用 7nm 制程工艺,高度集成 5G NR FR1 调制解调器,4 核 Arm Cortex-A55 CPU 可提供完整的功能和配置,支持 5G NR Sub-6GHz 下双载波聚合(2CC CA)200MHz 频率,不仅拥有更大的信号覆盖范围,同时也让 5G 的下行速度大幅提升。
今天分享一篇经典Linux协议栈文章,主要讲解Linux网络子系统,看完相信大家对协议栈又会加深不少,不光可以了解协议栈处理流程,方便定位问题,还可以学习一下怎么去设计一个可扩展的子系统,屏蔽不同层次的差异。
高通5G平台SDX55支持5G独立组网(SA)和非独立组网(NSA)两种网络架构,同时兼容LTE和WCDMA制式,拥有更快的传输速度,更优秀的承载能力,以及更低的网络延时,可广泛应用于网关、工业监控、远程医疗、无人机、虚拟现实和沉浸式体验(VR和AR)、智慧能源、车联网、工业互联网、智慧教育、高清视频、智慧城市、家庭娱乐等多个领域。
利用 ethtool 可以根据需要更改以太网卡的参数,包括自动协商、速度、双工和局域网唤醒等参数。
传统的Linux内核网络协议栈由于更加注重通用性,其网络处理存在着固有的性能瓶颈,随着10G、25G、40G、100G甚至更高速率的网卡出现,这种性能瓶颈变得更加突出,传统内核网络协议栈已经难以满足高性能网络处理的要求。
通过前面的文章我们已经了解了「数据包从HTTP层->TCP层->IP层->网卡->互联网->目的地服务器」这中间涉及的知识。
服务器如果搭配了网口,在插入网线或者光纤后会亮灯。如果发现不亮,可以关闭机器查看亮不亮,因为有的时候系统会把网口禁用,进入到系统反而不亮了,除此之外不亮就是硬件问题。
因为要对百万、千万、甚至是过亿的用户提供各种网络服务,所以在一线互联网企业里面试和晋升后端开发同学的其中一个重点要求就是要能支撑高并发,要理解性能开销,会进行性能优化。而很多时候,如果你对网络底层的理解不深的话,遇到很多线上性能瓶颈你会觉得狗拿刺猬,无从下手。
制作带有 Intel 2.5G网卡驱动的镜像来解决ESXi7.0U2安装时找不到板载有线网卡问题
在Linux上做网络应用的性能优化时,一般都会对TCP相关的内核参数进行调节,特别是和缓冲、队列有关的参数。网上搜到的文章会告诉你需要修改哪些参数,但我们经常是知其然而不知其所以然,每次照抄过来后,可能很快就忘记或混淆了它们的含义。本文尝试总结TCP队列缓冲相关的内核参数,从协议栈的角度梳理它们,希望可以更容易的理解和记忆。注意,本文内容均来源于参考文档,没有去读相关的内核源码做验证,不能保证内容严谨正确。作为Java程序员没读过内核源码是硬伤。
前几天公司新购买一台服务器DELL R720,安装安装CentOS 5.6完成后发现只有lo,根本不存在eth*网卡,经过几番查找原来是对于r620、r720这类较新的机器,安装rhel5.x或centos 5.x系统,没有他的网卡驱动,所以要我们自己安装 网卡驱动,下载地址http://zh-cn.broadcom.com/support/ethernet_nic/downloaddrivers.php 知道到我们需要的网卡类型。
dmPython 是 DM 提供的依据 Python DB API version 2.0 中 API 使用规定而开发的数据库访问接口。
简单的说,就是在自己的电脑上安装苹果系统(MAC OS)。但由于苹果公司的软硬件限制,导致装系统这么一个在WIN系统中平常的事情,变成很多极客爱好者的专业。比如,我们的毛老师~
刚买回来一个智能音箱和博联,需要给音箱和博联配置联网,音箱需要先打开蓝牙,然后在手机app中填写wifi的ssid和密码,通过蓝牙发送到音箱,音箱收到后连接到wifi。
本文介绍了如何编写一个简单的驱动程序,该驱动程序可以控制硬件设备。首先介绍了驱动程序的基本结构和组成,包括驱动程序、设备、设备文件、操作系统和硬件之间的交互。然后详细讲解了驱动程序的开发过程,包括设备树、设备驱动、设备驱动的加载和运行,以及如何使用驱动程序开发工具编写驱动程序。最后,介绍了驱动程序在实际开发中的应用,包括驱动程序开发中的常见问题和解决方法,以及如何在生产环境中部署驱动程序。通过本文的学习,可以加深对驱动程序的理解,掌握驱动程序开发的基本技能,为后续的驱动程序开发工作打下坚实的基础。","summary_detail":[{"title":"本文介绍了如何编写一个简单的驱动程序,该驱动程序可以控制硬件设备。","summary":"本文介绍了如何编写一个简单的驱动程序,该驱动程序可以控制硬件设备。首先介绍了驱动程序的基本结构和组成,包括驱动程序、设备、设备文件、操作系统和硬件之间的交互。然后详细讲解了驱动程序的开发过程,包括设备树、设备驱动、设备驱动的加载和运行,以及如何使用驱动程序开发工具编写驱动程序。最后,介绍了驱动程序在实际开发中的应用,包括驱动程序开发中的常见问题和解决方法,以及如何在生产环境中部署驱动程序。通过本文的学习,可以加深对驱动程序的理解,掌握驱动程序开发的基本技能,为后续的驱动程序开发工作打下坚实的基础。
drivers 目录中存储了 驱动程序 相关代码 , 如 USB 总线驱动程序 , PCI 总线驱动程序 , 显卡驱动程序 , 网卡驱动程序 等 ;
之前记录过处理因为 LVS 网卡流量负载过高导致软中断发生丢包的问题,RPS 和 RFS 网卡多队列性能调优实践[1],对一般人来说压力不大的情况下其实碰见的概率并不高。这次想分享的话题是比较常见服务器网卡丢包现象排查思路,如果你是想了解点对点的丢包解决思路涉及面可能就比较广,不妨先参考之前的文章如何使用 MTR 诊断网络问题[2],对于 Linux 常用的网卡丢包分析工具自然是 ethtool。
作为网络领域的开发人员,我们经常要与Linux的数据报文打交道,一定要搞清楚数据报文是从何而来,又是如何离去。以前针对这个主题写过一些文章(主要是从源码角度),这次会更重视流程示意图(在细节上必然有所简化),争取在一篇文章中,就让大家理清数据报文的来龙去脉。
07:00.0 Network controller: Broadcom Corporation BCM43142 802.11b/g/n (rev 01)
官网主页:https://www.broadcom.com/products/ethernet-connectivity/network-adapters
因为 ThinkBook 16+ 采用的AMD锐龙6000系列CPU在 Linux Kernel 6 以下会出现键盘失灵现象,表现为按键后一直连按或卡死。同时安装 Debian 及衍生版系统会出现启动错误,给我这种频繁切换系统的场景带来不便,所以暂时换到 Manjaro Linux。
本文将介绍在Linux系统中,以一个UDP包的接收过程作为示例,介绍数据包是如何一步一步从应用程序到网卡并最终发送出去的。
因为要对百万、千万、甚至是过亿的用户提供各种网络服务,所以在一线互联网企业里面试和晋升后端开发同学的其中一个重点要求就是要能支撑高并发,要理解性能开销,会进行性能优化。而很多时候,如果你对Linux底层的理解不深的话,遇到很多线上性能瓶颈你会觉得狗拿刺猬,无从下手。
在 上一篇文章 中,我们介绍了网卡接收和发过数据在 Linux 内核中的处理过程,我们先来回顾一下网卡接收和发送数据的过程,如 图1 所示:
PF_RING是Luca Deri发明的提高内核处理数据包效率,并兼顾应用程序的补丁,如Libpcap和TCPDUMP等,以及一些辅助性程序(如ntop查看并分析网络流量等)。PF_RING是一种新型的网络socket,它可以极大的改进包捕获的速度。并且有如下特征:
在 {USB_DEVICE(0x148f,0x7601)}, /* MT 6370 */ 下面加入以下内容
本文将介绍在Linux系统中,以一个UDP包的接收过程作为示例,介绍数据包是如何一步一步从网卡传到进程手中的。
领取专属 10元无门槛券
手把手带您无忧上云