随身wifi改造打印盒子,支持安卓/IOS/Windows

文章讲述了如何使用带有Modem和Openwrt支持的随身WiFi设备,通过刷入Openwrt或Debian系统,结合Docker运行CUPS服务来实现网络打印机功能。过程中提到了硬件改造、USB模式设置以及解决分区只读问题的方法。此外,还介绍了Debian环境下CUPS的安装和配置,使得Android、iOS和Windows设备能自动发现并使用打印机。
摘要由CSDN通过智能技术生成

23年4月发现了随身WIFI的妙处后,一发不可收拾,这玩意带modem,内存512M,flash 4G,带USB口,有WIFI,芯片一般是高通8916,这可是当年手机上用的芯片,跑个Openwrt应该是轻轻松松。

本着能省一点是一点的精神,闲鱼收了一个970的,未刷机,25大洋包邮的

既然也不贵,也懒得备份基带之类的,收到后用酷安社区的“SP970工具箱”打开了adb端口,安卓系统看都没看,就开始刷机,970可以刷openwrt或者debian,均实验通过,过程记录如下:

1.Openwrt+docker方案

openwrt的刷机过程不在细说,拿来主义,酷安上随便一搜就有,实在不行就百度,刷机后,m版本信息如下:

 前期研究过openwrt编译cups的过程,还是比较麻烦的。这个随身wifi的openwrt里面自带docker,先下载如下docker镜像

docker run -d --name=CUPS_M7 \
--restart=always \
--net=host \
-v /var/run/dbus:/var/run/dbus \
-v ~/airprint_data/config:/config \
-v ~/airprint_data/services:/services \
--device /dev/bus \
--device /dev/usb \
ydkn/cups

 运行后的cups版本是2.2.10,还算比较新,https访问,注意,用户名密码都是admin,跟openwrt的登录密码没有关系

添加打印机后,通过扫描热点的方式,让随身WIFI接入家庭局域网,固定局域网IP。随后Android,IOS,Windows均可以自动发现打印机,试了下打印,均OK

然后是硬件部分改造,因为打印机是方口USB,需要转接成普通USB,另外,打印机的USB口没有5V电源,所以,需要另外引出,这点不太方便,硬件改造需要一定的动手能力。

注意,随身wifi有时会出现分区只读,导致配置不能保存,docker工作异常等现象,需要在启动脚本中增加如下代码:

# usb auto otg
sleep 1
grep 0 /sys/kernel/debug/usb/ci_hdrc.0/device | grep speed
if [ $? -eq 0 ]
then
echo host > /sys/kernel/debug/usb/ci_hdrc.0/role
fi
e2fsck -y /dev/mmcblk0p14

##sleep 25 && /etc/init.d/network restart
exit 0

echo host > /sys/kernel/debug/usb/ci_hdrc.0/role
这行的作用是把usb口设置成host模式,保证可以连接打印机


e2fsck -y /dev/mmcblk0p14

这行的作用是确保异常断电情况下,检查文件系统错误,避免分区只读

2.Debian方案

Openwrt安装起来其实也挺方便的,折腾Debian的原因是随身wifi的Docker多少有些不稳定,因为之前是用N1刷的Armbian,那是相当稳定,所以在Debian上做了尝试,与Armbian是完全一样的,过程记录如下:

1.刷机

不多说了,用的苏苏亮亮的固件,有2022-05-28和2022-06-02两个版本,得用0602版本,老的那个版本刷机后没有rndis口,配置起来不方便。

固件传送门

刷完后,apt update会报错,需要解决,执行如下4行命令

sudo sed -i '1c deb http://mirrors.tuna.tsinghua.edu.cn/Adoptium/deb buster main' /etc/apt/sources.list.d/AdoptOpenJDK.list

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 843C48A565F8F04B

sudo gpg --armor --export 843C48A565F8F04B | sudo apt-key add -

sudo sed -i '1c #deb http://repo.mobian-project.org/ bullseye main non-free'  /etc/apt/sources.list.d/mobian.list

然后apt就可以更新了

2.cups安装

安装如下:

apt install cups

apt install printer-driver-gutenprint  ##兄弟、爱普生、联想装这个

apt install hplip     ##惠普装这个

3. 修改配置

随后,要修改cups的配置文件,按如下截图修改

 

添加打印机后,把打印机的名称记录下来,例如下图中的例子“EPSON_L360_970

修改如下文件,把“printers/EPSON_L360_970”这行改对了

<?xml version="1.0" ?>
<!DOCTYPE service-group  SYSTEM 'avahi-service.dtd'>
<service-group>
<name replace-wildcards="yes">AirPrint EPSON_L360 @ %h</name>
<service>
<type>_ipp._tcp</type>
<subtype>_universal._sub._ipp._tcp</subtype>
<port>631</port>
<txt-record>txtvers=1</txt-record>
<txt-record>qtotal=1</txt-record>
<txt-record>Transparent=T</txt-record>
<txt-record>URF=none</txt-record>
<txt-record>rp=printers/EPSON_L360_970</txt-record>
<txt-record>note=EPSON L360 CUPS</txt-record>
<txt-record>product=(GPL Ghostscript)</txt-record>
<txt-record>printer-state=3</txt-record>
<txt-record>printer-type=0x80900c</txt-record>
<txt-record>pdl=application/octet-stream,application/pdf,application/postscript,application/vnd.cups-raster,image/gif,image/jpeg,image/png,image/tiff,image/urf,text/html,text/plain,application/vnd.adobe-reader-postscript,application/vnd.cups-command</txt-record>
</service>
</service-group>

把上述文本保存成一个文本文件,名字叫:“AirPrint-EPSON_L360”,保存到/etc/avahi/services/目录下,随后重启avahi服务

systemctl restart avahi-daemon

然后windows,android,ios就可以自动发现打印机,不需要额外安装驱动

把cups和avahi设置为开机启动

systemctl enable cups
systemctl enable avahi-daemon

最后,把usb设置为host模式的脚本加入rc.local

#!/bin/sh -e
# 下面这条是要开机启动的命令
nmcli connection up USB
sleep 5
nmcli connection down USB

echo host > /sys/kernel/debug/usb/ci_hdrc.0/role    #加入此行

exit 0

4. 结束,enjoy

您好!针对您的问题,这里提供一些相关的信息供您参考。 首先,Unity是一款跨平台的游戏开发引擎,可以支持在多个平台上进行游戏开发。而Android和iOS是其中比较常见的移动平台。 在Android和iOS平台上嵌入Unity的开发示例,可以参考官方文档中的相关内容。具体步骤如下: 1. 创建Unity项目并设置相关参数,例如选择Android或iOS平台,设置屏幕分辨率等。 2. 在Unity项目中添加所需的场景和游戏对象,并设置相应的脚本和材质等。 3. 将Unity项目导出为Android或iOS平台所需的文件格式,例如APK或IPA文件。 4. 在Android或iOS项目中嵌入Unity文件,并通过相关代码进行调用和交互。 需要注意的是,Android和iOS平台上嵌入Unity的具体实现方式可能会有所不同,需要根据具体情况进行调整和修改。 另外,关于在Unity中开发Android或iOS应用的示例,也可以参考官方文档中的相关内容。具体步骤如下: 1. 创建Unity项目并设置相关参数,例如选择Android或iOS平台,设置屏幕分辨率等。 2. 在Unity项目中添加所需的场景和游戏对象,并设置相应的脚本和材质等。 3. 使用Unity提供的Android或iOS插件进行开发,例如调用相机或GPS等硬件功能,或者进行网络通信等。 4. 将Unity项目导出为Android或iOS应用程序,并进行相关的测试和调试。 需要注意的是,开发Android或iOS应用程序需要遵循相应的规范和标准,例如Android应用程序需要满足Google Play的要求,iOS应用程序需要通过苹果的审核。因此,在开发过程中需要谨慎处理相关问题。 希望以上信息对您有所帮助,如有任何疑问,请随时提出。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值