机械专业,学校学过一点C,完全Linux小白,没有基础。手上有个翻车的N1,看了网上帖子后准备尝试搞搞。网上看了一周各类帖子加不断尝试,反反复复刷了10几次,勉强搞出来,发出来给同样是小白的朋友看下,应该算比较详细了,因为好多帖子比较高端,基础薄弱看不懂呀。感谢各原帖作者(应该都已贴出原帖链接了)!
一、系统降级并输入官改系统
安装过程(Windows环境)
1.开启N1的adb调试功能:
将N1连显示器和鼠标,进入天天链界面后查看IP,版本号,如果版本号不高于2.19则可跳过降级步,否则无法线刷。四连击版本号,显示adb打开。
2.准备工作:
①软件:
下载adb工具、USB burning tool、降版本用的3个低版本关键分区img文件(boot.img、bootloader.img、recovery.img ,已放到adb文件夹中)、将镜像写入U盘的工具(balenaEtcher、Win32DiskImager、USB image tool等之类的)、Armbian镜像等、SSL连接工具(如PUTTY,这样就不用将N1接显示器及鼠标键盘了);
②硬件:
好用的U盘一个(比较挑U盘,部分U盘引导armbian时进入不了U盘系统,会进入recovery界面)、双公头USB线一根、网线一根
3.降级:
①安装USB burning tool,安装时会提示安装驱动,必须安装;
②在进行步骤1后,将电脑接入与N1同一网络下(下面均如此),CMD命令行环境进入adb安装目录,运行 adb connect N1的ip地址 ;
②用双公头USB线将电脑和N1连接(N1端插到靠近HDMI接口那个USB口上);
③CMD环境中输入: adb shell reboot fastboot,重启后N1进入fashtboot模式,此时电脑会提示有新硬件并自动安装(一般为:Android Phone - Android ADB Interface),如果没有自动安装驱动,可能时USB线有问题;
④CMD环境按CTRL+C,可以中止当前操作,输入fastboot devices -l ,正常情况下会显示N1的序列号;
⑤将盒子对应的boot.img、bootloader.img、recovery.img放到adb文件夹内,分别执行fastboot flash bootloader bootloader.img、 fastboot flash boot boot.img、 fastboot flash recovery recovery.img 命令,将低版本分区镜像刷入N1,等待三秒,断电,完成降级(降级后连接显示器后看版本号并不会变化,实际上已经降级了,恢复了线刷功能)。
4.刷入官改版本
①用USB线连接N1和电脑,打开USB burning tool,准备好官改镜像文件(如N1_mod_by_webpad_v2.2_0920.img);
②adb connect ip ,连接成功后,adb reboot update ,此时N1会重启,重启后USB burning tool节目显示连接成功后,文件→导入烧录包,导入后,去掉右边“擦除flash”和“擦除bootloader”选项前面的勾,点击开始,即开始进行录入,完成后拔线,停止烧录。
③此时断电重启的话,则N1已经变成了官改版本。
二、刷入armbian系统
1.制作armbian启动U盘
①使用USB image tool等之类的软件,将armbian镜像写入U盘(U盘中原文件全部会丢失,提前备份):
这里使用的是Armbian_5.77_Aml-s905_Debian_stretch_default_5.0.2_0318.img,写入后再插入会发现有2个磁盘,其中一个是以“BOOT”为卷标的,另一个在Windows环境下无法查看,提示需格式化,这里不要格式化。
②修改U盘文件:
据说由于原镜像空闲时负载较高,要将BOOT盘下dtb\meson-gxl-s905d-phicomm-n1.dtb替换为恩山无线大佬的dtb文件,返回BOOT盘根目录,编辑文件:uEnv.in,
替换第一行内容为:dtb_name=/dtb/meson-gxl-s905d-phicomm-n1.dtb
据说如果不进行配置很可能出现无网络的情况。
2.将armbian刷入N1
①将写入后并改好的U盘插入N1靠近HDMI接口的U口,断电重启N1,如果U盘是天选之U盘,则N1会从U盘启动进入armbian系统(否则可能会进入安卓的recovery界面),此时可以N1接显示器和键盘,或者直接用putty连接(ip正常情况还是上面那个ip)。界面会提示输入登录账号,默认为root,密码是1234,注意,输入密码时不会有任何显示,输入后直接回车即可,如果正确则会进入root目录。首次登陆要求更改root密码,注意开始是要输入原密码的!同时需要创建一个新用户,随便创建一个即可,后面基本都是用root账号反正。
②将armbian系统从U盘写入N1的emmc,保证以后无需U盘启动:
输入 /root/install.sh 回车,运行完毕后,拔掉U盘,断电重启,N1可以自行进入armbian系统了。注意:此时root密码是第①步更改后的root密码。
问题:可能进行sh安装或运行sudo命令时报错(安装完armbian后可输入 sudo -s测试下,如果没问题不会有任何信息):sudo: /usr/bin/sudo must be owned by uid 0或类似问题,疑似是sudo文件所有权不是root用户的问题。解决方法如下:
chown root:root /usr/bin/sudo
chown root:root /usr/lib/sudo/sudoers.so
chown root:root /etc/sudoers
chown root:root /etc/sudoers.d
chown root:root /etc/sudoers.d/README
chmod 4755 /usr/bin/sudo
[color=rgb(51, 102, 153) !important]复制代码
3.如何刷回安卓系统
如果刷入armbian后需要刷回安卓系统(虽然实际安卓系统还在N1中),可采用如下办法(按论坛大侠说法,也可以改一个文件后即可进入安卓,不用刷),恩山有好几个方法,不会搞,本人试了下,下面方法感觉最简单:
①连接USB线,打开USB burning tool,导入镜像,勾选“擦除flash”,不要勾选“擦除bootloader”,;
②点击开始,然后armbian系统输入reboot,重启(也可以直接断电,然后3s内插入电源)。
③先拔USB线,停止。断电重启N1,应该恢复到了安卓盒子系统。
三、安装宝塔Linux面板
1.安装宝塔面板本尊:
试了下按宝塔面板官方命令直接安装,结果装上后打不开界面(5.x),由于水平太差,后面直接安装的http://www.feiji.work/?id=5文中提供的链接。putty连接N1或N1直接连接显示器和键盘也可,输入:
不要更改armbian更新源。我改成清华的源后,装的时候很多依赖安装报错,默认官方源不会报错基本。默认源比较慢,需要比较长的时间(如果报一个关于sudo的错误,请看前文的安装armbian的部分)。
安装完毕后,会出现如下类似内容:
其中Bt-Panel为进入宝塔Linux面板的链接(不知为啥,这个IP总是不对,实际使用时应改成自己N1的IP,端口8888及后面的安全入口验证字符串要保留,否则进不去),下面是账号密码。安全入口字符串和用户名、密码都可以在宝塔面板的网页界面中更改。
2.安装libiconv库:
armbian中(putty连接或者直接N1接键盘)依次执行:
tar zxvf libiconv-1.13.1.tar.gz
cd libiconv-1.13.1
./configure -prefix=/usr/local --build arm-pc-linux
make
make install
ln -s /usr/local/lib/libiconv.so /usr/lib
ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2
[color=rgb(51, 102, 153) !important]复制代码
3.安装apache+mysql+php+myphpadmin(手动安装各种坑,还是用宝塔面板安装吧):
在同一局域网内的电脑浏览器输入:NI的IP地址:8888/入口字符串,进入宝塔Linux面板登陆界面,输入安装完宝塔界面时提示的账号密码即可进入。为了安全,请在面板设置中更改入口字符串、账号、密码。(如果忘记宝塔入口字符串、用户名、密码,可在debian中输入bt回车,在显示的选项中按提示操作显示相关信息或者直接更改即可。
先不用对N1的系统进行其他更改或更新,进入宝塔面板,点击首页,会弹出安装LNMP和LAMP的弹窗,这里选择的是apache2.4+mysql5.6+php7.2+phpmyadmin4.7。mysql不要选更高版本,占空间较大可能装不成功。直接快速安装即可(实际上也是编译安装的好像)。
安装后apache添加不了网站,报错:httpd: Syntax error on line 130 of /www/server/apache/conf/httpd.conf: Cannot load modules/mod_ssl.so into server: /usr/lib/aarch64-linux-gnu/libssl.so.1.1: version `OPENSSL_1_1_1' not found (required by /www/server/apache/modules/mod_ssl.so),这是由于armbian更新源里的openssl最新版本号是1.1.0,但这里需要1.1.1版。实际安装上述环境是已安装了1.1.1b版,只需要改下链接即可:
mv /usr/bin/openssl /usr/bin/openssl---old
mv /usr/include/openssl /usr/include/openssl---old
ln -s /usr/local/openssl111/bin/openssl/usr/bin/openssl
ln -s /usr/local/openssl111/include/openssl /usr/include/openssl
mv /usr/lib/aarch64-linux-gnu/libssl.so.1.1 /usr/lib/aarch64-linux-gnu/libssl.so.1.1---old
ln -s /usr/local/openssl111/lib/libssl.so.1.1 /usr/lib/aarch64-linux-gnu/libssl.so.1.1
mv /usr/lib/aarch64-linux-gnu/libcrypto.so.1.1 /usr/lib/aarch64-linux-gnu/libcrypto.so.1.1---old
ln -s /usr/local/openssl111/lib/libcrypto.so.1.1 /usr/lib/aarch64-linux-gnu/libcrypto.so.1.1
[color=rgb(51, 102, 153) !important]复制代码
这时运行openssl version,可以看到openssl版本号已经是1.1.1b了,此时就可以添加网站了。
具体LAMP使用,本人也是小白,这里就不赘述了。
四、其他设置和更改
1.更改时区
默认时区是+0000时区(date -R可查看),需改成+0800时区。最简单的方法是使用宝塔面板里的Linux工具箱,选择上海即可。也可以用tzselect选择后,然后修改/etc/profile文件(可以参照:
2.使用udv自动挂载USB硬盘
udev自动挂载硬盘不支持NTFS和exFAT,为保证windows和Linux通用,所以这里将移动硬盘格式化为了FAT32格式。因windows下超过40G无法格式化为FAT32,可直接在armbian里格式化。
先使用命令:fdisk -l 看下硬盘的分区情况,查看需格硬盘的编号,一般是sd[a-z]+数字,比如这里是sda1(注意看下容量、硬盘格式,别格式化错了),输入下列命令格式化为fat32。mkfs -t vfat /dev/sda1
[color=rgb(51, 102, 153) !important]复制代码
使用udev自动挂载U盘或移动硬盘方法见恩山无线@哈小福原帖(感谢!):
/forum/thread-388292-1-1.html
另外,我直接把网站更目录放在移动硬盘(机械)总是无法下一步,后来用ln -s做了软链接曲线救国了。
3.一些Linux常用操作
Linux苦手,备注一些常用命令以备查看(cd、dir等倒是跟windows差不多)。①软链接(类似于windows的mklink
ln -s 被链接的目录或文件详细路径链接目标路径(实际不占用存储空间)
②重命名
mv 原文件名(如不在当前路径需要有完整路径) 改后文件名(可通过路径移动文件)
③删除文件/目录
rm 文件名
rm -rf 目录名
④解压文件
tar –xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
tar –xZvf file.tar.Z //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip
⑤更新软件
apt-get update //更新软件列表
apt-get upgrade //按软件列表更新本地软件版本
[color=rgb(51, 102, 153) !important]复制代码
4.ngrok内网穿透(比较慢)
①官网注册账号,然后get started for free;
②下载arm版本客户端,解压出来ngrok放在/usr/bin目录下;
③ngrok网页右边点auth,查看authtoken,在armbian中输入ngrok authtoken查到的字符串
,生成的默认配置文件位置在/root/.ngrok2/ngrok.yml;
④输入ngrok http要映射的本地端口号, 即可进入ngrok的界面,其中forwarding后跟的就是外网可访问的子域名网址(一些其他参数,比如选择主机国家-region参数等可参照官方文档:/docs)。
⑤同时多个端口(隧道),需要在配置文件中定义隧道,我是参考的这篇文章:/daqiang012/article/details/84982338。是可用的,可以用生成的网址访问内网网站和宝塔面板。
⑥后台运行
由于ngrok是一个端口阻塞的程序,我们运行了ngrok就会导致程序的界面一直占用,搞不了其他事情,可以配合screen解决这个问题(按照上面的安装过程,screen实际已安装到系统中,且是最新版本,但好像权限有问题,每次重启后screen文件夹权限是775,提示要777权限。可在宝塔界面中手动将/run/screen目录权限变更为777即可)。后面操作参照的/yelllowcong/article/details/76652104。不过这个文章中用的不是的ngrok,可以参照更改相应命令即可。
一般这样即可:
①配置好ngrok.yml;
②putyy连接N1:
screen
ngrok start xxx yyy zzz#指ngrok.yml中配置的隧道名字
[color=rgb(51, 102, 153) !important]复制代码
③直接关掉putty即可(ngrok在仍后台运行,可以再连接用screen -ls确认)。
一些操作命令备查:
#进入屏幕中,默认会直接生成回话的名称
screen
#创建一个名称为test的回话
screen -S test
#查看会话(会显示:数字.名字的形式,下面的会话号都是用数字)
screen –ls
#关闭指定会话
screen -X -S 会话号(如4567) quit
#回到某个session中
screen -rsession编号
#直接运行命令在新窗口中,但是不跳窗口
screen -dm commond
#强制登录回话
screen –D-r会话编号
#退出到命令
ctrl+d
#关闭当前回话
ctl+c
[color=rgb(51, 102, 153) !important]复制代码
经试用,用ngrok穿透后,获得的二级域名直接访问时可以打开内网相关内容的,但作为CNAME绑定到自己的个人域名上后不知为何访问不了(咨询过阿里云,解析是正常的,就是打不开)。不知如何解决目前还。
5.frp内网穿透
#进入frp目录后:./frpc -c ./frpc.ini
[color=rgb(51, 102, 153) !important]复制代码
直接穿透后作为个人域名的CNAME解析也是访问不了,需要在配置文件中设置 custom_domains为自己的域名。
五、总结
总之,虽然网络等受限较多,用N1作为一个小型服务器,还是可以一用的。
如果觉得《armbian php7.1_N1 + armbian+宝塔面板+apache+MySQL+php》对你有帮助,请点赞、收藏,并留下你的观点哦!