Raspberry Pi(中文名“树莓派”),是只有信用卡大小的微型电脑,其系统基于Linux。为了改善学校宿舍的上网环境(校园网登陆系统导致不能用路由器多设备通用网络),通过树莓派访问校园网登陆系统上网并且24小时开机分享热点实现24小时多设备上网。但是不能满足于仅仅有热点而已,我还使用了seafile进行文件存储。

准备材料:

我所用到的设备

(1)一块树莓派以及电源

(2)一根HDMI线

(3)一根网线

(4)一块500G硬盘

(5)硬盘座

(6)显示器

(7)笔记本电脑

(8)tf卡读卡器

下面按照我的使用步骤进行记录:

  1. 树莓派安装操作系统

    1. 用读卡器将树莓派NOOBS操作系统解压缩至tf卡中。注意!不要把解压后的文件夹拖入tf卡中,应该点进文件夹,同时按ctrl+A将所有文件复制进tf卡中;

    2. 将tf卡插入树莓派,将除了电源以外的线都接好,包括散热风扇、硬盘、屏幕HDMI线等,其中网线接在宿舍上网端口上,最后接上电源,树莓派启动;

    3. 最后,根据系统提示安装好操作系统,进入桌面;

    4. 树莓派初始的登录用户名:pi初始密码:raspberry

    5. sudo passwd root #设置root密码

      sudo passwd -u root #解锁root用户

  2. 树莓派通过HDMI连接显示器

    1. 很明显,使用显示器的我发现有一点不对劲,树莓派桌面显示居然有黑边,于是上网查找解决办法;
    2. 打开config.txt:sudo nano /boot/config.txt;
    3. 在默认情况下,取消注释(取消“#”)修改下面这段,
      overscan_left=-16
      overscan_right=-16
      overscan_top=-16
      overscan_bottom=-16
      树莓派的显示输出就占满了屏,关于后面的“-16”这个数字,根据自己的屏实际情况来确定。
  3. 树莓派通过VNC由笔记本控制

    1. 输入命令行sudo raspi-config;
    2. 选择5.Interfacing Options;
    3. 找到VNC(远程桌面),选择 Yes(是)。
  4. 树莓派安装热点分享程序create_ap

    1. 将代码clone到本地

      sudo git clone https://github.com/oblique/create_ap
      cd create_ap
      sudo make install
      
    2. 安装依赖的库

      sudo apt-get install util-linux procps hostapd iproute2 iw haveged dnsmasq
      
    3. 打开热点(此时,树莓派wifi开着,但没有连wifi)

      sudo create_ap wlan0 eth0 热点名 密码
      
    4. 此时不出意外热点将会开启,但是会有warn,可以执行以下代码

      sudo create_ap --no-virt wlan0 eth0 m热点名 热点
      
    5. 以服务方式启动,执行开机自启

      #1.修改服务配置,添加--no-virt参数
      sudo vi /usr/lib/systemd/system/create_ap.service
      # 将
      ExecStart=/usr/bin/create_ap --config /etc/create_ap.conf
      # 修改为
      ExecStart=/usr/bin/create_ap --no-virt --config /etc/create_ap.conf#2.默认配置文件/etc/create_ap.conf,将下面两横改为自己的ssid和密码即可,修改自己的dhcp网关
      sudo vi /etc/create_ap.conf
      # 将
      GATEWAY=10.0.0.1
      SSID=MyAccessPoint
      PASSPHRASE=12345678
      # 修改为
      GATEWAY=192.168.123.1
      SID=dzxj
      PASSPHRASE=11111111# 启动一个服务:
      systemctl start create_ap.service
      # 关闭一个服务:
      systemctl stop create_ap.service
      # 重启一个服务:
      systemctl restart create_ap.service
      # 显示一个服务的状态:
      systemctl status create_ap.service
      # 在开机时启用一个服务:
      systemctl enable create_ap.service
      # 在开机时禁用一个服务:
      systemctl disable create_ap.service
      # 查看服务是否开机启动:
      systemctl is-enabled create_ap.service
      
    6. 异常一:WARN: brmfmac driver doesn’t work properly with virtual interfaces and it can cause kernel panic. For this reason we disallow virtual interfaces for your adapter.For more info: https://github.com/oblique/create_ap/issues/203

      ERROR: Your adapter can not be a station (i.e. be connected) and an AP at the same time

      处理:sudo nmcli dev dis wlan0
      
    7. 异常二:

      sudo create_ap wlan0 eth0 my_raspi 88166908
      WARN: brmfmac driver doesn’t work properly with virtual interfaces and it can cause kernel panic. For this reason we disallow virtual interfaces for your adapter. For more info: https://github.com/oblique/create_ap/issues/203 WARN: Your adapter does not fully support AP virtual interface, enabling --no-virt Config dir: /tmp/create_ap.wlan0.conf.cDxIozig PID: 1132 Network Manager found, set wlan0 as unmanaged device… DONE/bin/create_ap: line 1669: dnsmasq: command not found

      ERROR: Wrong version format!

      处理:sudo yum install dnsmasq -y
      
    8. 异常三:

      sudo create_ap wlan0 eth0 my_raspi 12345678
      WARN: brmfmac driver doesn’t work properly with virtual interfaces andit can cause kernel panic. For this reason we disallow virtual interfaces for your adapter. For more info: https://github.com/oblique/create_ap/issues/203 WARN: Your adapter does not fully support AP virtual interface, enabling --no-virt Config dir: /tmp/create_ap.wlan0.conf.gC5KSqVQ PID: 2497 Sharing Internet using method: nat hostapd command-line interface: hostapd_cli -p /tmp/create_ap.wlan0.conf.gC5KSqVQ/hostapd_ctrl Configuration file: /tmp/create_ap.wlan0.conf.gC5KSqVQ/hostapd.conf

      处理:
      sudo create_ap --no-virt wlan0 eth0 my_raspi 12345678
      

      Failed to create interface mon.wlan0: -95 (Operation not supported)

  5. 树莓派安装seafile,首先seafile-7.0.4安装包有一个bug,在自定义输入seafile依赖文件夹时会出错。查询相关问题解决办法后发现依然没用。。。。那我就退而求其次安装了seafile-6.3.4,以后有时间再研究7.0.4版本。

    1. 挂载移动硬盘

      #确认硬盘已经插好,查看状态
      sudo fdisk -l
      #找到硬盘的Device项目,应该为/dev/sda1,然后
      df -h
      #发现硬盘并未挂载,下面创建挂载目录
      sudo mkdir /home/pi/toshiba
      #然后把硬盘挂载在这个目录
      sudo mount /dev/sda1 /home/pi/toshiba
      #再次
      df -h
      #发现硬盘以及挂载在了相应的目录了,但是我们的硬盘是NTFS格式的,Linux不能直接读取,下面安装NTFS格式可读写软件
      sudo aptitude install ntfs-3g
      #加载内核模块
      modprobe fuse
      #让移动硬盘开机自动挂载
      sudo nano /etc/fstab
      #在文件的最后一行添加
      /dev/sda1  /home/pi/toshiba ntfs-3g defaults,noexec,umask=0000 0 0
      #有时若挂载出错,报错Mount is denied,用命令
      sudo fuser -m -u /dev/sda1sudo kill 1308
      #再按照步骤重新挂载。
      
    2. 安装seafile所需依赖

      sudo apt-get updatesudo apt-get install python2.7 libpython2.7 python-setuptools python-imaging python-ldap python-urllib3 sqlite3 python-requests
      

      至此,树莓派的环境已经初始化完毕,适合安装seafile。

    3. 安装并部署seafile

      先将seafile安装包在官网上现在下来,放在/home/pi/seafile文件夹中。

      cd /home/pi/seafile
      

      然后解压文件夹

      sudo tar -xzf seafile-server_6.3.4_stable_pi.tar.gz
      

      接着安装seafile

      cd seafile-server-6.3.4sudo ./setup-seafile.sh
      

      之后根据提示填写信息部署seafile

      Press [Enter] to continue#此处按回车继续
      [sever name]:  #此处给服务器起一个名字
      [This server’s ip or domain]:  #输入局域网内树莓派的IP
      Where would you like to store your seafile data?Note: Please use a volume with enough free space.[default: /home/pi/seafile/seafile-data ]#高度注意!!此处是在指定seafile的数据存放位置,因为之前挂载了硬盘,切不可直接按默认设置,需要改到硬盘目录下,你可以填写/home/pi/toshiba/seafile-data
      What tcp port do you want to use for seafile fileserver?8082 is the recommended port.[default: 8082 ]# seafile服务器的端口号,默认8082,回车表示默认即可,若自行修改则要额外开放端口
      If you are OK with the configuration, press [ENTER] to continue.# 这里确认你的seafile服务器配置,没问题继续回车-----------------------------------------------------------------
      Seahub is the web interface for seafile server.Now let's setup seahub configuration. Press [ENTER] to continue
      -----------------------------------------------------------------
      # 这里开始安装seahub,回车继续-----------------------------------------------------------------
      Your seafile server configuration has been completed successfully.
      -----------------------------------------------------------------
      # 已经安装完成了,下边是告诉你怎么启动安装好的程序。
      run seafile server:     ./seafile.sh { start | stop | restart }
      run seahub  server:     ./seahub.sh  { start <port> | stop | restart <port> }
      -----------------------------------------------------------------
      If the server is behind a firewall, remember to open these tcp ports:
      -----------------------------------------------------------------
      # 下边是程序要使用的端口,如果开启了防火墙,需要开放这两个端口。
      port of seafile fileserver:   8082
      port of seahub:  8000
      

      这时安装并没有结束,由于seafile-6.3.4所需python-urllib3版本为1.23,而现在已经到了1.25版本,所以还需执行以下代码:

      sudo pip install urllib3==1.23
      
    4. 开启seafile

      执行下列代码:

      cd /home/pi/seafile/seafile-server-6.3.4
      sudo ./seafile.sh start
      sudo ./seahub.sh start
      

      此时需要配置管理员账号和密码,按要求输入即可。

      最后可以在浏览器访问:IP:8000 到达seafile“云盘”管理页面。

    5. 开启重新启动

      #首先创建seafile服务文件
      sudo nano /etc/systemd/system/seafile.service#输入下列内容
      [Unit]
      Description=Seafile
      # add mysql.service or postgresql.service depending on your database to the line below
      After=network.target
      [Service]
      Type=oneshot
      ExecStart=${seafile_dir}/seafile-server-latest/seafile.sh start
      ExecStop=${seafile_dir}/seafile-server-latest/seafile.sh stop
      RemainAfterExit=yes
      User=seafile
      Group=seafile
      [Install]
      WantedBy=multi-user.target#再创建seahub启动文件
      sudo nano /etc/systemd/system/seahub.service输入下列内容
      [Unit]
      Description=Seafile hub
      After=network.target seafile.service
      [Service]
      # change start to start-fastcgi if you want to run fastcgi
      ExecStart=${seafile_dir}/seafile-server-latest/seahub.sh start
      ExecStop=${seafile_dir}/seafile-server-latest/seahub.sh stop
      User=seafile
      Group=seafile
      Type=oneshot
      RemainAfterExit=yes
      [Install]
      WantedBy=multi-user.target#最后设置开机自启动
      sudo systemctl enable seafile.service
      sudo systemctl enable seahub.service
      

      这样开机自启动就设置完成了

3、总结

由于树莓派3b+硬件的限制,通过开热点上网网速有点慢,不过不玩lol等游戏,对我的影响不大。做seafile主要是为了利用一下从旧电脑上拆下来的500G的硬盘,局域网内seafile上传的文件被进行分块加密,同时下载速度感人,估计笔记本手机在线看电影是不可能的了。下一步可能会利用云服务器DDNS服务内网穿透一下,再看看树莓派有什么新玩法。

4、感谢

非常感谢知乎用户ddch对我的帮助,其中seafile有关内容来自ddch文章“树莓派3B+部署seafile的实录”。

https://zhuanlan.zhihu.com/p/57202972

Raspberry Pi 3b+制作24小时热点相关推荐

  1. 树莓派 Raspberry Pi 3B+ 无线路由器, WEB 服务器(Nginx,PHP,Sqlite3),UART 串口数据采集

    目标: 测试四核 A53 树莓派 Raspberry Pi 3B+ 无线路由器, 轻量级WEB 服务器(Nginx,PHP,Sqlite3),UART 串口数据采集性能 初始配置,部分选项需要sudo ...

  2. raspberry pi 3B 树莓派 安装tensorflow

    raspberry pi 3B 树莓派 安装tensorflow 这两天买了raspberry pi 3b回来折腾着玩,拿到手装好系统后就开始安装树莓派版本的TensorFlow,这个安装过程也是踩了 ...

  3. Raspberry Pi 3B 安装NoneBot2

    Raspberry Pi 3B 安装NoneBot2 查看系统信息 下载 go-cqhttp release文件 解压并运行 修改 config.yml 配置文件 安装 nonebot2 需要解决的问 ...

  4. Raspberry Pi 3B 安装Miniconda

    Raspberry Pi 4B 安装 Miniconda 查看内存信息 查看系统信息 查看树莓派的Linux版本 下载 miniconda 安装 Miniconda3 更新配置文件 查看安装的 con ...

  5. 树莓派要mysql的密码_树莓派raspberry Pi 3B+系统中安装mysql过程中不提示输入密码,安装完后如何设置密码...

    树莓派raspberry Pi 3B+安装mysql未提示输入密码,安装后修改mysql密码默认密码 使用mysql -uroot -p 命令连接mysql时,报错 pi@raspberrypi:/ ...

  6. 在线产品经理实习 任务三:给搜狐新闻24小时热点做一份产品说明文档

    任务三:给搜狐新闻24小时热点做一份产品说明文档 一.任务简介及要求 出题人:苏伟 搜狐新闻高级产品经理 自从搜狐新闻APP推出了24小时热点后,反响还不错,数据也增长挺快的.市场部和销售部跟我们产品 ...

  7. Raspberry pi 3B基本介绍以及跑分测试

    Raspberry pi 3B基本介绍以及跑分测试 基本简介 树莓派(为学生计算机编程教育设计的一种卡片式电脑) Raspberry Pi(中文名为"树莓派",简写为RPi,(或者 ...

  8. 树莓派 Raspberry Pi 3B+安装官方系统(一)

    两年前购买的树莓派(可看当时我的记录树莓派 3B + 重装系统并配置 WiFi | YouForever)已经在角落里吃灰了好长时间,一度以为已经损坏,几天前试着拿出来折腾一下,竟然神奇地复活了,开心 ...

  9. 在 Raspberry Pi 3B 上安装最新版 Node-RED

    升级 Node 首先根据在树莓派上安装最新版本的NodeJS这篇文章将Node升级到最新版本. 安装最新的 Node-RED bash <(curl -sL https://raw.github ...

最新文章

  1. DOTA系列 食尸鬼(小狗)攻略
  2. mybatis 思维导图,让 mybatis 不再难懂(二)
  3. 十三、Tomcat的WebSocket支持
  4. innobackupex远程备份脚本
  5. Oracle 索引的失效检查
  6. Highways POJ-1751 最小生成树 Prim算法
  7. 基于Pandas的股票数据分析
  8. 2021-03-26 大数据技术对企业管理的影响和应用前景分析
  9. 图像转换成lmdb格式
  10. OpenCV 文字检测与识别模块
  11. 一键打开多个软件 开发工具
  12. 室内监控与室外监控有什么区别 如何选择合适的监控摄像机
  13. 赛迪顾问《2021-2022年中国政务云市场研究年度报告》发布 华云数据跃居行业领军者
  14. NET+基于NET材料归档管理系统 毕业设计-附源码181757
  15. 教授专栏35 | 许彬:AR校园元宇宙
  16. 电路分析中的函数介绍
  17. 软件工程 学习管理系统 需求分析文档
  18. 自媒体运营主要做些什么
  19. 小学计算机写字板教案,小学信息技术公开课教案走进“写字板”
  20. 系统运维安全管理办法_系统运维管理-网络安全管理制度 -

热门文章

  1. 高德地图的点聚合效果下的点的添加和删除
  2. 悟已往之不谏,知来者之可追
  3. 系统设计:在线支付系统的需求分析报告
  4. 一种利用强核力和弱核力复制物质原子的仪器
  5. R语言绘制沈阳地铁线路图
  6. Python第三方库资源
  7. 解方程组的意义和过程 - Strang MIT 18.06 线性代数精髓 2
  8. Hadoop安装错误:Cannot set priority of secondarynamenode process : xxxxx
  9. 快排的三种优化方式。
  10. 《老梁四大名著情商课》笔记- 杨修之死:越有能力越得认怂