Linux

树莓派安装VirtualHere服务器端

我的打印机型号是HP PSC 1205打印扫描复印一体机,查询亚马逊英国站在2002年就上架了这款商品,真的是有年头了。虽然年代久远了点,可是用着还挺好,各项功能满足我的需求。就是在现代社会稍微有一点点瑕疵,使用起来有些许不方便,我的写字桌也比较小,最近在家办公又拿回来一个电脑,俩笔记本一个显示器,桌子就占满了,没有一点点空间放我的打印机。并且打印机也不像显示器天天用,放在桌子上也挺浪费桌子空间。 于是我将打印机放在另外一个地方,然后连接一个树莓派,在树莓派上运行打印机服务,这样就可以设置成远程打印机。树莓派通过无线远程连接路由器,这样我家庭网络都可以发现搜索到我的网络打印机,包括手机。我的古董打印机支持了时髦的无线模式,美滋滋。但是还有一点不足,就是只能打印不能远程扫描。我尝试了原生CUPS的网络打印协议,以及Samba的网络打印协议,都是只支持打印功能,而丢失了扫描功能。然后我想了个曲线解决这个问题的方法,使用远程USB的软件,当我电脑需要扫描功能时候,通过远程USB连接到我的树莓派上的打印机,这样对于电脑来讲,就像是亲自通过USB连接上硬件打印机一样。 远程USB我使用的VirtualHere,免费的license支持一个设备,正好满足我的需求。在此记录一下我的流程,给自己一个备份,同时可能也能帮助到有类似需求的人。 树莓派版本的VirtualHere服务器端下来地址在这个网页: https://www.virtualhere.com/usb_server_software 在Generic VirtualHere USB Server Builds下 “VirtualHere USB Server for Linux (ARM) <– Raspberry Pi, pi2, pi3,pi4,BeagleBone, Odroid, Angstrom, & any ARM 32-bit based Android” 是对应免费license的版本。可以先下载到本地,然后通过WinSCP传到树莓派上,或者通过下边的脚本一步到位。 https://www.virtualhere.com/oem_faq 这个页面是官方的Linux下安装服务器端的指导,包含了各种架构的步骤。我在这里把有用的提炼出来,其中对于树莓派端,下载以及赋予文件执行权限如下: wget https://www.virtualhere.com/sites/default/files/usbserver/vhusbdarm sudo chmod +x ./vhusbdarm sudo mv vhusbdarm /usr/sbin 这个命令和原帮助文档基本相同,我只是在第一步更新了一下对于树莓派的文件下载地址。其中第二步是授予执行权限,第三步是将程序放在超级用户可执行命令的文件夹下。 添加一步,在执行完第一步第二步当程序下载好并且赋予执行的权限后,先本地尝试运行一次,这样会生成程序需要的配置文件在同一个文件夹: ./vhusbdarm ctrl+c 终止运行,可以看本地配置文件名为 config.ini 根据教程,创建 /etc/systemd/system/virtualhere.service 文件,填入以下内容 [Unit] Description=VirtualHere […]

树莓派安装VirtualHere服务器端 Read More »

CLI配置树莓派

树莓派官方教程对于一些基本配置(比如开启SSH,以及开始摄像头支持)是从桌面端讲解的,命令行端配置树莓派也是可以的,命令如下: sudo raspi-config 当然了,新烧录的固件第一次启动SSH还是默认关闭的,也就是说通过命令行不可能连接上,这是个鸡生蛋蛋生机的问题。我记得官方指导可以在SD卡自己生成一个文本文件告诉系统开启SSH来解决。 Reference: https://thepihut.com/blogs/raspberry-pi-tutorials/16021420-how-to-install-use-the-raspberry-pi-camera

CLI配置树莓派 Read More »

Linux安装HP打印机驱动

我的写字桌有点小,再放了两个显示器后,已经觉得很满,如果再放个打印机的话就几乎占满了全部的空间。于是我想这将打印机放在屋子中另外的地方,通过一个树莓派做服务器,实现我的任何设备都能连接到我的打印机。 树莓派虽然是ARM架构,但是对于一般用户来讲涉及不到那么底层架构上的区别,可以当作普通的Linux设备来用。通常来讲最近发行版可以自动识别并安装主流打印机的驱动,我之前有台Brother就是这样的。这次本来我也这么想,插上后也能在USB识别到设备,可是在配置CUPS(一款Linux下作为远程打印机的服务器软件)时候不能正确识别具体型号,我手动从CUPS中HP品牌下选型号发现找不到我的打印机系列。我能猜出来大致的原因,我的打印机实在太老了,主流驱动库没有包含我的硬件设备,我查了一下亚马逊,这款设备在2012年1月就已经上架了,现在过去了12年,真是难以置信。我之前也知道很老了但是没想到这么老,设备用的56&57墨盒,现在都没多少地方在销售在使用了。 CUPS上写着如果自动选择有问题的话,可以手动上传PPD格式的驱动,我查了一下这个就是一个文本形式的打印机描述文件,描述了打印机支持的性能,以及支持的工作方式。有了这个文件,电脑就可以与打印机通信开始工作了。维基百科使用的CUPS做的例子,也是很惊喜。 https://en.wikipedia.org/wiki/PostScript_Printer_Description 我想网上查找一个对应的PPD自己上传一下,查了半天发现这个文件很少有提供,可能实在太小众了。然后找到openprinting页面,汇集了几乎所有打印机Linux驱动,其中找到到了hplib这一个驱动,看介绍是HP公司自己出的官方Linux驱动,还是专门CUPS优化的,涵盖了几乎所有的HP设备在Linux下的文件,真是巧了。只不过没有商业上的保证和支持了,风险自负。这无所谓,这只是HP摆脱不必要的麻烦罢了。点开看具体支持的型号,真的是居多,我从中也看到我的硬件型号也包含在内。 安装也很简单,直接从Linux软件仓库安装就可以了。 sudo apt update sudo apt install hplib 安装过程的后两行也看到,这个驱动升级了电脑中的PPD文件。这之后返回CUPS就可以正确找到驱动了。 pi@raspberrypi:~ $ sudo apt install hplip Reading package lists… Done Building dependency tree Reading state information… Done The following additional packages will be installed: hplip-data libhpmud0 libsane-hpaio printer-driver-hpcups printer-driver-postscript-hp python3-renderpm python3-reportlab python3-reportlab-accel Suggested packages: hplip-doc hplip-gui python3-notify2 system-config-printer python3-renderpm-dbg pdf-viewer python3-egenix-mxtexttools

Linux安装HP打印机驱动 Read More »

R7000折腾

买一个R7000是我一直的计划,就是作为路由器这个领域玩家,也需要体验体验经典产品。19年9月京东买的带了过来,之前计划着用作多播宽带叠加,以及内置回国加速功能。多播宽带叠加本来是要应对这个公寓的特殊需求,之前公寓宽带下行50M上行只有1M,我有时候往网站传一些文件那叫一个慢。而住户可以多终端接入的,我想这就在路由器端模拟出几个不同的设备,之后带宽再叠加。理想情况下,有限叠加两次,再叠加两个无线信号,四路下行是200M上行是4M,也算可以凑合着用了。后来住户向房屋公司反馈的厉害,房屋公司竟然升级宽带了,上下100M对等。这样就暂时没有宽带叠加的需求了。 另外一个需求是回国加速服务。一些软件比如网易云音乐还有Bilibili什么的,部分资源不能用境外IP访问。我之前临时解决办法是在电脑上挂一个插件,需要回国加速的软件就设置一下链接电脑本地的插件。人真的能够拖延,就这样凑合着用,我就从去年九月凑合到了今年2月,快半年了。昨天终于将这件事完成了一下。本来想好要装OpenWrt,可是我一查才知道这款路由器是不支持的。也还好给我一个理由让我试了试梅林,也初步了解了一下这个固件的前世今生,原来这个固件是来自于华硕,他们用了很多GPL开源项目,这个协议要求华硕自己的固件也得开源。梅林就是根据这个开源版本改过来的,支持几种架构相似的其他品牌路由器,R7000就是其中之一。其中由于驱动部分是华硕写的,所以梅林固件的稳定性是很棒的。 梅林主界面   刷机步骤不记录了,我找了几个帖子跟着做很顺利。打开后台管理真的眼前一亮,面向消费用户制作的页面就是美观很多,比OpenWrt的Luci高几万倍吧。默认功能也很全了,并且我用的这个插件支持koolshare的软件中心。 我用到的功能比较基础,不需要在路由器级别进行回国加速,这对于路由器的压力以及国内加速服务器的压力太大。我只需要路由器上运行一个代理,其下连接的设备可以按照需求连接路由器的这个代理。我把科学上网插件反着用,并且多数功能也用不到,对于我来说只是用了最最简单的一个功能,路由器连接一个回国加速服务器,然后在路由器开一个1082端口转发给下游的设备。其下连接的设备可以按照需求连接路由器的这个代理。在电脑上根据不同软件的需求,再分别设置代理数据,比如网易云音乐。网页浏览需求的话也可以通过Chrome的Proxly Helper插件实现。 路由器运行一个Socks5服务,只做简单的映射 网易云音乐设置成对路由器的连接   我将我的硬盘也挂在了路由器上,减少电脑连接设备数,让桌子干净一些,电脑端映射一个网络驱动器就好了。虽说R7000是USB3.0接口,但是硬盘指示是2.0协议传输数据,我测试通过电脑连接路由器硬盘上下载都是10M左右,也是USB2.0级别。不管了也够用了,短暂测试挺稳定的,感觉这已经满足我的要求了。 另外还有一个USB2.0端口空闲,手又痒痒了想连接一个无线网卡,再叠加56M的带宽进来,人都是贪婪的。。。可是我将USB卡皇接入后路由器每任何反应,猜测是缺驱动。SSH登录路由器尝试OpenWrt软件安装包命令opkg发现命令不存在,首先我怀疑这个国内再次开发过的版本是不是将这个给阉割了,梅林官网查了一下确实这个默认没有安装。可能梅林定位就是普通用户吧,看UI做那么好,opkg这个太专业就阉割了,毕竟这个功能用的太少了。 查了查梅林软件包工具叫做entware,需要用户自己安装。官方安装指导需要一个ext2,ext3或者ext4的U盘作为缓存盘。梅林系统提供了mkfs和fdisk功能,可以将U盘备份插入路由器后在路由器格式化成对应的格式。安装脚本也识别,可是在安装图中却报错。我也没去找原因就用了另一个帖子的方法,弄软连接告诉安装脚本安装地址,很顺利。 现在有了opkg命令,基本上和OpenWrt系统相差不大了,常见于OpenWrt的软件,这里几乎都有。可惜的是,我搜卡皇8187L的驱动,这里却没有。浏览了一下软件仓库,这里没有任何网卡的驱动。也可以理解吧,将软件移植过来容易,可是将驱动移植过来这可不是闹着玩的。 暂时感觉USB无线网卡在这里无解,驱动的问题没那么容易搞定。但是我见到有Python,之后写一个网络自动登录脚本,这个还是可以的。另外我的打印机扫描仪改成远程的也要着手处理一下了,每次抱过来抱过去,我都佩服我的忍耐力。   Reference: https://yanke.info/?id=107 https://ylface.com/server/182  

R7000折腾 Read More »

Ubuntu添加新用户并加入sudo组

某些服务器运营商给的默认账户是root,如果在平日里使用root风险太大,个人习惯使用一个普通带sudo的账户,既有了普通账户的安全,又有了sudo的高级权限。记录一下过程: 1. 用root登录到服务器: ssh 2. 添加用户: adduser yourusername 3. 会提示一些进度信息,比如说创建home文件夹,创建新组等,如下: Adding user ‘yourusername’ … Adding new group `yourusername’ (1000) … Adding new user `yourusername’ (1000) with group ‘yourusername’ … Creating home directory `/home/yourusername’ … Copying files from `/etc/skel’ … Enter new UNIX password: Retype new UNIX password: 4. 收入密码后,会让你填写一些用户信息,可以留空: passwd: password updated successfully Changing

Ubuntu添加新用户并加入sudo组 Read More »

WordPress 没有写入权限

将wordpress搬家,还算顺利,最后有一个细节还没完善好,就是我新网站不能在服务器写入文件,具体现象如下。 我之前遇到类似的事情,按道理来说已经处理过这个问题了。运行apache的账户是www-data,我的账户是shuspieler,我将www-data加入了shuspieler组,同时将shuspieler加入www-data组,对于网站文件我都是设置成组成员可读可写,如下图   理论上Apache已经有了文件夹的读取和写入权限,可是在网站还是不可行。通过查资料找到如下一个解决方法:将下面一句加入到wp-config.php中: define( ‘FS_METHOD’, ‘direct’ ); 问题解决。   Reference: https://wordpress.stackexchange.com/questions/228591/to-perform-the-requested-action-wordpress-needs-to-access-your-web-server-pleas

WordPress 没有写入权限 Read More »

WordPress搬家后主页能打开其他页面找不到

将wordpress换了一个服务器,由于之前换过一次或所以遇到问题知道往哪方面思考。这次还有一点新的配置在此记录下来。 将Apache, MySQL,PHP都安装好后,数据也倒了过来,出现之前遇到过的一个情况,就是首页能打开,但是内容详情页面提示找不到网址。 我知道这是Apache的 AllowOverride 功能需要开启,在Apache的配置文件中。可是这次修改完毕还是同样报错,经查询得知是这次安装的Apache没有默认开启rewrite模块。 查询方式如下: ls /etc/apache2/mods-enabled | grep rewrite 开启方式如下: sudo a2enmod rewrite 重启Apache: sudo service apache2 restart 搞定。   Reference: https://stackoverflow.com/questions/3131236/how-do-you-enable-mod-rewrite-on-any-os

WordPress搬家后主页能打开其他页面找不到 Read More »

apt update更新仓库卡在Get步骤的一种原因

一个树莓派主机想安装一些软件,使用apt update 一直卡住不动,首先以为是源的问题,换了清华的和亚马逊的都无效,当时简直要崩溃,后来看到一些帖子有禁用ipv6的这一步,猜测是不是ipv6造成的原因,因为我家联通的PPPoE拨号宽带尽然也支持了ipv6新协议。不想在Linux测做改动,因为我还想玩北邮人呢,故临时在路由器关掉了ipv6,之后apt update成功,真坑。 所以有同学在apt不能正常使用时,而更换各种源无效,可以查看一下是不是ipv6的原因。

apt update更新仓库卡在Get步骤的一种原因 Read More »

服务器安装fail2ban

之前查看系统登陆日志发现几乎无时无刻都有未知来源的ip在尝试登陆。为了防止自己密码被试出来同时降低服务器负担,我安装了fail2ban来解决这个问题。当密码输入多次后,则自动通过防火墙限制登陆一段时间。 具体操作步骤很简单: apt install fail2ban 网上很多指导配置fail2ban的文章,根据我的经验,默认的配置已经满足99%的用户,直接启动即可: service fail2ban restart 经过测试,重启之后fail2ban具备自启动能力,不用花心思设置自启动功能。

服务器安装fail2ban Read More »

Ubuntu 18.04没有rc.local

rc.local用于预设一些脚本,在系统启动时候调用。而在18.04中默认没有这个文件了。解决办法很简单,先自己新建一个文件: vim /etc/rc.local 然后复制粘贴下边内容到文件中: #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will “exit 0” on success or any other # value on error. # # In order to enable or disable this script just change the execution #

Ubuntu 18.04没有rc.local Read More »