yurikhan: (Default)
[personal profile] yurikhan

Недавно я поменял домашний сервер. Раньше на антресоли лежал обычный десктоп, жужжал вентиляторами и жрал электричество. А теперь стоит Banana Pi R1.

Что хорошо: электричества потребляет всего ничего. На борту двухъядерный гигагерцовый ARM, гигабайт памяти и встроенный свитч о пяти портах наружу и одном на матплату. И 2.5-дюймовый жёсткий диск.

Что плохо: подсистема питания сделана не очень надёжно, и от этого иногда винчестеру перестаёт хватать питания. Он останавливается, потом пытается снова раскрутиться, потом снова останавливается. И так пока не придёшь и не передёрнешь ему питание.

Ещё может не повезти и при включении он пойдёт проверять файловые системы. По умолчанию проверка запускается в режиме «проверять, но не чинить». Чтобы чинилось автоматически, нужно прописать в /etc/default/rcS строчку FSCKFIX=yes.

А ещё хочется видеть прогресс загрузки. Монитор каждый раз не натаскаешься, а надо знать, когда он запустил проверку диска, когда закончил, когда начали подниматься сервисы, и когда загрузка закончена.

Может быть, потом я соберусь докупить подходящий мелкий мониторчик, но это потом. А сейчас у нас есть один светодиод, контролируемый (под ядром 4.4.14-bananian) псевдофайлом /sys/devices/platform/leds/leds/bananapi:green:usr/trigger. Собственно, остаётся написать инит-скриптов, которые будут запускаться в правильные моменты и переключать режим светодиода.

Фаза загрузки Условия Триггер Поведение
Загрузчик (U-boot)
Загрузка ядра
none Выключен
Мигает два раза светодиодами портов свитча
Начало runlevel’а S
Default-Start: S
timer Мигает с частотой 1 Гц
Начало проверки ФС
Should-Start: hdparm
Default-Start: S
X-Start-Before: checkroot
heartbeat Две вспышки, пауза, …
Конец проверки ФС
Should-Start: checkfs
Default-Start: S
timer Мигает с частотой 1 Гц
Начало загрузки сервисов
Default-Start: 2 3 4 5
default-on Светится ровно
Система загружена
Required-Start: $all
Default-Start: 2 3 4 5
none Выключен

Чтобы работал триггер timer, нужно загрузить модуль ядра ledtrig-timer. Причём обычный способ (через /etc/modules) работает позже, чем мне это нужно, поэтому ручками, командой modprobe ledtrig-timer.

В /etc/init.d складываем пять инит-скриптов по следующему шаблону:

#! /bin/sh
### BEGIN INIT INFO
# Provides:          название
# условия
# Short-Description: Blink Banana Pi green LED at start of bootup
### END INIT INFO

case "$1" in
start|"")
    echo триггер >/sys/devices/platform/leds/leds/bananapi:green:usr/trigger
    ;;
restart|reload|force-reload)
    echo "Error: argument '$1' not supported" >&2
    exit 3
    ;;
stop)
    # No-op
    ;;
status)
    exit 3
    ;;
*)
    echo "Usage: название.sh [start|stop]" >&2
    exit 3
    ;;
esac

:

Далее выполняем для них всех update-rc.d название.sh defaults, и готово.

Date: 2016-08-13 05:18 (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
Жуть какая! Может проще блок питания поменять? У меня с апреля месяца BPi R1 и никаких проблем с нехватокой питания.

У оригинальной BPi есть, у M2 есть (но чисто механические, плохой контакт в разъеме, там штырковый разъем вместо micro USBпочему-то), а у R1 - нету.

Но я покупал ее в комплекте - с корпусом и блоком питания. И блок питания к ней шел на 3А.

Date: 2016-08-13 07:06 (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
Видимо, этот комплект был не рассчитан на подключение винчестера.

"По стандарту гарантируется только 1.8А, но если ты китаец, ты можешь на стандарт и забить".

Profile

yurikhan: (Default)
Yuri Khan

May 2017

S M T W T F S
 123 456
78910 111213
14 151617181920
21 222324252627
28293031   

Links

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated 2017-05-29 16:56
Powered by Dreamwidth Studios