文档章节

LinksysWrt1900acs刷官方镜像并开启FTP

a_xianyu
 a_xianyu
发布于 2017/06/03 15:41
字数 1270
阅读 39
收藏 0

系统:https://downloads.openwrt.org/chaos_calmer/15.05.1/mvebu/generic/openwrt-15.05.1-mvebu-armada-385-linksys-shelby-squashfs-factory.img

需要的工具:WinSCP, putty(或其它ssh工具)

安装完系统后
1. ssh连接路由器后直接输入命令

最开始刷系统后会登陆192.168.1.1时会出现一个root用户名和其对应的密码,
就是用于ssh连接时的用户名和密码。如果更改过密码,则使用更改过的。
    opkg update
    opkg install kmod-usb-core
    opkg install kmod-usb2                #安装usb2.0 
    opkg install kmod-usb3                #安装usb3.0 
    opkg install kmod-usb-ohci            #安装usb ohci控制器驱动
    opkg install kmod-usb-storage         #安装usb存储设备驱动
    opkg install kmod-fs-vfat             #挂载FAT
    opkg install ntfs-3g                  #挂载NTFS
    opkg install mount-utils              #挂载卸载工具
    opkg install block-mount

    再更新驱动

opkg update
opkg install git-http
cd /tmp
git clone --depth 1 https://github.com/NemoAlex/mwlwifi-bin.git
cd mwlwifi-bin/15.05.1
opkg install kmod-mwlwifi_3.18.23\+10.3.0.17-20160531-1_mvebu.ipk
reboot

2. 用WinSCP连接路由器(还是上面的路由器和密码),文件协议选择SCP,
打开/etc/hotplug.d/block/10-mount文件(如果不存在请新建)
修改为如下内容

#!/bin/sh
 
# Copyright (C) 2009 OpenWrt.org  (C) 2010 OpenWrt.org.cn
 
blkdev=`dirname $DEVPATH`
if [ `basename $blkdev` != "block" ]; then
 
    device=`basename $DEVPATH`
    case "$ACTION" in
        add)
                mkdir -p /mnt/$device
                # vfat & ntfs-3g check
                if  [ `which fdisk` ]; then
                        isntfs=`fdisk -l | grep $device | grep NTFS`
                        isvfat=`fdisk -l | grep $device | grep FAT`
                        isfuse=`lsmod | grep fuse`
                        isntfs3g=`which ntfs-3g`
                else
                        isntfs=""
                        isvfat=""
                fi 
 
                # mount with ntfs-3g if possible, else with default mount
                if [ "$isntfs" -a "$isfuse" -a "$isntfs3g" ]; then
                        ntfs-3g -o nls=utf8 /dev/$device /mnt/$device
                elif [ "$isvfat" ]; then
                        mount -t vfat -o iocharset=utf8,rw,sync,umask=0000,dmask=0000,fmask=0000 /dev/$device /mnt/$device
                else
                        mount /dev/$device /mnt/$device
                fi
  if [ -f /dev/${device}/swapfile ]; then
   mkswap /dev/${device}/swapfile
   swapon /dev/${device}/swapfile
  fi
                ;;
        remove)
  if [ -f /dev/${device}/swapfile ]; then
   swapoff /dev/${device}/swapfile
  fi
                umount /dev/$device
                ;;
    esac
 
fi

保存后,重启路由器。(直接在System下选择Reboot, 或者再ssh连接下输入reboot都可以)

    稍加修改,就可以实现自动挂载。下面这段代码就可以自动挂载ntfs类型的u盘,挂载后的地址为/mnt/sda4.

#!/bin/sh
 
# Copyright (C) 2009 OpenWrt.org  (C) 2010 OpenWrt.org.cn
 
blkdev=`dirname $DEVPATH`
if [ `basename $blkdev` != "block" ]; then
 
    device=`basename $DEVPATH`
    case "$ACTION" in
        add)
                mkdir -p /mnt/sda4
                # vfat & ntfs-3g check
                if  [ `which fdisk` ]; then
                        isntfs=`fdisk -l | grep $device | grep NTFS`
                        isvfat=`fdisk -l | grep $device | grep FAT`
                        isfuse=`lsmod | grep fuse`
                        isntfs3g=`which ntfs-3g`
                else
                        isntfs=""
                        isvfat=""
                fi 
 
                # mount with ntfs-3g if possible, else with default mount
                if [ "$isntfs" -a "$isfuse" -a "$isntfs3g" ]; then
                        ntfs-3g -o nls=utf8 /dev/$device /mnt/sda4
                elif [ "$isvfat" ]; then
                        mount -t vfat -o iocharset=utf8,rw,sync,umask=0000,dmask=0000,fmask=0000 /dev/$device /mnt/sda4
                else
                        mount /dev/$device /mnt/sda4
                fi
  if [ -f /dev/${device}/swapfile ]; then
   mkswap /dev/${device}/swapfile
   swapon /dev/${device}/swapfile
  fi
                ;;
        remove)
  if [ -f /dev/${device}/swapfile ]; then
   swapoff /dev/${device}/swapfile
  fi
                umount /dev/$device
                ;;
    esac
 
fi

3. 重启后,再次登陆后点击Mount Points
    此时,应该出现一个网页,类似下图

              

4. 查看设备地址。

    插上U盘之后,此时U盘并不能挂载,如果挂载U盘,需要先找到设备地址,就是使用blkid命令。(如果中间显示某个包无法找到,可以使用opkg update, 之后再次尝试)

        opkg install fdisk

        opkg install e2fsprogs

        opkg install blkid

    之后直接输入blkid,就可以看到设备地址,如下图红框中的/dev/sda4,就是目前插入的U盘的设备地址。

              

5. 挂载U盘。

    如果插入的U盘的文件系统类型为ntfs, 则在ssh连接下使用

        ntfs-3g /dev/sda4 /mnt/sda4

进行挂载

    如果是fat32, 则在ssh连接下使用如下命令安装软件

opkg update
opkg install kmod-nls-base
opkg install kmod-nls-cp437
opkg install kmod-nls-iso8859-1

,再使用blkid查看设备地址,使用 

mount -t vfat /dev/sda4 /mnt/sda4

进行挂载。其它类型的文件系统,请自行查找挂载命令。

    此时刷新System->Mount Points页面,会发现下面多了一行,

              

则说明U盘挂载成功。可以使用WinSCP连接进入/mnt/sda4/目录查看U盘中的相关内容, 如下所示,图中中文文件名出现了乱码,并没有想到什么办法解决,求大神赐教。

            

目前只能实现U盘的手动挂载,网上的方法之前也试过,基本没有效果。如果有谁知道怎么自动挂载,求告知。

6. 安装ftp

    推荐使用vsftpd

    opkg update

    opkg install vsftpd

    修改/etc/vsftpd.conf为如下(推荐使用匿名用户),其中anon_root和local_root为设备的挂载地址。并且不能有空格,务必仔细检查。注意:下面的配置允许登陆的用户上传,下载和删除文件,如果有特定需要,请自行修改

chown_uploads=YES
chown_username=root
ftp_username=nobody
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_root=/mnt/sda4
anon_max_rate=512000
local_enable=YES
write_enable=YES
local_umask=022
check_shell=NO
local_root=/mnt/sda4

    再就是启动ftp了,

    /etc/init.d/vsftpd restart

    之后就可以使用ftp客户端或其它方式进行访问了,用户名和密码还是路由器的用户名和密码,这时u盘中的中文文件名可以正常显示。

ps: 如果只是需在局域网中分享文件,推荐使用samba, 设置更为简单。

参考的文章:

1. http://jingyan.baidu.com/article/5225f26b6b273fe6fa090829.html

2. http://www.wifidog.pro/2015/08/13/openwrt-ftp.html

3. http://www.cnblogs.com/double-win/p/3848797.html

4. http://www.tuicool.com/articles/zeqiqev

如果需要允许特定的用户使用ftp: http://blog.csdn.net/luotong86/article/details/53039617

© 著作权归作者所有

共有 人打赏支持
a_xianyu
粉丝 0
博文 36
码字总数 18533
作品 0
哈尔滨
程序员
私信 提问
Linux Deepin 镜像服务已覆盖德国

德国埃尔兰根-纽伦堡大学,Tuxinator及GWDG为Linux Deepin提供了在德国的镜像服务。以下为各镜像的详情: 埃尔兰根-纽伦堡大学 软件包及各版本的安装镜像可从以下不同协议的链接获取: http...

cxbii
2014/03/12
398
4
从Oracle Public Yum为Oracle Linux建立本地的Yum源

你可以在这里找到本文的原文。 本文是在Oracle Linux 6.5下,通过复制Oracle Public Yum源的方式建立一个完整的本地Yum源。由于只是出于测试和快速上手的目的,只进行了一次同步复制。在同步...

K-X
2015/10/21
45
0
Linux Deepin 今日新增四处镜像

今日,Linux Deepin今日新增四处镜像!分别为日本、瑞典和美国! Tsukuba WIDE Public Mirror service(日本) 目前该镜像站目前只支持Http和Rsync协议,其地址如下: http://ftp.tsukuba.w...

cxbii
2014/04/02
599
0
Linux Deepin 今日新增三处镜像

今日,Linux Deepin今日新增三处镜像!分别为美国、菲律宾和荷兰! Georgia Tech. Software Library(美国) 目前该镜像站目前支持Http和Ftp协议,其地址如下: http://www.gtlib.gatech.ed...

cxbii
2014/03/19
321
0
Linux Deepin新增斯洛伐克、意大利和南非三处镜像服务

Linux Deepin国际化进展令人振奋,今日Linux Deepin新增斯洛伐克、意大利、南非三处镜像服务! Rainside公司镜像站 目前Rainside公司(斯洛伐克)镜像站目前支持Http和Ftp协议,其地址如下:...

cxbii
2014/03/05
244
0

没有更多内容

加载失败,请刷新页面

加载更多

开发十年,就只剩下这套架构体系了!

蓦然回首自己做开发已经十年了,这十年中我获得了很多,技术能力、培训、出国、大公司的经历,还有很多很好的朋友。但再仔细一想,这十年中我至少浪费了五年时间,这五年可以足够让自己成长为...

Java架构资源分享
8分钟前
0
0
spring切面编程中,如何获取request和response

HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();//获取request HttpServletResponse response = ((ServletRequest......

重城重楼
9分钟前
1
0
Numpy的广播功能

当我学习logitic函数,想用Python画出曲线。第一个版本这么实现: import numpy as np import matplotlib.pyplot as plt def logistic(x): return 1 /( 1 + np.exp(-x)) x = np.arange(-10,......

shengjuntu
10分钟前
0
0
Java堆:Shallow Size和Retained Size

Android Profiler分析的时候有如下两个值 Shallow Size: Total amount of Java memory used by this object type (in bytes). Retained Size: Total size of memory being retained due to a......

SuShine
16分钟前
0
0
建模常用的pandas语句

  pandas对象是Python常用的数据分析模块,它主要包括series对象,dataframe对象和index对象。每种对象都有自己所特有的方法和属性。今天小编更新下建模中常用的pandas语句。   额外提一...

数据星河
19分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部