数码之家

 找回密码
 立即注册
搜索
查看: 5285|回复: 7

解决品胜Pisen WPR003N 官方 v1.2.1固件smb服务在ios上documents文件管理器的兼容性

[复制链接]
发表于 2019-10-19 20:58:58 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册

x
wrt刷机和折腾见这里:
https://www.mydigit.cn/forum.php?mod=viewthread&tid=80400

现在是折腾官方的固件, 至少它声音和usb存储就支持, 安卓下VLC可以直接扫出和使用

实际上官方的固件, telnet上去后, 也应该还有值得改的地方,所以就折腾一下官方固件

IOS上的文件管理器document(by readdle)兼容性非常好, 但品胜官方的固件却支持有问题。。   这个我的解决方法如下:

用vim命令修改/etc/hotplug.d/block/下的10-mount


将文件中出现的“可移动磁盘”改为任一英文名即可解决,有两个地方, 我直接改成HD..修改后ios document可以正常使用, telnet上去后用vim中文不显示,直接改就行了


目前还不清楚安桌下ES文件管理器和IOS 下的VLC如何解决,   这两个都是能扫到, 但不能登录。。

如果刷WRT, ios下的VlC也是只能扫到不能登录。。但安卓下的ES正常




  1. #!/bin/sh
  2.                         
  3. # make by zxl @2013.10.21
  4.                         
  5. blkdev=`dirname $DEVPATH`                 
  6. if [ `basename $blkdev` != "block" ]; then
  7.                               
  8.     device=`basename $DEVPATH`
  9.    
  10.                         
  11.                
  12.                         
  13.                         
  14.     case "$ACTION" in
  15.         add)                        
  16.                               #判断u盘格式并获取u盘名字
  17.                            echo $device >/tmp/devlist
  18.                                 fmt=`expr substr "$(fdisk -l | grep $device)" 55 100`
  19.                                 echo ${fmt} 1>/dev/console
  20.                                 if [ "${fmt}" == "HPFS/NTFS" ]
  21.                                 
  22.                                 then                                                                        
  23.                         tmpname=`ntfslabel /dev/$device | sed 's/ //g'`
  24.                                 if [ "${tmpname}" == "" ]
  25.                         then
  26.                         name=可移动磁盘"($device)"
  27.                
  28.                                 else
  29.                 name=$tmpname"($device)"         
  30.                         
  31.                                 fi
  32.         
  33.                         else
  34.                                 tttmpname=`blkid | awk '{print $2}' | awk -F= '{print $1}'`
  35.                                 
  36.                                 if [ "${tttmpname}" == "UUID" ]
  37.                         then
  38.                         name=可移动磁盘"($device)"
  39.                         
  40.                                 else
  41.                                 ttmpname=`gbkutf8 | grep $device | awk -F'"' '{print $2}' | sed 's/ //g'`
  42.                                 rm -rf /tmp/devlist
  43.                 name=$ttmpname"($device)"   
  44.                                 fi
  45.         

  46.         
  47.         
  48.                         fi      
  49.                
  50.                 #在usb目录下创建挂载目录
  51.                         
  52.               
  53.             
  54.                 # check vfat & ntfs-3g 并相应挂载           
  55.                         if [ "${fmt}" == "Win95 FAT32" ]
  56.                         then
  57.                 mkdir -p /usb/"$name"                                                               
  58.                         mount -t vfat -o iocharset=utf8,codepage=936,rw,umask=0000,dmask=0000,fmask=0000 /dev/$device /usb/"$name"
  59.             echo $name $device $(df -h /dev/$device | grep $device | awk '{print $2}') $(df -h /dev/$device | grep $device | awk '{print $4}') >>/tmp/udiskname
  60.                         /etc/usb.sh $name $device &
  61.                         elif [ "${fmt}" == "Win95 FAT32 (LBA)" ]
  62.                         then                                                                              
  63.                 mkdir -p /usb/"$name"               
  64.                         mount -t vfat -o iocharset=utf8,codepage=936,rw,umask=0000,dmask=0000,fmask=0000 /dev/$device /usb/"$name"
  65.                         echo $name $device $(df -h /dev/$device | grep $device | awk '{print $2}') $(df -h /dev/$device | grep $device | awk '{print $4}') >>/tmp/udiskname
  66.                         /etc/usb.sh $name $device &
  67.                         elif [ "${fmt}" == "FAT16" ]
  68.                         then                                                                              
  69.                 mkdir -p /usb/"$name"                 
  70.                 mount -t vfat -o iocharset=utf8,codepage=936,rw,umask=0000,dmask=0000,fmask=0000 /dev/$device /usb/"$name"
  71.                 echo $name $device $(df -h /dev/$device | grep $device | awk '{print $2}') $(df -h /dev/$device | grep $device | awk '{print $4}') >>/tmp/udiskname
  72.                 /etc/usb.sh $name $device &
  73.                         elif [ "${fmt}" == "HPFS/NTFS" ]
  74.                         then                                                                        
  75.                 mkdir -p /usb/"$name"                 
  76.                 ntfs-3g -o iocharset=utf8,rw,umask=0000,dmask=0000,fmask=0000 /dev/$device /usb/"$name"
  77.                 echo $name $device $(df -h /dev/$device | grep $device | awk '{print $2}') $(df -h /dev/$device | grep $device | awk '{print $4}') >>/tmp/udiskname
  78.                         /etc/usb.sh $name $device &               
  79.                         
  80.                         fi
  81.             if [ "$(pidof smbd)" != "" ];
  82.                         then
  83.                         smbstop      
  84.                         set_samba            
  85.                         smbstart
  86.                         else   
  87.                         set_samba  
  88.                         fi     
  89.                         
  90.                         
  91.                 ;;
  92.         
  93.                
  94.                 remove)
  95.                                 killall usb.sh
  96.                                 uname=`echo $device | awk '{print substr($1,1,3)}'`
  97.                                 umount -lf /dev/$device
  98.                                 kill -9 $(fuser /dev/$device)
  99.                                rm -rf /usb/*
  100.                                sed  -i "/$uname/d" /tmp/udiskname
  101.                                if [ "$(pidof smbd)" != "" ];
  102.                                then
  103.                                smbstop      
  104.                                set_samba            
  105.                                smbstart
  106.                                else   
  107.                                set_samba  
  108.                                fi     
  109.                               
  110.                 ;;
  111.     esac
  112.    
  113. fi
复制代码


打赏

参与人数 1家元 +30 收起 理由
家睦 + 30

查看全部打赏

 楼主| 发表于 2019-10-19 21:03:31 | 显示全部楼层
本帖最后由 spectater 于 2019-10-19 21:04 编辑

目前还不清楚安桌下ES文件管理器和IOS 下的VLC如何解决,   这两个都是能扫到, 但不能登录。。
这个和smb的配件文有关么?  希望高人指点!

  1. [root@pisen#cat /etc/samba/smb.conf
  2. [global]
  3. netbios name=PisenRouter
  4. interfaces=192.168.168.1/24
  5.      server string = samba
  6.         display charset = utf8
  7.         unix charset = utf8
  8.         dos charset= utf8
  9.         workgroup = WORKGROUP
  10.         browseable = yes
  11.         deadtime = 1
  12.         domain master = yes
  13.         encrypt passwords = true
  14.         client lanman auth = yes
  15.         client ntlmv2 auth = yes
  16.         lanman auth = yes
  17.         ntlm auth = yes
  18.         guest account = root
  19.         username map =/etc/samba/smbusers
  20.         local master = yes
  21.         load printers = no
  22.         map to guest = Bad User
  23.         max protocol = SMB2
  24.         null passwords = yes
  25.         obey pam restrictions = yes
  26.         os level = 65
  27.         passdb backend = smbpasswd
  28.         preferred master = yes
  29.         printable = no
  30.         security = user
  31.         smb passwd file = /etc/samba/smbpasswd
  32.         syslog = 2
  33.         read size = 8192
  34.         write size= 8192
  35.         socket options = TCP_NODELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192 IPTOS_LOWDELAY
  36.         getwd cache = yes
  37.         follow symlinks = no
  38.         wide links = no
  39.         read raw = yes
  40.         write raw = yes
  41.         large readwrite = yes
  42.         getwd cache = yes
  43.         strict locking = no
  44.         fake oplocks = yes
  45.         oplocks = no
  46.         use sendfile = yes
  47.         writeable = yes
  48.         block size = 4096
  49. [可移动磁盘(sda4)]
  50.     path = /usb/可移动磁盘(sda4)
  51. valid users = root
  52. read only=no
  53. guest ok=yes
  54. create mask = 0777
  55. directory mask = 0777

  56. [HD(sda4)]
  57.     path = /usb/HD(sda4)
  58. valid users = root
  59. read only=no
  60. guest ok=yes
  61. create mask = 0777
  62. directory mask = 0777

复制代码


回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-19 21:14:27 | 显示全部楼层
如果把/etc/samba/smb.conf中出现的中文“可移动磁盘”, 也改成英文字符"HD",   用smb客户端工具, 第二层就只有一个入口了。。这个文件可改也可不改
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-19 22:20:45 | 显示全部楼层
安卓的ES  管理器,它的smb兼容性很强, 但这个品胜官方rom却不支持。。

ios上vlc的samba兼容性做得很不好,  ios上如果vlc可用, 那说明这个smb服务配置得非常好

不过ios上有FE  和playerextreme ,documents by readdle, 这三个的兼容性不错。。

回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-20 18:16:45 | 显示全部楼层
安桌下ES文件管理器居然完全连不上。。改用X-Plore文件管理器搞定

第一次知道有X-Plore这么一个文件管理器,  2018年推荐榜第一名
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2019-10-20 21:18:54 | 显示全部楼层
wrt的linux版本高到比较新后, 与samb web界面配制有关的一个包, 用opkg已经搜索不到了。。估计是维护没更上。。

   



不太清楚samab要怎样配, 才能让ios下的vlc正常使用路由器的samb服务。。希望高人指点一下!

所以如果对其它功能无所谓, 用官方固件其实也行。。

最重要的功能: 各种方式的上网, 音频, smb服务。。官方固件都可以用


回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-22 15:11:40 | 显示全部楼层


我现在用的是酱紫,  其实没改什么, 就是把挂载的中文改成英文的, 把挂载名中的括号去掉。。主要是方便在终端下进行文件操作。。不去括号,直接打命令,要在(或)前面加“\”

documents be readdle 这个文件管理器如果挂载名是中文, 就无法点进去。。


  1. [root@pisen /etc/hotplug.d/block]#cat 10-mount
  2. #!/bin/sh

  3. # make by zxl @2013.10.21

  4. blkdev=`dirname $DEVPATH`
  5. if [ `basename $blkdev` != "block" ]; then

  6.     device=`basename $DEVPATH`





  7.     case "$ACTION" in
  8.         add)
  9.                         #判断u盘格式并获取u盘名字
  10.                     echo $device >/tmp/devlist
  11.                                 fmt=`expr substr "$(fdisk -l | grep $device)" 55 100`
  12.                                 echo ${fmt} 1>/dev/console
  13.                                 if [ "${fmt}" == "HPFS/NTFS" ]

  14.                                 then                                            
  15.                         tmpname=`ntfslabel /dev/$device | sed 's/ //g'`
  16.                                 if [ "${tmpname}" == "" ]
  17.                         then
  18.                         name=HD"$device"

  19.                                 else
  20.                 name=$tmpname"$device"

  21.                                 fi

  22.                         else
  23.                                 tttmpname=`blkid | awk '{print $2}' | awk -F= '{print $1}'`

  24.                                 if [ "${tttmpname}" == "UUID" ]
  25.                         then
  26.                         name=HD"$device"

  27.                                 else
  28.                                 ttmpname=`gbkutf8 | grep $device | awk -F'"' '{print $2}' | sed 's/ //g'`
  29.                                 rm -rf /tmp/devlist
  30.                 name=$ttmpname"$device"
  31.                                 fi




  32.                         fi

  33.                 #在usb目录下创建挂载目录



  34.                 # check vfat & ntfs-3g 并相应挂载
  35.                         if [ "${fmt}" == "Win95 FAT32" ]
  36.                         then
  37.                 mkdir -p /usb/"$name"                                          
  38.                         mount -t vfat -o iocharset=utf8,codepage=936,rw,umask=0000,dmask=0000,fmask=0000 /dev/$device /usb/"$name"
  39.             echo $name $device $(df -h /dev/$device | grep $device | awk '{print $2}') $(df -h /dev/$device | grep $device | awk '{print $4}') >>/tmp/udiskname
  40.                         /etc/usb.sh $name $device &
  41.                         elif [ "${fmt}" == "Win95 FAT32 (LBA)" ]
  42.                         then                                                   
  43.                 mkdir -p /usb/"$name"
  44.                         mount -t vfat -o iocharset=utf8,codepage=936,rw,umask=0000,dmask=0000,fmask=0000 /dev/$device /usb/"$name"
  45.                         echo $name $device $(df -h /dev/$device | grep $device | awk '{print $2}') $(df -h /dev/$device | grep $device | awk '{print $4}') >>/tmp/udiskname
  46.                         /etc/usb.sh $name $device &
  47.                         elif [ "${fmt}" == "FAT16" ]
  48.                         then                                                   
  49.                 mkdir -p /usb/"$name"
  50.                 mount -t vfat -o iocharset=utf8,codepage=936,rw,umask=0000,dmask=0000,fmask=0000 /dev/$device /usb/"$name"
  51.                 echo $name $device $(df -h /dev/$device | grep $device | awk '{print $2}') $(df -h /dev/$device | grep $device | awk '{print $4}') >>/tmp/udiskname
  52.                 /etc/usb.sh $name $device &
  53.                         elif [ "${fmt}" == "HPFS/NTFS" ]
  54.                         then                                                   
  55.                 mkdir -p /usb/"$name"
  56.                 ntfs-3g -o iocharset=utf8,rw,umask=0000,dmask=0000,fmask=0000 /dev/$device /usb/"$name"
  57.                 echo $name $device $(df -h /dev/$device | grep $device | awk '{print $2}') $(df -h /dev/$device | grep $device | awk '{print $4}') >>/tmp/udiskname
  58.                         /etc/usb.sh $name $device &

  59.                         fi
  60.             if [ "$(pidof smbd)" != "" ];
  61.                         then
  62.                         smbstop
  63.                         set_samba
  64.                         smbstart
  65.                         else
  66.                         set_samba
  67.                         fi


  68.                 ;;


  69.                 remove)
  70.                                 killall usb.sh
  71.                                 uname=`echo $device | awk '{print substr($1,1,3)}'`
  72.                                 umount -lf /dev/$device
  73.                                 kill -9 $(fuser /dev/$device)
  74.                         rm -rf /usb/*
  75.                         sed  -i "/$uname/d" /tmp/udiskname
  76.                         if [ "$(pidof smbd)" != "" ];
  77.                         then
  78.                         smbstop
  79.                         set_samba
  80.                         smbstart
  81.                         else
  82.                         set_samba
  83.                         fi

  84.                 ;;
  85.     esac

  86. fi




  87.                  [root@pisen /etc/hotplug.d/block]#
复制代码



回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-22 15:13:54 | 显示全部楼层
官方的固件, 其实也是稳得一批。。无线中继开几天, 不会掉线。。

不过与路由器的距离不能太远。。太远会掉线, 掉线后要手工开启。。不会自动连上。。这貌似也是固件本身的问题。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-5-11 03:35 , Processed in 0.249600 second(s), 12 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表