1 (09.04.2010 01:40:30 отредактировано Dark Knight)

Тема: Скрипты

В этой теме предлагаю выкладывать различные скрипты, желательно с комментариями.

Просто интересно, кто-что использует smile

Сам обязуюсь в ближайшее время сделать подборку того, что уже существует и что я видел.

Будет выложено содержимое скриптов, для его функционирования необходимо следующее:

1. открыть блокнот и вставить в него нужный текст, сохранить в виде название.sh
2. скопировать на N900 в корневой каталог
3. для части скриптов нужно сделать их исполняемыми:
     находясь в папке /home/user/MyDocs выполнить
     cp name_of_script.sh /home/user name_of_script.sh
     chmod a+x name_of_script.sh

Ссылки на источники:

http://wiki.maemo.org/Desktop_Command_E … pts#Enable
http://wiki.maemo.org/Phone_control
http://wiki.maemo.org/DbusScripts

Have trouble with Windows - reboot, have trouble with LINUX - be root!

Сайт Dark Knight

Поделиться

2 (20.04.2010 08:51:32 отредактировано Dark Knight)

Re: Скрипты

Скрипт для безопасного освобождения места на rootfs:

+ открыть спойлер

#!/bin/sh
    # N900 script to safely free space on rootfs
    # (c) 2010 by Thomas Tanner <thomas@tannerlab.com>
    # licensed under GPLv3
    # version 0.3 (25. March 2010)

    if test "`id -u`" -ne 0; then
        echo "Error: This script must be run as root!"
        echo "Please make sure that the package rootsh from extras is installed"
        echo "and execute \"sudo sh $0\" in Terminal"
        exit 1
    fi

    # move root stuff to /home
    dirs="usr/share/icons usr/share/nokia-maps usr/share/fonts usr/share/locale usr/lib/locale var/lib/apt"
    #optional: usr/share/themes  var/lib/dpkg
    if test -d /home/var/cache/apt; then
      # keep existing apt cache
      rm -rf /var/cache/apt
      ln -s /home/var/cache/apt /var/cache/apt
    else
      dirs="$dirs var/cache/apt"
    fi
    (cd / && du -sc $dirs)
    for d in $dirs; do
        test -L /$d && continue
        echo moving /$d
        rm -rf /home/$d
        mkdir -p /home/$d
        cp -a /$d /home/$d/..
        rm -rf /$d
        ln -s /home/$d /$d
    done
    echo "success"

Включение профиля без звука:

+ открыть спойлер

#!/bin/sh
# включает профиль без звука
dbus-send --type=method_call --dest=com.nokia.profiled /com/nokia/profiled com.nokia.profiled.set_profile string:"silent"
# выдаёт сообщение Profile is set to Silent, текст можно менять
dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:"Profile is set to Silent"

Включение общего профиля:

+ открыть спойлер

#!/bin/sh
# включает общий профиль
dbus-send --type=method_call --dest=com.nokia.profiled /com/nokia/profiled com.nokia.profiled.set_profile string:"general"
# выдаёт сообщение Profile is set to General, текст можно менять
dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:"Profile is set to General"

Переключения телефона в режим 3G:

+ открыть спойлер

#!/bin/sh
dbus-send --system --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.set_selected_radio_access_technology byte:2
dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:"Network mode is set to 3G"

Переключения телефона в режим 2G:

+ открыть спойлер

#!/bin/sh
dbus-send --system --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.set_selected_radio_access_technology byte:1
dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:"Network mode is set to 2G"

Переключения телефона в режим 2G/3G(dual mode):

+ открыть спойлер

#!/bin/sh
dbus-send --system --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.set_selected_radio_access_technology byte:0
dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:"Network mode is set to Dual"

Отключение интернет соединения:

+ открыть спойлер

#!/bin/sh
dbus-send --system --dest=com.nokia.icd /com/nokia/icd_ui com.nokia.icd_ui.disconnect boolean:true
dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:"Internet connection is disconnected"

Отключение сети оператора связи:

+ открыть спойлер

#!/bin/sh
dbus-send --system --type=method_call --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.set_radio boolean:false
dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:"Mobile network is disconnected"

Подключение к сети оператора связи:

+ открыть спойлер

#!/bin/sh
dbus-send --system --type=method_call --dest=com.nokia.phone.SSC /com/nokia/phone/SSC com.nokia.phone.SSC.set_radio boolean:true
dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:"Mobile network is connected"

Сброс счетчика передачи данных по GPRS:

+ открыть спойлер

#!/bin/sh
gconftool-2 -u /system/osso/connectivity/network_type/GPRS/gprs_rx_bytes
gconftool-2 -u /system/osso/connectivity/network_type/GPRS/gprs_tx_bytes
gconftool-2 -s /system/osso/connectivity/network_type/GPRS/gprs_reset_time --type=string $(date +%s)

Заблокировать телефон(включить блокировку экрана):

+ открыть спойлер

#!/bin/sh
dbus-send --system --type=method_call --dest=com.nokia.system_ui /com/nokia/system_ui/request com.nokia.system_ui.request.devlock_open string:"com.nokia.mce" string:"/com/nokia/mce/request" string:"com.nokia.mce.request" string:"devlock_callback" uint32:'3'

Разблокировать телефон(выключить блокировку экрана):

+ открыть спойлер

#!/bin/sh
dbus-send --system --type=method_call --dest=com.nokia.system_ui /com/nokia/system_ui/request com.nokia.system_ui.request.devlock_close string:"com.nokia.mce" string:"/com/nokia/mce/request" string:"com.nokia.mce.request" string:"devlock_callback" uint32:'0'

Перезагрузить телефон:

#!/bin/sh
rootsh reboot

Включить телефон в режим 2G и включенным Wi-Fi:

+ открыть спойлер

#!/bin/sh
#
# auto2g by J.LeFebvre
#
# Automatically sets 2G cellular mode when a valid WiFi connection is running
# This helps conserve battery life
#
# If an automatic connection to 3G is required when not on WiFi then uncomment the two dbus commands under "set to 3G" line
#
if `/sbin/ifconfig wlan0 2>/dev/null | grep -q RUNNING`; then
   if `dbus-send --system --print-reply --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_selected_radio_access_technology | grep -q 'byte 2'`; then
      if (/bin/ping -c 1 www.google.com > /dev/null); then
         # set to 2G
         dbus-send --system --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.set_selected_radio_access_technology byte:1
         dbus-send --system --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:'2G (GSM) cellular mode set'
      fi
   fi;
else
   if `dbus-send --system --print-reply --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.get_selected_radio_access_technology | grep -q 'byte 1'`; then
      # set to 3G
      # dbus-send --system --type=method_call --dest=com.nokia.phone.net /com/nokia/phone/net Phone.Net.set_selected_radio_access_technology byte:2
      # dbus-send --system --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:'3G cellular mode set'
      echo  > /dev/null
   fi
fi

Позвонить на номер:

dbus-send --system --type=method_call --print-reply --dest=com.nokia.csd.Call /com/nokia/csd/call com.nokia.csd.Call.CreateWith string:"$1" uint32:0

Измените $1 на любой номер, по вашему желанию, или если эта команда будет выполняться как shell скрипт, то вы можете просто запустить скрипт и ввести номер как опцию, например dbus-send-call 7921XXXXXXX

Открыть приложение телефон:

dbus-send --type=method_call --dest=com.nokia.HildonDesktop.AppMgr /com/nokia/HildonDesktop/AppMgr com.nokia.HildonDesktop.AppMgr.LaunchApplication string:"rtcom-call-ui"

Завершить телефонный звонок:

dbus-send --system --dest=com.nokia.csd.Call --print-reply /com/nokia/csd/call com.nokia.csd.Call.Release

если, если в момент выполнения команды вы ни с кем не разговариваете, то ничего не произойдёт

Отправить/получить почту:

dbus-send --type=method_call --dest=com.nokia.modest /com/nokia/modest com.nokia.modest.SendReceive

Узнать свой IMEI:

dbus-send --system --type=method_call --print-reply --dest=com.nokia.phone.SIM /com/nokia/phone/SIM/security Phone.Sim.Security.get_imei

Открыть ссылку в браузере:

dbus-send --system --type=method_call --dest=com.nokia.osso_browser /com/nokia/osso_browser/request com.nokia.osso_browser.load_url string:"google.com"

Изменить сообщение о статусе:

dbus-send --type=method_call --print-reply --dest=org.freedesktop.Telepathy.MissionControl /org/freedesktop/Telepathy/MissionControl org.freedesktop.Telepathy.MissionControl.SetPresence uint32:2 string:"I'm here"

Открыть файл в медиаплеере:

dbus-send --dest=com.nokia.mediaplayer /com/nokia/mediaplayer com.nokia.mediaplayer.mime_open string:"file:///$1"

имя файла ввести как опцию или заменить $1

Приостановить проигровании в медиаплеере:

dbus-send --dest=com.nokia.mafw.renderer.Mafw-Gst-Renderer-Plugin.gstrenderer /com/nokia/mafw/renderer/gstrenderer com.nokia.mafw.renderer.pause

Вывести уведомление:

dbus-send --type=method_call --dest=org.freedesktop.Notifications /org/freedesktop/Notifications org.freedesktop.Notifications.SystemNoteInfoprint string:"Text of Notification"

Have trouble with Windows - reboot, have trouble with LINUX - be root!

Сайт Dark Knight

Поделиться

3

Re: Скрипты

идея хороша, но вот в некоторых скриптах нет необходимости. некоторые есть в разных программах и апплетах.

Ламерство не лечится.

Поделиться

4

Re: Скрипты

Dark Knight пишет:

3. для части скриптов нужно сделать их исполняемыми:
     находясь в папке /home/usr/MyDocs выполнить
     cp name_of_script.sh /home/usr name_of_script.sh
     chmod a+x name_of_script.sh

так где тут опечатка? /home/usr/MyDocs      - MyDocs находится же в /home/user/
/home/usr name_of_script.sh и так куда копировать в /home/user/  или /home/usr/   или тут правильно а только выше опечатался?

Сайт Xaaak

Поделиться

5 (06.04.2010 00:27:16 отредактировано Dark Knight)

Re: Скрипты

Xaaak пишет:
Dark Knight пишет:

3. для части скриптов нужно сделать их исполняемыми:
     находясь в папке /home/usr/MyDocs выполнить
     cp name_of_script.sh /home/usr name_of_script.sh
     chmod a+x name_of_script.sh

так где тут опечатка? /home/usr/MyDocs      - MyDocs находится же в /home/user/
/home/usr name_of_script.sh и так куда копировать в /home/user/  или /home/usr/   или тут правильно а только выше опечатался?

Поправлю.

Я буду добавлять, команды по dbus, и другие скрипты. То что многие функции уже используются это факт, но вдруг кому-то будет полезно и необходимо.

Have trouble with Windows - reboot, have trouble with LINUX - be root!

Сайт Dark Knight

Поделиться

6

Re: Скрипты

А можно для полных чайников? Как запускать скрипты?

Поделиться

7 (07.04.2010 07:29:05 отредактировано Dark Knight)

Re: Скрипты

yakkii пишет:

А можно для полных чайников? Как запускать скрипты?

Почитай здесь: http://linuxland.itam.nsc.ru/book/linux … ts.ru.html

А запускать ./имяфайла.sh

Have trouble with Windows - reboot, have trouble with LINUX - be root!

Сайт Dark Knight

Поделиться

8

Re: Скрипты

Dark Knight пишет:
yakkii пишет:

А можно для полных чайников? Как запускать скрипты?

Почитай здесь: http://linuxland.itam.nsc.ru/book/linux … ts.ru.html

А запускать ./имяфайла.sh

Ну так только при условии что стоит атрибут исполняемый.
Более универсальный способ

sh имяфайла.sh

Поделиться

9

Re: Скрипты

LappoSV пишет:

Более универсальный способ

sh имяфайла.sh

При таком способе даже не обязательно скрипт копировать из MyDocs куда-то

Поделиться

10

Re: Скрипты

Спасибо, друзья smile
Есть такая прога Alarmed , позволяющая запускать встроенные команды и еще много всего в привязке ко времени. Так вот- будет ли запускаться скрипт? А если нет, то как это обмануть, а то воображение рисует совершенно сумасшедшую автоматизацию. Проверить сам не могу, т.к. снес недавноь ее, а обновленная версия требует каких то библиотек из новой, еще не вышедшей прошивки.

Поделиться

11

Re: Скрипты

Кстати, кто знает что у нас с cron-ом ??

Поделиться

12

Re: Скрипты

LappoSV пишет:

Кстати, кто знает что у нас с cron-ом ??

У меня стоит fcron. Есть инструкции по установке. Кому интересно могу рассказать и дать. Сам использую, чтобы когда сплю телефон сам уходил в беззвучный режим + как будильник для моей девушки - он сам звонит её, чтобы она проснулась. Вот только пока не нашёл, как снимать с него результат звонка, ну типа нет ответа, есть ответ, занято, а то хотел сделать автодозвон.

Have trouble with Windows - reboot, have trouble with LINUX - be root!

13 (08.04.2010 02:59:54 отредактировано Dark Knight)

Re: Скрипты

Появился скрипт на перле, позволяющий превращать снимаемое видео в видео с ускоренным временем.
Взято отсюда

Сам скрипт:

#!/usr/bin/perl -w

# A simple intervalometer for the Nokia N900.
# Author: Ricardo Mendonca Ferreira - ric@mpcnet.com.br
# http://talk.maemo.org/showthread.php?t=38275

# This script requires gstreamer installed on your N900.
# See the link above for more info.
# Run this script on an X Terminal in your device with:
#   perl intervalometer.pl

# 2009.12.17  First version.
# 2009.12.24  Better gstreamer pipeline; more options, with better descriptions.
# ############ rm changes rudolf.mittelmann@artm-friends.at
# 2010-02-22 Try to use better file naming to avoid name clashes - new var jetztstr

use strict;
use POSIX qw(strftime);

#---- CONFIG SECTION ---- [BEGIN] ----

my ($x,$y) = (1600, 1200);              # image resolution - try (2592, 1968)
my $cam    = 0;                        # camera: 0 = back, 1 = front
my $dir    = '/home/user/MyDocs/interval'; # folder where images will be saved
my $max    = 10;  # total number of images to take
my $delay  =  5;  # interval between pictures

#---- CONFIG SECTION ----  [END]  ----

die "$dir not found!\n" if !-d $dir;

my $jetztstr = strftime ("%Y-%m-%d_%H-%M-%S_", localtime());

my $gst = "/usr/bin/gst-launch v4l2camsrc device=/dev/video$cam num-buffers=1 ! ffmpegcolorspace ! video/x-raw-yuv,width=$x,height=$y ! jpegenc ! filesink location=";

my $num=0;

print "Intervalometer started - will take $max pictures at $x x $y\n";

while ($num < $max) {
$num=sprintf'%05d',$num;
    `$gst$dir/$jetztstr$num.jpg`;
    printf "saved %d of %d", $num+1, $max;
    $num++;
    if ($num < $max) { print " - sleeping $delay sec."; sleep $delay; }
        print "\n";
}

Инструкция, пока какая есть - очень короткая и на английском.

NOOB HELP

1. copy text into notepad, save as photo.pl and put the file into the directory you want photos saved in
2. open xterm, as root go to above directory and type:

perl photo.pl

Также, написали GUI на QT, прога сырая, так что только на ваш риск, deb файл прилагается.

И видео результата:

Post's attachments

qtintervalometer_0.1-1_armel.deb 214.8 kb, 3 загрузок с 2010-04-08 

У Вас недостаточно прав для загрузки файлов, прикрепленных к этому сообщению.
Have trouble with Windows - reboot, have trouble with LINUX - be root!

14

Re: Скрипты

Dark Knight пишет:
LappoSV пишет:

Кстати, кто знает что у нас с cron-ом ??

У меня стоит fcron. Есть инструкции по установке. Кому интересно могу рассказать и дать. Сам использую, чтобы когда сплю телефон сам уходил в беззвучный режим + как будильник для моей девушки - он сам звонит её, чтобы она проснулась. Вот только пока не нашёл, как снимать с него результат звонка, ну типа нет ответа, есть ответ, занято, а то хотел сделать автодозвон.

Да. Будь так любезен. Если у него формат conf стандартный - то описание не требуется. У меня уже стали появляться мысли об автоматизации а вот крона не хватает.
И в репах я его не нашёл...

Добавлено: 08.04.2010 11:56:22

Сам себе отвечу.
http://wiki.maemo.org/Fcron

Поделиться

15

Re: Скрипты

Супер. Всё получилось.
Удалось даже с телефоном договориться что бы он в определённое время подключался к определённой сети.

Поделиться