BLOG
Enjoy when you can, and endure when you must.
香蕉派(BPI)的又一次蜕变 —— 用 Linux 自主打造路由器

经过了一个多月的逐步尝试,我的香蕉派已经工作得很好了。其实在购买之初,我的想法就是将其打造为一个“家庭网关”来满足各种个性化的需求,所以首要目标就是将其变身为一个路由器。刚开始自然而然的想到了 OpenWrt 这种成熟的系统作为基础。不过在一段时间的折腾之后就发现,OpenWrt 固然好用,但因为它是一个极小化系统,要想实现一些其他的功能,虽说可以通过 SDK 来进行交叉编译,但过程着实比较繁杂,其他的一些如针对 GPIO 的操作也并不很方便。思考了许久之后,终于还是下定决心直接用 Linux 系统来打造路由功能,虽然在这上面花的功夫多一些,但在另一些方面则省事不少,也可以把对于开发板来说还算强大的硬件真正用起来,也算是一种权衡。

香蕉派(BPI)加装 OLED 屏幕并使用 Python 进行控制

话说自从买了一个 BPI M1+ 之后,这折腾就是根本停不下来的节奏。之前已经成功尝试为其编译了一个专属的 OpenWrt 15.05.1 版本,并实现了如文件共享、下载机等诸多小功能,当然还有更重要的一点 ... 你懂的。不过再怎么说这也是个开发板,就这么放着当路由器,不再玩玩其他的,感觉是有那么点对不起他吧。虽然我不太擅长搞硬件,小玩一些简单的还是可以的。所以还是决定把强大的 GPIO 口用起来。起初简单玩了玩距离传感器,熟悉了下 GPIO 的基本使用。然后就想到了何不在上面拓展一个小屏幕,显示些基本信息,还是挺有趣的。比如我一般不会外接显示器什么的来使用 BPI,要经过网络找到他还真得费些功夫(当然也不算啥事),搞不好还间歇性失联。如果能让他在启动以后通过小屏幕自己显示一下 IP 地址,不就省事多了嘛。于是淘宝搜罗了一番,最终考虑入手一个 BPI 官方的 OLED 屏 ... 接下来开启“装逼”模式。

OCT 15, 2014/Python
Python实现按任意键继续
上班时间,好基友向我提了个问题:在 Python 中如何做到按任意键退出?第一反应就是这曾经实现过!不过第二反应...忘了,赶紧补补。要实现该功能,需要的就是暂停程序、等待并捕捉用户的一个键盘输入,然后继续执行。Python 有内建的库能帮我们实现该功能,不过要区别对待 Windows 和 Linux。msvcrt 中的 getch() 方法 能够帮助在 Windows 下实现,其作用是获取一个按键响应并返回对应的字符。它并不在命令行中回显。有如下程序段:import msvcrt print ord(msvcrt.getch())这里利用 ord 将获得的字符转换...
小探IPSec
当涉及异地办公的组网互联等应用场景时,VPN技术变得非常有用。特别是IPSec,即Internet Protocol Security,提供公用和专用网络的端对端加密和验证服务。VPN建立了一个虚拟的隧道。当客户要传递一个数据包时,该数据包会首先交给VPN路由器或网关,它会为其增加一个Authentication Header(AH)用于路由和认证。然后该数据包会通过Encapsulating Security Payload(ESP,封装安全负载)协议进行加密。而接收该数据包的路由器和网关则会负责剥去AH头部并将数据包解密,最后将其路由到指定的目的地。IPSec连接的建立IPSec的连...
JUL 11, 2014/Django
uwsgi部署django工程的常见问题
在Linux上部署django工程的时候,有些细节上的操作如果没注意的话可能会导致一些莫名其妙的错误,这里整理两个很常出现的问题: -- unavailable modifier requested: 0 -- 这句话写的确实不太明确,其实这问题出在uwsgi没能正确找到python。而这多是因为通过apt来独立安装uwsgi导致的,所以如果确实要这么做要注意进一步安装uwsgi-plugin-python,并且在uwsgi的配置文件中指定“plugins = python”。 还有一种方法,我认为更合适,就是直接编译安装uwsgi或通过pip,...
sudoers的学问
这篇文章应该是延续我的上一篇文章,既然“自信满满”的效果不好,那我还是借此好好复习一下sudoers的语法结构,避免下次犯同样的错。其实suders最重要的就是下面这段:root    ALL=(ALL)  ALL其含义分别为:用户   主机名=(以哪个用户运行)  可运行的一个、多个或全部命令如:test    ALL=(root) /usr/bin/apt-get, /usr/bin/apt-cache上例授权用户test可以...
利用head、tail和cat让文件管理变得更高效
本文转载并翻译自《Manage Files Effectively using head, tail and cat Commands in Linux》Linux中提供了多种命令和程序用于浏览文件。无论对于新手、普通用户、高级用户、开发人员还是管理员来说,与诸多文件打交道都是一项艰巨的任务。而如何做到高效更称得上是一门艺术。今天就让我们来探讨几个最常使用的命令head、tail和cat,多数人对他们都有所了解,但这其中绝大部分人在真正使用的时候恐怕就不知所措了。1. headhead命令用于获取一个文件的前10行内容。其基本的语法格式如下:head [options]&nbs...
从15则实例细看useradd
本文转载并翻译自《The Complete Guide to “useradd” Command in Linux – 15 Practical Examples》Linux中的“useradd”或“adduser”命令可谓是家喻户晓。因为总有些时候,系统管理员会要求创建一个新的用户并赋予特定的权限。“useradd”命令是用于在Linux或UNIX中添加/创建用户。“adduser”和“useradd”实际上是一样的,它不过是指向“useradd”的符号链接。在一些其他的Linux发行版中,“useradd”可能具有一些差异。因此我建议在使用该命令来创建用户前应仔细阅读文档。当在终端下...
nginx平滑升级
最近nginx的更新还是挺频繁的,那升级啥的就在所难免了。好在nginx本身支持平滑升级,能在不影响服务运行的情况下完成升级。让我们来看看如何操作。首先当然是告知当前运行的nginx要升级了。这需要向master进程发送USR2信号,如下所示:$ ps aux | grep nginx root     11966  0.0  0.0  47628   980 ?  &...
SSH问答集锦
SSH,即Secure Shell,是一种网络协议,用于在远程计算机上执行基于命令行的网络服务和一些其他命令。SSH以其较高的安全性和加密性而闻名,目前主要被网络管理员用在管理远程Web服务器上。 本文展示了10个SSH相关的面试问答。 1. 在默认配置下,SSH使用哪个端口?如何修改该端口? 答:SSH默认使用22端口。可以通过修改其配置文件来改变默认端口号。 我们可以通过在终端中执行下面的一行命令来查看SSH的端口号。 # grep Port /etc/ssh/sshd_config  [On...
1 2 3 > >>