首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OpenWrt开源软路由项目使用

2020年9月10日 OpenWrt — building 成为最流行的自由和开源 (FOSS) 无线路由器项目已有16年的成功 — 今天加入 软件自由保护组织(SFC) 作为成员项目. FOSS无线路由器可确保所有互联网用户自由使用软件. 软件自由保护组织将帮助 OpenWrt 继续蓬勃发展并成为其新的财政赞助商. OpenWrt 在软件自由的历史上占有特殊的位置. OpenWrt的创建和发布表明 GPL 强制执行 有效并提高了软件自由度. 在2004年, Linksys发布了WRT54G路由器系列的固件代码时, 编码人员和修补匠重新重新控制了自己的路由器, 并且OpenWrt 根据GPL执法机构发布的资源启动了. 今天, OpenWrt 利用受GPL保护的软件自由与使用无线路由器连接到互联网的每个人共享该自由和控制权.

03
您找到你想要的搜索结果了吗?
是的
没有找到

自己动手DIY:N1软路由

路由器最主要的功能可以理解为实现信息的转送。因此,我们把这个过程称之为寻址过程。因为在路由器处在不同网络之间,但并不一定是信息的最终接收地址。所以在路由器中, 通常存在着一张路由表。根据传送网站传送的信息的最终地址,寻找下一转发地址,应该是哪个网络。其实深入简出的说,就如同快递公司来发送邮件。邮件并不是瞬间到达最终目的地,而是通过不同分站的分拣,不断的接近最终地址,从而实现邮件的投递过程的。路由器寻址过程也是类似原理。通过最终地址,在路由表中进行匹配,通过算法确定下一转发地址。这个地址可能是中间地址,也可能是最终的到达地址。

04

【 软路由 】基于koolshare固件的软路由安装

第一次涉及到软路由,一脸懵逼,可以说是一点基础都没有。 系统是有些毛病的win7系统,连外接显示器很卡,导致进度非常缓慢 当时刚刚装了一个Ubuntu双系统,对Linux不是非常熟悉,只知道些基础操作 第一次接触,上官网,官网全英文,看的我一脸懵 网上说可以自定义固件,自己编译,需要从GitHub上自己下载编译,光是这个编译就弄了四五天,因为是连外网,在没有情况下极慢,经常网络开小差 编译的时候需要下载国外的库,自己没有,就很耗时,有时还下载不下来 到了真正编译的时候,一编译编一天,前面都是成功的,到后面就找不到文件,失败,试了两三次后,就放弃了 需要,又开始网上找资料,学着搭 最终,搭好了,我上了Youtube,看了看教程,发现了一个更加好用的固件,koolshare,这是国内的比较出名的论坛,所以,顿时一片云开见月明,打算从安装koolshare入手。

02

基于WDM的专用USB设备的驱动程序开发[通俗易懂]

1引言 目前对于诸如USB鼠标、键盘等这样的计算机标准外设,Windows系统已经提供了标准的驱动程序,用户无需再进行任何开发工作。而开发专用USB设备,需要开发专用的驱动程序。 Windows2000/XP操作系统不允许用户程序直接访问硬件设备。为了实现对硬件设备的访问和控制,必须通过操作系统所认可的驱动程序对硬件设备实现间接访问和控制。驱动程序通常被认为是操作系统的组成部分,所以,开发驱动程序有严格的规范,被认为是“计算机高手”的工作。而利用DDK进行基于WDM(Win32 Driver Model)驱动程序开发,使驱动程序的开发变成了一项比较简单的工作。 2 Win32驱动程序模型 USB设备驱动程序必须符合由Microsoft为Windows 98及其后版本所定义的Win32驱动程序模型(Win32 Driver Model,WDM)规格。这些驱动程序称为WDM驱动程序,扩展名为.sys。 WDM定义了一个基本模型,处理所有类型的数据。例如,USB类驱动程序为所有USB 设备提供了一个抽象的模型,并具有由所有客户驱动程序使用的定义好的接口。有了对所有设备类型共同的核心驱动程序模型,使驱动程序开发人员更容易从一种类型的设备移动到另外一种类型的设备上去。而且它也意味着驱动程序模型的内核实现尽可能是固定的。 USB是使用标准Windows系统USB类驱动程序访问USBDI(Windows USB驱动程序接口)的USB设备驱动程序。USBD.sys就是Windows系统中的USB类驱动程序,它使用UHCD.sys来访问通用的主控制器接口设备,或者使用OpenHCI.sys访问开放式主控制器接口设备。USBHUB.sys是根集线器和外部集线器的USB驱动程序。在PCI枚举器发现了USB主控制器之后,它会自动装入相关的驱动程序。 3 Windows USB驱动程序接口 大多数客户化的USB设备需要由用户来编写设备驱动程序,以响应内核态或用户应用程序的请求。在内核级,命令由客户驱动程序使用内部IOCTL发送给USB系统,例如IOCTL-INTERNAL-USB-SUBMIT-URB允许发出USB请求块(URB)给系统USB驱动程序。URB允许发出几个功能调用给USB系统。用户态USB实用程序也可以发出几个普通IOCTL给USB设备,目的仅仅是得到连接设备的信息。 3.1函数驱动程序 函数驱动程序(function driver)让应用程序与USB设备,通过API函数来沟通。这些API函数属于Windows的Win32子系统,Win32子系统同时也管理着执行应用程序。函数驱动程序与较低级的总线驱动程序沟通,总线驱动程序控制着硬件。 图1是应用程序与各个驱动程序,如何一起完成USB通信的结构图。当设备或子类别的要求超过类别驱动程序的能力时,会有辅助的过滤器驱动程序来类别驱动程序的能力。一个上层的过滤驱动程序位于类别驱动程序的上方。这样,从客户应用程序传来的要求,会先经过上层的过滤驱动程序,然后才传给类别函数驱动程序。一个下层的过滤驱动程序位于类别驱动程序和总线驱动程序之间,如图1。类别驱动程序会将要求传给下层的过滤驱动程序,然后再传给总线驱动程序。 图1应用程序与驱动程序完成USB通信的结构 通用串行总线驱动程序(USBD.SYS)是USB系统中负责管理通用串行总线的工作,位于主机上的一个软件。USBD负责控制所有的USB协议操作和高层的中断处理控制。在Windows98及以上版本中,Microsoft定义了一个新的设备驱动程序模型,称之为Windows设备驱动程序模型(WindowsDriver Model或WDM)。 USB客户应用程序也是一种设备驱动程序,通过定义的一个称之为USB接口的层间接口来访问其下方的USB软件。应用程序正是通过这些USB客户软件来实现与USB设备之间的通信。 针对USB客户应用程序的开发,相应版本的Windows操作系统的设备驱动程序开发包(Device Driver Developer’s Kit,即DDK)给出了相应的USB接口函数。并提供了对于这些函数具体使用的参考文档。 3.2 USBDI的IOCTL 为了编写USB设备驱动程序,通常还要在源代码中包含DDK所提供的几个头文件。这些头文件在Windows98下存放在/98DDK/inc/win98目录中,在Windows 2000下存放在/NTDDK/inc/win2000目录中。这些头文件的用途可以总结如下: usb100.h 定义了在USB设备驱动程序设计中所要用到的各种常量和数据结构。 Usbdi.h USBDI例程,其中包括对USBD和USB设备驱动程序通用的数据结构,适用于内核和用户模式。 Usbdlib.h URB构造和各种例程,定义了USBD所输出的服务,适用于内核和用户模式。 Usbioctl.h 给出了对IOC

02

玩转软路由 篇四:软路由中OpenWRT作为旁路由的安装设置教程

开篇说一些仁者见仁智者见智的话,先声明,这只是代表我自己近期浅陋的看法。看到很多人玩路由器,刷各种固件,什么爱快、高格、老毛子、OpenWRT什么的,自己也折腾过,也在恩山论坛里下载各路大神的固件使用。作为一个小白,就自然而然想到,这么多固件,哪个最好?当然对于这个问题,每个人的回答都不一样,毕竟适合自己的才重要。经过我自己不断在网上寻找答案,最后形成了一个成熟的看法,那就是真正的好不好,关键点在驱动,驱动做得会使得路由系统如虎添翼。但是,很多芯片厂家在卖芯片的时候是需要承诺不可进行二次开发的,所以路由器大厂华硕、网件是可以直接向芯片厂商比如高通、博通、MTK买成套的服务,那支持的效果肯定更好。而OpenWRT是开源社区,自然不会购买,所以我们刷在硬路由上的OpenWRT,只能靠破解出来的驱动或者阉割过的开源驱动,所以在效果上会明显跟不上。最后我得出结论,OpenWRT还是装在x86平台上,专注路由功能,WIFI部分还是交给硬路由。

01
领券