суббота, 7 августа 2010 г.

Настройка индикатора погоды в часовом апплете GNOME

Столкнулся с проблемой, моего города нет в списке предлагаемых в ubuntu, нашел решение:
1. Создаем наше местоположение, например как у Меня "Орск".
2. Открываем
$gconf-editor

3. Правим ключ: /apps/panel/applets/clock_screen0/prefs/cities
Меняем значение "code" на http://www.tutu.ru/avia/airport/902c42/ где ICAO, т.е. UWOR код который нам нужен.
вот, что получается в итоге:



В итоге получаем погоду в г.Орске на панели.

p.s.
Широту и долготу указывать не обязательно...

среда, 19 мая 2010 г.

Автоматическая установка обновлений

По умолчанию это действие производится вручную администратором, однако гораздо лучше если сервер будет устанавливать обновления сам, скажем раз в неделю. Для этих целей будем использовать планировщик cron. Сначала создадим файл скрипта в директории /etc/cron.weekly, что обеспечит ему еженедельное исполнение:

sudo touch /etc/cron.weekly/updates

Откроем его в редакторе Midnight Commander (F4) и внесем следующий текст:

echo "**************" >> /var/log/updates
date >> /var/log/updates
aptitude update >> /var/log/updates
aptitude safe-upgrade -o Aptitude::Delete-Unused=false --assume-yes --target-release `lsb_release -cs`-security >> /var/log/updates
echo "Security updates (if any) installed"

Сохраним (F2) и, выйдя из mc, добавим ему права на исполнение:

sudo chmod +x /etc/cron.weekly/updates

Теперь наш скрипт будет исполняться еженедельно записывая результат своей работы в
/var/log/updates, чтобы избежать излишнего разрастания лог-файла необходимо обеспечить его ротацию. Для этого воспользуемся штатной утилитой logrotate. Создадим файл:

sudo touch /etc/logrotate.d/updates

И внесем в него следующий текст:

/var/log/updates {
rotate 2
weekly
size 250k
compress
notifempty
}

При указанных настройках файл будет заменяться новым каждую неделю (weekly) или по превышении им размера 250 кБ (size 250k), при этом будут сохранятся два предыдущих файла (rotate 2) в сжатом виде (compress), при пустом логе ротация не происходит (notifempty).

При необходимости можно легко изменить период установки обновлений. Достаточно переместить скрипт updates в соответствующую директорию. Например его перемещение из /etc/cron.weekly в /etc/cron.daily позволит устанавливать обновления ежедневно.

воскресенье, 16 мая 2010 г.

Платы на чипах tw68xx в ubuntu

С данными платами Zoneminder работает только с этими дровами http://gitorious.org/tw68, но они не доделаны... Нет режима YUV420, в RGB32 полосы вертикальные постоянно на кадрах.
Более менее работает в режиме YUVY, но пропадает цвет в режиме мультиплексирования (
Пробовал 2 платы 8 камер...

p.s.
Самому zoneminder не нравиться, ставил так, для пробы. Пользую avreg, но он не умеет работать с этим режимом...
так, что пока курим в сторонке смотря на git tree )))

Собственно вот как ставил:
1. вырубаем (можно и не вырубать) V4L_MULTI_BUFFER на вкладке ->config
2. ставим CAPTURES_PER_FRAME = 2
3. собираем дрова с git

sudo su
apt-get install git-core dpkg-dev build-essential automake gcc
cd /root; git clone git://gitorious.org/tw68/tw68-v2.git
cd tw68-v2 ; make
cp tw68.ko /var/lib
chmod 755 /var/lib/tw68.ko


4. правим /etc/modprobe.d/bttv.conf

options bttv card=77 tuner=4 radio=0 triton1=0 vsfx=0 autoload=0



5. и добавляем в автозагрузку sudo mcedit /etc/rc.local

modprobe bttv
insmod /var/lib/tw68.ko

Проверено ubuntu 9.10 и 10.04, платы на чипах tw6802, zoneminder из родных репов...

вторник, 4 мая 2010 г.

Законы... законы ;-)

Стало очень интересно как наше законодательство относится к изменению/модификации приобретенных программных продуктов под "себя".
Вот что нашел:

Статья 1280. Свободное воспроизведение программ для ЭВМ и баз данных. Декомпилирование программ для ЭВМ
[Гражданский кодекс РФ] [Глава 70] [Статья 1280]

1. Лицо, правомерно владеющее экземпляром программы для ЭВМ или экземпляром базы данных (пользователь), вправе без разрешения автора или иного правообладателя и без выплаты дополнительного вознаграждения:

1) внести в программу для ЭВМ или базу данных изменения исключительно в целях их функционирования на технических средствах пользователя и осуществлять действия, необходимые для функционирования таких программы или базы данных в соответствии с их назначением, в том числе запись и хранение в памяти ЭВМ (одной ЭВМ или одного пользователя сети), а также осуществить исправление явных ошибок, если иное не предусмотрено договором с правообладателем;

2) изготовить копию программы для ЭВМ или базы данных при условии, что эта копия предназначена только для архивных целей или для замены правомерно приобретенного экземпляра в случаях, когда такой экземпляр утерян, уничтожен или стал непригоден для использования. При этом копия программы для ЭВМ или базы данных не может быть использована в иных целях, чем цели, указанные в подпункте 1 настоящего пункта, и должна быть уничтожена, если владение экземпляром таких программы или базы данных перестало быть правомерным.

2. Лицо, правомерно владеющее экземпляром программы для ЭВМ, вправе без согласия правообладателя и без выплаты дополнительного вознаграждения изучать, исследовать или испытывать функционирование такой программы в целях определения идей и принципов, лежащих в основе любого элемента программы для ЭВМ, путем осуществления действий, предусмотренных подпунктом 1 пункта 1 настоящей статьи.

3. Лицо, правомерно владеющее экземпляром программы для ЭВМ, вправе без согласия правообладателя и без выплаты дополнительного вознаграждения воспроизвести и преобразовать объектный код в исходный текст (декомпилировать программу для ЭВМ) или поручить иным лицам осуществить эти действия, если они необходимы для достижения способности к взаимодействию независимо разработанной этим лицом программы для ЭВМ с другими программами, которые могут взаимодействовать с декомпилируемой программой, при соблюдении следующих условий:

1) информация, необходимая для достижения способности к взаимодействию, ранее не была доступна этому лицу из других источников;

2) указанные действия осуществляются в отношении только тех частей декомпилируемой программы для ЭВМ, которые необходимы для достижения способности к взаимодействию;

3) информация, полученная в результате декомпилирования, может использоваться лишь для достижения способности к взаимодействию независимо разработанной программы для ЭВМ с другими программами, не может передаваться иным лицам, за исключением случаев, когда это необходимо для достижения способности к взаимодействию независимо разработанной программы для ЭВМ с другими программами, а также не может использоваться для разработки программы для ЭВМ, по своему виду существенно схожей с декомпилируемой программой для ЭВМ, или для осуществления другого действия, нарушающего исключительное право на программу для ЭВМ.

4. Применение положений, предусмотренных настоящей статьей, не должно наносить неоправданный ущерб нормальному использованию программы для ЭВМ или базы данных и не должно ущемлять необоснованным образом законные интересы автора или иного правообладателя.

пятница, 16 апреля 2010 г.

Постоянные ошибки с ключами GPG

При обновлении постоянно вылетают ошибки типа:
GPG error: http://archive.ubuntu.com breezy-updates Release: The following
signatures were invalid: BADSIG 40976EAF437D05B5 Ubuntu Archive Automatic
Signing Key

В общем исправляем так:
$ sudo apt-get update -o Acquire::http::No-Cache=True
или так:
$ sudo apt-get update -o Acquire::BrokenProxy=true

четверг, 8 апреля 2010 г.

Объединение сетевых интерфейсов при помощи bonding

$sudo aptitude install ifenslave ethtool

Затем добавим модуль bonding в автозагрузку и пропишем опции для его запуска, для этого в конец файла /etc/modules добавим текст.

$sudo mcedit /etc/modules

alias bond0 bonding
options bonding mode=0 miimon=100

Затем загрузим модуль bonding

$sudo modprobe bonding mode=0 miimon=100

$sudo mcedit /etc/network/interfaces

# The bond0 network interface
auto bond0
allow-hotplug bond0
iface bond0 inet static
address 192.168.1.254
netmask 255.255.255.0
# network 192.168.1.255
broadcast 192.168.1.255
# gateway gateway-address
# dns-nameservers nameserver-one nameserver-two
# dns-search
up /sbin/ifenslave bond0 eth0
up /sbin/ifenslave bond0 eth1

$sudo /etc/init.d/networking restart

$ifconfig

все...

Переименование сетевого интерфейса в Linux

Часто бывает при замене сетевой карты она начинает определятся не как все привыкли по порядку c eth0.

Если вы хотите изменить название интерфейса с eth1 на eth0 либо еще как то, необходимо найти файл в /etc/udev/rules.d/ в имене файла присутствует название persistent-net.rules (в Ubuntu называется 70-persistent-net.rules). Открываем, видим что привязка идет к МАК адресу сетевого адаптера, чтоб изменить название достаточно в конце строки с необходимым адаптером изменить название, например, eth1 меняем на eth0. Сохраняем, перезагружаемся. Все карты видны, как нам нужно.

воскресенье, 21 марта 2010 г.

mail.ru агент в Ubuntu

В общем радуют последние сборки wine. Mail.ru агент устанавливается и запускается почти без "бубнов".
Устанавливаем:

1. Устанавливаем wine и winetricks:
добавляем ppa с текущим wine:

$ sudo add-apt-repository ppa:ubuntu-wine/ppa

$ sudo apt-get update

$ sudo apt-get install wine1.2

$ wget http://www.kegel.com/wine/winetricks

2.
$ winetricks riched20 flash tahoma msxml3

3.
$ wine magentsetup.exe


СТАВИТЬ msxml3 обязательно иначе не отображаются ваши сообщения у получателей. Вместо них иероглифы.
tahoma ставить не обязательно, но стандартный шрифт ужасный.
и все ;-)

$ wine magent.exe

работает!!!

пятница, 19 марта 2010 г.

Серые IP и ssh туннели.

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

В общем задача стояла такая:

Есть удаленная рабочая точка с серым ip на которой установлена ubuntu, соединяется по rdp через интернет с w2k3 сервером при помощи ssh туннеля. Там же стоит принтер HP LJ 1000. Народ в 1с робит. Локально печатает все нормально. Но при настройке принтера через rdesktop замучался, печатает только со снятой галочкой "Двусторонний обмен". Снимаешь, перезагружаешься и все...
Юзеру открывать доступ к свойствам принтера тоже не охота. Да и незачем. Работают бесшовном рещиме с seamlessrdp.

Путем гугления по ssh тунелям пришел к такому варианту:
На клиенте пробрасываем cups, rdp и до кучи, раз разобрались, vnc.

Для этого пришлось поднять такие туннели:

1. Клиент:

#!/bin/sh
plink -v -x -a -N -ssh -2 -4 -C -P 222 -l -pw password -L 127.0.0.1:3390:192.168.135.200:3389 -R 1234:127.0.0.1:5900 -R 1235:127.0.0.1:631 user@server.net

потом соответственно еще один для запуска 1с:

#!/bin/sh
rdesktop 127.0.0.1:3390 -kcommon -u"user" -p password -a8 -xm -N -P -z -g1273x745 -A -s"c:\seamlessrdp\seamlessrdpshell.exe c:\1cv77\bin\1cv7s.exe"

2. На w2k3 сервере поднимаем второй туннель до шлюза:
plink -ssh -N -v user@192.168.135.254 -P 222 -pw password -L 632:127.0.0.1:1235 -L 5902:127.0.0.1:1234

где:
192.168.135.200 - сам сервер w2k3
192.168.135.254 - шлюз на linux на стороне сервера.
user@server.net - внешний адрес нашего шлюза. У меня динамический пользую no-ip.com

для автоподнятия ssh на стононе w2k3 использовал myentunnel, небольшая надстройка над plink, которая позволяет запускать его как службу и следит за разрывами.

Как ее настраивать писать не буду... Там итак все просто...

после поднятия туннелей подключаем принтер как http://<127.0.0.1:632>...
И все работает. Даже удаленная помогалка VNC.