2026/5/21 19:47:34
网站建设
项目流程
网站建设需求文件,重庆建设摩托车价格及图片,手机验证登录网站开发,响应式企业网站建设Armbian / 岸边
Armbian#xff08;中文名#xff1a;岸边#xff09;系统是基于 Debian/Ubuntu 而构建的专门用于 ARM 芯片的轻量级 Linux 系统。Armbian 系统精益、干净#xff0c;并且 100% 兼容并继承了 Debian/Ubuntu 系统的功能和丰富的软件生态#xff0c;可以安全…Armbian / 岸边Armbian中文名岸边系统是基于 Debian/Ubuntu 而构建的专门用于 ARM 芯片的轻量级 Linux 系统。Armbian 系统精益、干净并且 100% 兼容并继承了 Debian/Ubuntu 系统的功能和丰富的软件生态可以安全稳定地运行在 TF/SD/USB 及设备的 eMMC 里。这个项目保留了 Armbian 官方系统的完整性并进一步拓展了在电视盒子等一些非官方支持设备上的使用增加了一些便捷操作指令。现在你可以将电视盒子的安卓 TV 系统更换为 Armbian 系统让他成为一台功能强大的服务器。本项目依托众多的贡献者为AmlogicRockchip和Allwinner盒子构建 Armbian 系统支持写入 eMMC 中使用支持更新内核等功能。最新的 Armbian 系统可以在 Releases 中下载。欢迎Fork并进行个性化定制。如果对你有用可以点仓库右上角的Star表示支持。Armbian 系统默认信息系统名称默认账号默认密码SSH 端口IP 地址 Armbian.OSroot123422从路由器获取 IP Armbian.Dockerroot123422静态 MacVLAN IP功能特性广泛设备支持为 Amlogic如 S922X, A311D、Rockchip如 RK3588和 Allwinner 等系列的大量电视盒子提供官方级的 Armbian 系统支持。灵活安装支持将系统写入 TF/SD/USB 设备运行也支持一键安装至设备的 eMMC 存储中释放全部性能。内核可定制提供便捷的内核编译和更新脚本允许用户自定义内核版本、应用补丁或调整配置打造个性化系统。便捷软件管理集成 Armbian 软件中心提供 Docker、Portainer、Transmission、Jellyfin 等常用软件的一键安装、更新和卸载功能。硬件适配增强包含针对特定设备的实用脚本例如 SATA 硬盘活动状态 LED 指示、CPU 风扇智能调速、LED 屏幕显示控制等。多途径构建支持通过 GitHub Actions 在线自动编译也支持在 Ubuntu 或 Armbian 系统本地进行编译方便开发者和高级用户。Docker 容器化提供制作和运行 Armbian Docker 镜像的方法便于在容器环境中部署和使用。安装指南系统要求编译环境Ubuntu 系统如 24.04或已安装的 Armbian 系统需要安装必要的编译工具链和依赖包。目标设备列表中支持的 Amlogic、Rockchip 或 Allwinner 电视盒子。存储设备用于制作启动盘的 TF/SD 卡或 U 盘建议 8GB 以上。安装步骤获取系统镜像从项目的 Releases 页面下载对应你设备型号的 Armbian 系统镜像文件.img.xz格式。写入存储设备使用balenaEtcher、Rufus或dd命令将下载的镜像文件解压并写入到 TF/SD 卡或 U 盘中。启动设备将写入镜像的存储设备插入电视盒子。对于 Amlogic 设备通常需要使用牙签等工具按住设备上的复位键再上电进入刷机模式。设备将从存储卡启动首次启动会进行系统初始化根据提示设置 root 密码和新用户可选。安装至 eMMC可选但推荐系统启动并登录后在终端中执行以下命令即可将系统从外部存储设备安装到盒子的内部 eMMC 存储中以获得更好的性能和稳定性。armbian-install根据脚本提示选择设备型号和安装选项。安装完成后关机并拔掉外部启动盘此后设备将从 eMMC 启动。使用说明基础操作系统默认 SSH 开启您可以通过ssh root设备IP并使用默认密码1234登录进行管理。更新内核系统提供了便捷的内核更新命令armbian-update。你也可以使用armbian-kernel命令在本地编译自定义内核。# 更新到指定版本内核armbian-update5.15.100安装软件通过 Armbian 软件中心可以轻松安装各类应用。例如安装 Docker 和 Portainer# 安装 Dockerarmbian-softwareinstall101# 安装 Portainer 容器管理界面armbian-softwareinstall102软件 ID 与对应关系可在armbian-software列表中查询。编译自定义内核如果你需要特定功能的内核可以在 Armbian 系统内进行本地编译。更新编译环境armbian-kernel -u编译指定版本内核例如 5.15.100armbian-kernel -k5.15.100编译完成的内核文件将保存在/opt/kernel/compile-kernel/output目录中可用于安装或分享。核心代码以下是项目中几个关键功能脚本的节选展示了其实现思路1. SATA 硬盘活动 LED 监控脚本 (用于 WXY-OES 设备)这个脚本监控 SATA 端口状态并控制对应的 LED 灯来指示硬盘活动。#!/bin/bash# 脚本用途: 监控 WXY-OES(A311d) 设备 SATA 端口的硬盘活动并根据硬盘的存在与否控制对应的LED灯。# 通用版本: 可自动适应 Armbian 和 OpenWrt 系统# 定义3个SATA端口到LED设备文件的映射declare-APORT_LED_MAP([ata1]/sys/class/leds/green:disk/brightness[ata2]/sys/class/leds/green:disk_1/brightness[ata3]/sys/class/leds/green:disk_2/brightness)# 获取当前所有活动的SATA端口ID (例如 ata1, ata2, ata3)get_active_ata_ids(){find/sys/class/block/sd* -exec readlink -f{}2/dev/null|grep-oata[0-9]\|sort-u||true}# 初始化获取启动时活动端口并设置LED初始状态ACTIVE_PORTS_AT_BOOT$(get_active_ata_ids)echo开机时检测到的活动端口:${ACTIVE_PORTS_AT_BOOT}forportin${!PORT_LED_MAP[]};doinitial_state0ifecho${ACTIVE_PORTS_AT_BOOT}|grep-q -x${port};theninitial_state1echo - 端口${port}检测到活动设备将点亮LED。elseecho - 端口${port}未检测到活动设备将熄灭LED。filed_file${PORT_LED_MAP[${port}]}if[[-w${led_file}]];thenecho${initial_state}${led_file}fidone# 持续监听内核日志动态响应SATA链接状态变化echo持续监听SATA硬盘状态...tail-F /var/log/kern.log2/dev/null|whileread-r line;doportnew_value# 使用正则匹配内核日志中的SATA状态事件if[[${line}~(ata[0-9]):[[:space:]]SATA[[:space:]]link[[:space:]](up|down)]];thenport${BASH_REMATCH[1]}[[${BASH_REMATCH[2]}up]]new_value1||new_value0# ... 根据状态更新对应的LEDfidone2. 智能风扇调速脚本 (用于我家云等设备)此脚本根据 CPU 温度和硬盘工作状态智能调节风扇转速平衡散热与噪音。#!/usr/bin/perl# 根据F大脚本修改 by Ran# 脚本逻辑根据CPU温度、硬盘待机状态动态调整风扇转速。# 目标低温停转保护风扇中低速运行降低噪音高温全速保障散热。# 获取所有硬盘设备名称用于判断硬盘活动状态mydisksbsd_glob(/dev/sd[a-z]);# disks (/dev/sdb); # 若已知内置硬盘设备名可指定# disks (0); # 若无内置机械硬盘使用此设置# 参数调整区my$speed_min8;# 最小PWM占空比避免风扇停转死区my$speed_max99;# 最大PWM占空比useconstant temp_low_high50;# 硬盘待机时CPU低于此温度风扇停转useconstant temp_low_low38;# 硬盘未待机时CPU低于此温度风扇停转useconstant temp_fanOn_high65;# 硬盘待机时CPU高于此温度风扇启动useconstant temp_fanOn_low55;# 硬盘未待机时CPU高于此温度风扇启动# 核心控制逻辑读取温度判断硬盘状态计算并设置风扇速度while(1){my$cpu_tempcat /sys/devices/virtual/thermal/thermal_zone0/temp;$cpu_tempint($cpu_temp/1000);# 转换为摄氏度my$hd_standby1;# 默认假设硬盘待机foreachmy$disk(disks){# 通过 smartctl 命令检查硬盘是否待机if(smartctl -i -n standby $disk 2/dev/null~/ACTIVE or IDLE/){$hd_standby0;last;# 发现活动硬盘}}# 根据硬盘状态选择温度阈值my($temp_low,$temp_fanOn)$hd_standby?(temp_low_high,temp_fanOn_high):(temp_low_low,temp_fanOn_low);my$speed0;if($cpu_temp$temp_fanOn){# 温度高于启动阈值开始调速$speedint((($cpu_temp-$temp_fanOn)/(75-$temp_fanOn))*($speed_max-$speed_min)$speed_min);$speed$speed_maxif$speed$speed_max;$speed$speed_minif$speed$speed_min;}elsif($cpu_temp$temp_low){$speed0;# 温度低于停转阈值关闭风扇}# 将计算出的速度值写入 PWM 控制文件echo $speed /sys/class/pwm/pwmchip0/pwm0/duty_cycleif$speed0;sleep10;# 每10秒检测一次}3. Armbian Docker 容器启动脚本此脚本用于初始化 Armbian Docker 容器内的服务并以 SSH 守护进程作为前台主进程。#!/bin/bash# Description: Custom startup script for Armbian Docker container.# 尝试启动 Nginx 服务如果存在start_nginx_service(){echo[SETUP] Checking for and attempting to start Nginx service...if!command-v nginx/dev/null21;thenecho[INFO] Nginx not found, skipping.returnfi# 测试 Nginx 配置并尝试启动ifnginx -t;thenecho[INFO] Nginx configuration test passed.nginx||echo[WARNING] Failed to start Nginx daemon, but script will continue.elseecho[ERROR] Nginx configuration test failed! Nginx will not be started.fi}# 其他初始化任务占位other_initialization(){echo[SETUP] Performing other initialization tasks...# 可以在此处添加其他必要的命令例如复制网站代码# cp -rf /path/to/website_code /var/www/html/myblog}echoContainer Initialization Started...start_nginx_service other_initialization# 启动主前台进程保持容器运行echoInitialization Complete. Starting Main Process...ifcommand-v sshd/dev/null21;thenecho[RUN] Starting SSHD as the main process...mkdir-p /var/run/sshd# 使用 exec 替换当前脚本进程使 sshd 成为 PID 1exec/usr/sbin/sshd -Delse# 备用方案如果未安装 sshd则保持容器存活用于调试echo[RUN] FATAL: sshd command not found.echo[RUN] Starting tail -f /dev/null to keep the container alive for debugging.exectail-f /dev/nullfi这些代码片段体现了本项目在硬件适配、资源管理和容器化方面的核心工作通过自动化脚本极大简化了电视盒子上运行完整 Linux 系统的复杂性。159uF4GEN8bRmexJ0gu3k6mEuy98urpXqaQMiXroOHDGGxFc42iQ8Dc8oLperAE更多精彩内容 请关注我的个人公众号 公众号办公AI智能小助手对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号网络安全技术点滴分享