久闻N1大名,去年冬天入手了一台用来做电视盒子表现很不错。最近有想写博客的想法,就想再来一台用以做博客的服务器。但当N1到手后发觉没有公网IP,盒子也就只能工作在局域网,无法通过公网访问博客。所以转换思路用hexo写博客挂在GitHub Pages上也是不错的。那N1呢?没有公网IP索性就刷成Armbian,在Arm Linux上搭建家用NAS吧(顺带Linux也可以跑一些python脚本)。
一.降级并刷入Armbian
Armbian是适用与Arm平台的嵌入式Debian,是一个Arm Linux常见的硬件载体有各种pi(比如树莓派、香橙派)
1.降级
[降级工具]: 链接: 链接:https://share.weiyun.com/IIm18hHd 密码:uvddrh
N1连接网络,在盒子上用鼠标连续点击版本号开启ADB,开启后打开降级工具选在2-N1降级按照提示输入相应IP,降级成功后就先不用管。如果失败就多试几次。
补充:如果没有USB双公头线,那么将无法通过webpad降级工具的功能3)触发U盘启动。
替代方法是下载adb工具,然后执行如下2个命令,即可确保支持U盘启动:
adb connect 斐讯IP
adb shell reboot update
2.刷入Armbian
写入U盘
降级成功后拔掉盒子电源,往U盘中写入Armbian系统,用烧录工具进行写入。写入后将
meson-gxl-s905d-phicomm-n1-xiangsm.dtb
放进U盘中dtb目录下,在dtb同级目录下修改uEnv.ini为
dtb_name=/dtb/meson-gxl-s905d-phicomm-n1-xiangsm.dtb
其余配置不用改。dtb为引导文件,引导不同的硬件配置以不同的方式启动Armbian,此处修改为N1的dtb是为了引导N1启动系统。
dtb文件作用的描述是,使用dtb可以减少linux内核版本的数量。同一份linux 内核代码可以在多个板卡上运行,每个板卡可以使用自己的dtb文件
百度dtb解释
启动并配置
然后插入U盘接通N1电源(不要在N1开机状态下插入U盘,安卓系统会往U盘里写一些东西,后会出现一些异常)插上网线,然后在windows用xshell或其它终端用ssh登陆N1的Armbian系统,登陆格式为
ssh root@ip(N1在网络下的ip,可以去路由器查看) -p 22(端口,如果不行请用ScanPort扫描出端口)
密码为1234,进去系统后会询问一次密码再次输入即可。输入后,会提示修改密码,修改即可,按照提示创建新用户照着提示做就行。
armbian-config命令进入配置
选择Personal
- 修改时区为Asia/Chongqing或Shanghai
- 修改Mirror为清华源,hostname可以根据自己喜好修改主机名
连接WiFi
输入nmtui配置WiFi(非必须步骤,可选),选择第二项Activate a connection进入后连接WiFi即可,若出现扫描不出WiFi可能是U盘内容出错,重新写U盘从头再做一遍。
apt换源
默认apt官方源因为一些原因速度较慢,所以换源采用清华源。输入vim /etc/apt/sources.list,更换里面内容为
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
#deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
修改apt源,输入vim /etc/apt/sources.list.d/armbian.list,修改内容为
deb https://mirrors.tuna.tsinghua.edu.cn/armbian bionic main bionic-utils bionic-desktop
之后执行
apt update
apt upgrade
写入emmc(可选)
如果不写入emmc系统会一直处于U盘中,写入的话可以脱离U盘。
nand–sata-install
命令写入U盘,完成后输入halt关机,再次开机拔掉U盘就可以正常进入系统。
其余配置
建议更换sh为zsh,apt install zsh再去下载oh-my-zsh,vim ~/.zshrc修改主题为ys
二.安装OMV并配置SMB
1.安装OMV
OMV全称OpenMediaVault,一款开源NAS系统。
SMB换句话说,就是一个围绕局域网共享存储文件或文件夹的一个服务。
SMB概念:
SMB(全称是Server Message Block)是一个协议名,它能被用于Web连接和客户端与服务器之间的信息沟通。SMB最初是IBM的贝瑞·费根鲍姆(Barry Feigenbaum)研制的,其目的是将DOS操作系统中的本地文件接口“中断13”改造为网络文件系统。
一条命令安装OMV5
wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash
安装成功后可以浏览器进入盒子IP,账户默认admin,密码默认为openmediavault。此处安装的OMV开机自动启动。
2.配置SMB
挂载U盘
共享文件夹
选择刚才挂载的U盘,填入名称自动生成文件夹,按照需求配置权限。
SMB添加共享文件夹
如图操作,选择刚才生成的共享文件夹按照需求配置权限。
至此,SMB成功。
成功后即可在局域网内管理文件。
三.配置一些定时脚本
有了SMB功能后,得益于 Linux的强大,我们可以用python写一些脚本定时执行。
若用python3执行脚本,应使用pip3安装某些可能用的包,apt下应该这样安装
sudo apt install python3-pip
pip安装成功后就可以安装一些python的包了
pip3 install numpy(包名)
crontab是Linux的定时任务,输入crontab -e即可编辑定时任务
参数列表:
- -e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
- -r : 删除目前的时程表
- -l : 列出目前的时程表
从左到右定时任务格式为
* * * * *
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 - 7) (星期天 为0)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)
比如说我要在每天的00:00执行某个python脚本可以
贴吧自动签到python脚本,签到成功发送邮件
import smtplib
import requests
import re
from email import encoders
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart
from datetime import date
class AutoSign:
def __init__(self, d=[]):
#d[0]存放cookie
#d[1]要发送的邮箱
m = self.signin(d[0])
if len(d) == 2:
mail = d[1]
self.send2mail([
'',#发送邮件的发送邮箱
'',#发送邮箱的授权码
mail
], m)
def send2mail(self, s=[], m=''):
receivers = []
sender = s[0]
passWord = s[1]
receivers.append(s[2])
msg = MIMEMultipart()
today = str(date.today())
msg['Subject'] = today+'贴吧自动签到'
msg['From'] = '贴吧自动签到'
msg_content = m
msg.attach(MIMEText(msg_content, 'plain', 'utf-8'))
try:
#QQsmtp服务器的端口号为465或587
s = smtplib.SMTP_SSL("smtp.qq.com", 465)
s.set_debuglevel(1)
s.login(sender, passWord)
#给receivers列表中的联系人逐个发送邮件
for item in receivers:
msg['To'] = to = item
s.sendmail(sender, to, msg.as_string())
print('Success!')
s.quit()
print("All emails have been sent over!")
except smtplib.SMTPException as e:
print("Falied,%s", e)
def signin(self, cookie):
s = ''
print('*' * 30 + '百度贴吧签到小助手' + '*' * 30)
# 例如 cookie = 'xxxxxxxxxxx'
url = 'https://tieba.baidu.com/'
headers = {
'Cookie': cookie,
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'
}
html = requests.get(url, headers=headers).text
tieba = re.findall(r'forum_name":"(.*?)"', html)
tieba = tieba[:int(len(tieba) / 2)]
print('正在进行贴吧签到...')
num = 0
k = 0
for i in tieba:
i = i.replace('\\\\', '\\').encode(
'latin-1').decode('unicode_escape')
url = 'http://tieba.baidu.com/sign/add'
form = {'ie': 'utf-8',
'kw': i, # 要签到的贴吧名
'tbs': '9da208cc747e7b5b1519730458'}
html = requests.post(url, data=form, headers=headers).json()
if html['no'] == 1101:
k += 1
print('[' + i + '吧]:' + '亲,此贴吧您之前已经签过了哦!')
t = str(int(k/10))+str(k % 10)+' . [ '+i+' 吧] : '
s += "{}已签,无须再签".format(t.ljust(30))
s += '\n'
if html['error'] == '' or html['no'] == 0:
k += 1
print('[' + i + '吧]:' + '签到成功!')
t = str(k)+' . \t[ '+i+' 吧] :\t'
s += ("{}: 签到成功".format(t.ljust(30)))
s += '\n'
num += 1
print('\n')
r = '本次签到情况: '+str(num)+" / "+str(k)
s = r+"\n\n"+s
# print(s)
return s
if __name__ == '__main__':
user = AutoSign([
'',#贴吧账户cookie,浏览器获取
''#接收签到信息邮箱
])
评论(0)