1、刷固件openwrt
顾虑到可能要安装cups(打印服务器)只支持19版本以下的,所以只能安装19的版本,官网没有找到,都是21以上的,所以我只能到外面找玩家自己编译的了。
我这次刷的包是来源于这里:https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=958130&extra=&ordertype=1&page=1
openwrt官网找版本号可到这个地址 https://firmware-selector.openwrt.org/ ,在搜索栏里面输入你的路由器型号
下载完固件后,我哥已经刷好了breed给我的,那我就直接先拔电,按住reset键不放,再插上电源,几秒后再松开,进入192.168.1.1页面,即可进入刷机界面,上传固件,开始刷机。
2、修改opkg的源
我刷完机后,没有改源,默认opkg update后,安装软件后就一运行报错
root@OpenWrt:~# fdisk -l
Error relocating /usr/lib/libfdisk.so.1: __gettimeofday_time64: symbol not found
Error relocating /usr/lib/libfdisk.so.1: __nanosleep_time64: symbol not found
Error relocating /usr/lib/libfdisk.so.1: __stat_time64: symbol not found
Error relocating /usr/lib/libfdisk.so.1: __fstatat_time64: symbol not found
Error relocating /usr/lib/libfdisk.so.1: __fstat_time64: symbol not found
Error relocating /usr/sbin/fdisk: __stat_time64: symbol not found
Error relocating /usr/sbin/fdisk: __fstatat_time64: symbol not found
Error relocating /usr/sbin/fdisk: __fstat_time64: symbol not found
Error relocating /usr/sbin/fdisk: __select_time64: symbol not found
Error relocating /usr/sbin/fdisk: __nanosleep_time64: symbol not found
有可能是安装源的问题,看了一下默认的是这样的,取的是snapshots版本(开发版)下面的软件源
src/gz openwrt_core http://downloads.openwrt.org/snapshots/targets/ramips/mt7621/packages
src/gz openwrt_base http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/base
src/gz openwrt_luci http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/luci
src/gz openwrt_packages http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/packages
src/gz openwrt_routing http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/routing
src/gz openwrt_telephony http://downloads.openwrt.org/snapshots/packages/mipsel_24kc/telephony
鉴于我的来源包的版本号是19的,所以我重新选了19.07.10,这是19的最后一个版本号为源
按这位博主介绍:https://blog.csdn.net/JackMaF/article/details/132353812
修改/etc/opkg/distfeeds.conf文件
vi /etc/opkg/distfeeds.conf
我把源按如下修改了版本号19.07.10,架构改成mipsel_24kc,注意https要改成http,现在系统wget还不支持ssl。
src/gz openwrt_core http://downloads.openwrt.org/19.07.10/targets/ramips/mt7621/packages
src/gz openwrt_base http://downloads.openwrt.org/19.07.10/packages/mipsel_24kc/base
src/gz openwrt_luci http://downloads.openwrt.org/19.07.10/packages/mipsel_24kc/luci
src/gz openwrt_packages http://downloads.openwrt.org/19.07.10/packages/mipsel_24kc/packages
src/gz openwrt_routing http://downloads.openwrt.org/19.07.10/packages/mipsel_24kc/routing
src/gz openwrt_telephony http://downloads.openwrt.org/19.07.10/packages/mipsel_24kc/telephony
先把这些链接放在浏览器里面,挨个点开看看正常访问不,如果都能正常访问就表示地址没错。
openwrt官网这是国外的源,我们可以再把它换成国内的源,岂不是要快了很多,那就更简单了,看看清华的源
根据它的地址规则看看,只需要把版本号前面的地址改一下http://downloads.openwrt.org/换成http://mirror.tuna.tsinghua.edu.cn/lede/releases/,要注意还是用http,不要用https,先用浏览器访问一下地址没错就可以了
src/gz openwrt_core http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/targets/ramips/mt7621/packages
src/gz openwrt_base http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/packages/mipsel_24kc/base
src/gz openwrt_luci http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/packages/mipsel_24kc/luci
src/gz openwrt_packages http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/packages/mipsel_24kc/packages
src/gz openwrt_routing http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/packages/mipsel_24kc/routing
src/gz openwrt_telephony http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/packages/mipsel_24kc/telephony
完成后执行,会发现快了很多。
opkg update
再安装个软件试试,速度很快,
root@OpenWrt:~# opkg install vsftpd
Installing vsftpd (3.0.3-3) to root...
Downloading http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/packages/mipsel_24kc/packages/vsftpd_3.0.3-3_mipsel_24kc.ipk
Configuring vsftpd.
用px 查看一下,服务运行正常,netstat看一下端口正常,用ftp工具可以正常登陆了
root@OpenWrt:~# netstat -pan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 3333/vsftpd
再安装个blockd,发现还是报错,应该还是源配错了, 核心版本不对。
root@OpenWrt:/tmp/tmp/cups ipk# opkg install blockd
Installing blockd (2020-05-12-84269037-1) to root...
Downloading http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/targets/ramips/mt7621/packages/blockd_2020-05-12-84269037-1_mipsel_24kc.ipk
Collected errors:
* satisfy_dependencies_for: Cannot satisfy the following dependencies for blockd:
* kernel (= 4.14.275-1-6c891a3fd685a3ff23be7c2e98ea800e)
* opkg_install_cmd: Cannot install package blockd.
如上图,现在这个刷的固件核心为4.14.141,而我现在配的核心为https://mirror-03.infra.openwrt.org/releases/19.07.0/targets/ramips/mt7621/kmods/4.14.162-1-2e88863ccdd594fb8e842df3c25842ee/
看来我要重新找个安装包, 或者重新找个4.14.141的源,怎么找, 我再研究一下。
经过查询,可能当时作者采用的是开发版本的核心,找不到对应的源,还是换个正常的固件方便些吧。
3、重刷openwrt 19.07.10固件
我看这个作者当时是刷了PBR-M1的固件,那我也刷它的固件吧,在19版本里面找个就可以了, 之前我的WNDR4300采用的是OpenWrt 19.07.0的固件,非常稳定,已经稳定运行半年没有关过机,挂了各种服务都没事,所以我还是选19.07.0试试。
最终刷了19.07.10版本,下载地址:https://mirror-03.infra.openwrt.org/releases/19.07.10/targets/ramips/mt7621/openwrt-19.07.10-ramips-mt7621-pbr-m1-squashfs-sysupgrade.bin
后来发现刷完这个版本的内存只有256M,没有办法发挥出这台机器的性能,所以不能使用这个固件了。
3.1 重新设置源
vi /etc/opkg/distfeeds.conf
src/gz openwrt_core http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/targets/ramips/mt7621/packages
src/gz openwrt_kmods http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/targets/ramips/mt7621/kmods/4.14.275-1-6c891a3fd685a3ff23be7c2e98ea800e
src/gz openwrt_base http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/packages/mipsel_24kc/base
src/gz openwrt_freifunk http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/packages/mipsel_24kc/freifunk
src/gz openwrt_luci http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/packages/mipsel_24kc/luci
src/gz openwrt_packages http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/packages/mipsel_24kc/packages
src/gz openwrt_routing http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/packages/mipsel_24kc/routing
src/gz openwrt_telephony http://mirror.tuna.tsinghua.edu.cn/lede/releases/19.07.10/packages/mipsel_24kc/telephony
3.2 挂载硬盘
首先安装必须的软件包
opkg install luci-i18n-base-zh-cn fdisk vsftpd block-mount mount-utils kmod-fs-ext4 usbutils kmod-usb-storage
opkg install luci-i18n-base-zh-cn #中文包
opkg install fdisk #查看硬盘信息
opkg install vsftpd #ftp服务
opkg install block-mount #页面自动挂载点,需要重启路由器刷新页面才出现“挂载点”。
opkg install mount-utils #可以使用UUID进行挂载
opkg install kmod-fs-ext4 #支持EXT4
opkg install usbutils #查看USB设备信息的工具,包括lsusb
opkg install kmod-usb-storage #安装usb存储设备驱动
重启路由后,刷新页面,可以在系统下面找到这个挂载点的工具界面了,挂载点勾上就可以挂载新加上的硬盘
3.3部署 syncthing
记得要下mipsle架构的,而且不是64位的,我下载的是syncthing-linux-mipsle-v1.27.0.tar.gz,下载地址:https://github.com/syncthing/syncthing/releases/download/v1.27.0/syncthing-linux-mipsle-v1.27.0.tar.gz
部署Syncthing
1、解压下载的Syncthing软件包
root@OpenWrt:/mnt/sda5# tar -xzvf syncthing-linux-mipsle-v1.27.0.tar.gz //解压
root@OpenWrt:/mnt/sda5# mv syncthing-linux-mipsle-v1.27.0.tar.gz syncthing //重新命名安装目录
2、将启动文件软链接到系统环境变量下
root@OpenWrt:~# ln -s /mnt/sda5/syncthing/syncthing /usr/bin/syncthing
3、运行Syncthing生成配置文件
root@OpenWrt:~# syncthing //由于上一步已经将启动文件链接到了环境变量,这里直接执行即可,会在root的home目录下面创建一些配置,后期会以这些配置文件来启动程序
root@OpenWrt:~/.local/state/syncthing# ls
cert.pem config.xml config.xml.v0 index-v0.14.0.db key.pem
要注意的是,用/etc/init.d/syncthing脚本启动时,创建配置文件的目录与直接输入syncthing来运行时生成的配置文件目录不一致,所以需要在/etc/init.d/syncthing脚本里面指定-home目录。
更加要注意的是,这个目录如果一直放在root目录下面,一启动同步就会生成一些日志与数据库文件,所占空间比较大,很快就会占满root目录的空间,造成syncthing死掉, 所以我们要把这个目录转移到硬盘上去,脚本里面的home目录也要相应变更过去。
root@OpenWrt:~# mv ./.local/state /mnt/sda5/syncthing/config
5、编辑配置文件
root@OpenWrt:/mnt/sda5/syncthing/config# vi config.xml
<gui enabled="true" tls="false" debugging="false" sendBasicAuthPrompt="false">
<address>0.0.0.0:8384</address>
<apikey>Zn43wXTiUfQeV2n5nUdLmRi76JMPabqP</apikey>
<theme>default</theme>
</gui>
修改配置文件将127.0.0.1修改为0.0.0.0即可,默认只允许本地访问
6、Openwrt设置syncthing开启自启动
在/etc/init.d/下编写service脚本
#!/bin/sh /etc/rc.common
START=99
STOP=15
start() {
echo start
#commands to launch syncthing, such as above
syncthing -home="/mnt/sda5/syncthing/config/syncthing" >/dev/null & #必须要指定-home目录,启动时如果没有的话会自动生成一些配置文件,用自启动时,默认的home目录会更改,所以必须要指定-home目录。
}
stop() {
echo stop
#commands to kill syncthing
killall syncthing
}
这个脚本由sh来解释,/etc/rc.common做包装器,提供一些默认的命令。START=99,STOP=15指的是开机自启动的优先级,数字越大优先级越低,开机时优先级高的程序会先启动。
如果启动在boot期间,可以实现boot方法
rc.common模板,init脚本可用的命令有:
/etc/init.d/syncthing start #启动脚本
/etc/init.d/syncthing stop #停止服务
/etc/init.d/syncthing restart #重启服务
/etc/init.d/syncthing reload #重新加载配置文件,如果失败,重启服务
/etc/init.d/syncthing enable #开启开机自启动
/etc/init.d/syncthing disable #关闭开机自启动
.添加权限
chmod +x /etc/init.d/syncthing
开机启动
/etc/init.d/syncthing enable
7、解决inotify-limits
当系统报如下图错误时:failed to setup inotify handler. Please increase inotify limits, see https://docs.syncthing.net/users/faq.html#inotify-limits
root@OpenWrt:/etc# sysctl fs.inotify.max_user_watches #查看目前系统最大文件监控数
fs.inotify.max_user_watches = 8192
root@OpenWrt:/etc# vi /etc/sysctl.conf #老毛子padavan的固件下面没有这个文件,直接新建一个这文件
fs.inotify.max_user_watches = 524288 #增加一行,修改默认值为524288
root@OpenWrt:/etc# sysctl -p #使修改生效
fs.inotify.max_user_watches = 524288
root@OpenWrt:/etc# sysctl fs.inotify.max_user_watches #再次查看结果,已经修改成功
fs.inotify.max_user_watches = 524288
3.4 开启从外网访问openwrt的ssh
要在 OpenWrt 上配置允许 SSH(端口22)并使其永久生效,您可以按照以下步骤进行操作:
登录到 OpenWrt 设备的管理界面或通过 SSH 连接到设备。
打开防火墙配置文件,在命令行终端中执行以下命令:
vi /etc/config/firewall
在配置文件中找到包含 “config rule” 的部分,并添加以下规则:
config rule
option name 'Allow-SSH'
option src 'wan'
option dest_port '22'
option proto 'tcp'
option target 'ACCEPT'
这将创建一个名为 “Allow-SSH” 的规则,允许从外部网络(wan)访问设备的 SSH 端口(22)。
应用新的防火墙配置。在命令行终端中执行以下命令:
/etc/init.d/firewall restart
现在,SSH 端口(22)应该已经打开并允许访问了。
为了使配置永久生效,您还需要确保防火墙配置的持久性。执行以下命令保存配置更改并重新启动防火墙服务:
uci commit firewall
/etc/init.d/firewall enable
这样,配置将在设备重启后继续生效。
请注意,操作防火墙时需要谨慎。确保您只添加信任的网络和端口,并限制有关访问的规则,以提高安全性。
3.5 安装CUPS
从https://gitee.com/ytwl333/openwrt-musl-cups/tree/master/mipsel下面下载了CUPS的所有安装包。
root@OpenWrt:/mnt/sda5/cups# opkg install cups-bsd_2.1.4-1_mipsel_24kc.ipk
Collected errors:
* pkg_init_from_file: Malformed package file cups-bsd_2.1.4-1_mipsel_24kc.ipk.
发现装不上去,难道一定要19.07.0的版本吗?这可是我必须的服务呀,openwrt对cups的支持从18版本之后已经不再支持了,这个19版本的还是另外高人另行编译出来的。
补记:后来才发现是下载的包有问题,我重新从上面的地址打包下载下来,再解压出来安装就OK了,为此浪费了一天时间,兜兜转转又回来19.07.10的版本了,经过测试,这个运行CUPS是很稳定的,没有任何问题。
下载好了包,直接安装上就可以了,然后进入页面,通过页面修改一些配置,很简单,也可以直接就看到几台打印机了,一路顺畅。
没办法, 重刷19.07.0试试看, 前面的工作都白费了,不过再部署应该会很快的。
重新刷上openwrt 19.07.1,还是一样的。
在查找问题的时候,百度到一篇文章:https://www.right.com.cn/forum/thread-4049542-1-1.html,这位跟我的情况是一样的,但他是在pandoraBox下面的,里面有位热心的网友帮他解决了, 说pandoraBox里面就自带cups包,那我岂不试一试看看。
再刷pandoraBox上试试
还是一样的,下载PBR-M1机型的固件,下载地址:
http://downloads.pangubox.com:6380/pandorabox/19.01/targets/ralink/mt7621/PandoraBox-ralink-mt7621-pbr-m1-2019-01-01-git-3e8866933-squashfs-sysupgrade.bin
刷完机,默认用户名密码:root/admin
登陆进去,发现什么都有的,真是大又全呀,全部不用自己搞了
各种服务全了,不用自己部署, 看一下硬盘都自动挂上了,都不需要干活了,直接用即可。
再试一下安装cups
[root@PandoraBox_4455:/mnt/sda5]#opkg update
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/targets/ralink/mt7621/packages/Packages.gz
Updated list of available packages in /var/opkg-lists/19.01_core
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/base/Packages.gz
Updated list of available packages in /var/opkg-lists/19.01_base
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/newifi/Packages.gz
Updated list of available packages in /var/opkg-lists/19.01_newifi
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/pear/Packages.gz
Updated list of available packages in /var/opkg-lists/19.01_pear
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/packages/Packages.gz
Updated list of available packages in /var/opkg-lists/19.01_packages
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/luci/Packages.gz
Updated list of available packages in /var/opkg-lists/19.01_luci
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/lafite/Packages.gz
Updated list of available packages in /var/opkg-lists/19.01_lafite
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/mtkdrv/Packages.gz
Updated list of available packages in /var/opkg-lists/19.01_mtkdrv
[root@PandoraBox_4455:/mnt/sda5]#opkg install cups
Installing cups (1.5.4-1) to root...
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/packages/cups_1.5.4-1_mipsel_1004kc_dsp.ipk
Installing libpng (1.2.51-1) to root...
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/packages/libpng_1.2.51-1_mipsel_1004kc_dsp.ipk
Installing libjpeg (6b-1) to root...
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/packages/libjpeg_6b-1_mipsel_1004kc_dsp.ipk
Installing libcups (1.5.4-1) to root...
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/packages/libcups_1.5.4-1_mipsel_1004kc_dsp.ipk
Installing libcupsmime (1.5.4-1) to root...
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/packages/libcupsmime_1.5.4-1_mipsel_1004kc_dsp.ipk
Installing libcupscgi (1.5.4-1) to root...
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/packages/libcupscgi_1.5.4-1_mipsel_1004kc_dsp.ipk
Installing libcupsppdc (1.5.4-1) to root...
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/packages/libcupsppdc_1.5.4-1_mipsel_1004kc_dsp.ipk
Installing libusb-1.0 (1.0.20-1) to root...
Downloading http://downloads.pangubox.com:6380/pandorabox/19.01/packages/mipsel_1004kc_dsp/base/libusb-1.0_1.0.20-1_mipsel_1004kc_dsp.ipk
Configuring libjpeg.
Configuring libpng.
Configuring libcups.
Configuring libcupsmime.
Configuring libcupscgi.
Configuring libcupsppdc.
Configuring libusb-1.0.
Configuring cups.
简直不要太完美, 一个错都没有报。
直接打开管理页面:http://192.168.1.1:631/admin 用户名密码与系统一致
添加打印机的时候发现找不到打印机,需要执行一下设备权限:
[root@PandoraBox_4455:/dev]#chmod 700 /usr/lib/cups/backend/usb
再刷新一下管理页面,添加打印机那里就可以看到自己的打印机了,按正常添加打印机进入就可以了。
我发现在还是存在一个问题:总是打印几下打印机就死掉了,USB接口好像访问出错,以下是错误日志,无解,看来还得换固件,找不到解决的办法。
Sat Apr 13 14:35:55 2024 lpr.info cupsd[1906]: [Job ???] Request file type is application/octet-stream.
Sat Apr 13 14:35:55 2024 lpr.info cupsd[1906]: REQUEST 192.168.1.100 - - "POST /printers/GP2120T_Pan HTTP/1.1" 200 9702 Print-Job successful-ok
Sat Apr 13 14:35:55 2024 lpr.info cupsd[1906]: GP2120T_Pan Administrator 6 [13/Apr/2024:14:35:55 +0800] 1 1 - 192.168.1.100 50x40带物料_陆文炯 - -
Sat Apr 13 14:35:59 2024 lpr.info cupsd[1906]: [Job ???] Request file type is application/octet-stream.
Sat Apr 13 14:35:59 2024 lpr.info cupsd[1906]: REQUEST 192.168.1.100 - - "POST /printers/GP2120T_Pan HTTP/1.1" 200 9702 Print-Job successful-ok
Sat Apr 13 14:36:04 2024 kern.info kernel: [ 454.792000] usb 1-1.3: reset full-speed USB device number 5 using xhci-hcd
Sat Apr 13 14:36:09 2024 kern.err kernel: [ 459.868000] usb 1-1.3: device descriptor read/64, error -145
Sat Apr 13 14:36:17 2024 daemon.warn dnsmasq[2327]: nameserver 114.114.114.114 refused to do a recursive query
Sat Apr 13 14:36:24 2024 kern.err kernel: [ 475.048000] usb 1-1.3: device descriptor read/64, error -145
Sat Apr 13 14:36:24 2024 kern.info kernel: [ 475.252000] usb 1-1.3: reset full-speed USB device number 5 using xhci-hcd
Sat Apr 13 14:36:24 2024 daemon.err uhttpd[2889]: sh: /usr/lib/smartinfo/smart_status.sh: Permission denied
Sat Apr 13 14:36:25 2024 lpr.info cupsd[1906]: Saving job.cache...
Sat Apr 13 14:36:29 2024 kern.err kernel: [ 480.328000] usb 1-1.3: device descriptor read/64, error -145
Sat Apr 13 14:36:44 2024 kern.err kernel: [ 495.508000] usb 1-1.3: device descriptor read/64, error -145
Sat Apr 13 14:36:44 2024 kern.info kernel: [ 495.712000] usb 1-1.3: reset full-speed USB device number 5 using xhci-hcd
Sat Apr 13 14:36:49 2024 kern.warn kernel: [ 500.716000] xhci-hcd xhci-hcd: Timeout while waiting for setup address command
Sat Apr 13 14:36:55 2024 kern.warn kernel: [ 505.924000] xhci-hcd xhci-hcd: Timeout while waiting for setup address command
Sat Apr 13 14:36:55 2024 kern.err kernel: [ 506.132000] usb 1-1.3: device not accepting address 5, error -62
Sat Apr 13 14:36:55 2024 kern.info kernel: [ 506.232000] usb 1-1.3: reset full-speed USB device number 5 using xhci-hcd
Sat Apr 13 14:36:59 2024 kern.warn kernel: [ 510.500000] connection reset by peer.
Sat Apr 13 14:37:00 2024 kern.warn kernel: [ 511.236000] xhci-hcd xhci-hcd: Timeout while waiting for setup address command
Sat Apr 13 14:37:05 2024 kern.warn kernel: [ 516.444000] xhci-hcd xhci-hcd: Timeout while waiting for setup address command
Sat Apr 13 14:37:05 2024 kern.err kernel: [ 516.652000] usb 1-1.3: device not accepting address 5, error -62
Sat Apr 13 14:37:05 2024 kern.info kernel: [ 516.680000] usb 1-1.3: USB disconnect, device number 5
Sat Apr 13 14:37:05 2024 kern.warn kernel: [ 516.692000] xhci-hcd xhci-hcd: xHCI xhci_drop_endpoint called with disabled ep 9a17f280
Sat Apr 13 14:37:05 2024 kern.warn kernel: [ 516.700000] xhci-hcd xhci-hcd: xHCI xhci_drop_endpoint called with disabled ep 9a17f2ac
Sat Apr 13 14:37:05 2024 kern.warn kernel: [ 516.708000] xhci-hcd xhci-hcd: xHCI xhci_drop_endpoint called with disabled ep 9a17f22c
Sat Apr 13 14:37:05 2024 kern.warn kernel: [ 516.716000] xhci-hcd xhci-hcd: xHCI xhci_drop_endpoint called with disabled ep 9a17f200
Sat Apr 13 14:37:06 2024 kern.err kernel: [ 516.772000] FAT-fs (sdb): unable to read boot sector to mark fs as dirty
Sat Apr 13 14:37:06 2024 kern.info kernel: [ 516.796000] usb 1-1.3: new full-speed USB device number 7 using xhci-hcd
Sat Apr 13 14:37:11 2024 kern.err kernel: [ 521.872000] usb 1-1.3: device descriptor read/64, error -145
Sat Apr 13 14:37:26 2024 kern.err kernel: [ 537.052000] usb 1-1.3: device descriptor read/64, error -145
Sat Apr 13 14:37:26 2024 kern.info kernel: [ 537.232000] usb 1-1.3: new full-speed USB device number 8 using xhci-hcd
Sat Apr 13 14:37:31 2024 kern.err kernel: [ 542.308000] usb 1-1.3: device descriptor read/64, error -145
Sat Apr 13 14:37:36 2024 lpr.info cupsd[1906]: Saving job.cache...
Sat Apr 13 14:37:39 2024 daemon.err uhttpd[2889]: sh: /usr/lib/smartinfo/smart_status.sh: Permission denied
所有固件都换遍了, 所有固件都会出现这个问题,包括openwrt 19.x 20.x, 21.x,我都试过了,在网上也找过各种资料, 有人说是USB设备时钟频率不对,但这个刚插上去能用,应该不是这个问题;有人说是支持USB3.0的内核有BUG,要换版本,我这么多版本都试过了;有人说要卸载USB3.0的驱动,但所有对USB的驱动都是走xhci-hcd的, 我卸载USB3.0驱动也没有用呀;几乎所有能试的办法我都试过了,不过后来终于找到问题了, 在最后面有写解决办法。
4、重刷潘多拉18.12
换到18.12(http://downloads.pangubox.com:6380/pandorabox/18.12/targets/ralink/mt7621/PandoraBox-ralink-mt7621-pbr-m1-2018-12-14-git-ba60306f2-squashfs-sysupgrade.bin)版本,发现没有问题,运行正常,速度也快, 这很有可能是我的最终选择了。
刷完 PandoraBox 18.12后,需要配置一下这个地方:
vi /etc/cups/cupsd.conf
BrowseWebIF Yes
ServerAlias *
/etc/init.d/cups restart #重启服务
可以直接在web界面上修改
然后修改防火墙,放开631端口,做个端口转发
4.1 从外网访问SSH和管理界面
在防火墙里端口80转发一下
4.2 网络唤醒功能
[root@PandoraBox_4455:/root]# opkg install etherwake
[root@PandoraBox_4455:/root]# opkg install luci-app-wol luci-i18n-wol-zh-cn #管理页面
4.3 重新部署synthing
由于之前已经把包都安装好了,保存在硬盘上的,所以现在就很快,只需要三部
[root@PandoraBox_4455:/root]#ln -s /mnt/sda5/syncthing/syncthing_moveTo_etc_init.d /etc/init.d/syncthing #给自动脚本在init.d下面做好软链接
[root@PandoraBox_4455:/root]#chmod +x /etc/init.d/syncthing #添加执行权限
[root@PandoraBox_4455:/root]#ln -s /mnt/sda5/syncthing/syncthing /usr/bin/syncthing #运行程序做好软链接
[root@PandoraBox_4455:/root]#/etc/init.d/syncthing enable #开机自启动
[root@PandoraBox_4455:/root]#/etc/init.d/syncthing start #启动程序
重新刷回openwrt吧,感觉还是openwrt比较稳定,我要刷一个自带cups的包的官方版本看看,估计得17的版本吧, 不知道有没有
opentwrt 19.07.10 可以支持CUPS,并稳定运行, 只能识别256M内存
OpenWrt 23.05.3 可以支持CUPS,并稳定运行, 能识别512M内存, FTP上传写入速度15M 下载读取速度26M(较慢)
Padavan MT7621_7603_7612_512M 3.4.3.9-099_24-02-1,速度最快,能跑满千兆带宽,FTP上传下载分别是45和23,USB3.0硬盘挂载识别都没问题,响应速度也快,但貌似不太稳定,有两个操作过程中卡死了,页面无响应,网速没有了,仅有SSH还能正常执行,执行reboot后恢复正常。
4.4 用动态域名从外网访问PandoraBox路由器页面失败
报错时,提示以下错误
Forbidden
Rejected request from RFC1918 IP to public server address
解决办法:
[root@PandoraBox_4455:/root]#vi /etc/config/uhttpd
config uhttpd 'main'
list listen_http '0.0.0.0:80'
list listen_http '[::]:80'
list listen_https '0.0.0.0:443'
list listen_https '[::]:443'
option redirect_https '0'
option home '/www'
option rfc1918_filter '0' #这一行后面1改成0
option max_requests '3'
option max_connections '100'
option cert '/etc/uhttpd.crt'
option key '/etc/uhttpd.key'
option cgi_prefix '/cgi-bin'
option script_timeout '60'
option network_timeout '30'
option http_keepalive '20'
option tcp_keepalive '1'
option ubus_prefix '/ubus'
list index_page 'cgi-bin/luci'
然后在页面上重启uhttpd服务,即可正常访问了。
也可以通过执行以下命令来重启:
/etc/init.d/uhttpd restart
4.5 一级路由访问二级路由
一级路由(PandoraBox):
LAN:192.168.10.1
二级路由1
LAN:192.168.0.0 WAN:(192.168.10.2)
二级路由2
LAN:192.168.3.0 WAN:(192.168.10.3)
在一级路由(PandoraBox)上设置如下:
二级路由1
让它可以访问上级路由与同级路由2(192.168.3.0)
二级路由2
让它可以访问上级路由与同级路由1(192.168.0.0)
4.6 FTP配置开放对外网访问
- 修改FTP模板, 增加
pasv_min_port=60024
pasv_max_port=60032
pasv_enable默认已经启用, 所以只需要指定端口范围, 以便后面设置防火墙打开对应的端口
在openwrt上面没有luci界面,只能进入配置文件修改
root@OpenWrt:~# vi /etc/vsftpd.conf
anonymous_enable=YES #允许匿名用户访问(必须)
anon_root=/mnt/sda1/anymous #匿名用户根目录(必须)
ftp_username=nobody #定义匿名用户名(必须,否则用浏览器打开匿名时会一直要求输入用户名密码)
local_enable=YES #允许本地用户登录(必须,否则会不让root账户登陆)
local_root=/ #本地用户主目录(必须,否则手机播放器登陆FTP会显示目录为空)
write_enable=YES #允许写入权限
pasv_enable=YES #PASV模式 (被动模式)
pasv_min_port=60024 #数据传输端口,PASV模式下,服务端开放的最小端口号,指定这个端口号方便开放防火墙,否则就是系统随机的
pasv_max_port=60032 #数据传输端口,PASV模式下,服务端开放的最大端口号,指定这个端口号方便开放防火墙,否则就是系统随机的
修改完配置重启 FTP 服务
/etc/init.d/vsftpd restart
PASV模式,即被动模式,是FTP(File Transfer Protocol,文件传输协议)中的一种连接方式。在PASV模式下,FTP客户端随机打开一个大于1024的端口(端口N),向FTP服务器的21号端口(默认的FTP端口)发起连接,并发送用户名和密码进行登录。登录成功后,客户端会发送一个PASV命令给服务器,通知服务器它处于被动模式。服务器在收到PASV命令后,会随机开放一个大于1024的端口(端口P)进行监听,并通知客户端自己的数据端口是P。客户端在收到服务器的通知后,会通过之前打开的端口N+1连接到服务器的端口P,从而在两个端口之间进行数据传输。
与PASV模式相对的是PORT模式,在PORT模式下,客户端打开一个大于1024的端口,并告诉服务器去连接这个端口。两种模式的主要区别在于数据链路的建立方式不同。在设置FTP服务器时,需要注意在服务器上为PASV模式指定可用的端口范围,并在服务器的防火墙上打开这些端口,以确保PASV模式能够正常工作。
防火墙配置:
需开放两条端口的配置21,与60024~60032,
在openwrt上面,FTP监听的只是LAN端口,所以要做转发,不能光开放端口60024~60032,不然从外网无法访问内网的FTP服务,表现为能连接上, 但下载不了目录列表。
从上图可以看到,21端口是监听了所有端口,但所所用的数据传输端口60029是在60024~60032范围内的,但是监听只是192.168.4.1的LAN口,并不是0.0.0.0,所以一直无法传输数据。
客户端配置被动模式
开放FTP与SMB可以参考这个链接里面,我的SMB还是有问题,无法访问,原因我已经明白了,因为电信与其它宽带运营商为了保证安全,把常用的这些端口封锁了,包括445、21、20等等,我们必须要映射成其它端口号才能访问这些服务。
https://www.cnblogs.com/milton/p/10327134.html
在通信规则里面按下面方式开放端口所示:
后来发现,直接开放这些端口并不能成功访问,还是需要做端口转发,做了端口转发就不需要再到流量规则里面去开放端口了。
4.7 对外网开放SFTP服务
最好还是使用SFTP服务来对外开放,安全又方便,不用像FTP还要开放数据端口,比较麻烦,唯一不好的就是比较慢,没有FTP速度快。
一、安装包
opkg install vsftpd openssh-sftp-server #安装SFTP包
二、配置端口转发
三、即可从客户端访问了。
4.8 对外网开放SMB服务
我本来也想像SFTP一样,配置一个端口转发,但发现没有用,难道是因为我做了DMZ,一样被封?
必须如下配置才可以正常访问
1、先到电信光猫上做端口映射
2、到路由器里面的防火墙开放445端口
3、Windows远程访问这里的自定义端口的SMB服务
因为Windows只支持默认的445端口,不能支持自定义的端口号,所以需要到远程客户端的路由器上做个端口转发,我家里也是用的openwrt,可以用iptables来实现
比如我的家里openwrt路由器IP地址为192.168.6.1,此时,进路由器,输入如下命令:
iptables -t nat -I PREROUTING -p tcp -d 192.168.6.1 --dport 445 -j DNAT --to 110.110.110.110:44513
解释一下这段代码,当路由器发现局域网内的请求满足以下条件时,自动进行DNAT(目的网络地址转换):当请求目的ip 为192.168.6.1,且目的端口为445(你也可以改成任意有效的ip地址)时,就会把目的ip改成110.110.110.110,端口改成44513,这里是服务器所在路由器的外网ip,你要改成自己的,反过来,当收到来自110.110.110.110:44513的包时,自动修改成192.168.6.1:445
但是这里只能接受用IP地址,不能用域名,如果目标地址是动态IP地址的话,还需要想想办法。
4.9 动态DNS服务
按如下配置好3322的动态域名后,一直报错!
查一下,论坛上说要安装一个openssl-util的包,安装之后,发现报的有点变化, 但是还是Error: ‘8’。
打开系统日志,每分钟报一次错
Mon Apr 29 07:34:57 2024 user.err ddns-scripts[10305]: 3322: GNU Wget Error: '8'
Mon Apr 29 07:34:57 2024 user.warn ddns-scripts[10305]: 3322: Transfer failed - retry 748/0 in 60 seconds
Mon Apr 29 07:35:57 2024 user.err ddns-scripts[10305]: 3322: GNU Wget Error: '8'
Mon Apr 29 07:35:57 2024 user.warn ddns-scripts[10305]: 3322: Transfer failed - retry 749/0 in 60 seconds
Mon Apr 29 07:36:58 2024 user.err ddns-scripts[10305]: 3322: GNU Wget Error: '8'
Mon Apr 29 07:36:58 2024 user.warn ddns-scripts[10305]: 3322: Transfer failed - retry 750/0 in 60 seconds
Mon Apr 29 07:37:58 2024 user.err ddns-scripts[10305]: 3322: GNU Wget Error: '8'
Mon Apr 29 07:37:58 2024 user.warn ddns-scripts[10305]: 3322: Transfer failed - retry 751/0 in 60 seconds
Mon Apr 29 07:38:58 2024 user.err ddns-scripts[10305]: 3322: GNU Wget Error: '8'
Mon Apr 29 07:38:58 2024 user.warn ddns-scripts[10305]: 3322: Transfer failed - retry 752/0 in 60 seconds
Mon Apr 29 07:39:58 2024 user.err ddns-scripts[10305]: 3322: GNU Wget Error: '8'
Mon Apr 29 07:39:58 2024 user.warn ddns-scripts[10305]: 3322: Transfer failed - retry 753/0 in 60 seconds
Mon Apr 29 07:40:58 2024 user.err ddns-scripts[10305]: 3322: GNU Wget Error: '8'
Mon Apr 29 07:40:58 2024 user.warn ddns-scripts[10305]: 3322: Transfer failed - retry 754/0 in 60 seconds
其实就在/etc/ddns/services这里面,找到3322.org配置API接口
vi /etc/ddns/services
“3322.org” “http://[USERNAME]:[PASSWORD]@members.3322.org/dyndns/update?system=dyndns&hostname=[DOMAIN]&myip=[IP]”
里面的members.3322.org,改成members.3322.net即可, 重启服务后,就没问题了。
我是用光猫拔号上网的,在光猫上有设置动态域名
动态域名配置好后,发现从内网无法访问,ping也不通,但是IP能解析是对的,可能是光猫有问题吧,但从外网访问没有问题。
只能曲线救国了,在DNS里面配置一个自定义DNS解析记录,指向这个路由器WAN口
再把LAN口的DNS设置为这个路由器的LAN口IP地址,以保证下面的终端获取的DNS服务由这个路由器来提供。
4.10 安装filemanager
系统自带一个Filemanager的管理界面,但一直启动不了,我也没办法,我到ssh下面,想用手工把它启起来,发现也启不来, 老是报参数错。一气之下就把它给卸载掉了, 就没有截图。
等我卸载之后,一搜索,发现还有好几个filemanager没卸载干净,而且在ROM下面手工也删除不了。
[root@PandoraBox_4455:/root]#find / -name filemanager
/overlay/etc/config/filemanager
/overlay/usr/bin/filemanager
/rom/etc/config/filemanager
/rom/etc/init.d/filemanager
/rom/usr/bin/filemanager
我再试着将它启一下
./filemanager -p 8989 -d ./filebrowser.db -s /mnt/sda5/ -l fm.log
发现可以启来了,这什么情况, 我赶紧把它拷贝出来,另外存放起来,以后可能用得上。
打开页面访问一下,速度很快
把8989端口开放出来,从外网访问,配合手机的sogou浏览器或者QQ浏览器(它们以前是一家吧),发现用来看视频真好用,比起FTP快多了,可以达到10M/s的速度,随意拖动都不卡,简直和内网播放体验相当了, sougou的播覇播放器操控真心好用, 比起那些ES文件管理器、文件管理器+、KODI等都好用,速度也快很多。但魅族手机自带的浏览器不行,有些视频不能在线播放,需要像sougou这种浏览器自带播放器才行,支持所有的视频播放。
如下图,碰到不能在线播放在的电影,点击下载时,下面会有个在线播放的选项,也可以实现在线播放了。
唯一不好的就是,每看完一部电影,关闭后,都会刷新当前页面,刚刚打开的电影位置就没有了,又要重新再找,好苦恼呀,好在界面上有上一个和下一个的箭头可以直接下一个文件。
最终选择:
最后决定使用PBR-M1 PandoraBox 19.02 2019-02-01的版本的固件,下载地址如下:http://downloads.pangubox.com:6380/pandorabox/19.02/targets/ralink/mt7621/PandoraBox-ralink-mt7621-pbr-m1-2019-02-01-git-0231ad4b5-squashfs-sysupgrade.bin
搭建的服务有:
CUPS:远程多台打印服务器,稳定高效安全,真心好用
Syncthing:私有云,实现内外网多台设备文件同步,安全,自带P2P内网穿透BUF,消耗资源大户
PPTP VPN:VPN服务
WOL:网络唤醒,远程开机
FTP/SMB:文件传输共享与下载,这个不用说了, 固件自带
Filemanager:文件在线WEB管理,更重要的是方便直接用浏览器在线看电影,速度超快。
DDNS:动态域名
还有其它固件自带的一些服务都很好用,不一一例举了。
,经过测试,开启NAT的情况下,可以轻松跑满1000M
硬盘读写速度如下:
读取可以达到100M/s
写入速度比较慢,只有30M/s
潘多拉其它都好用, 但是CUPS的USB打印还是有问题,时常USB设备丢失了,我先把kmod-usb3的驱动删掉了, 又把kmod-usb-ohci、kmod-usb-uhci 驱动删掉了试试看,结果每次打印还是报如下日志,需要再继续观察
Mon Apr 29 14:55:59 2024 lpr.info cupsd[1865]: GP2120T Administrator 5 [29/Apr/2024:14:55:59 +0800] 1 1 - 192.168.4.2 New doc - -
Mon Apr 29 14:56:11 2024 kern.info kernel: [ 1900.532000] usb 1-1.3: reset full-speed USB device number 5 using xhci-hcd
Mon Apr 29 14:56:11 2024 kern.warn kernel: [ 1900.624000] xhci-hcd xhci-hcd: xHCI xhci_drop_endpoint called with disabled ep 99211c00
Mon Apr 29 14:56:11 2024 kern.warn kernel: [ 1900.632000] xhci-hcd xhci-hcd: xHCI xhci_drop_endpoint called with disabled ep 99211c2c
Mon Apr 29 14:56:11 2024 kern.warn kernel: [ 1900.640000] xhci-hcd xhci-hcd: xHCI xhci_drop_endpoint called with disabled ep 99211bac
Mon Apr 29 14:56:11 2024 kern.warn kernel: [ 1900.648000] xhci-hcd xhci-hcd: xHCI xhci_drop_endpoint called with disabled ep 99211b80
之前用的是9.9在拼多多上买的USB3.0的接口,后来换成我的USB 2.0老古董试试看,在把USB-HUB更换后,经过一周时间的试用,发现打印机没问题了,这个warn信息并不影响正常打印,目前还比较稳定。奇怪的是我USB3.0的移动硬盘插在上面没有问题,但是这个打印机却有问题。是不是我的打印机上面同时有个FAT32的存储空间用来放驱动的,可能是这个产生影响了。
Wed May 29 16:16:13 2024 lpr.info cupsd[2001]: [Job ???] Request file type is application/octet-stream.
Wed May 29 16:16:13 2024 lpr.info cupsd[2001]: REQUEST 192.168.4.101 - - "POST /printers/GP-2120T HTTP/1.1" 200 30171 Print-Job successful-ok
Wed May 29 16:16:13 2024 lpr.info cupsd[2001]: GP-2120T Administrator 54 [29/May/2024:16:16:13 +0800] 1 1 - 192.168.4.101 New doc - -
Wed May 29 16:16:22 2024 kern.info kernel: [331992.028000] usb 1-1.3: reset full-speed USB device number 4 using xhci-hcd
Wed May 29 16:16:22 2024 kern.warn kernel: [331992.136000] xhci-hcd xhci-hcd: xHCI xhci_drop_endpoint called with disabled ep 9b476c00
Wed May 29 16:16:22 2024 kern.warn kernel: [331992.144000] xhci-hcd xhci-hcd: xHCI xhci_drop_endpoint called with disabled ep 9b476c2c
Wed May 29 16:16:22 2024 kern.warn kernel: [331992.152000] xhci-hcd xhci-hcd: xHCI xhci_drop_endpoint called with disabled ep 9b476a2c
Wed May 29 16:16:22 2024 kern.warn kernel: [331992.160000] xhci-hcd xhci-hcd: xHCI xhci_drop_endpoint called with disabled ep 9b476a00
Wed May 29 16:16:44 2024 lpr.info cupsd[2001]: Saving job.cache...
搭建PPTP VPN
第一次是在openwrt上做的
1、安装包
root@OpenWrt:~# opkg install pptpd kmod-mppe ppp
root@OpenWrt:~# vi /etc/config/pptpd
config service 'pptpd'
option 'enabled' '0' #开启
option 'localip' '192.168.4.1' #改成服务器LAN IP地址
option 'remoteip' '192.168.4.20-30' #给连接上来的客户端分配的IP地址池
config 'login' #登陆的账号1
option 'username' 'youruser1'
option 'password' 'yourpass1'
config 'login' #登陆的账号2
option 'username' 'youruser2'
option 'password' 'yourpass2'
root@OpenWrt:~# /etc/init.d/pptpd enable # 开启启动,这个是最直接的方法,和service pptpd enable,效果是一样的
root@OpenWrt:~# /etc/init.d/pptpd start # 启动
root@OpenWrt:~# netstat -antp # 查看端口1723是否开启,注意开启防火墙
发现不能成功访问,没有找到原因,后来因为改刷PandoraBox, 所以没有深入研究。
刷完PandoraBox后,库里直接有个包
点击安装luci-i18n-pptp-server-zh-cn ,其它的也会装上了。装完配置好
外网连上VPN发现只能访问这个路由器,其它内网的其它IP地址都无法访问,原因是需要开启转发。
方案二:也可以直接把1723端口给它转发到我的下级飞鱼星的路由器上算了,什么都不用再弄,内网都通通的了。
但是方案二发现远端访问内网有问题,只能ping通,但不能传输数据,一传输数据就断开,例如在shell上执行一个netstat -pan都只能显示一半出来就断开了。后来发现那是因为MTU值不匹配的问题,把MTU值改为1400即可。