PiSwitch:用树莓派制作 Switch 游戏机

这是一件用树莓派制作的形似 Switch 的游戏机,作者 cfoote7 写道:
感谢树莓派基金会富有创意的开发人员、RetroPie 同样重要的Kodi。最后,我要感谢 Nintendo 让我做这个逆向工程,我可不太愿意玩它家的 Switch 主机。

这款主机将集复古游戏模拟器、媒体中心、微型电脑等多种用途于一身的,制作过程比较复杂,还是让我们看一组制成品的视频先睹为快吧!

使用预览

游戏视频运行 Debain 系统变身微型电脑

运行 Kodi 系统变身媒体中心

游戏视频

第1步:采购准备工作

你将需要以下工具:

  • 烙铁+焊料+助焊剂
  • 热熔胶枪
  • 3D打印机或借助3D打印服务商
  • 一套完整的微型螺丝刀套件
  • 精密钻头工具或带3/16钻头的钻头套件

耐心点,下面才是重点!

部件包括:

  • 树莓派官方7寸屏幕
  • Kingwin 80 件什锦笔记本更换螺丝套件或(各种大小和类型的螺丝)
  • 26 awg 电线
  • 1/8英寸大小立体声插孔带开关
  • 迷你金属音箱
  • 微型电源开关
  • 充满电的6600毫瓦电池
  • Joy-Con控制器(推荐使用充电器)
  • 树莓派3B(内置蓝牙和WiFi)
  • PAM8302 2.5W 音频功放
  • PowerBoost 1000C

3d打印的外壳(所需文件在这里下载)
Pi3SuperAwesomePortable_brackets.stl
SwitchPiScreen_v2.stl
Pi3SuperAwesomePortable_Case_2mm.stl

可选项:

  • 树莓派官方摄像头二代

第2步:将音频接口焊接到树莓派上

首先从树莓派开始,将26 awg 电线与树莓派焊接:
我会在音频接口附近将红色的左声道焊接到pp26(感谢树莓派基金会标记的焊盘)将黑色焊接到pp24。
右声道是黄色导线,并将其焊接到音频接口的左上角引脚。
我建议留下额外的8-10厘米长的电线,你可以将它们剪下来,或者卷起来留用。因为我的项目经常被拆开并重建或重新使用。我非常喜欢这个特殊的1/8插孔。我之所以选择它,是因为能清晰的从顶部看到并彻底的了解它的工作原理。

焊接音频接口(引脚见上图):
从树莓派上取下红色导线并将其焊接到1/8插孔上的针脚2上。
从树莓派上取下黄色导线,并将其焊接到1/8插孔上的针脚5上。
取下黑色导线,再拧8-10厘米长的黑色导线,然后在1/8插孔上焊接到针脚1上。
将8-10厘米长的红色导线焊接到1/8插孔上的针脚3上。
你现在应该有一个音频接口连接到树莓派,如果你播放声音,然后插入耳,就会很清晰地听见声音。我建议将导线用热熔胶粘合在树莓派的底部,同时底部的接口能固定细线,并保护它们免受损坏和短路。

第3步:焊接电源板和开关

PowerBoost 1000C 满足您所有的锂充电需求。

然而不幸的是,这个小东西虽然非常棒,但并不能输出足够的电力来运行Pi-Switch。但它的确是非常不错的充电电池,这个电池能为树莓派提供足够多的电量,使屏幕和音频供电大约2-3个小时。我会将电源保持开启,以便耗尽电池电量,这就意味着您需要直接插入电源。我仍在努力寻找更好的解决方案。

电源线:
首先看上图,你会注意到3个黑色圆圈和3个红色圆圈。
你猜到了!焊接3个25厘米的黑色导线和3个25厘米的红色导线到PowerBoost上标记的相应位置。

开关(电源开关,不是 Nintendo):
将一根右边或左边的腿从开关上切下,然后用5厘米的电线焊接到残缺的电源开关的备用引脚上。
焊接其中一条电线,切换至PowerBoost,剩下的电线连接至PowerBoost板。
热熔胶便宜,快捷,简单。我建议将连接到Power Boosted Board的每根电线上涂上热熔胶。

第4步:扬声器和音频板以及耳机插孔(将它们连接在一起)

这一步我们将这些组件组合在一起。

焊接扬声器:
如图所示,将每一根导线焊接到扬声器上的每个垫上。热收缩太方便了,如果你像我一样喜欢使用热熔胶!

焊接音频板:
拿起你的PAM8302,看看它的说明。如图所示,在电路板4-8欧姆的一侧,将扬声器电线焊接到两个中心垫上。

焊接音频的电源:
从PowerBoost板上取下其中一根红色电源线和一块接地板,并将红色电线焊接到PAM8302上的vin上,将黑色电线焊接到PAM8302上的gnd上。

焊接耳机至PAM8302:
从耳机插孔取出红线,并将其焊接到PAM8302的A+上。
从耳机插孔取出黑色线,并将其焊接到PAM8302的A-上。

焊接树莓派:
这有一张树莓派的图片。从PowerBoost上取出一根黑线将其焊接到树莓派图片上的黑点。
从PowerBoost上取出一根红线将其焊接到树莓派图片上的红点。

测试:
请小心确保剩余的黑线来自PowerBoost,和来自PowerBoost的红线不会触及任何东西。然后装上电池并翻转开关。如果所有部件都正确连接,则应在充电板上的指示灯上点亮指示灯,如果扬声器噪音太大,可能会听到扬声器发出轻微的嗡嗡声,以至于可能出现焊接问题。

第5步:组装

除了LCD和可选的PI相机之外,我们现在应该已经安装了所有东西。在之前的图片中,你会看到如何嵌入树莓派本身。这非常简单,现在你可以拿出那个80件什锦笔记本更换螺丝套件,找到一些比树莓派厚一到两毫米的螺丝,然后将它们拧入软印刷塑料中。推荐使用PLA。应该有两个合适的夹子来安置树莓派,并且在相反的角落有可以穿线的孔。电源板也是如此。上面的图片展示了电源板的组装。

现在将开关穿过电源板上方的小孔。用镊子或手指从外面抓住开关。如图所示,轻轻地拉开开关以防止其掉入箱内,在开关背面放置一些热熔胶。一旦胶水冷却,请检查开关是否便于使用。如果粘胶不好,请再试一次。在树莓派和PowerBoost之间钻一个3/16英寸的孔,也可以只是钻出一个孔。它应该在树莓派的usb端口的一侧。将耳机插孔穿入孔中并粘合到位。
最后,将扬声器电池和音频板粘合到位,如上图所示。我将扬声器放在电池下面的塑料下面,我把它直接塞在PowerBoost板后面。然后,我将电池粘在3D打印机箱的两侧。最后,我把扬声器放大器粘在电池的顶部。

所以,如果你已经做好了这一切,那么你现在应该已经将树莓派、PowerBoost、PAM8302、扬声器、电源开关和电池都安装在树莓派盒的背面。另外应该还有一个25厘米的黑线和一个25厘米的红线留下。

第6步:添加屏幕和配件

你几乎已经完成了这个相当复杂的组装。现在拿出一些6毫米长的螺丝和螺纹侧杆, 如上图所示,将它们拧入屏幕上的螺丝孔。如果屏幕不是连成一排的,为了更适合使用,可能会需要颠倒过来。看看图片,你可能会注意到我的成型线连接到了我的屏幕上。实际上,我将pin header放在我的PowerBoost上,而不是直接焊接。如果你没有提前看这些步骤的话,你可能正在焊接电线。如果我不特意提醒的话。我更喜欢pin header,因为它可以迅速、简单的修改,而我的创作始终处于不断变化的状态。

使用剩余的电线:
将剩余的红线从PowerBoost焊接到屏幕上的vin引脚。
将剩余的黑线从PowerBoost焊接到屏幕上的gnd引脚。

连接相机(可选):
将相机电缆插入相机板。
如图所示将电缆插入树莓派中。
通过以太网插孔翻转相机。
使电缆平整并粘合到位。

附加屏幕宽带线:
如图所示将带状电缆插入树莓派。
如果您看上图,它会显示我在连接带状电缆后如何将背面板向下翻转到位。
最后,将后面板上的四颗螺丝拧入屏幕背面的支架中,然后完全组装。

第7步:制作树莓派软件镜像

步骤 1)
给树莓派接上键盘,通电。
转到此网站并按照安装步骤操作:(仅将您的键盘设置为临时控制器)
https://github.com/RetroPie/RetroPie-Setup/wiki/First-Installation

步骤 2)
您可能会听到恼人的嗡嗡声(现在可以忽略,我们很快就会修复)
按照以下步骤通过ReroPie菜单设置wifi:
RetroPie / settings> raspi-config> interfacing options >SSH > Yes > Ok > Finish > Retropie Setup > Configuration Tools > wifi>(设置你的wifi)> exit>

步骤 3)
安装 Pixel:
raspbiantools > Install Pixel Desktop Environment > yes > (等一会) > ok (to flash player) > (稍等时间久一点) > ok > cancel > back >

步骤 4)
安装 Kodi:
Manage Packages > Manage Optional Packages > Kodi > Install from binary > (wait a while) > back > back > back>

步骤 5)
注册并连接您的 JoyCons 手柄:

Configuration /Tools > bluetooth > Register and Connect (同时按下右侧joy-con上L和R之间的小按钮) > choose Joy-Con (R) > NoInputNoOutput > (wait) > ok > ok

步骤 6)
用Joy-Con(L)重复步骤5。

步骤 7)
cancel > back > exit > (start button) > quit > quit emulation station> yes

步骤 8)
运行以下命令:

sudo apt-get update && sudo apt-get upgrade && sudo rpi-update
sudo reboot

步骤 9)
输入以下内容:

wget https://raw.githubusercontent.com/cfoote7/PiSwitch/master/setup.sh
sudo chmod 777 setup.sh && sudo chmod a+x setup.sh
./setup.sh

更新:
我已经添加了一个控制器连接菜单,屏幕上会显示是否连接到两个joy-cons。还增加了单人/双人玩家模式选择菜单。在完成第一boot时,你将可以用“+”和“-”按钮连接你的控制器,点击下一步,点击RetroPie,然后选择单人玩家模式。

备注:
pywx.py 是我的触摸屏启动的选择菜单,实际上它并不是启动选项,所有这些选项都储存在raspbian jessie下。我计划添加一个更简单的方式将控制器在启动时与此菜单配对。请您随时查看更新信息。如果您进行了任何改进,请特别注意是否可以构建此功能并告知我。我非常乐意为此提供合作服务。请检查我的存储库,我会更新在 https://github.com/cfoote7/PiSwitch

via Cherry 译。

本文来自:树莓派实验室

 

 

安装Pi-hole,让树莓派为你过滤家中广告

最近在使用DietPi这个魔改版Raspbian系统时意外的发现了这个神奇的软件(软件主页:https://pi-hole.net/,正如标题所说,它可以帮你过滤整个家中的广告,但不需要繁琐地针对每台设备进行设置,算是对非智能路由及低性能路由无法过滤广告的一种解决方案。

下面就讲解一下具体的安装方法咯。

注:同样适用于其他Linux设备

0.开始之前

首先你需要为你的树莓派安装好系统,然后你可能需要针对自家的网络环境为你的树莓派设置好静态IP,不同的路由器设置方法有一定差别,具体方法自行百度(关键词:路由品牌 静态IP)。

例如我刷了LEDE的路由器的设置在这里:

不过近几年的路由器大多会针对不同的设备设置固定的IP地址,所以如果你确定自己树莓派的IP地址不会变动,不设置也是OK的。

1.安装Pi-hole

Pi-hole的安装过程比较简单,只需在终端中输入一条命令即可:

curl -sSL https://install.pi-hole.net | bash

安装过程中你可以喝杯咖啡,看会儿书,刷会儿微博,直到你进入这个界面:

一路Enter,直到这里:

选择其中一个DNS提供商,或者选择最后一项自定义:

选好之后接着一路Enter,然后你继续可以喝杯咖啡,看会儿书,刷会儿微博,直到这里:

这时就已经安装完成了,访问上面给出的网址,输入密码即可进入后台。

如果需要修改密码,在终端中输入:

pihole -a -p newpassword

 

2.配置路由

光设置好树莓派是没卵用的,毕竟我们要过滤的是整个局域网的广告,所以我们要针对路由器进行配置。

Pi-hole采用的是使用本地DNS服务器的方式在局域网中进行过滤,所以我们需要设置Pi-hole为当前网络的DNS。

方法1
这种方法适用于大部分路由器,直接将DNS设置在路由器上。但需要注意的是,应当将DNS设置在LAN接口上(区别于WAN),在我这里是这样的:

 

方法2(推荐)
这种方法适用于一些刷了OpenWRT(LEDE),DD-WRT,Tomato等自定义程度较高固件的路由器,推荐使用该方式

在DHCP选项中填入:6,树莓派IP地址

 

注:若使用该方式,建议将上游DNS设置为路由器

方法3
如果这些选项在你的路由器里都没有,Pi-hole也内置了一个DHCP服务器,具体设置方法不多阐述。

方法4
如果你愿意的话,你也可以针对每一台设备进行设置,方便针对不同的设备进行过滤,具体设置方法不多阐述,自行百度。

不管你使用的哪一种方式,设置完之后都建议重启一下路由器或开关一下飞行模式,让设备使用新的DNS。

3.配置Pi-hole

实际上进行完上面的步骤就已经可以使用了,下面就针对一些常用的功能进行说明。

过滤规则
过滤的规则在这里,可以看到已内置了一些规则:

实际上,Pi-hole使用的是hosts方式对广告进行过滤(类似AdAway),默认的规则对于国内环境不太友好,下面就附上适用于国内环境的一些hosts:

  • yhosts:可以说是国内比较不错的hosts,定期有更新,奈何作者的唯我主义连带屏蔽了一些非广告网站,可以在终端中手动添加白名单:
pihole -w `curl -sSL https://raw.githubusercontent.com/vokins/yhosts/master/data/moot/cps.txt https://raw.githubusercontent.com/vokins/yhosts/master/data/moot/error.txt https://raw.githubusercontent.com/vokins/yhosts/master/data/moot/hate.txt | sed '/^@/d; /^#/d; s/127.0.0.1 //' | tr "\n" " "`
  • neoHosts:比较小众的hosts,看介绍貌似是不满于上面那位而弄出来的。
  • MWSL-hostslist:恶意网站实验室可能没多少人知道,不过其提供的OneDNS可就算是比较有名的了,这个hosts正是OneDNS中所用于屏蔽恶意网站的规则。
  • AdAway:也就是安卓上的AdAway所使用的规则,不过针对中国误杀现象严重,慎用。

如果还有哪些不错的去广告hosts,欢迎在评论区中留言。

相较于通常的过滤方式(如Adblock Plus、KoolProxy等),利用hosts过滤有自己的优缺点。优点是不会拖累网速(甚至可能有一定提升),缺点是过滤效果不尽如人意。

不过如果你要是想要利用这个做一些有违我国国情的事情,放心,那样的话就相当于在你家里再上了一道防火长城(Pi-hole只能将规则中的网站解析到自身以进行屏蔽)。

黑白名单

 

顾名思义就是对过滤规则的手动调整,黑名单分为匹配和通配两种,建议那些整天说退游的同学可以试试。白名单主要是针对一些有防过滤广告或被误杀的网站。

隐私设置

 

在这里你可以设置让一些不想在日志中出现的网站或设备隐藏起来,至于有什么用嘛……那各位自己心里的B数都很清楚啊……

Pi-hole上的一些其他高级功能这里就不多赘述了,有待自行探索。

4.Enjoy it!

到这里关于Pi-hole的全部设置就完成了,打开浏览器访问一些广告较多的网站,看看广告是否被屏蔽了、仪表盘上的数字是否增加,如果没有再仔细按照上面的步骤检查一遍,尤其是关于DNS设置的部分。

好了,和广告Say Goodbye吧!

本文来自:树莓派实验室

 

树莓派 Zero USB/以太网方式连接配置教程

树莓派 Zero 之所以成为一款非常棒的单板计算机并不全因为它小巧的尺寸和便宜的价格,还得益于它便捷、易用的特性。在加装了 Zero Quick Plug 或 microUSB/USB 转换头之后,将树莓派 Zero 和电脑连接起来。树莓派 Zero 即可配置成 USB/以太网设备,这时仅需要一个 USB 接口就实现给树莓派供电的同时将它接入因特网。不再需要携带额外的电源适配器、 USB HUB和无线网卡。可以说这是迄今为止连接树莓派最简单、方便的方式!
对于 Raspbian 2016-10-5 之后的系统镜像,你只需要在系统 SD 卡上修改几处配置文件即可将树莓派配置成一个 USB/以太网设备。
这个教程基于 Windows 平台,在连接树莓派之前,你可能需要在电脑上安装 Bonjour。它允许你的电脑自动识别 USB/以太网设备,例如打印机、扫描仪以及我们需要的树莓派。Bonjour 被包含在 iTunes 与 Adobe CS 软件中,所以很可能你已经装有这个软件,如果没有,你可以在这里单独下载安装。

一、配置 CONFIG.TXT 和 CMDLINE.TXT 文件

开始刷入系统,请确认你下载的系统镜像是 2016-10-5 之后的版本。在电脑上将系统镜像写入 micro SD 卡,可以使用 Win32 Disk Imager 这个工具(这里下载)。

完成之后,在电脑上打开这个 micro SD 卡的根目录 (例如. boot(E:)) 并打开 config.txt 文件。在文件末尾添加一行 dtoverlay=dwc2。

保存并关闭 config.txt 文件。

再打开 cmdline.txt 文件,请确认你的编辑器已关闭“自动换行”。编辑这个文件的时候不需要插入任何换行符,所有字符都在同一行。找到 rootwait,在后面插入 modules-load=dwc2,g_ether。

保存并关闭 cmdline.txt 文件。

最后在根目录创建一个名为 ssh 的文件或目录。

好了,可以从电脑上弹出 SD 卡了。把 SD 卡插入树莓派 Zero,用 Zero Quick Plug 或 microUSB/USB 转换头将树莓派 Zero 和电脑连接起来。

图中用到的这款连接部件是树莓派 Zero 多功能 USB 插头(Zero Quick Plug),详见下图。

这时 Windows 会自动识别到树莓派,并尝试安装驱动。

到这里,打开 PuTTY(这里下载)并尝试通过 SSH 连接树莓派的地址 raspberrypi.local。

如果你发现可以正常连接和登录树莓派,恭喜你!下面“安装 RNDIS 驱动”的步骤可以跳过了!直接从下面“设置共享互联网连接”开始阅读。

如果在这里遇到错误提示 “Unable to open connection to raspberrypi.local. Host does not exist”, 那么你需要在电脑上安装 RNDIS 驱动。

二、安装 RNDIS 驱动(酌情跳过)

保持树莓派与电脑的连接,打开 Windows 的“设备管理”,在“其他设备”中找到“RNDIS/Ethernet Gadget”, 右键选择“更新驱动程序”。

再选择“Browse my computer for driver software”。

选择“Let me pick from a list of device drivers on my computer”。

选择“Network adapters”,下一步。

在 “Manufacturer” 列表中选择 “Microsoft”。在 “Network Adapters” 列表中选择“Remote NDIS Compatible Device”,下一步。

在弹出的对话框中选择“Yes”。

安装完驱动之后,你将看到这个窗口。

现在尝试用 PuTTY 连接地址 raspberrypi.local。

三、设置共享互联网连接

为了将电脑的互联网连接共享给树莓派,我们需要允许共享你电脑上的一个网络连接。打开“Network Connections”。

你的树莓派在里面显示为 “RNDIS/Ethernet Gadget” 的设备类型,在上图示例中,名字是“Ethernet 2”。

现在你要确定用哪一个连接给树莓派访问用 (WiFi 或以太网)。这里我选择让树莓派通过电脑的“Wi-Fi”这个连接去访问互联网,所以我启用这个连接之后在右键“属性”中进行设置。

选择“共享”标签。

勾选“Allow other network users to connect through this computer’s Internet connection”,在下拉菜单中找到树莓派的连接名称(这里选择 Ethernet 2)。

WiFi 网络这时出现“Shared”标注了。

现在可以重启你的树莓派并重新用 PuTTY 登录了。

登录树莓派之后,用 ifconfig 命令查看 usb0 连接可以看到网络上行和下行的流量。

Ping 一下某些网站域名,确认互联网连接是否正常。

如果你用的是 Raspbian 桌面版,你可以安装一个 RDP(远程桌面协议)客户端然后在电脑上通过远程桌面( “Remote Desktop Connection” )客户端连接到树莓派,连接地址同样是raspberrypi.local。(具体方法

将你的树莓派 Zero 配置成 USB/以太网设备,可以仅需要一个 USB 接口就实现给树莓派供电的同时将它接入因特网。不再需要携带额外的电源适配器、 USB HUB和无线网卡。可以说这是迄今为止连接树莓派最简单、方便的方式!

另有 macOS 平台下使用这一功能的教程,移步这里阅读

本文来自:树莓派实验室

 

国外开发者尝试在树莓派3上运行Windows 10桌面版

 

虽然在树莓派上用户已经可以安装Windows 10 IoT Core系统,不过得益于近期启动的Windows 10 on ARM平台,荷兰开发者Bas Timmer(推特账号@NTAuthority)近日在树莓派3(Broadcom BCM2837 ARMv8处理器)上成功安装完整版Windows 10系统。

Windows 10 on ARM是微软近期公布、最值得关注的项目,允许在高通骁龙处理器上运行完整版Windows 10系统,并且具备超高续航的优点。

虽然已经成功移植,并且能够运行传统Win32应用程序,但是也存在很多不足。Timmer表示目前系统只能调用1个CPU核心,其他核心会跳出“未支持的处理器”。

 

 

本文来自:

国外开发者尝试在树莓派3上运行Windows 10桌面版

 

在树莓派上用 Syncthing 自建私有云盘

自建的私有云网盘软件很多,比如 Seafile、ownCloud 等,功能很实用,而 Syncthing 最大的特色是采用了与 Resilio Sync (BitTorrent Sync) 类似的 P2P 分布式技术,无需中心服务器,即可让多台设备互相实时同步文件,用过 Resilio Sync 的朋友都明白这种同步方式的优势了。它们两者的实现方式很相似,区别是 Resilio 属于商业软件,需付费使用,在国内已慢慢变得访问(被)困难(墙),而 Syncthing 不仅完全免费且开源,相比 Resilio 还增加了“文件版本控制”、“单向同步”等堪称杀手级的功能特性。

Syncthing 功能上非常接近于 Resilio Sync / BT Sync,不过说它是一款用于搭建网盘的服务器软件或者云存储服务应用似乎并不十分恰当,相较于 Seafile、NextCloud 等服务器工具,Syncthing 实际上更像是一款文件/文件夹同步工具。你可以非常轻松简单地让同一路由器下的多台 PC 电脑、NAS 设备实现局域网互相同步,也可以在 VPS 服务器或 24 小时不关机且有公网 IP 的电脑上安装和配置 Syncthing,让其成为真正意义上的云同步网盘。

更难得的是 Syncthing 开源且免费,跨平台支持 Windows,Mac,Linux,Android。(稍有些遗憾的是目前暂不支持iOS平台)当然也支持树莓派平台,下面应读者要求,树莓派实验室为大家介绍如何在树莓派上安装 Syncthing!(VPS 等 Linux 平台上安装方法类同,也可以参考本文)

获取软件包

#进入用户所在目录
cd ~
#下载软件包,如果发现不能顺畅下载,那可能是墙的锅,手动下载了再通过 SFTP 上传到 /home/pi 目录下也可以
wget https://github.com/syncthing/syncthing/releases/download/v0.14.42/syncthing-linux-arm-v0.14.42.tar.gz
#解压
tar -zxvf syncthing-linux-arm-v0.14.42.tar.gz

注:Syncthing 的版本迭代比较频繁,你可以在这个页面获取最新的安装包。页面中文件名为 syncthing-linux-arm-版本号.tar.gz 的就是树莓派可用的版本。

部署、测试

解压之后当前目录下多了一个名为 syncthing-linux-arm-v0.14.42 的目录。

#强迫症表示要重命名缩短一下:
mv syncthing-linux-arm-v0.14.42 syncthing
#进入 syncthing 目录
cd syncthing
#给主程序加上执行权限
chmod +x syncthing

~/syncthing/syncthing

结果输出一些程序初始化信息,包括网络监听端口、WebUI(操作界面) URL 等,表示部署成功。先不要急着访问 WebUI,因为还需要少量配置。先 Ctrl+C 中止程序。

配置

运行下面的命令编辑 Syncthing 的配置文件:

sudo nano /home/pi/.config/syncthing/config.xml

找到下面的内容

<gui enabled="true" tls="false">
<address>127.0.0.1:8384</address>
<apikey>XXXXXX</apikey>
</gui>

将 127.0.0.1:8384 修改为 0.0.0.0:8384 以便让其他终端可以访问到 Syncthing 的 WebUI。

下面再次运行主程序

~/syncthing/syncthing

不要中断程序,尝试用电脑或者手机的浏览器访问 Syncthing 的 WebUI,地址为
http://树莓派的IP地址:8384

打开之后,会让你设置用户名和密码。下面再大致了解下几个关键的界面:

 

 

到这一步就已经可以投入使用了!
但是使用这个命令运行 Syncthing,程序需要一直在前台运行。为了让它在后台默默执行可以这样

~/syncthing/syncthing &

如果你希望让 Syncthing 可以自动开机运行,可以继续往下阅读。

设置开机自动运行

在 /etc/init.d 目录下建立启动文件

sudo nano /etc/init.d/syncthing

输入以下内容:

#!/bin/sh
### BEGIN INIT INFO
# Provides:          Syncthing
# Required-Start:    $local_fs $remote_fs $network
# Required-Stop:     $local_fs $remote_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Syncthing
# Description:       Syncthing is for backups
### END INIT INFO
  
# Documentation available at
# http://refspecs.linuxfoundation.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/iniscrptfunc.html
# Debian provides some extra functions though
. /lib/lsb/init-functions
  
DAEMON_NAME="syncthing"
DAEMON_USER=pi
DAEMON_PATH="/home/pi/syncthing/syncthing"
DAEMON_OPTS=""
DAEMON_PWD="${PWD}"
DAEMON_DESC=$(get_lsb_header_val $0 "Short-Description")
DAEMON_PID="/var/run/${DAEMON_NAME}.pid"
DAEMON_NICE=0
DAEMON_LOG='/var/log/syncthing'
  
[ -r "/etc/default/${DAEMON_NAME}" ] && . "/etc/default/${DAEMON_NAME}"
  
do_start() {
  local result
  
    pidofproc -p "${DAEMON_PID}" "${DAEMON_PATH}" > /dev/null
    if [ $? -eq 0 ]; then
        log_warning_msg "${DAEMON_NAME} is already started"
        result=0
    else
        log_daemon_msg "Starting ${DAEMON_DESC}" "${DAEMON_NAME}"
        touch "${DAEMON_LOG}"
        chown $DAEMON_USER "${DAEMON_LOG}"
        chmod u+rw "${DAEMON_LOG}"
        if [ -z "${DAEMON_USER}" ]; then
            start-stop-daemon --start --quiet --oknodo --background \
                --nicelevel $DAEMON_NICE \
                --chdir "${DAEMON_PWD}" \
                --pidfile "${DAEMON_PID}" --make-pidfile \
                --exec "${DAEMON_PATH}" -- $DAEMON_OPTS
            result=$?
        else
            start-stop-daemon --start --quiet --oknodo --background \
                --nicelevel $DAEMON_NICE \
                --chdir "${DAEMON_PWD}" \
                --pidfile "${DAEMON_PID}" --make-pidfile \
                --chuid "${DAEMON_USER}" \
                --exec "${DAEMON_PATH}" -- $DAEMON_OPTS
            result=$?
        fi
        log_end_msg $result
    fi
    return $result
}
  
do_stop() {
    local result
  
    pidofproc -p "${DAEMON_PID}" "${DAEMON_PATH}" > /dev/null
    if [ $? -ne 0 ]; then
        log_warning_msg "${DAEMON_NAME} is not started"
        result=0
    else
        log_daemon_msg "Stopping ${DAEMON_DESC}" "${DAEMON_NAME}"
        killproc -p "${DAEMON_PID}" "${DAEMON_PATH}"
        result=$?
        log_end_msg $result
        rm "${DAEMON_PID}"
    fi
    return $result
}
  
do_restart() {
    local result
    do_stop
    result=$?
    if [ $result = 0 ]; then
        do_start
        result=$?
    fi
    return $result
}
  
do_status() {
    local result
    status_of_proc -p "${DAEMON_PID}" "${DAEMON_PATH}" "${DAEMON_NAME}"
    result=$?
    return $result
}
  
do_usage() {
    echo $"Usage: $0 {start | stop | restart | status}"
    exit 1
}
  
case "$1" in
start)   do_start;   exit $? ;;
stop)    do_stop;    exit $? ;;
restart) do_restart; exit $? ;;
status)  do_status;  exit $? ;;
*)       do_usage;   exit  1 ;;
esac

保存之后运行

#加可执行权限
sudo chmod +x /etc/init.d/syncthing
#添加默认启动
sudo update-rc.d syncthing defaults

之后你还可以通过这四个命令管理 Syncthing,顾名思义。

sudo service syncthing start
sudo service syncthing stop
sudo service syncthing restart
sudo service syncthing status

如后面你要开机自动运行可以使用

sudo update-rc.d syncthing remove

与 BTSync 的比较

Syncthing 与 BTSync 有着相似的功能,均很强大。
1.Syncthing 与 BTSync 相比,Syncthing 是开源的,MIT协议。可免费用于商业用途,而 BTSync 相反。
2.Syncthing 的方式更侧重个人资料的同步,BTSync 还可以在同步的基础上进行分享。
3.Syncthing 暂无 iOS 版本。

各种平台的客户端可以在官网免费获取:
https://syncthing.net/
(Windows 版的 Syncthing 官方还提供了一个图形界面版的“SyncTrayzor”工具)

GitHub:
https://github.com/syncthing/syncthing

有价值的参考:
在安卓设备上使用 Syncthing
正文的脚本出处

本文来自:树莓派实验室

 

 

 

 

树莓派+YOLO打造人工智能相机

不久之前,亚马逊刚刚推出了DeepLens。这是一款专门面向开发人员的全球首个支持深度学习的摄像机,它所使用的机器学习算法不仅可以检测物体活动和面部表情,而且还可以检测类似弹吉他等复杂的活动。虽然DeepLens还未正式上市,但智能摄像机的概念已经诞生了。

今天,我们将自己动手打造出一款基于深度学习的照相机,当小鸟出现在摄像头画面中时,它将能检测到小鸟并自动进行拍照。最终成品所拍摄的画面如下所示:

相机不傻,它可以很机智

我们不打算将一个深度学习模块整合到相机中,相反,我们准备将树莓派“挂钩”到摄像头上,然后通过WiFi来发送照片。本着“一切从简”(穷)为核心出发,我们今天只打算搞一个跟DeepLens类似的概念原型,感兴趣的同学可以自己动手尝试一下。

接下来,我们将使用Python编写一个Web服务器,树莓派将使用这个Web服务器来向计算机发送照片,或进行行为推断和图像检测。

我们这里所使用的计算机其处理能力会更强,它会使用一种名叫YOLO的神经网络架构来检测输入的图像画面,并判断小鸟是否出现在了摄像头画面内。

我们得先从YOLO架构开始,因为它是目前速度最快的检测模型之一。该模型专门给Tensorflow(谷歌基于DistBelief进行研发的第二代人工智能学习系统)留了一个接口,所以我们可以轻松地在不同的平台上安装和运行这个模型。友情提示,如果你使用的是我们本文所使用的迷你模型,你还可以用CPU来进行检测,而不只是依赖于价格昂贵的GPU。

接下来回到我们的概念原型上… 如果像框内检测到了小鸟,那我们就保存图片并进行下一步分析。

检测与拍照

正如我们所说的,DeepLens的拍照功能是整合在计算机里的,所以它可以直接使用板载计算能力来进行基准检测,并确定图像是否符合我们的标准。

但是像树莓派这样的东西,我们其实并不需要使用它的计算能力来进行实时计算。因此,我们准备使用另一台计算机来推断出现在图像中的内容。

我使用的是一台简单的Linux计算机,它带有一个摄像头以及WiFi无线网卡(树莓派3+摄像头),而这个简单的设备将作为我的深度学习机器并进行图像推断。对我来说,这是目前最理想的解决方案了,这不仅大大缩减了我的成本,而且还可以让我在台式机上完成所有的计算。

当然了,如果你不想使用树莓派视频照相机的话,你也可以选择在树莓派上安装OpenCV 3来作为方案B,具体的安装方法请参考【这份文档】。友情提示,安装过程可谓是非常的麻烦!

接下来,我们需要使用Flask来搭建Web服务器,这样我们就可以从摄像头那里获取图像了。这里我使用了MiguelGrinberg所开发的网络摄像头服务器代码(Flask视频流框架),并创建了一个简单的jpg终端:

#!/usr/bin/envpython
from import lib import import_module
import os
from flask import Flask, render_template, Response
 
#uncomment below to use Raspberry Pi camera instead
#from camera_pi import Camera
 
#comment this out if you're not using USB webcam
from camera_opencv import Camera
 
app =Flask(__name__)
 
@app.route('/')
def index():
 return "hello world!"
 
def gen2(camera):
 """Returns a single imageframe"""
 frame = camera.get_frame()
 yield frame
 
@app.route('/image.jpg')
def image():
 """Returns a single currentimage for the webcam"""
 return Response(gen2(Camera()),mimetype='image/jpeg')
 
if __name__ == '__main__':
app.run(host='0.0.0.0', threaded=True)

如果你使用的是树莓派视频照相机,请确保没有注释掉上述代码中from camera_pi那一行,然后注释掉from camera_opencv那一行。

你可以直接使用命令python3 app.py或gunicorn来运行服务器,这跟Miguel在文档中写的方法是一样的。如果我们使用了多台计算机来进行图像推断的话,我们还可以利用Miguel所开发的摄像头管理方案来管理摄像头以及计算线程。

当我们启动了树莓派之后,首先需要根据IP地址来判断服务器是否正常工作,然后尝试通过Web浏览器来访问服务器。

URL地址格式类似如下:
http://192.168.1.4:5000/image.jpg

在树莓派中加载Web页面及图像来确定服务器是否正常工作:

图像导入及推断

既然我们已经设置好了终端来加载摄像头当前的图像内容,我们就可以构建一个脚本来捕捉图像并推断图像中的内容了。

这里我们需要用到request库(一个优秀的Python库,用于从URL地址获取文件资源)以及Darkflow(YOLO模型基于Tensorflow的实现)。

不幸的是,我们没办法使用pip之类的方法来安装Darkflow,所以我们需要克隆整个代码库,然后自己动手完成项目的构建和安装。安装好Darkflow项目之后,我们还需要下载一个YOLO模型。

因为我使用的是速度比较慢的计算机和板载CPU(而不是速度较快的GPU),所以我选择使用YOLO v2迷你网络。当然了,它的功能肯定没有完整的YOLO v2模型的推断准确性高啦!

配置完成之后,我们还需要在计算机中安装Pillow、numpy和OpenCV。最后,我们就可以彻底完成我们的代码,并进行图像检测了。

最终的代码如下所示:

from darkflow.net.build import TFNet
import cv2
 
from io import BytesIO
import time
import requests
from PIL import Image
import numpy as np
 
options= {"model": "cfg/tiny-yolo-voc.cfg", "load":"bin/tiny-yolo-voc.weights", "threshold": 0.1}
 
tfnet= TFNet(options)
 
birdsSeen= 0
def handleBird():
 pass
 
whileTrue:
 r =requests.get('http://192.168.1.11:5000/image.jpg') # a bird yo
 curr_img = Image.open(BytesIO(r.content))
 curr_img_cv2 =cv2.cvtColor(np.array(curr_img), cv2.COLOR_RGB2BGR)
 
 result = tfnet.return_predict(curr_img_cv2)
 print(result)
 for detection in result:
 if detection['label'] == 'bird':
 print("bird detected")
 birdsSeen += 1
 curr_img.save('birds/%i.jpg' %birdsSeen)
 print('running again')
time.sleep(4)

此时,我们不仅可以在命令控制台中查看到树莓派所检测到的内容,而且我们还可以直接在硬盘中查看保存下来的小鸟照片。接下来,我们就可以使用YOLO来标记图片中的小鸟了。

假阳性跟假阴性之间的平衡

我们在代码的options字典中设置了一个threshold键,这个阈值代表的是我们用于检测图像的某种成功率。在测试过程中,我们将其设为了0.1,但是如此低的阈值会给我们带来是更高的假阳性以及误报率。更糟的是,我们所使用的迷你YOLO模型准确率跟完整的YOLO模型相比,差得太多了,但这也是需要考虑的一个平衡因素。

降低阈值意味着我们可以得到更多的模型输出(照片),在我的测试环境中,我阈值设置的比较低,因为我想得到更多的小鸟照片,不过大家可以根据自己的需要来调整阈值参数。

代码开源

跟之前一样,我已经将所有的代码上传到GitHub上了,感兴趣的同学可以自行下载安装【GitHub传送门】。

* 参考来源:makeartwithpython,FB 小编 Alpha_h4ck 编译,转自 FreeBuf.COM

本文来自:树莓派实验室

树莓派网络存储(NAS) OpenMediaVault 安装配置

OpenMediaVault,是一个开源的基于 Debian Linux 的下一代网络附加存储(NAS)解决方案。它包含众多服务,如 SSH、(S)FTP、SMB / CIFS、DAAP 媒体服务器、RSync、BitTorrent 客户机等。并具有通过插件可增强的模块化设计框架特性。其核心如下:

  • Debian Linux(Squeeze)系统(i386 or x64)
  • 基于Web方式的系统管理
  • 通过Debian软件包简单的系统升级
  • 用户管理
  • 计划任务
  • 多语言支持(0.4.18版支持繁体中文)
  • 基于DNS-SD(Apple’s protocol)的服务公告
  • 插件系统

下面介绍如何在树莓派上安装配置 OpenMediaVault,方便快捷地搭建 NAS。

一.准备工作

1.树莓派1/2/3型 开发板(我用的是3B),适配的5V2A电源;
2.TF卡(不小于4G),TF 读卡器,/boot (vfat)占55.95MB,OWN (ext4) 占3.18GB
3.一台PC,Windows系统。
4.一台显示器或都电视机,HDMI接口,HDMI线。(其实不用显示设备也是可以的,可以SSH在电脑端操作。
5.一块移动硬盘,最好再配个有源USB-Hub
6.TF镜像。找到对应Pi的型号的镜像,omv_2.2.5_rpi2_rpi3.img.gz 或 omv_2.0.15_rpi_rpi2.img.gz 。
下载地址:https://sourceforge.net/projects/openmediavault/files/Raspberry%20Pi%20images/
或者百度网盘(密码: t8gm)。
7.镜像读写工具 win32diskimager
8.磁盘分区工具 DiskGenius
9.远程SSH  PuTTY

二.刷系统

1.解压 omv_2.2.5_rpi2_rpi3.img.gz 得到omv_2.2.5_rpi2_rpi3.img
2.用Win32DiskImager 把omv_2.2.5_rpi2_rpi3.img 镜像写入(Write)TF卡

三.开机测试

1.把刷好的TF插入树莓派,接好HDMI线到显示器,通电开机。第一次开机系统会自动运行脚本把TF卡未分配空间划分给第三分区。当出现”OMV login:” 说明OMV已经完全启动了。对应找到“My IP address is 192.168.xxx.xxx”记下。

2.登录WebUI:在PC端用浏览器(非IE内核,否则页面加载不正常。我用的360极速)打开刚才的IP地址192.168.xxx.xxx,会进WebUI,
选择语言:简体中文
用户名:admin
密 码:openmediavault
点击登录 按钮

3.修改端口,运行后会莫名的80端口无法访问,所以最好改成其它端口(我用82),改完点保存。应用完成生效。

4.修改时间。如果已经改完端口,这时刷新的面是不能正常访问的,要在IP后面加端口号(192.168.xxx.xxx:82)
时区-Asia/Shanghai (亚洲/上海,东八区和中国同时区就好),其他默认,保存->应用

5.登录SSH,打开 PuTTY ,输入IP,端口,点Open,在打开的命令行窗口提示下输入
用户:root
密码:openmediavault   (输入时不会显示任何字符)
当出现root@OMV:~#  时说明登录成功,可以做任何你想得到的操作,前提是你会。不然就去打相关教程好了。

 

四.插件安装(略)

五.备份

做一个备份是好习惯,如果已经用漫长的时间做好基本设置,装好了各种所要用的插件后,在你做各种尝试性操作时,让系统崩溃,而又无从修复时,从备份还原,可以减少很多时间。
1.软关机。点完关机后10s左右,树莓派网卡的灯会熄掉,就说时已经关机了。软关机后,正常的树莓派是不能再次软开机的,只能重新通电的方式开机。

2.从树莓派上取下TF卡,用读卡器连接电脑,打开Win32DiskImager,在Image File 里选择一个位置,并输入文件名.img(xxx.img),在Device选择TF卡的盘符,点 Read,等待Successful(成功)。将备份好的IMG保存好,在需要还原时,参考 “二.刷系统” 操作。

六.挂载移动硬盘

OMV不支持EXT2,3,extFat,所以最好用ext4或NTFS,如果用Fat32可能会在设置权限时出错。
1.格式化移动硬盘。如果用NTFS或Fat,并且硬盘已经是这种分区格式,直接USB连到树莓派上即可。
NTFS/Fat: WinXP/Win7、8、10系统,我的电脑–管理–磁盘管理–建立分区–格式化  ext4:Win系统不能直接格式化,DiskGenius也只能格成ext2。有谁会用DG格ext4请授教。
PuTTY 远程:   对硬盘分区  fdisk /dev/sda
要把分区格式化成Linux Ext4格式,用: mkfs.ext4 /dev/sda?   要把分区格式化成FAT32格式,用: mkfs.vfat -F 32 /dev/sda?
要把分区格式化成NTFS 格式,用: mkfs.ntfs /dev/sda?   —————–sda?  里的“?”是对应分区编号。
如果要用一块硬盘挂载几种不同格的分区,建议先在PC端分成可识别的几种分区,再到SSH,对所需要的分区      格成ext4格式。
如果在WebUI–磁盘管理–擦除,会抹去整张硬盘数据,重新分成并格式化为ext4的一个分区。谨慎操作!!

2.挂载分区
如果硬盘已经正常连接,会在WebUI–磁盘管理–看到对应的硬盘。
点开WebUI–文件系统,分区会自动挂载,如果没有,就选定分区,手动点挂载。

最后,开始使用你的 OpenMediaVault 吧。

本文来自 噪音爵士 的推荐,原文

本文转载自:树莓派实验室

树莓派3 的 64位 Ubuntu 17.04 评测

本文和测试数据来自 chainsx 的推荐。为了避免标题党嫌疑,把原文标题中的倍数略去了,但从数据上看确实有很大幅度提升,最高指标超官方系统60倍。

为了证明树莓派3与ubuntu-17.04的arm64系统更搭配,我用ubuntu64-rpi里的基于f2fs文件系统的ubuntu-17.04-arm64进行了系统评测。

在树莓派实验室里有一篇《树莓派64位系统Debian 9先行测评:性能最高提升30倍!》,可是,他是使用的预览版debian9进行评测,我这里使用的是ubuntu-17.04-arm64,可以说,这次评测是一次相当成功的评测,评测数据可以在ubuntu64-rpi项目主页内找到,这里,也会附出。

关于F2FS文件系统我也不再介绍,在《树莓派64位系统Debian 9先行测评:性能最高提升30倍!》里也已介绍,

硬件测试环境:

  • RaspberryPi 3 Model B
  • 16GB Class 10 TF卡
  • 5v 2.5A电源
  • 以太网网线及能连外网路由设备

软件测试环境:

  • ubuntu64-rpi(使用ubuntu-17.04-arm64 非移植版,由源码构建)
  • sysbench 压力测试软件

这里,为了确保可比较性,我使用的评测工具和《树莓派64位系统Debian 9先行测评:性能最高提升30倍!》里一样

sudo apt-get update && sudo apt-get –y install sysbench htop iperf3

测评结果点击这里查看(直接保存的ssh记录,如有疑问请自测,系统已放出)

总结一下:

  • cpu单线程:12.4798
  • cpu4线程:31.1217
  • cpu8线程 31.0916
  • 八线程测试共享线程锁 14.9217
  • 连续读写 0.3604
  • 随机文件读写 0.5636
  • 互斥锁测试 0.0184
  • 内存连续测试 1.2890
  • 内存随机测试 0.9564

这里,使用《树莓派64位系统Debian 9先行测评:性能最高提升30倍!》里提供的raspbian的数据进行比较(由于我目前没有过多时间来进行对最新版raspbian的评测,这里直接引用该文章提供的数据,这里,感谢该文章作者提供的数据。)

测试项目 Raspbian2017-03-03 ubuntu-17.04-arm64(ubuntu64-rpi) 提升倍数
系统信息 Arm 32bit/ext4文件系统 Arm64bit/f2fs文件系统 见文件系统测试
CPU单线程 367.2971 12.4798 29倍
四线程 1017.6742 31.1217 31倍
八线程 1920.0601 31.0916 62倍
内存随机 5.7678 0.9564 6倍
内存连续 6.3309 1.2890  5倍
文件连续读写 5.7655 0.3604 15倍
随机读写 不支持 0.5636
互斥锁性能 0.0231s 0.0184s 1.2倍

这里我们看到,测试结果让我们大吃一惊,我们的ubuntu-17.04-arm64超官方60倍,我相信,树莓派官方系统仍在不停的改进,测试结果可能与现在的最新版raspbian有出入,但是,我们这里强调的是64位系统的优越性,由此可见,64位系统的却发挥了其应有的优势。

以上测试并非使用64位官方系统,但能够让大家看到软硬件匹配64位之后,树莓派性能上的提升潜力。作为树莓派爱好者,一起期待官方发布64位系统吧!

附上系统项目地址 https://github.com/chainsx/ubuntu64-rpi

本文来自:树莓派实验室

 

 

 

无线安全审计工具FruityWifi初体验

FruityWIfi是一款有名的无线安全审计的开源工具,其灵感来自于wifipineapple,目前该工具已经更新到2.4。它能够让用户通过web界面来控制和管理模块,十分方便。FriutyWifi最初的设想是能够在树莓派上使用,但是也可以安装在Debian系列的操作系统上,例如Debian,kali Linux等,甚至可以安装在NetHunter上,在某些移动设备上使用。

一、本次使用的环境

硬件为树莓派3B,系统为raspbian jessie。

二、安装方法

-下载zip压缩文件:https://github.com/xtr4nge/FruityWifi

-解压后用root权限运行对应目录下的install-FruityWifi.sh,如果树莓派系统为raspbian stretch,运行install-FruityWifi-PHP7.sh。

安装时很顺利,安装完成后,访问地址为:

http://localhost:8000

https://localhost:8443

三、使用过程

打开页面后会发现一个简约的界面,用户和密码都是admin

进入FruityWifi的web管理界面后可以看到目录上的几个选项。

status:这里可以看到安装的模块,能够控制模块的运行和停止,还能够看到网卡的信息和连接热点设备的ip和名字。

 

status-ws:和status提供的功能和信息一样,不过这里能够看到模块的当前日志信息,适合和移动设备的访问。

config:这里能够设置软AP,可以看到很多模式,能够灵活的对接口进行组合。IN口为内网接口,一般设置为能够提供软AP服务的那个网口。OUT口为外网接口,设置为连上互联网的网络接口。配置好IN口和OUT口的地址后,点击save保存。AP模式最初有两个可以提供选择,分别是Hostpad和Airmon-ng,如果安装了karma和mana后,会多出两个模式来,会增加Hostapd-Mana和Hostapd-Karma两个模式,当使用这两个模块时,配置对应的AP模式即可。当无线网卡使用Realtek芯片时,只能选择Airmon-ng模式,并且只有使用 atheros芯片的无线网卡才支持karma和mana攻击。下载好AP模块后,就能够很好的管理和启动热点。

modules:这里列出了许多可用的插件,可供下载使用。树莓派3B自带的无线网卡是不支持monitor模式的,如果想使用mdk3这种需将网卡设置为monitor模式的模块,需外置个支持monitor模式的USB无线网卡。

下面列举几个常用的基本的模块:

1、Autostart,启用FriutyWifi时自动开启相对应的模块。

2、karma和mana,karma能够响应客户端设备主动扫描的探测请求,并伪造同名热点吸引客户端的连接。由于各厂商改成了被动扫描,karma的攻击逐渐不好用了,而mana可以说是karma的改进,它能够收集周围空间的SSID信息,当收到BoradcastProbeRequest 后,会根据列表中的每一个SSID构成ProbeRsponse向客户端回复。关于karma和mana的具体原理,可以看下这两篇文章:http://www.freebuf.com/articles/77055.html ,http://www.freebuf.com/articles/wireless/145259.html

3、mdk3,能够发起能够发起Beacon Flood、Authentication Dos、 Deauthentication等模式的攻击。需要将网卡设置为monitor模式,在config界面中能够很轻松的设置, mkd3的DOS攻击配和karma|mana能够使客户端断开原来的热点并主动连接钓鱼热点。

4、DetectDeauth,一款检测eauthentication attacks的模块。能够设置周期性的检测deauthentication frame,如果超过自己设置的阈值,则会记录下来。

当客户端连上钓鱼的热点后,客户端设备的所有流量都经过钓鱼热点,这时可以使用一些模块获取想要的数据,例如ngrep来抓取cookie ,URLSnarf抓取URL信息等;也有许多中间人攻击的模块提供使用,比如ettercap ,sslstrip等。有些插件笔者使用时未能正常启动,比如nessus、DeviceFinder 等。

logs:各个模块的输出日志信息,能够很方便的查看。

四、后记

作为一个款无线安全审计工具,FriutyWifi从安装到使用都非常简单,也方便管理。有些模块在树莓派3B上未能正常的使用,希望新版能够修正这些模块,也希望这款开源工具能够越来越丰富,越来越稳定。

 本文作者scu-igroup,转载自FreeBuf.com

 

 

 

利用ESP8266芯片制作无线网屏蔽仪

只需花费几十块钱买一块ESP8266芯片就可以DIY一个无线网络屏蔽仪,体积小巧,使用充电宝或手机供电,可以屏蔽有效范围内的任意一个无线网络信号。原理是802.11无线网络协议中有一个解除认证帧,通常是用来断开某个无线网络连接。由于这些帧数据包不加密,因此只要获取了无线路由器和设备的无线网卡MAC地址,就可以在无线网络有效范围内断开某个设备的连接。通过这个方法,黑客还可以进行信标垃圾、随机信标垃圾攻击或干脆屏蔽所有无线网络。

完整教程视频:

http://v.youku.com/v_show/id_XMzE5MTkzMDA1Ng==.html?spm=a2h3j.8428770.3416059.1

可以在手机上下载应用程序控制无线网络屏蔽:

geni.us/PQhB

第一步:材料准备

1、 购买ESP8266芯片组(必备)。

2、 电池(选购)

第二步:下载最新版的Arduino编译软件arduino.cc/en/Main/Soft

1、 安装后打开

2、 选择“文件”,“参数”

3、 在“其他板载管理URLs”中添加以下地址:arduino.esp8266.com/sta

4、 选择“工具”,“板”,“板载管理器”

5、 输入ESP8266

6、 必须选择“版本2.0.0”

7、 选择“文件”,“参数”

8、 打开“更多”,进入编辑模式,最后记得保存文件。

9、 找到ESP8266页面,选择“硬件”,“ESP8266”,“2.0.0”,“工具”,“sdk”,“include”

10、用文本编辑器打开user_interface.h文件

11、在文件中#end标记前插入以下内容:

typedef void (**freedom_outside_cb__t)(uint8 status);
int wifi_register_send_pkt_freedom_cb(freedom_outside_cb_t cb); 
void wifi_unregister_send_pkt_freedom__cb(void); 
int wifi_send_pkt_freedom(uint8 **buf, int len, bool sys_seq);

12、保存文件

第三步:下载项目文件

1、 下载项目文件geni.us/A5cOYc

2、 打开Wifi Jammer> esp8266_deauther,用Arduino打开esp8266_deauther.ino文件

3、 在“工具”中选择对应的ESP8266型号,本文中用的是NodeMCU 0.9,如果不行可以尝试选择NodeMCU 1.0 或Generic ESP8266 Module

4、 在“工具”中,选择“编译器”> ArduinoISP

5、 在“工具”中,选择对应的端口号

6、 上传成功

第四步:如何使用

1、 ESP8266芯片加电

2、 可以使用智能手机或电脑控制芯片组,扫描无线网络名称为AndroidAP,初始密码killwifi。连接成功后,可以使用手机应用程序或在电脑浏览器中输入192.168.4.1来屏蔽周围的无线网络信号了。

3、 选择“攻击”>解除验证所有,所有的无线网络都会被屏蔽。

本文转载自 W-Pwn科技知乎专栏