linux deploy 使用过程


魅族手机配置linux

1、更换源的操作:

vim /etc/apt/sources.list

#deb http://ftp.debian.org/debian/ stable main contrib non-free
#deb-src http://ftp.debian.org/debian/ stable main contrib non-free
deb https://mirrors.163.com/debian/ stable main contrib non-free
deb-src https://mirrors.163.com/debian/ stable main contrib non-free

stable 是debian的一个版本,一般debian 10 是buster

2、安装数据库

2.1、安装mariadb

除了ubuntu,debian等发行版移除了mysql,只能安装mariadb

apt-get install mariadb-server
2.2、对mariadb进行初始化
mysql_secure_installation
# 根据提示进行设置,包括设置密码等操作
2.3、mysql配置外网访问
2.3.1、解除安卓系统网络限制

在安卓手机安装的debian中,需要执行下面这行代码才能让mysql能够被外网访问

usermod -aG aid_inet mysql
2.3.2、注释绑定的本地IP

在mysql配置文件/etc/mysql/mariadb.conf.d/50-server.cnf 中,默认绑定本地IP地址导致外网无法访问mysql,需注释该配置

# bind-address = 127.0.0.1
2.3.3、设置数据库访问权限
grant all privileges on databaseName.tableName to 'username'@'localhost' identified by 'password' with grant option;
flush privileges;
-- 其中databaseName和tableName分别表示库名和表名,可用*表示任意库或任意表
-- username表示用户名,localhost指本地地址,可使用%表示任意地址,也可指定特定的IP地址
-- password 表示密码,flush privileges刷新对权限的修改,使改动立即生效
2.3.4、安装时的一些坑
# 安装源
dpkg -i mysql-apt-config_0.8.15-1_all.deb 
# 卸载源
dpkg -P mysql-apt-config

3、安装gogs

3.1、安装gogs之前需先安装git
apt install git
3.2、下载gogs

https://gogs.io/docs/installation/install_from_binary.html页面选择合适的版本下载。

当前在arm架构中最新的只支持armv6,下载后解压。

3.3、修改配置

gogs脚本默认以git用户启动,如果当前用户不是git需修改成当前用户。

vim gogs/scripts/init/debian/gogs

# 将USER对应的值改为root

USER=root
3.4、执行安装
./gogs web

浏览器访问http://设备IP:3000,配置数据库等信息、管理员用户可不创建,之后注册的第一个用户(ID=1)自动成为管理员

3.5、后续启动使用
vim gogs/custom/conf/app.ini
#  将RUN_USER的值改为root
RUN_USER = root
#  然后使用启动命令
./gogs web

4、安装kodexplorer

4.1、安装nginx
apt install nginx 
vim /etc/nginx/sites-enabled/default
#修改默认网站根目录
root /root/nginx/html;
#启用php
location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php7.3-fpm.sock;
}
# 重启nginx
service nginx restart
4.2、安装php
apt install php7.3-fpm php7.3-curl php7.3 php7.3-mbstring php7.3-gd php7.3-xml php7.3-common php7.3-cli
vim /etc/php/7.3/fpm/pool.d/www.conf
# 修改运行用户
;user = www-data
;group = www-data
user=root
group=root
启动php-fpm
# php7.3-fpm -R
4.3、部署kodexplorer

下载kodexplorer,将zip包解压到nginx根目录。

5、配置USB自动挂载

手机无法启动udev服务,额,暂时没法使用

使用udisk2实现

自己写代码监听内核日志,发现usb插入、拔出日志,触发。

其他知识点:

https://zixijian.github.io/2020/09/01/007.html

https://zixijian.github.io/2021/01/15/008.html

保持 cpu 唤醒不起作用
表现为操作卡顿、联网卡顿,
使用 wakelock 锁,shell 中输入:
获取 su 权限
su

保持 cpu 唤醒:
echo lock_me > /sys/power/wake_lock

解除 wakelock 锁:
echo lock_me > /sys/power/wake_unlock

注:容器内使用时命令前面加 unchroot,
对 /sys 分区操作时不需要(容器挂载了 /sys 分区)。
Wi-Fi 进入节能模式
表现为不能全速传输,延时高。
查询节能状态
unchroot iw dev wlan0 get power_save
关闭节能模式
unchroot iw wlan0 set power_save off

6、解锁bl

不需要官方工具,进入fastboot模式(电源键+音量减)。解锁会清空数据!!!

注意是fastboot,不是adb,需要使用扩展坞,电脑usb口电压不够,无法成功识别adb,或者识别后无法执行命令。

fastboot oem unlock 111111111111111
...
(bootloader) Begin to do oem unlock ...
OKAY [  0.042s]
finished. total time: 0.044s

出现上面的内容,此时手机上出现确认界面。

充电策略控制

将手机用作服务器后, 无用的安卓服务占据大量内存, 可停止安卓服务并使用 crontab 定时任务控制充电。

停止安卓服务:
unchroot /system/bin/stop
恢复安卓服务
unchroot /system/bin/start

创建 crontab 定时任务:
crontab -e
*/5 * * * * /usr/chargec.sh

创建脚本文件:
touch /usr/chargec.sh
chmod a+x /usr/chargec.sh

编辑充电控制脚本:
#!/bin/sh
# Android chroot charge limit controller
# author: zixijian
# website: zixijian.github.io
# co-author: Ethereal
# useage: crontab -e
#         */5 * * * * /usr/chargec.sh

# define
charge=`cat /sys/class/power_supply/battery/status`
capacity=`cat /sys/class/power_supply/battery/capacity`

echo Now battery is: $charge.
echo Now battery level is: $capacity.

# set max charge current 
# parameter: 800mA=800000
chmod 644 /sys/class/power_supply/battery/constant_charge_current_max
echo 800000 > /sys/class/power_supply/battery/constant_charge_current_max

# check max limit
if [ $capacity -ge 85 ]; then
# stop
  echo 1 > /sys/class/power_supply/battery/input_suspend 
fi

# check min limit
if [ $capacity -le 35 ]; then
# start
  echo 0 > /sys/class/power_supply/battery/input_suspend 
fi
红米note4x mido 充电控制文件为:
/sys/class/power_supply/battery/charging_enabled
禁止充电值为 0,开启充电值为 1# check max limit
if [ $capacity -ge 85 ]; then
# stop
  echo 0 > /sys/class/power_supply/battery/charging_enabled
fi

# check min limit
if [ $capacity -le 35 ]; then
# start
  echo 1 > /sys/class/power_supply/battery/charging_enabled
fi

常见问题

  • CLI 启动失败,无法操作内存卡(内部存储) 从外部修改 sshd 配置: UsePAM no 修改 /root/.profile 最后一行为: tty -s && mesg n || true 将用户加入 aid_everybody 分组: usermod -aG aid_everybody username
  • SSH 服务启动失败 常见网络问题, 可尝试更换网络环境重新安装系统, 使用 rootfs 包安装系统。 使用 CLI 调试。
  • 容器挂载失败 检查 SElinux 状态, 更换 busybox 版本, 更换安装方式为目录安装。
  • MYSQL、ping 等不能使用 将用户加入 aid_inet 用户组: usermod -aG aid_inet mysql usermod -aG aid_inet root
  • 按 TAB 不能自动补全路径 修改默认 shell: chsh 输入 /bin/bash

https://www.t00ls.com/articles-68635.html