Freelosof

Как сделать выключение с кнопки через терминал. Инструкция.

Recommended Posts

Скомпилировано из этих сообщений на английском форуме:

http://xpenology.com/forum/viewtopic.php?f=2&t=889

darkest_star » 29 окт 2013 23:39

dilshodm » 01 ноя 2014 16:38

Здесь своего рода "перевод" и инструкция, как это можно сделать из программы терминал на маке

в качестве IP указан 192.168.1.2

Если у вас другой, вводите свой)

 

Команды ssh можно посмотреть тут:

http://vps-server.ru/spravochnik-komand-ssh.html

 

0. Подготовительные операции

Скачиваем архив http://xpenology.com/forum/download/file.php?id=626

Или уже готовый, сделанный мной для версии 5.0 (см. вложения), тогда, наверное, не надо редактировать файл rc, а можно просто скопировать его из моего архива:

https://yadi.sk/d/1C3sGdl3dNPug

Копируем на массив разархивированную папку acpi-button

я копировал в папку homes, как первую попавшуюся, которую увидела сессия терминала

(эта папка создается после включения настройки «Включить главную папку пользователя»

в Панель управления -> Пользователь). Просто я не знаю, как заставить сессию ssh «увидеть» мой локальный жесткий диск) Если кто знает, напишите.

 

1. Входим под root в терминале

ssh root@192.168.1.2 

root@192.168.1.2's password: (вводим пароль администратора)

 

Появляется надпись:

 

BusyBox v1.16.1 (2014-05-29 11:29:41 CST) built-in shell (ash)

Enter 'help' for a list of built-in commands.

 

2. Копируем acpid

 

cp /volume1/homes/acpi-button/bin/acpid /bin

 

Проверяем, что скопировалось:

ls /bin

видим

 

acpid egrep login rm uname

ash false ls rmdir usleep

busybox fgrep mkdir run-parts vi

cat get_key_value mknod sed zcat

catv getopt more sh zcmp

chgrp grep mount sleep zdiff

chmod gunzip mv stat zegrep

chown gzexe netstat stty zfgrep

cp gzip ntfs-3g su zforce

date hostname ntfs-3g.probe sync zgrep

dd ip pidof synodd zless

df ipcalc ping tar zmore

dmesg kill ping6 touch znew

dnsdomainname killps ps true

echo ln pwd umount

 

Проверяем, что «запускается»

ll /bin/acpid

 

в моем случае нихрена:

-rwx--x--x 1 root root 63701 Dec 14 17:30 /bin/acpid

 

поэтому вводим

chmod 755 /bin/acpid

 

проверяем

ll /bin/acpid

Если всё в порядке, должно выглядеть так:

-rwxr-xr-x 1 root root 63701 Dec 14 17:30 /bin/acpid

 

3. Копируем S30acpid.sh

 

cp /volume1/homes/acpi-button/usr/syno/etc/rc.d/S30acpid.sh /usr/syno/etc/rc.d

 

Проверяем (в списке должен появится файл S30acpid.sh):

ls /usr/syno/etc/rc.d

S01iptables.sh S40irqbalance.sh S99EAUpgrade.sh

S01tc.sh S55cupsd.sh S99WDidle3Dis.sh

S02bootup.sh S56gcpd.sh S99synocache.sh

S02synovpnclient.sh S66S2S.sh S99synodatacollect.sh

S03hotplugd.sh S66fileindexd.sh S99synogpoclient.sh

S03inetd.sh S78iscsitrg.sh S99synomount.sh

S03libsynowireless.sh S79RCPower.sh S99synoreport.sh

S08snmpd.sh S90usbip.sh S99synoscheduler.sh

S09DDNS.sh S96synosnmpcd.sh S99synostoraged.sh

S10NatpmpPortmap.sh S97apache-sys.sh S99synosupportchannelchecker.sh

S10UPnPportmap.sh S98findhostd.sh S99tftpd.sh

S11nslcd.sh S98pppoerelay.sh S99zbootok.sh

S12upsmon.sh S98ssdpd.sh S99zupdateindexdb.sh

S13synorelayd.sh S98upnpd.sh S99zupdatesynohdpack.sh

S30acpid.sh

 

Проверяем, что запускается

ll /usr/syno/etc/rc.d/S30acpid.sh 

 

если видим это:

-rwx--x--x 1 root root 410 Dec 14 17:57 /usr/syno/etc/rc.d/S30acpid.sh

то вводим

chmod 755  /usr/syno/etc/rc.d/S30acpid.sh

пока не увидим это

ll /usr/syno/etc/rc.d/S30acpid.sh

-rwxr-xr-x 1 root root 410 Dec 14 17:57 /usr/syno/etc/rc.d/S30acpid.sh

 

4. Копируем содержимое папки etc/acpi

 

cp -r /volume1/homes/acpi-button/etc/acpi /etc

 

Проверяем, что всё скопировалось, вводим

ls /etc/acpi

Если всё нормально, видим внутри папку events и файл powerbtn.sh

@eaDir events powerbtn.sh

 

Проверяем на запуск

ll /etc/acpi/powerbtn.sh

-rwx--x--x 1 root root 43 Dec 14 17:41 /etc/acpi/powerbtn.sh

 

Исправляем, если надо

chmod 755  /etc/acpi/powerbtn.sh

ll /etc/acpi/powerbtn.sh

-rwxr-xr-x 1 root root 43 Dec 14 17:41 /etc/acpi/powerbtn.sh

 

 

5. Модифицируем файл RC

 

Запоминаем состояние оригинального (сколько байт и права)

 

ll /etc/rc

-rwxr-xr-x 1 root root 22164 Dec 14 17:10 /etc/rc

 

копируем оригинал

cp /etc/rc /volume1/homes

 

Копируем файл из homes куда-нибудь к себе и редактируем rc (в текстовом редакторе),

добавляем

# This is to get acpi button working
SYNOLoadModules "button"

до записи "exit 0" в конце файла

Сохраняем и копируем (если надо с заменой) сюда: homes/acpi-button/etc

Копируем обратно в synology

cp /volume1/homes/acpi-button/etc/rc /etc

Проверяем, что скопировано и права

ll  /volume1/homes/acpi-button/etc/rc

-rwx--x--x 1 admin users 22227 Dec 14 18:32 /volume1/homes/acpi-button/etc/rc

Размер файла должен стать больше, чем до этого (сравни с результатом такой же команды выше)

исправляем права, если надо

chmod 755  /volume1/homes/acpi-button/etc/rc

и ещё раз проверяем:

ll  /volume1/homes/acpi-button/etc/rc

Должны получить слудующее:

-rwxr-xr-x 1 admin users 22227 Dec 14 18:32 /volume1/homes/acpi-button/etc/rc

 

6. Теперь можно перезагрузить ваше устройство. После этого оно будет безопасно выключаться обычной кнопкой выключения питания.

 

P.S. Благодарности лучше слать в денежном выражении, как это сделать спрашивайте на на яндекс-почте по ссылке на мой архив. Буду приятно удивлён, если кто-нибудь это сделает)

Share this post


Link to post
Share on other sites