tag:blogger.com,1999:blog-90795386220148600072024-02-20T12:14:25.697+01:00IT_blogsIT_glogs - Блог о IT технологияхDavnozduhttp://www.blogger.com/profile/06531201304669465898noreply@blogger.comBlogger69125tag:blogger.com,1999:blog-9079538622014860007.post-28027674764298215962010-02-21T00:37:00.001+01:002010-07-03T23:24:53.265+02:00Установка Routertech на ADSL модемы Acorp/StarNet<h3><span style="color: #888888;">Вступление</span></h3><br />
<br />
<br />
Сегодня мы займёмся очередной модернизацией строго оборудования.<br />
<br />
Я являюсь счастливым обладателем <strong>ADSL</strong> модема <strong>Star-Net ADSL2110EHR V7.20M+</strong>, который является творением китайских мастеров и в следствии этого имеет относительно нестабильное ПО.<br />
<a href="http://itbg.files.wordpress.com/2010/02/3954755.jpg"><img alt="" class="aligncenter size-medium wp-image-580" height="225" src="http://itbg.files.wordpress.com/2010/02/3954755.jpg?w=300" title="Star-net" width="300" /></a><br />
<br />
При тщательном изучении разнообразных форумов мне удалось выяснить что это почти точная аппаратная копия модема <strong>Acorp LAN120</strong>, только у <strong>Star-Net ADSL2110EHR V7.20M+</strong> отсутствует USB порт.<br />
<br />
Поэтому нам не составит труда перешить своего нестабильного китайца в благородный <strong>Acorp LAN120</strong><br />
<br />
В конце концов мы ведь хотим качественного и стабильного интернета ?<br />
<br />
Если Ваш ответ - <strong>ДА</strong>, то нужно прошиваться.<br />
<br />
Параноиков предупрежу сразу: Прошивая свой модем сторонней прошивкой Вы потеряете гарантию.<br />
<br />
Сам метод на <strong>99%</strong> безопасен (1% это на случай форс-мажорных обстоятельств)<br />
<br />
Потому что даже в случае если прошивка слетит, то через аварийный можно с лёгкостью восстановиться.<br />
<h3><span style="color: #888888;">Итак приступим</span></h3><br />
<a name='more'></a><br />
<br />
Для начала нам потребуется скачать саму прошивку, она находиться <a href="http://www.ddixlab.ru/index.php?option=com_phocadownload&view=category&id=6:acorp-lan120&Itemid=72&lang=ru">ТУТ</a><br />
<br />
<strong>Ваши действия:</strong><br />
<strong>1.</strong> Распакуйте архив<br />
<strong>2.</strong> Очистите кэш Вашего Интернет-браузера перед началом обновления.<br />
(<strong>Для Internet Explorer:</strong> –> меню Сервис -> Своства обозревателя -> Общие -> Удалить файлы)<br />
<br />
<strong>3.</strong> Войдите в панель управления модема (через браузер <strong>192.168.1.1</strong>), выберите меню <strong>Tools-Update Gateway</strong><br />
<br />
<strong>4.</strong> В поле выбора файла для обновления выберите распакованный файл ПО с расширением <strong>.img</strong><br />
<br />
<strong>5.</strong> Нажмите кнопку <strong>Update</strong>. Начнется процесс обновления ПО, который занимает <strong>5-7 минут</strong>.<br />
<strong> ВНИМАНИЕ: НЕ ПРЕРЫВАЙТЕ ПРОЦЕСС ОБНОВЛЕНИЯ ПО.</strong><br />
<br />
<strong>6.</strong> Еще раз очистите кэш Вашего Интернет-браузера перед началом обновления.<br />
(<strong>Для Internet Explorer: </strong> меню Сервис -> Своства обозревателя -> Общие -> Удалить файлы)<br />
<br />
<strong>7.</strong> После окончания обновления перезагрузите модем. Для этого на включенном модеме нажмите и удерживайте кнопку <strong>RESET</strong> в течение 15 секунд, либо выполните команду <strong> Tools-System commands-Restore defaults</strong> в меню модема.<br />
<br />
<strong>8.</strong> После обновления модем будет иметь адрес <strong>192.168.1.1/255.255.255.0</strong><br />
Имя пользователя и пароль для доступа <strong>Admin:Admin</strong><br />
Также следует заметить, что собьётся индикация на модеме, но бояться не стоит - это нормально.<br />
<br />
<a href="http://forum.ixbt.com/topic.cgi?id=32:15947#0">Оригинал</a><br />
<br />
<br />
Конечно, на этом в принципе можно было бы и остановиться, но к сожалению прошивка от <strong>Acorp</strong> перестала развиваться.<br />
<br />
К счастью есть проект <a href="http://www.routertech.org/">routertech</a> который ведёт разработку альтернативной прошивки на базе <strong>Linux</strong> для разнообразных устройств, в перечень которых входит и <strong>Acorp LAN120</strong><br />
<br />
Но для логического начала рассмотрим восстановление убитых модемов StarNet/Acorp в следствии неправильной перепрошивки или сбое питания.<br />
<h3><span style="color: #888888;">Восстановление прошивки</span></h3><br />
<br />
<br />
В этом нам поможет программа <strong>adsl recover pack</strong><br />
<blockquote>Новая утилита для автоматического восстановления модемов Acorp 120/120M/122/420/420M/422/w400g/w422g через adam2.<br />
<br />
Также утилиту можно использовать для смены MAC через телнет.</blockquote><br />
<br />
<strong>Она Вам поможет если: </strong><br />
<br />
1) Нужно поменять MAC адреса модема и DSL линии<br />
2) Модем был убит неправильной перепрошивкой<br />
<br />
<strong>Скачать можно ТУТ: </strong> <br />
<a href="http://narod.ru/disk/7616788000/adsl_recover_pack.rar.html">http://narod.ru/disk/7616788000/adsl_recover_pack.rar.html</a><br />
<a href="http://www.mediafire.com/?gmm0mt44ljc">http://www.mediafire.com/?gmm0mt44ljc</a><br />
<br />
<strong>Методика восстановления:</strong><br />
<br />
<strong> 1.</strong> Для модема<strong> StarNet</strong> качаем прошивку от Acorp (<a href="http://www.ddixlab.ru/index.php?option=com_phocadownload&view=category&id=6:acorp-lan120&Itemid=72&lang=ru">ОНА ТУТ</a>)<br />
Режим <strong>Annex</strong> по потребностям.<br />
Для остальных моделей прошивку берём на <strong>официальном сайте Acorp</strong><br />
<br />
<strong>2.</strong> Распаковываем архив с программой<br />
<strong> 3. </strong>Переименовываем прошивку для Acorp LAN120 (StarNET) в <strong>120.img</strong> и ложим в папку <strong>data<span style="font-weight: normal;"><br />
Для других моделей имена прошивки можно посмотреть в файле <strong>readme.txt</strong></span></strong><br />
<br />
<strong>4. </strong> Ставим IP сетевухи <strong>192.168.1.2 </strong><br />
<strong> 5. </strong> Запускаем <strong>recover.exe</strong> и выбираем пункт <strong>ADAM2 Full Recover</strong><br />
<strong> 6. </strong> Выбираем модель модема (Для <strong>StarNet</strong> ставим <strong>Acorp LAN120</strong>)<br />
<strong> 7.</strong> Жмём кнопку <strong>Recover</strong> и смотрим окно с логом<br />
<strong> 8. </strong> Через <strong>5-10 сек</strong> там будет написано, что <strong>нужно перезагрузить модем</strong>.<br />
<strong> 9.</strong> Дёргаем шнур питания модема и ждём, программа <strong>автоматически</strong> начнёт восстановление (<strong>побежит индикатор</strong>)<br />
<strong> 10. </strong> После модем сам перезагрузится и можно радоваться, <strong>всё восстановилось</strong><br />
<br />
<strong>Смена MAC адреса:</strong><br />
<br />
<strong> 1.</strong> Выбираем пункт <strong>Telnet MAC Update</strong><br />
<strong> 2.</strong> Вбиваем нужный <strong>MAC</strong> адрес<br />
<strong> 3.</strong> Выбираем модель модема<br />
<strong> 4.</strong> Жмём кнопку <strong>Recover</strong><br />
<br />
После того, как мы уже умеем восстанавливать модем после сбоев, можно переходить к установке прошивки от <strong>routertech</strong><br />
<h3><span style="color: #888888;">Установка ПО от <strong>routertech</strong></span></h3><br />
<br />
<br />
<a href="http://itbg.files.wordpress.com/2010/02/routertech-logo.jpg"><img alt="" class="alignright size-full wp-image-592" height="110" src="http://itbg.files.wordpress.com/2010/02/routertech-logo.jpg" title="routertech-logo" width="128" /></a><br />
<br />
Для начала идём на сайт <a href="http://www.routertech.org/">http://www.routertech.org</a> и проходим процедуру регистрации, для доступа к файлам.<br />
<br />
Первое что нам потребуется - Это проверить свой модем на возможность перепрошивки и заодно подготовить <strong>BackUP</strong><br />
<br />
Делается это с помощью утилиты <strong>Router Upgrade Check</strong> от <strong>Routertech</strong><br />
<br />
<strong>1.</strong> Скачиваем архив с программой и распаковываем его<br />
<strong>2.</strong> Запускаем <strong>ruc.exe</strong><br />
<strong>3.</strong> Вводим IP адрес модема, указываем: <strong>telnet username: root</strong> и <strong>telnet password: Admin</strong><br />
<strong>4.</strong> Выбираем модель модема Acorp <strong>LAN120</strong><br />
<strong>5.</strong> Жмём кнопку <strong>Check My Router</strong><br />
После чего появиться примерно следующий рапорт:<br />
<blockquote>Router Upgrade Check 1.3.7 20.02.2010 20:54:46<br />
Router IP: 192.168.1.1<br />
Description: Acorp LAN120<br />
Board type: AR7RD<br />
Product ID: Sprinter@ADSL-LAN120<br />
Bootloader: pspboot<br />
RAM 8,0 MB<br />
Flash (ROM) 2,0 MB<br />
ADAM2: No<br />
No default env: No<br />
Linux version: 2.4.17_mvl21-malta-mips_fp_le<br />
Firmware build: RouterTech_3.6.0D_20100105_2.92<br />
Firmware version: 3.6.0D-RouterTech-1P-PSBL<br />
Firmware stamp: 20100105145325<br />
CPU: MIPS 4KEc V4.8<br />
DSP: 7.05.01.00<br />
Annex: A<br />
/proc/wlan: No<br />
/usr/sbin/wlan: No<br />
TIAP: No<br />
TNETW: No<br />
Wireless: No<br />
WIFI chip: N/A<br />
WIFI chip conf: No<br />
Ports: 1<br />
Marvell (or Marvell like): No<br />
NSP: 3.6.0D<br />
Manufacturers: Fujian Star Terminal<br />
RNDIS: Fujian Star Terminal<br />
HRNDIS: Fujian Star Terminal<br />
Select an AR7RD PSPBOOT 1 PORT firmware.<br />
Latest: routertech-ar7rd-pspboot-1port-firmware-20100105.zip<br />
Please read the instructions that come with the firmware files before you upgrade.<br />
According to your current MTD values, you should be able to upgrade using a single firmware image</blockquote><br />
<br />
<br />
Тут нас особо интересует эта строка: <strong>Latest: routertech-ar7rd-pspboot-1port-firmware-20100105.zip</strong><br />
Оно говорит о том, что наш модем поддерживается для прошивки и последняя версия ПО <strong>routertech-ar7rd-pspboot-1port-firmware-20100105.zip</strong><br />
Поэтому идём в раздел "<strong>Downloads</strong>" и качаем эту версию прошивки.<br />
<br />
Теперь наступает самое интересное: Как прошить эту прошивку в модем ?<br />
<strong> 1.</strong> Распаковываем архив с прошивкой<br />
<strong> 2. </strong>Из всех фалов нам понадобиться лишь файл <strong>RouterTech_3.6.0D_20100105_2.92_AR7RD-1Port_psbl_firmware.upgrade.img</strong> потому что Flash памяти в модеме 2Мб (В рапорте сказано <strong>Flash (ROM) 2,0 MB</strong>)<br />
<br />
<strong> 3.</strong> Теперь возвращаемся к пункту <strong>Восстановление прошивки</strong> и прошиваем её этим методом, т.е переименовываем <strong>RouterTech_3.6.0D_20100105_2.92_AR7RD-1Port_psbl_firmware.upgrade.img</strong> в <strong>120.img</strong> и далее по шагам инструкции.<br />
<br />
В результате наших действий мы вдохнули вторую жизнь в наше устройство, сделав его более стабильным и функциональным.<br />
<br />
<a href="http://itbg.files.wordpress.com/2010/02/router.png"><img alt="" class="aligncenter size-full wp-image-591" height="320" src="http://itbg.files.wordpress.com/2010/02/router.png" title="router" width="490" /></a><br />
<br />
Скриншоты прошивки <strong>Routertech</strong> можно посмотреть <a href="http://www.pcwintech.com/screenshots-routertech-v28-routertech-firmware">ТУТ</a>Davnozduhttp://www.blogger.com/profile/06531201304669465898noreply@blogger.com8tag:blogger.com,1999:blog-9079538622014860007.post-7336423825360196202009-12-20T18:26:00.002+01:002010-07-03T23:27:25.563+02:00Ipod Nano 2 gen с RockBox через загрузчик iLoader<h1><span style="color:#888888;">Вступление</span></h1><br />
<span style="color:#888888;"><br />
</span><br />
<br />
Приветствую Тебя читатель.<br />
Сегодня мы займёмся модернизацией плеера компании <strong>Apple - Ipod Nano 2 gen</strong><br />
<br />
Совсем недавно, в октябре 2009 года, на сайте альтернативной прошивки <strong>rockbox</strong> <a href="http://www.rockbox.org/wiki/IPodNano2GPort">появилась</a> информация о успешном её портировании на плеер <strong>Ipod Nano 2-го покаления</strong><br />
<br />
<a href="http://itbg.files.wordpress.com/2009/12/rockboxlogo.png"><img class="size-full wp-image-556" title="Rockbox" src="http://itbg.files.wordpress.com/2009/12/rockboxlogo.png" alt="Rockbox" width="220" height="68" /></a><br />
<br />
Вот выдержка из <a href="http://ru.wikipedia.org/wiki/Rockbox">Википедии</a>:<br />
<blockquote><strong>Rockbox</strong> — это свободное программное обеспечение для замены встроенных прошивок цифровых аудио плееров. Проект Rockbox начался в конце 2001 года и был впервые реализован на плеере Archos Studio.<br />
Rockbox предлагает альтернативу встроенному программному обеспечению плеера, во многих случаях без удаления первоначальной прошивки. Внутреннее устройство Rockbox позволяет наращивать функциональность за счёт использования модулей расширения. Улучшение функциональности включает в себя приложения, утилиты и игры. Rockbox может обеспечить (retrofit) воспроизведение видео для плееров, выпущенных в середине 2000-х годов. Также Rockbox содержит управляемый голосом пользовательский интерфейс, подходящий для использования людьми со слепотой или повреждённым зрением.</blockquote><br />
Как раз у меня сломался мой основной плеер и я подбирал подходящую альтернативу для него.<br />
Не долго думая я пошёл на <a href="http://ebay.com">ebay</a> и заказал за 60$ <strong>Ipod Nano 2 gen 8Gb</strong><br />
<br />
<a href="http://itbg.files.wordpress.com/2009/12/nano-1.jpg"><img class="size-full wp-image-555" title="Ipod Nano 2 gen " src="http://itbg.files.wordpress.com/2009/12/nano-1.jpg" alt="Ipod Nano 2 gen " width="281" height="294" /></a><br />
<br />
Пока плеер ехал в Челябинск я принялся изучать варианты установки.<br />
<a name='more'></a><br />
<h1><span style="color:#888888;">План работ</span></h1><br />
<span style="color:#888888;"><br />
</span><br />
<br />
1) Установить загрузчик <strong>ILoader</strong><br />
2) Залить <strong>RockBox</strong><br />
3) Залить <strong>оригинальную</strong> прошивку<br />
4) При загрузке <strong>выбирать</strong> необходимое ПО<br />
<h1><span style="color:#888888;">Подготавливаем ПО и прошивки</span></h1><br />
<span style="color:#888888;"><br />
</span><br />
<br />
Для начала нам потребуется ПК с <strong>Linux</strong> на борту.<br />
Если же у Вас нет установленного Linux, то Вы можете взять любой <strong>Live CD</strong><br />
<h3>Качаем:</h3><br />
1) Загрузчик <a href="http://l4n.clustur.com/data/theseven/releases/iLoader-fullfs.7z">iLoader</a><br />
2) Последний релиз <a href="http://build.rockbox.org/data/rockbox-ipodnano2g.zip">RockBox для Ipod nano 2 gen</a><br />
3) Оригинальную прошивку для Ipod nano 2 G с <a href="http://www.felixbruns.de/iPod/firmware/">этого сайта</a><br />
Там в выпадающем меню выбираем устройство и жмём кнопку <strong>Download</strong><br />
Я качал версию <strong>iPod_29.1.1.3.ipsw</strong><br />
4) Качаем <a href="http://svn.gna.org/viewcvs/*checkout*/linux4nano/trunk/tools/extract2g/extract2g.i386?rev=51">Дампер для прошивки</a><br />
<h1><span style="color:#888888;">Устанавливаем iLoader</span></h1><br />
<span style="color:#888888;"><br />
</span><br />
<br />
1) Подключаем Ipod к ПК и в каталоге /dev смотрим имя дисков (У меня <strong>/dev/sdd{1,2}</strong>)<br />
2) Распаковываем архив <strong>iLoader-fullfs.7z</strong> командой <strong>7z e iLoader-fullfs.7z</strong><br />
3) Выбираем нужный файл для <strong>своей</strong> модели Ipod.<br />
Поскольку у меня модель на 8Gb я взял файл <strong>iloader-image-8gb.bin</strong><br />
4) Устанавливаем загрузчик для Ipod <strong>командой</strong><br />
<blockquote>dd if=iloaderimage-Xgb.bin of=/dev/sdX; sync</blockquote><br />
Где <strong>/dev/sdX</strong> - это номер диска Ipod (в моём случаем <strong>/dev/sdd</strong>)<br />
5) Если потребуется обновить iLoader, то это можно сделать<strong> командой</strong><br />
<blockquote>dd if=iloaderimage-Xgb.bin bs=2048 skip=63 seek=63 count=63 of=/dev/sdX; sync</blockquote><br />
6) Если потребуется и вовсе удалить его, то нужно подключить Ipod к <strong>iTunes </strong>и пройти<strong> процедуру восстановления</strong>.<br />
<h1><span style="color:#888888;">Использование iLoader</span></h1><br />
<span style="color:#888888;"><br />
</span><br />
<br />
Тут всё очень просто, нужно лишь скопировать необходимую прошивку на диск и выбрать её при включении.<br />
<br />
<strong>Кнопка меню</strong>: Загружает<strong> iBugger</strong> (/iLoader/ibugger.bin)<br />
<strong> iBugger</strong> - это прошивка для разработки и тестирования прошивок для Ipod<br />
<strong> Левая кнопка</strong> : Загружает <strong>оригинальную</strong> прошивку Ipod (/iLoader/<strong>appleos.bin</strong> (расшифрованную) или /iLoader/<strong>osos.fw</strong> (зашифрованную)<br />
<strong> Центральная кнопка</strong>: Режим накопителя<br />
<strong> Кнопка воспроизведения</strong>: Загружает <strong>RockBox</strong> (/.rockbox/rockbox.ipod)<br />
<strong> Правая кнопка</strong>: Загрузка любой, сторонней прошивки (/iLoader/custom.bin)<br />
Это скорее всего сделано на будущие, под <a href="http://www.ipodlinux.org/">iPodLinux</a><br />
<br />
<a href="http://itbg.files.wordpress.com/2009/12/iloader.jpg"><img class="size-full wp-image-561" title="iloader" src="http://itbg.files.wordpress.com/2009/12/iloader.jpg" alt="iloader" width="200" height="267" /></a><br />
<h1><span style="color:#888888;">Установка RockBox</span></h1><br />
<span style="color:#888888;"><br />
</span><br />
<br />
1) Распаковываем архив <strong>rockbox-ipodnano2g.zip </strong><br />
2) Копируем всю папку <strong>.rockbox</strong> в корень накопителя /dev/sdX2<br />
3) <strong>Размонтируем</strong> и отсоединяем Ipod от ПК<br />
4) Выбираем кнопкой <strong>воспроизведения</strong> соответствующий пункт меню и пользуемся<br />
<h1><span style="color:#888888;">Установка оригинальной прошивки</span></h1><br />
<span style="color:#888888;"><br />
</span><br />
<br />
1) Делаем файл <strong>extract2g.i386</strong> исполняемым (chmod +x extract2g.i386)<br />
2) Переименовываем файл<strong> iPod_29.1.1.3.ipsw</strong> в<strong> iPod_29.1.1.3.zip</strong> и расспаковываем<br />
3) Даём команду:<br />
<blockquote>extract2g.i386 -A Firmware-29.8.1.3</blockquote><br />
И получаем 3 файла (osos.fw, aupd.fw, rsrc.fw)<br />
4) Даём команду:<br />
<blockquote>dd if=osos.fw of=osos.out bs=2048 skip=1</blockquote><br />
5) Копируем файл <strong>osos.out</strong> в <strong>Ipod</strong> в папку <strong>iLoader</strong> и переименовываем его в <strong>osos.fw</strong> (/iLoader/osos.fw)<br />
6) <strong>Размонтируем</strong> и отсоединяем Ipod от ПК<br />
7) Выбираем <strong>левой</strong> кнопкой соответствующий пункт меню и пользуемся<br />
<h3>Источник:</h3><br />
<a href="http://l4n.clustur.com/index.php/Main_Page">WiKi iLoader</a>Davnozduhttp://www.blogger.com/profile/06531201304669465898noreply@blogger.com0tag:blogger.com,1999:blog-9079538622014860007.post-68777370952811450932009-12-05T20:53:00.001+01:002010-07-03T23:31:02.127+02:00Разгон Canon 400d до 3200 ISO<h1><span style="color: grey;">Вступление</span></h1><br />
<span style="color: grey;"><br />
</span><br />
<br />
Сегодня мы займёмся модернизацией известного фотоаппарата <a href="http://ru.wikipedia.org/wiki/Canon_EOS_400D">Canon EOS 400d</a> с помощью дополнения к прошивки <a href="http://ru.wikipedia.org/wiki/CHDK">CHDK</a><br />
<blockquote><em><strong>CHDK</strong> (Canon Hacker’s Development Kit) — резидентная программа для компактных и зеркальных цифровых фотоаппаратов фирмы Canon, базирующихся на процессорах DIGIC, позволяющая значительно увеличить их функциональность и добавляющая недокументированные возможности. Создана сообществом энтузиастов CHDK. Является резидентной программой, но по сложившейся традиции часто называется альтернативной прошивкой.</em><br />
<br />
<em>При использовании CHDK сохраняется полностью базовая функциональность, способ управления и внешний вид меню настроек цифрового фотоаппарата. Дополнительные функции, добавляемые CHDK к основным, настраиваются с помощью альтернативного меню.</em></blockquote><br />
<h1><span style="color: grey;">Предыстория</span></h1><br />
<span style="color: grey;"><br />
</span><br />
<br />
Этим летом в сети появилась информация о успешной расшифровке прошивки <strong> Canon EOS 400d</strong>.<br />
Как оказалось, для этого великолепно подошёл набор утилит от другой модели - <strong>Canon EOS 30d</strong>.<br />
И после достижения успешного результата началась кропотливая работа по модернизации внутреннего ПО <strong>400</strong>-тки.<br />
<br />
<img alt="Canon 400d" src="http://itbg.files.wordpress.com/2009/12/canon_eos_400d_3d_view.png" /><br />
<a name='more'></a><br />
И вот, в начале осени <a href="http://code.google.com/p/400d/downloads/list">появился</a> первый стабильный релиз модификатора.<br />
<h1><span style="color: grey;">Новые фичи вносимые CHDK</span></h1><br />
<span style="color: grey;"> </span><br />
<h2><span style="color: grey;"> Дополнительные ISO значения:</span></h2><br />
Теперь можно выставлять <strong>ISO</strong> до <strong>3200</strong> вместо родных <strong>1600</strong><br />
Можно выполнять плавное увеличение ISO с различным шагом:<br />
<blockquote>100->125->160->32->40->50->80->100<br />
200-> 250-> 320<br />
400-> 500-> 640<br />
800->100->1250<br />
1600->2000->2200->3200</blockquote><br />
<strong>Переход между режимами осуществляется следующим образом:</strong><br />
<blockquote><strong>a)</strong> Нажать кнопку "<strong>Set ISO</strong>"<br />
<strong>b)</strong> Выбрать необходимое значение из предложенного списка.<br />
<strong>с)</strong> С помощью кнопки "<strong>Direct Print</strong>" добавить ISO<br />
<strong>d)</strong> На экране будет отображаться <strong>актуальное</strong> значение ISO</blockquote><br />
<h4><strong><span style="color: black;"><em>2) Точечный замер экспозиции</em></span></strong></h4><br />
<blockquote><span style="color: black;"><strong>a)</strong> Перейдите в "<strong>metering selection</strong>"<br />
<strong>b)</strong> Нажмите кнопку "<strong>Direct Print</strong>"<br />
<strong>c)</strong> На экране появиться точка в квадрате, обозначающая соответствующий режим</span></blockquote><br />
<h4><strong><span style="color: black;"><em>3) Инженерное меню </em></span></strong></h4><br />
<blockquote><strong>a)</strong> Перейдите в меню<br />
<strong>b)</strong> Нажмите кнопку "<strong>Direct Print</strong>"<br />
<strong>c)</strong> Нажмите кнопку "<strong>menu</strong>" 2 раза<br />
<strong>d)</strong> Появиться новый пункт "<a href="http://chdk.wikia.com/index.php?title=Special:Outbound&u=http%3A%2F%2Fchdk.setepontos.com%2Findex.php%2Ftopic%2C4171.0.html">Factory menu</a>"</blockquote><br />
<h4><strong><span style="color: black;"><em>4) Возможность просмотреть актуальное состояния счётчика затвора</em></span></strong></h4><br />
<span style="color: black;"> </span><br />
<blockquote><strong>a)</strong> Войдите в "<a href="http://chdk.wikia.com/index.php?title=Special:Outbound&u=http%3A%2F%2Fchdk.setepontos.com%2Findex.php%2Ftopic%2C4171.0.html">Factory menu</a>" (смотри выше)<br />
<strong>b)</strong> Нажмите кнопку "<strong>Direct Print</strong>" для активации "<strong>debug mode</strong>"<br />
<strong>c)</strong> После звукового сигнала вернитесь назад и выберите режим "<strong>spot metering</strong>"<br />
<strong>d)</strong> После этого выньте карту памяти и подключите её к ПК через <strong>Card Reader</strong><br />
<strong>e)</strong> В корне будет находиться файл "<strong>STDOUT.txt</strong>", откройте его<br />
<strong>f)</strong> Найдите слово "<strong>Release</strong>", и сразу за ним будет нужное число<br />
<br />
<em><strong>PS.</strong> У меня так и не получилось проделать этот пункт :(</em></blockquote><br />
<h4><strong><span style="color: black;"><em>5) Шаблон фокусировки</em></span></strong></h4><br />
<strong><span style="color: black;"><em><br />
</em></span></strong><br />
<h1><span style="color: grey;">Именно его установкой мы сейчас и займёмся</span></h1><br />
<span style="color: grey;"><br />
</span><br />
<br />
Для начало нам понадобится <strong>Card Reader</strong> с поддержкой карт памяти <a href="http://ru.wikipedia.org/wiki/Compact_Flash">CompactFlash</a><br />
Если всё в порядке, то можно переходить к самому процессу:<br />
<h2><span style="color: grey;">Установка:</span></h2><br />
<strong>1)</strong> Убедиться что в Вашем <strong>Canon 400d</strong> стоит <strong>последняя прошивка (1.1.1)</strong><br />
<strong>2)</strong> Необходимо отформатировать к CF арту памяти в файловую систему<strong> FAT16/32</strong><br />
<br />
<a href="http://itbg.files.wordpress.com/2009/12/0.png"><img alt="Форматирование в FAT16" class="size-full wp-image-536" height="536" src="http://itbg.files.wordpress.com/2009/12/0.png" title="Форматирование в FAT16" width="412" /></a><br />
<br />
Это можно сделать либо через фотоаппарат или через <strong>CardReader</strong><br />
<strong>3)</strong> Скопировать в <strong>корень</strong> CF карты памяти файл <a href="http://chdk.setepontos.com/index.php?action=dlattach;topic=1618.0;attach=1531">testfir.fi</a><br />
<strong>4)</strong> Вставить CF карту в фотоаппарат и выбрать в меню пункт "<strong>update firmware"</strong><br />
Экран потухнет, после этого <strong>подождите 10 секунд</strong> (я подождал минуту для верности) и выключите <strong>Canon 400d</strong>.<br />
Что-бы это сделать <strong>выньте аккумулятор из отсека</strong>.<br />
<strong>5)</strong> Сейчас нужно сделать CF карту <strong>загрузочной</strong>.<br />
Для этого есть 2 способа:<br />
<strong>a)</strong> Если Ваша карта в файловой системе <strong>FAT16 </strong>(менее <strong>4 Gb</strong>)<br />
Нужно скачать утилиту <a href="http://drop.io/chdkshellbeta/asset/cardtricks145-sfx-exe">Cardtricks</a><br />
В ней отметить галочкой пункт "<strong>cf boot sector</strong>" и нажать кнопку "<strong>Make Bootable</strong>"<br />
<br />
<img alt="Загрузочная CF FAT16" class="size-full wp-image-539" height="363" src="http://itbg.files.wordpress.com/2009/12/2.png" title="Загрузочная CF FAT16" width="567" /><br />
<br />
<strong>b)</strong> Если Ваша карта в файловой системе <strong>FAT32</strong> (более <strong>4Gb</strong>)<br />
Нужно скачать утилиту <a href="http://mh-nexus.de/en/downloads.php?product=HxD">HxD</a><br />
В ней нужно перейти<strong> menu extras -> options -> security-></strong> и снять галку "<strong>open disk as readonly by default</strong>"<br />
<br />
<a href="http://itbg.files.wordpress.com/2009/12/4.png"><img alt="" class="aligncenter size-full wp-image-541" height="207" src="http://itbg.files.wordpress.com/2009/12/4.png" title="Меню" width="597" /></a><br />
<br />
<a href="http://itbg.files.wordpress.com/2009/12/5.png"><img alt="" class="aligncenter size-full wp-image-542" height="486" src="http://itbg.files.wordpress.com/2009/12/5.png" title="Снятие галки" width="438" /></a><br />
<br />
Теперь нажмите кнопку "<strong>Open disk</strong>"<br />
<br />
<a href="http://itbg.files.wordpress.com/2009/12/6.png"><img alt="Кнопка Открыть диск" class="size-full wp-image-544" height="228" src="http://itbg.files.wordpress.com/2009/12/6.png" title="Open Disk" width="508" /></a><br />
<br />
Выберите из списка свою <strong>CF карту</strong> памяти<br />
<br />
<a href="http://itbg.files.wordpress.com/2009/12/7.png"><img alt="Выбираем карту памяти" class="size-full wp-image-545" height="485" src="http://itbg.files.wordpress.com/2009/12/7.png" title="Выбираем карту памяти" width="508" /></a><br />
<br />
В появившимся меню с предупреждением жмём "<strong>OK</strong>"<br />
<br />
<a href="http://itbg.files.wordpress.com/2009/12/8.png"><img alt="Намимаем OK" class="size-full wp-image-546" height="334" src="http://itbg.files.wordpress.com/2009/12/8.png" title="Намимаем OK" width="511" /></a><br />
<br />
<strong>Теперь самое важное:</strong><br />
Вставляем "<strong>EOS_DEVELOP</strong>" в <strong>0x47</strong> и "<strong>BOOTDISK</strong>" в <strong>0x5C</strong><br />
Т.е как показано на рисунке.<br />
<br />
<a href="http://itbg.files.wordpress.com/2009/12/9.png"><img alt="Загрузочная CF FAT 32" class="size-full wp-image-547" height="222" src="http://itbg.files.wordpress.com/2009/12/9.png" title="Загрузочная CF FAT 32" width="600" /></a><br />
<br />
Сохраняем и закрываем программу.<br />
<br />
<strong>6)</strong> Скачать файл <a href="http://400d.googlecode.com/files/AUTOEXEC.BIN.20090913">AUTOEXEC.BIN.20090913</a>, переименовать его в <strong>AUTOEXEC.BIN</strong> и положить в корень карты памяти.<br />
Файл <strong>testfir.fir</strong> можно удалить, он больше не понадобиться<br />
<strong>7)</strong> Вставить CF карту<strong> обратно</strong> в <strong>Canon 400d</strong> и включить.<br />
При включении моргнёт кнопка "<strong>Direct prinе</strong>" белым светом.<br />
<br />
<strong>Поздравляю, Вы обновили свой Canon 400d и вдохнули в него вторую жизнь.</strong><br />
<br />
<strong>Ссылки:</strong><br />
<a href="http://code.google.com/p/400d/downloads/list">Сайт мода Canon 400d</a><br />
<a href="http://chdk.wikia.com/wiki/400D">Оригинальная инструкция на английском</a>Davnozduhttp://www.blogger.com/profile/06531201304669465898noreply@blogger.com10tag:blogger.com,1999:blog-9079538622014860007.post-25277108506799898752009-10-18T20:03:00.001+02:002010-07-03T23:31:51.169+02:00Настройка MySQL 5 для VDS/VPS (Very low memory)Всем привет!<br />
Сегодня я решил написать статью про оптимизацию<strong> MySQL 5.x</strong> для запуска и работы в условиях <strong>малого объёма ОЗУ</strong>.<br />
<br />
Проблема стоит особенно остро на <strong>VDS/VPS</strong> серверах, так как там ОЗУ очень немного.<br />
Конкретно в моём случае я довольствуюсь лишь 64Мб и без дополнительного тюнинга MySQL отказался запускаться вообще.<br />
<br />
Почитав некоторое количество форумов, блогов и мануалов я вывел <strong>самый минимальный конфиг</strong>, при котором MySQL может работать.<br />
<br />
<strong>Вот он:</strong><br />
<a name='more'></a><br />
<blockquote><br />
<ol><li># Main MySQL server options</li>
<li>[mysqld]</li>
<li>port = 3306</li>
<li>socket = /var/run/mysqld/mysqld.sock</li>
<li># No locking at all!</li>
<li>skip-locking</li>
<li># Set internal buffers, caches and stacks very low</li>
<li>key_buffer = 16K</li>
<li>max_allowed_packet = 16K</li>
<li>table_cache = 1</li>
<li>sort_buffer_size = 16K</li>
<li>read_buffer_size = 16K</li>
<li>read_rnd_buffer_size = 1K</li>
<li>net_buffer_length = 1K</li>
<li>thread_stack = 16K</li>
<li># Don't listen on a TCP/IP port at all.</li>
<li># Will still work provided all access is done via localhost</li>
<li>skip-networking</li>
<li>server-id = 1</li>
<li># Skip Berkley and Inno DB types</li>
<li>skip-bdb</li>
<li>skip-innodb</li>
<li># Set the query cache low</li>
<li>query_cache_limit = 1048576</li>
<li>query_cache_size = 1048576</li>
<li>query_cache_type = 1</li>
<li># Set various memory limits very low, disable memory-hogging extras</li>
<li>[mysqldump]</li>
<li>quick</li>
<li>max_allowed_packet = 16K</li>
<li>[mysql]</li>
<li>no-auto-rehash</li>
<li>[isamchk]</li>
<li>key_buffer = 16K</li>
<li>sort_buffer_size = 16K</li>
<li>[myisamchk]</li>
<li>key_buffer = 16K</li>
<li>sort_buffer_size = 16K</li>
<li>[mysqlhotcopy]</li>
<li>interactive-timeout</li>
</ol><br />
</blockquote><br />
Именно с ним мне получилось первый раз <strong>удачно</strong> <strong>стартовать</strong> MySQL.<br />
Посмотрев результат и оценив расход ОЗУ я решил расщедриться и<strong> увеличить кэш</strong>, заодно и пометь некоторые <strong>параметры</strong>.<br />
<br />
<strong>Вот что у меня получилось в итоге:</strong><br />
<blockquote><br />
<ol><li>[mysqld]</li>
<li>datadir=/var/lib/mysql</li>
<li>socket=/tmp/mysql/mysql.sock</li>
<li>user=mysql</li>
<li>port = 3306</li>
<li>bind-address = 127.0.0.1</li>
<li># No locking at all!</li>
<li>skip-locking</li>
<li># Set internal buffers, caches and stacks very low</li>
<li>key_buffer = 16K</li>
<li>max_allowed_packet = 16K</li>
<li>table_cache = 1</li>
<li>sort_buffer_size = 16K</li>
<li>read_buffer_size = 16K</li>
<li>read_rnd_buffer_size = 1K</li>
<li>net_buffer_length = 1K</li>
<li>thread_stack = 16K</li>
<li># Don't listen on a TCP/IP port at all.</li>
<li># Will still work provided all access is done via localhost</li>
<li>skip-networking</li>
<li>server-id = 1</li>
<li># Skip Berkley and Inno DB types</li>
<li>skip-bdb</li>
<li>skip-innodb</li>
<li># Set the query cache low</li>
<li>query_cache_limit = 500K</li>
<li>query_cache_size = 3M</li>
<li>query_cache_type = 1</li>
<li># Set various memory limits very low, disable memory-hogging extras</li>
<li>[mysqldump]</li>
<li>quick</li>
<li>max_allowed_packet = 16K</li>
<li>[mysql]</li>
<li>no-auto-rehash</li>
<li>[isamchk]</li>
<li>key_buffer = 16K</li>
<li>sort_buffer_size = 16K</li>
<li>[myisamchk]</li>
<li>key_buffer = 16K</li>
<li>sort_buffer_size = 16K</li>
<li>[mysqlhotcopy]</li>
<li>interactive-timeout</li>
</ol><br />
</blockquote><br />
Пока что пользуюсь без проблем этим конфигом, при моих ресурсах ОЗУ он вполне <strong>меня устраивает</strong>.<br />
Все опции<strong> прокомментированы</strong> прямо в конфиге и очень понятны.<br />
Если что, Вы всегда можете<strong> задать вопрос в комментариях</strong>.Davnozduhttp://www.blogger.com/profile/06531201304669465898noreply@blogger.com3tag:blogger.com,1999:blog-9079538622014860007.post-91481890409283948232009-10-15T22:18:00.001+02:002010-07-03T23:32:32.633+02:00Удаление ненужных зависимостей в ArchLinuxВсем привет!<span style="background-color:#ffffff;"> </span><br />
<br />
Попался на глаза небольшой <strong>рецепт</strong> по удалению ненужных зависимостей.<br />
<br />
Сначала найдём ненужные файлы и ознакомимся с их списком:<br />
Делается это командой:<br />
<blockquote>pacman -Qdt</blockquote><br />
Посмотрели?<br />
Пора бы <strong>избавиться</strong> от этого мусора, командой:<br />
<blockquote>pacman -Rsn $(pacman -Qdtq)</blockquote><br />
Всё просто и эффективно.<br />
<a href="http://tuxtraining.com/2009/10/02/remove-unused-dependencies-in-arch-linux">Источник</a>Davnozduhttp://www.blogger.com/profile/06531201304669465898noreply@blogger.com1tag:blogger.com,1999:blog-9079538622014860007.post-87616548764928027742009-10-10T21:24:00.000+02:002010-07-03T18:28:40.447+02:00Wordpress, привязываем к gmail и прочей почте без плагиновВсем привет!<br/>Это мой первый пост на <a href="http://itbg.davnozdu.ru">новом домене</a>, откроем новый сезон публикаций.<br/>Вы можете подписаться на новую <strong>RSS ленту</strong> по <a href="http://feeds.feedburner.com/Itbg">этой ссылке</a><br/><br/><strong>Вступление:</strong><br/><br/>В связи с переездом на новый домен и переносом постов моего блога в новый блог возникла маленькая проблема.<br/>А именно, нужно было настроить почтовые уведомления о сообщениях.<br/>Поскольку у меня слабенький <strong>VDS</strong> и ресурсов в нём совсем не много я разумеется отключил всё лишнее.<br/>Включая <strong>Sendmail</strong>.<br/>И действительно, зачем крутить демона когда его можно заменить лёгкой альтернативой: <a href="http://itbg.davnozdu.ru/?p=232">ssmtp</a><br/><!--more Читать Далее...--><br/><strong>Проблема:</strong><br/><br/>Она то как раз связана с <strong>Wordpress</strong>, дело в том что по умолчанию Wordpress использует <strong>Sendmail</strong> для отправки писем.<br/>А поскольку я его выключил да и в добавок использую Gmail аккаунт то нужно было перенастроить Wordpress именно на <strong>Gmail</strong>.<br/><br/>Вариантов привязки Wordpress к любой почте масса, но большинство их основана на плагинах.<br/>А зачем нам пользоваться всякими дополнительными приблудами если в Wordpress уже <strong>имеются</strong> встроенные средства доставки почты.<br/>Нужно всего лишь их правильно настроить.<br/><br/>Wordpress использует для отправки почты <a href="http://phpmailer.worxware.com/index.php">phpmailler</a><br/>А он уже давно умеет посылать почту с использование<strong> SSL</strong><br/>Для примера <strong>привяжем блог на Wordpress к почте Gmail (Google Apps)</strong><br/><br/>Приступим:<br/><br/>Для начала нужно убедиться, что у Вас есть следующие:<br/><blockquote>1) Открыт порт <strong>465</strong><br/>2) PHP поддерживает <strong>SSL</strong><br/>3) PHP поддерживает отправку <strong>почты </strong></blockquote><br/>Вооружившись любимым текстовым редактором лезем в исходники и правим строки:<br/><br/>1)<strong>/wp-includes/pluggable.php</strong><br/><blockquote><strong>$phpmailer->isMail();</strong><br/><br/>Меняем на<br/><br/><strong>$phpmailer->isSMTP();</strong></blockquote><br/>2)<strong>/wp-includes/class-phpmailer.php</strong><br/>Настраиваем параметры почты, изменяя параметры<br/><blockquote><code><br/>var $Host = "smtp.gmail.com";<br/>public $Port = 465;<br/>public $SMTPSecure = 'ssl';<br/>public $SMTPAuth = true;<br/>public $Username = '[username]';<br/>public $Password = '[password]';<br/></code></blockquote><br/>На этом всё, сохраняем и пробуем.Davnozduhttp://www.blogger.com/profile/06531201304669465898noreply@blogger.com5tag:blogger.com,1999:blog-9079538622014860007.post-78763491595117867142009-09-26T16:45:00.000+02:002010-07-03T18:28:39.806+02:00Новый Chromium для ArchLinux (PKBUILD)Всем привет!<br/><br/>Решил с Вами, мои дорогие почитатели моего блога, поделиться свежим самодельным <strong>PKBUILD</strong>'ом <strong>Google Chrome.</strong><br/><br/>Всё началось с того, что ещё вчера я решил поставить этот браузер для своей мамы.<br/>В качестве ОС у неё трудиться <strong>ArchLinux</strong>.<br/>Так вот, поискав в <a href="http://aur.archlinux.org">AUR'е</a> последний билд и не найдя его я сильно расстроился.<br/><br/>Дело в том, что те версии, который там находятся в упор не хотят либо скачиваться, либо запускаться.<br/>Пришлось по одному из шаблонов делать свой <strong>PKBULD</strong>.<br/>К счастью всё оказалось очень просто и быстро.<br/><br/><strong>Вот ОН:</strong><br/><!--more Читать Далее...--><br/><blockquote><br/><ol><br/> <li><span style="color:#666666;"># Contributor: Christer Edwards <christer@zelut.org></span></li><br/> <li><span style="color:#666666;"># PKGBUILD FAQ: http://blog.zelut.org/chromium-browser-faq-arch/</span></li><br/> <li><span style="color:#007800;">pkgname</span>=chromium-browser-4.0.219.3</li><br/> <li><span style="color:#007800;">pkgver</span>=4.0.219.3~svn20090925r27181</li><br/> <li><span style="color:#007800;">pkgrel</span>=<span style="color:#000000;">1</span></li><br/> <li><span style="color:#007800;">pkgdesc</span>=<span style="color:#ff0000;">"Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all Internet users to experience the web."</span></li><br/> <li><span style="color:#007800;">url</span>=<span style="color:#ff0000;">"http://code.google.com/chromium/"</span></li><br/> <li><span style="color:#000000;">if</span> <span style="color:#7a0874;">[</span> <span style="color:#ff0000;">"<span style="color:#007800;">${CARCH}</span>"</span> = <span style="color:#ff0000;">'x86_64'</span> <span style="color:#7a0874;">]</span>; <span style="color:#000000;">then</span></li><br/> <li> <span style="color:#007800;">depends</span>=<span style="color:#7a0874;">(</span><span style="color:#ff0000;">'atk'</span> <span style="color:#ff0000;">'gtk2'</span> <span style="color:#ff0000;">'nss'</span> <span style="color:#ff0000;">'lib32-gtk2'</span> <span style="color:#ff0000;">'lib32-libxdamage'</span></li><br/> <li> <span style="color:#ff0000;">'lib32-nspr'</span> <span style="color:#ff0000;">'lib32-openssl'</span> <span style="color:#ff0000;">'lib32-gconf'</span></li><br/> <li> <span style="color:#ff0000;">'lib32-dbus-glib'</span> <span style="color:#ff0000;">'lib32-cairo'</span> <span style="color:#ff0000;">'lib32-freetype'</span><span style="color:#7a0874;">)</span></li><br/> <li><span style="color:#000000;">elif</span> <span style="color:#7a0874;">[</span> <span style="color:#ff0000;">"<span style="color:#007800;">${CARCH}</span>"</span> = <span style="color:#ff0000;">'i686'</span> <span style="color:#7a0874;">]</span>; <span style="color:#000000;">then</span></li><br/> <li> <span style="color:#007800;">depends</span>=<span style="color:#7a0874;">(</span><span style="color:#ff0000;">'atk'</span> <span style="color:#ff0000;">'gtk2'</span> <span style="color:#ff0000;">'nss'</span> <span style="color:#ff0000;">'gconf'</span> <span style="color:#ff0000;">'cairo'</span> <span style="color:#ff0000;">'freetype2'</span> <span style="color:#ff0000;">'dbus-glib'</span><span style="color:#7a0874;">)</span></li><br/> <li><span style="color:#000000;">fi</span></li><br/> <li><span style="color:#007800;"><span style="color:#c20cb9;">arch</span></span>=<span style="color:#7a0874;">(</span><span style="color:#ff0000;">'i686'</span> <span style="color:#ff0000;">'x86_64'</span><span style="color:#7a0874;">)</span></li><br/> <li><span style="color:#007800;">license</span>=<span style="color:#7a0874;">(</span><span style="color:#ff0000;">'BSD'</span><span style="color:#7a0874;">)</span></li><br/> <li><span style="color:#007800;"><span style="color:#7a0874;">source</span></span>=<span style="color:#7a0874;">(</span>https:<span style="color:#000000;">//</span>launchpad.net<span style="color:#000000;">/</span>~chromium-daily<span style="color:#000000;">/</span>+archive<span style="color:#000000;">/</span>ppa<span style="color:#000000;">/</span>+build<span style="color:#000000;">/</span><span style="color:#000000;">1261263</span><span style="color:#000000;">/</span>+files<span style="color:#000000;">/</span>chromium-browser_<span style="color:#800000;">${pkgver}</span>-0ubuntu1~ucd1~hardy_i386.deb<span style="color:#7a0874;">)</span></li><br/> <li><span style="color:#007800;">md5sums</span>=<span style="color:#7a0874;">(</span><span style="color:#ff0000;">'5aa5f2c658964b069c26054c9fbbfa2c'</span><span style="color:#7a0874;">)</span></li><br/> <li>build<span style="color:#7a0874;">(</span><span style="color:#7a0874;">)</span> <span style="color:#7a0874;">{</span></li><br/> <li> <span style="color:#7a0874;">cd</span> <span style="color:#007800;">$srcdir</span></li><br/> <li> bsdtar xf <span style="color:#ff0000;">"chromium-browser_<span style="color:#007800;">${pkgver}</span>-0ubuntu1~ucd1~hardy_i386.deb"</span> <span style="color:#000000;">||</span> <span style="color:#7a0874;">return</span> <span style="color:#000000;">1</span></li><br/> <li> bsdtar xf data.tar.lzma <span style="color:#660033;">-C</span> <span style="color:#007800;">$pkgdir</span> <span style="color:#000000;">||</span> <span style="color:#7a0874;">return</span> <span style="color:#000000;">1</span></li><br/> <li> <span style="color:#000000;">if</span> <span style="color:#7a0874;">[</span> <span style="color:#ff0000;">"<span style="color:#007800;">${CARCH}</span>"</span> = <span style="color:#ff0000;">'x86_64'</span> <span style="color:#7a0874;">]</span>; <span style="color:#000000;">then</span></li><br/> <li> <span style="color:#666666;">## create wrapper script</span></li><br/> <li> <span style="color:#7a0874;">echo</span> <span style="color:#ff0000;">'#!/bin/bash'</span> <span style="color:#000000;">></span> <span style="color:#007800;">$pkgdir</span><span style="color:#000000;">/</span>usr<span style="color:#000000;">/</span>bin<span style="color:#000000;">/</span>chrome</li><br/> <li> <span style="color:#7a0874;">echo</span> <span style="color:#ff0000;">'export PANGO_RC_FILE="/opt/lib32/config/pango/pangorc"'</span> <span style="color:#000000;">>></span> <span style="color:#007800;">$pkgdir</span><span style="color:#000000;">/</span>usr<span style="color:#000000;">/</span>bin<span style="color:#000000;">/</span>chrome</li><br/> <li> <span style="color:#7a0874;">echo</span> <span style="color:#ff0000;">'export LDPATH="/opt/lib32/lib/:/opt/lib32/usr/lib:/opt/lib32/usr/local/lib"'</span> <span style="color:#000000;">>></span> <span style="color:#007800;">$pkgdir</span><span style="color:#000000;">/</span>usr<span style="color:#000000;">/</span>bin<span style="color:#000000;">/</span>chrome</li><br/> <li> <span style="color:#7a0874;">echo</span> <span style="color:#ff0000;">'/usr/bin/chromium-browser &'</span> <span style="color:#000000;">>></span> <span style="color:#007800;">$pkgdir</span><span style="color:#000000;">/</span>usr<span style="color:#000000;">/</span>bin<span style="color:#000000;">/</span>chrome</li><br/> <li> <span style="color:#c20cb9;">chmod</span> +x <span style="color:#007800;">$pkgdir</span><span style="color:#000000;">/</span>usr<span style="color:#000000;">/</span>bin<span style="color:#000000;">/</span>chrome</li><br/> <li> <span style="color:#000000;">fi</span></li><br/> <li><span style="color:#7a0874;">}</span></li><br/></ol><br/></blockquote><br/>Отдельно с подсветкой синтаксиса: <a href="http://pastebin.com/f2cc127d9">http://pastebin.com/f2cc127d9</a><br/><br/>Ещё нужно в ручную поставить все зависимости и создать <strong>сим. линки</strong>:<br/><blockquote>sudo ln -s /usr/lib/libnss3.so /usr/lib/libnss3.so.1d<br/>sudo ln -s /usr/lib/libnssutil3.so /usr/lib/libnssutil3.so.1d<br/>sudo ln -s /usr/lib/libsmime3.so /usr/lib/libsmime3.so.1d<br/>sudo ln -s /usr/lib/libssl3.so /usr/lib/libssl3.so.1d<br/>sudo ln -s /usr/lib/libplds4.so /usr/lib/libplds4.so.0d<br/>sudo ln -s /usr/lib/libplc4.so /usr/lib/libplc4.so.0d<br/>sudo ln -s /usr/lib/libnspr4.so /usr/lib/libnspr4.so.0</blockquote><br/>Пробывал его отгрузить в <strong>AUR</strong> но буквально спустя 10 минут его удалили.<br/><br/><span style="background-color:#ffffff;">В письме с причиной удаления значилось, что мне нужно обратиться к автору ветки <strong>chromium</strong> в <strong>AUR</strong> и попросить его обновить свой <strong>PKBUILD.</strong></span><br/><br/><strong>Оригинал:</strong><br/><blockquote>hi, there is already a package EXACTLY the same on<br/><a style="text-decoration:underline;" href="http://aur.archlinux.org/packages.php?ID=24266" target="_blank">http://aur.archlinux.org/packages.php?ID=24266</a><br/><br/>don't upload new packages _just_ because is out of date. write in<br/>comments, email the maintainer and ask to update it. if he doesn't do<br/>that, sent an email to aur-general and ask to be orphaned</blockquote><br/>Поэтому я в своём блоге делюсь с Вами своим <strong>первым</strong> PKBUILD'ом.Davnozduhttp://www.blogger.com/profile/06531201304669465898noreply@blogger.com6tag:blogger.com,1999:blog-9079538622014860007.post-43983874303429111212009-07-30T15:51:00.000+02:002010-07-03T18:28:39.477+02:00Копирование фото через Picture Transfer Protocol (PTP) в Linux, FreeBSDВсем привет!<br/><br/>Мне посчастливилось стать обладателем чудесного фотоаппарата <strong>Canon EOS 400d</strong>.<br/>Сам фотик в качестве накопителя использует карты <strong>CompactFlash (CF) </strong>формата.<br/>И всё было хорошо, пока я подключил его к ПК.<br/>Оказывает в данной модели для передачи изображений используется протокол <strong>PTP</strong><br/><br/>Вот небольшая выдержка из <a href="http://club.mabila.ua/wiki/PTP">энциклопедии</a><br/><blockquote><strong>PTP (Picture Transfer Protocol) </strong>– это широко распространенный протокол передачи изображений, который позволяет передавать снимки с фотоаппарата на компьютер, а так же на другие внешние устройства без установки дополнительных драйверов</blockquote><br/>Для пользователей <strong>ОС Widnows</strong> проблем нет, подключил и пользуйся как обычным <strong>Flash</strong> накопителем.<br/>Под Linux такие устройства в качестве накопителя не отображаются.<br/>Пришлось лезть в <strong>Google</strong> и узнавать способы передачи файлов по <strong>PTP</strong> протоколу.<br/><br/>К счастью я довольно быстро вышел на <a href="http://www.gphoto.org/">проект</a>, который как раз занимается развитием PTP в linux.<br/><br/>Для копирования фото предлагается <strong>2 решения</strong>:<br/><ol> 1) С использование утилиты gphoto2</ol><br/><ol> 2) С использование FUSE и gphotofs</ol><br/>Давайте рассмотрим каждый из них.<br/><!--more Читать Далее...--><br/><strong>Способ 1. С использование утилиты gphoto2</strong><br/>Всё очень просто, подключаем камеру, даём команду на копирование всех файлов<br/>Для моего фотоаппарата команда выглядит так:<br/><blockquote><code>gphoto2 --camera "Canon EOS 400D (PTP mode)" --get-all-files</code></blockquote><br/>Посмотреть поддержку своей камеры можно с помощью ключа <strong> --list-cameras</strong><br/>За остальными командами идём в <strong>man ghoto2</strong><br/><br/><strong>Способ 2. С использование FUSE и gphotofs</strong><br/>На мой взгляд этот способ намного лучше и легче первого.<br/>Мы просто примонтируем камеру с помощью<strong> FUSE</strong> и <strong>gphotofs</strong> в качестве обычного накопителя.<br/><br/>Возможности <strong>gphotofs</strong>:<br/><blockquote><strong>You can:</strong><br/>- Traverse directories<br/>- Read the contents of files<br/>- Delete files<br/>- Move files (Read + delete)<br/>- Use 'du' to measure file size<br/>- Mount the filesystem before plugging in a camera.<br/>- Add/Remove directories<br/>- Add (upload) files.<br/>- Get free space information<br/>- This one seems to be very much at the mercy of the camera<br/>manufacturer. I don't know if it'll ever be possible in a<br/>general way.<br/>(Depends on gp_camera_get_storageinfo()).<br/><br/><strong>You cannot:</strong><br/>- Modify files still has some problems.<br/>- Rename files/directories<br/>- Unplug and replug a camera and expect things to keep working.<br/>- The backend gets confused and you'll just get errors when<br/>you try to do anything. Unmount and remount the filesystem<br/>and you'll be back in business.</blockquote><br/>Для использования<strong> FUSE</strong> у Вас в ядре должна быть включена поддержка <strong>Filesystem in Userspace support</strong><br/><br/>Дальше всё очень просто:<br/>Установив <strong>FUSE</strong> и<strong> gphotofs </strong>мы просто даём команду монтирования:<br/><blockquote>gphotofs <точка монттирования></blockquote><br/>И работаем с камерой как с обычным накопителем.<br/>После окончания работы размонтируем девайс командой:<br/><blockquote>fusermount -u <точка монтирования></blockquote><br/>Всё очень просто, быстро и эффективно.Davnozduhttp://www.blogger.com/profile/06531201304669465898noreply@blogger.com3tag:blogger.com,1999:blog-9079538622014860007.post-15396517802851511162009-06-29T15:39:00.000+02:002010-07-03T18:28:38.751+02:00Обработка видео, записанного на miniDV камеру под LinuxВсем привет!<br/>После большого перерыва, вызванного сдачей диплома в институте я вновь продолжу радовать Вас интересными статьями.<br/><br/>Сегодня мы рассмотрим вопрос кодирования видео с miniDV видеокамеры.<br/><br/><strong>Задача:</strong> Сбросить видео на ПК и пережать его для последующего хранения.<br/><br/><strong>Нам потрбуеться</strong>:<br/>1) Ядро с поддержкой <strong>FireWire 1394</strong> или <strong>v4l</strong> (смотря кто как будет скидывать видео)<br/>2) Программа <strong>dvgrab</strong> (собственно с её помощью мы будем грабить видео с miniDV кассеты из консоли)<br/>3) Программа <strong>mencoder</strong> (Входит в поставку с видео плеером mplayer)<br/>4) Программа <strong>avimerge</strong> для склеивания нескольких avi файлов в один (входит в состав <strong>transcode</strong>)<br/><br/><strong>Грабим видео</strong>:<br/><br/>Для начала нам потребуется подключить видеокамеру к ПК.<br/>В случае с <strong>FireWire 1394</strong> никаких драйверов нам не нужно, просто подключаем и работаем.<br/>В случае подключения камеры по средствам <strong>USB</strong> нам нужно определиться с её поддержкой ядром Linux.<br/>Как мы уже знаем, сделать это можно с помощью команды <strong>lsusb</strong> и затем скомпилировать подходящий модуль ядра.<br/>Я решил упростить себе жизнь и просто купил внешнюю карту<strong> FireWire 1394</strong>.<br/><br/>Для начала установим пакет <a href="http://www.kinodv.org/">dvgrab</a><br/><!--more Читать Далее...--><br/>Затем нам нужно перемотать <strong>miniDV</strong> кассету на начало и подключить камеру к ПК.<br/><br/>Теперь перейдём к процессу сграбливания видео:<br/><br/>Утилита <strong>dvgrab</strong> имеет множество полезных параметров, давайте рассмотрим некоторые из них:<br/><br/><strong>-a, -autosplit</strong> - Этот параметр отвечает за нарезку видеофайлов, т.е <strong>dvgrab</strong> будет резать видео автоматические на куски, между нажатиями на кнопку <strong>запись/стоп</strong>. Это очень удобно если Вы хотите рассортировать сюжеты.<br/><br/><strong>-f, -format</strong> - Позволяет в ручную задать формат видео потока, если параметр не задан, то <strong>dvgrab</strong> автоматически попытается определить формат данных. Если у Вас <strong>hdv</strong> камера то нужно обязательно указать этот параметр.<br/><br/><strong>-F, -frames</strong> - Количество кадров<br/><br/><strong>-s, -size</strong> - Устанавливает лимит на видео файл. По умолчанию установлен размер 1024 мегабайта, что удобно если Вы монтируете DVD диск.<br/><br/><strong>-V, -v4l2</strong> Если Вы планируете скинуть видео через драйвер <strong>v4l2</strong><br/><br/>О остальных параметрах Вы можете почитать <strong>man dvgrab</strong><br/><br/>В моём случае я воспользовался вот такой конструкцией:<br/><blockquote>dvgrab --format raw -size 20000 cam.dv</blockquote><br/>Поскольку размер одной кассеты около <strong>13 Гб</strong>, то всё видео будет сохранено одним файлом, это для удобства кодирования.<br/><br/><strong>Кодируем видео:</strong><br/><br/>Да бы не вдаваться в подробности я дам Вам мою конструкцию для перегона видео:<br/><br/><strong>Первый проход</strong>:<br/><blockquote>mencoder cam001.dv -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1800:vhq:vpass=1:vqmin=1:vqmax=31 -oac mp3lame -lameopts vbr=2:q=7 -o mpeg4.avi -vf field,scale=768:576 -aspect 4:3</blockquote><br/><strong>Второй проход</strong>:<br/><blockquote>mencoder cam001.dv -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1800:vhq:vpass=2:vqmin=1:vqmax=31 -oac mp3lame -lameopts vbr=2:q=7 -o mpeg4.avi -vf field,scale=768:576 -aspect 4:3</blockquote><br/>При таких параметрах <strong>1 час</strong> видео занимает около <strong>800 Мб</strong><br/>При необходимости Вы можете изменить битрейд видео и звука для достижения желаемого качества.<br/><br/><strong>Склеиваем видео</strong>:<br/><br/>Для склеивания видео в один большой файл мы воспользуемся утилитой <strong>avimerge</strong>.<br/>Делается это очень просто:<br/><blockquote>avimerge -o com.avi -i 1.avi 2.avi 3.avi</blockquote><br/>Где <strong>com.avi</strong> - это итоговый видео файл, а <strong>1.avi 2.avi 3.avi </strong>- это видео файлы, предназначенные для склеивания.<br/><br/>После обработки полученное видео Вы можете нарезать на диск или разместить в интернете.<br/>Из видео хостингов я рекомендую воспользоваться <a href="http://www.veoh.com/">www.veoh.com</a><br/>На нём нет ограничения как по размеру видеофайла, так и по продолжительности самого видео.Davnozduhttp://www.blogger.com/profile/06531201304669465898noreply@blogger.com8tag:blogger.com,1999:blog-9079538622014860007.post-38983822589910047202009-05-24T19:32:00.000+02:002010-07-03T18:28:38.432+02:00Скачиваем с Rapidshare в консоли и автоматически сбрасываем PPP сессиюВсем привет!<br/><br/>Сегодня я решил выложить свои скрипты для скачивания файлов с <a href="http://rapidshare.com">Рапиды</a> с помощью wget и с сбросом PPP сессии.<br/><br/><strong>Применение:</strong><br/>Для примера возьмём моего провайдера.<br/>Для выхода в интернет я использую ADSL модем с безлимитным тарифным планом.<br/>При сбросе сессии мне даётся случайный внешний IP адрес.<br/><br/><strong>Идея: </strong><br/>Сделать скачивание с Рапиды через консоль и после каждого скачивания сбрасывать PPP сессию для получения нового IP адреса и не ждать 15 минут.<br/><br/><strong>Оборудование:</strong><br/>Модем у меня StarNet который я успешно перешил в Acorp Lan 120.<br/>Для работы нам потребуется открытый доступ к модему через telnet.<br/>Программа <strong>expect</strong>, для автоматизации сброса сессии.<br/><br/><!--more Читать Далее...--><br/><strong>Скрипты:</strong><br/><br/>При обрыве соединения ppp0 происходит автоматическое переподключение.<br/>Все скрипты сложить в одну папку.<br/><br/><strong>p1</strong> - Узнаёт <strong>PID</strong> демона <strong>PPPD</strong><br/><br/><strong>Листинг</strong>:<br/><blockquote><code><span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><a href="http://s-c.me/1543/s">Copy Source</a> | <a href="http://s-c.me/1543/h">Copy HTML</a> </span></code><br/><ol> <span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><br/> <li>#!/usr/bin/expect -f</li><br/> <li>log_user <span style="color:#a31515;">0</span></li><br/> <li>spawn telnet <span style="color:#a31515;">192.168.1</span>.<span style="color:#a31515;">1</span></li><br/> <li>expect <span style="color:#a31515;">"BusyBox on router login:"</span> {send <span style="color:#a31515;">"root\r"</span>}</li><br/> <li>expect <span style="color:#a31515;">"Password:"</span> {send <span style="color:#a31515;">"Admin\r"</span>}</li><br/> <li>expect <span style="color:#a31515;">"#"</span> {send <span style="color:#a31515;">"ps ax |grep pppd\r"</span>}</li><br/> <li>log_user <span style="color:#a31515;">1</span></li><br/> <li>send <span style="color:#a31515;">"exit\r"</span></li><br/> <li>expect eof</li><br/></span></ol><br/></blockquote><br/><strong>p2 </strong>- Убивает <strong>PPPD</strong> по <strong>PID</strong><br/>И модем СРАЗУ автоматически поднимает заново.<br/><br/><strong>Листинг:</strong><br/><blockquote><code><span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><a href="http://s-c.me/1544/s">Copy Source</a> | <a href="http://s-c.me/1544/h">Copy HTML</a> </span></code><br/><ol> <span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><br/> <li>#!/usr/bin/expect -f</li><br/> <li><span style="color:#0000ff;">set</span> pid [lindex $argv <span style="color:#a31515;">0</span>]</li><br/> <li>log_user <span style="color:#a31515;">0</span></li><br/> <li>spawn telnet <span style="color:#a31515;">192.168.1</span>.<span style="color:#a31515;">1</span></li><br/> <li>expect <span style="color:#a31515;">"BusyBox on router login:"</span> {send <span style="color:#a31515;">"root\r"</span>}</li><br/> <li>expect <span style="color:#a31515;">"Password:"</span> {send <span style="color:#a31515;">"Admin\r"</span>}</li><br/> <li>expect <span style="color:#a31515;">"#"</span> {send <span style="color:#a31515;">"kill $pid"</span>}</li><br/> <li>send <span style="color:#a31515;">"exit\r"</span></li><br/> <li>expect eof</li><br/></span></ol><br/></blockquote><br/>Поправьте <strong>IP</strong> модема на свой.<br/><br/>Ещё нам потребуется скрипт <a href="http://emkay.unpointless.com/FreeAutomatedRapidShareDownloader/DownloadFromRS-1.2.sh">DownloadFromRS</a><br/>Он как раз предназначен для скачивания файлов с Рапиды через консоль, использую wget.<br/><br/>Теперь нам нужно отредактировать скрипт <a href="http://emkay.unpointless.com/FreeAutomatedRapidShareDownloader/DownloadFromRS-1.2.sh">DownloadFromRS<br/></a> таким образом, что-бы после окончания скачивания он выполнял скрип для сброса PPP сессии.<br/><br/><strong>Листинг модифицированного скрипта:</strong><br/><blockquote><code><span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><a href="http://s-c.me/2065/s">Copy Source</a> | <a href="http://s-c.me/2065/h">Copy HTML</a> </span></code><br/><ol> <span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><br/> <li><span style="color:#696969;">#!/bin/bash</span></li><br/> <li><span style="color:#696969;">################################################</span></li><br/> <li><span style="color:#696969;">#Purpose: Automate the downloading of files from rapidshare using the free account </span></li><br/> <li><span style="color:#696969;">#using simple unix tools.</span></li><br/> <li><span style="color:#696969;">#Date: 14-7-2008</span></li><br/> <li><span style="color:#696969;">#Authors: Slith, Tune</span></li><br/> <li><span style="color:#696969;">#Improvements: Please email them to jwhatson@gmail.com</span></li><br/> <li><span style="color:#696969;">#Post Feedback and comments to http://emkay.unpointless.com/Blog/?p=63</span></li><br/> <li><span style="color:#696969;">#Notes: To use curl instead of wget use 'curl -s' and 'curl -s -d'</span></li><br/> <li><span style="color:#696969;">#Version: 1.2 - Rapidshare has added a wait time in between file downloads. On top of your download</span></li><br/> <li><span style="color:#696969;">#to start. This has been fixed.</span></li><br/> <li><span style="color:#696969;">#Added a 'kill time' feature. Specify killTime as an hour of the day and if the time is greater than this. </span></li><br/> <li><span style="color:#696969;">#the script will end. Useful for using cron to start script at offpeak time and killing it when off speak ends. </span></li><br/> <li><span style="color:#696969;">################################################</span></li><br/> <li>mirror=dt.rapidshare.com;</li><br/> <li><span style="color:#696969;">## possible mirrors</span></li><br/> <li><span style="color:#696969;"># cg.rapidshare.com</span></li><br/> <li><span style="color:#696969;"># l34.rapidshare.com</span></li><br/> <li><span style="color:#696969;"># tg.rapidshare.com</span></li><br/> <li><span style="color:#696969;"># gc2.rapidshare.com</span></li><br/> <li><span style="color:#696969;"># dt.rapidshare.com</span></li><br/> <li><span style="color:#696969;"># tl2.rapidshare.com</span></li><br/> <li><span style="color:#696969;"># l32.rapidshare.com</span></li><br/> <li><span style="color:#696969;"># l3.rapidshare.com</span></li><br/> <li><span style="color:#696969;"># gc.rapidshare.com</span></li><br/> <li><span style="color:#696969;"># l33.rapidshare.com</span></li><br/> <li><span style="color:#696969;"># tl.rapidshare.com</span></li><br/> <li><span style="color:#696969;"># cg2.rapidshare.com</span></li><br/> <li>killTimeEnable=<span style="color:#008000;">0</span></li><br/> <li>killTime=<span style="color:#008000;">9</span></li><br/> <li><span style="color:#0000ff;">function</span> getOutputFromFreeUserSubmit(){</li><br/> <li> URL=$(wget -q -O - <span style="color:#cc6633;">$line</span> | <span style="color:#cc6633;">grep</span> <span style="color:#008000;">"<form id=\"ff\" action=\""</span> | <span style="color:#cc6633;">grep</span> -o <span style="color:#008000;">'http://[^"]*'</span>);</li><br/> <li> output=$(wget -q -O - --post-data <span style="color:#008000;">"dl.start=Free" "$URL"</span>);</li><br/> <li>}</li><br/> <li><span style="color:#0000ff;">while</span> <span style="color:#cc6633;">read</span> line</li><br/> <li><span style="color:#0000ff;">do</span></li><br/> <li> <span style="color:#0000ff;">if</span> [[ <span style="color:#cc6633;">$killTimeEnable</span> -eq <span style="color:#008000;">1</span> && $(date +%H) -gt <span style="color:#cc6633;">$killTime</span> ]]; <span style="color:#0000ff;">then exit</span>; <span style="color:#0000ff;">fi</span>;</li><br/> <li> getOutputFromFreeUserSubmit output; <span style="color:#696969;">#call getOutputFromFreeUserSubmit, result is stored in $output</span></li><br/> <li> posibleWaitTime=$(<span style="color:#0000ff;">echo</span> <span style="color:#008000;">"$output"</span> | <span style="color:#cc6633;">grep</span> <span style="color:#008000;">"try again in about"</span> | <span style="color:#cc6633;">grep</span> -o <span style="color:#008000;">"[0-9]\{1,3\}"</span>);</li><br/> <li> <span style="color:#0000ff;">if</span> [ -z <span style="color:#008000;">"$posibleWaitTime"</span> ]; <span style="color:#0000ff;">then</span> <span style="color:#696969;">#check for zero lenght string</span></li><br/> <li> <span style="color:#0000ff;">echo</span> <span style="color:#008000;">"No wait time, likely to be the first file you have downloaded in a while"</span>;</li><br/> <li> <span style="color:#0000ff;">else</span></li><br/> <li> <span style="color:#0000ff;">echo</span> <span style="color:#008000;">"Waiting $[ $posibleWaitTime+1] minutes (in between file download wait)"</span>;</li><br/> <li> <span style="color:#cc6633;">sleep</span> $[ <span style="color:#cc6633;">$posibleWaitTime</span>+<span style="color:#008000;">1</span>]m;</li><br/> <li> getOutputFromFreeUserSubmit output; <span style="color:#696969;">#Now we have waited we will try again...</span></li><br/> <li> <span style="color:#0000ff;">fi</span></li><br/> <li> <span style="color:#0000ff;">time</span>=$(<span style="color:#0000ff;">echo</span> <span style="color:#008000;">"$output"</span> | <span style="color:#cc6633;">grep</span> <span style="color:#008000;">"var c=[0-9]*;"</span> | <span style="color:#cc6633;">grep</span> -o <span style="color:#008000;">"[0-9]\{1,3\}"</span>);</li><br/> <li> ourfile=$(<span style="color:#0000ff;">echo</span> <span style="color:#008000;">"$output"</span> | <span style="color:#cc6633;">grep</span> <span style="color:#008000;">"document.dlf.action="</span> | <span style="color:#cc6633;">grep</span> -o <span style="color:#008000;">"http://[^\"]*$mirror[^\\]*"</span>);</li><br/> <li> <span style="color:#0000ff;">echo</span> <span style="color:#008000;">"Waiting $time secs for download of $ourfile"</span>;</li><br/> <li> <span style="color:#cc6633;">sleep $time</span>;</li><br/> <li> <span style="color:#cc6633;">wget $ourfile</span>;</li><br/> <li> ./p1 | <span style="color:#cc6633;">grep</span> pppd | <span style="color:#cc6633;">grep</span> -v <span style="color:#cc6633;">grep</span> | <span style="color:#cc6633;">awk</span> <span style="color:#008000;">'{print $1;}'</span> | <span style="color:#cc6633;">xargs</span> ./p2;</li><br/> <li> <span style="color:#cc6633;">sleep</span> <span style="color:#008000;">5</span>;</li><br/> <li><span style="color:#0000ff;">done</span> < input.txt</li><br/></span></ol><br/></blockquote><br/>Осталось сделать файл<strong> исполняемым</strong>, закинуть нужные ссылки в файл <strong>input.txt </strong>и запустить скачивание.<br/>Все скрипты должны лежать в <strong>одной</strong> папке.<br/>Всё очень просто и эффективно.<br/><br/><strong>PS</strong>. Так-же можно сделать обрыв VPN соединения и т.д<br/>Динамический IP - это круто!<br/><br/><strong>Источник:</strong><br/><a href="http://emkay.unpointless.com/Blog/?p=63">Статья про скачивание с Рапиды.</a>Davnozduhttp://www.blogger.com/profile/06531201304669465898noreply@blogger.com4tag:blogger.com,1999:blog-9079538622014860007.post-10953242528365206482009-05-17T00:59:00.000+02:002010-07-03T18:28:33.238+02:00Прошивка и обновления GPS навигаторов на базе платформы OS82C (в
качестве примера)Всем привет!<br/><br/>Решил написать у себя в блоге всю информацию о своём навигаторе, которую мне удалось найти и узнать.<br/><br/>Навигатор у меня китайского производства, сделан на базе платформы <strong>OS82C</strong><br/><br/>Подробнее о нём Вы можете почитать в моём <a href="http://itbg.wordpress.com/2009/03/27/%d1%80%d0%b0%d0%b7%d0%bb%d0%be%d1%87%d0%ba%d0%b0-gps-%d0%bd%d0%b0%d0%b2%d0%b8%d0%b3%d0%b0%d1%82%d0%be%d1%80%d0%b0/">предыдущим посте</a>. Там же есть ссылка на магазин, где он продаётся.<br/><br/>Я покажу Вам как <strong>перепрошить, обновить и восстановить</strong> Ваш <strong>GPS</strong> навигатор, <strong>приступим:</strong><br/><br/><strong>Внимание:</strong> Любое неосторожное действие может <strong>убить </strong> Ваш GPS<br/>Хотя восстановить устройство в большинстве случаев можно прямо дома банальной перепрошивкой.<br/>Все файлы и инструкции смотрите ниже.<br/><br/><strong>Начнём с прошивки:</strong><br/><!--more Читать Далее...--><br/>Оригинальная заводская прошивка лежит <a href="http://www.mediafire.com/?mj8iccdxwnz">ТУТ</a><br/>Нужно файл <strong>OSxxx.img </strong>переименовать в <strong>OS82C.img</strong> и положить на карту памяти, после чего перезагрузить аппарат.<br/>Оригинальная оболочка лежит <a href="http://www.mediafire.com/?momynmiyd12">ТУТ</a><br/><br/>На данный момент существует несколько версий прошивки для данного аппарата.<br/>Последняя на текущий момент с английским интерфейсом лежит <a href="http://rapidshare.com/files/216155785/DX_4.3_5.0_inch_GPS_Windows_CE_System_Software_V3.0.9.11__20090331_.rar">ТУТ</a> Версия <strong>7DA82C.YF.F.2.26</strong><br/><br/>После скачивания распаковать архиватором и поместить файлы в корень Вашей карты памяти, размером не более <strong>2-х Гигабайт</strong><br/><br/>Перезагрузить устройство, оно автоматически прошьётся.<br/>После перепрошивки удалите скопированные файлы с карты памяти, иначе аппарат будет прошиваться постоянно.<br/><br/><strong>Из известных глюков в этой прошивке:</strong><br/><br/>В оболочке исчезает поддержка русского языка.<br/>Невозможно установить пользовательскую клавиатуру.<br/><br/>Ещё есть последняя прошивка.<br/>Скачать можно <a href="http://www.mediafire.com/?xktijy0jmld">ТУТ</a><br/><br/>Версия <strong>7DA82C.YF.F.3.12</strong> (<strong>7DB82C.YF.F.3.12</strong>)<br/><br/><strong>Из минусов</strong> - всё меню становится на китайском языке, но клавиатура на английском.<br/>Лично мне - не критично, всё и так понятно.<br/><br/><strong>Из плюсов</strong> :<br/><blockquote>Опять починили установку своих клавиатур, которую они поломали в <strong>7DA82C.YF.F.2.26</strong><br/>Русская клавиатура устанавливается, проверил.<br/>Остальное не смотрел, наверное ещё чего добавили.<br/>Прошивка стала толще на 10 метров.</blockquote><br/>При прошивке забэкапте содержимое <strong>ResidentFlash2</strong><br/><br/><strong>Файлы в архиве:</strong><br/><blockquote>* GPS.pak<br/>* os82c.img<br/>* Updater.exe<br/>* updater.ini<br/>* YFAutoRun.inf<br/>* YFGo2CE.bld</blockquote><br/><strong>Из нового:<br/></strong><br/><blockquote>Появилась система <strong>Early warning radar system</strong><br/>Гугл сказал что это система обнаружения радаров, которыми ДПС'ники сканируют скорость машины.<br/>К сожалению проверить я это не могу, машины нету.<br/>Но картинки в проге со всякими ментами, светофорами.<br/>Возможно и вправду китайцы что-то там подкрутили.</blockquote><br/>Она находитcя в папке <strong>ResidentFlash2</strong> и называется <strong>Alarm</strong><br/>Интерфейс весь на китайском.<br/>Запускается при старте системы и имеет <strong>98</strong> уровень запуска.<br/>На рабочем столе появляется стрелочка, через неё прога и запускается.<br/><br/>Я её забэкапил на карту памяти и запуск удалил из реестра.<br/><br/>После прошивки выполните <strong>Hardware Test</strong><br/>Затем подцепить к ПК с установленным<strong> MS ActiveSync</strong><br/><br/>Скачать <a href="http://4pda.ru/forum/index.php?showtopic=51743">Registry Workshop</a><br/><br/>И с помощью него изменить параметр:<br/><strong>HKEY_LOCAL_MACHINE\init => Launch50=YFLoader.exe</strong><br/>Меняем значение <strong>YFLoader.exe на explorer.exe</strong><br/><br/>Файл <strong>os82c.img</strong> удаляем, что-бы аппарат не перепрошивался постоянно.<br/><br/>Перезагружаем устройство, восстанавливаем содержимое <strong>ResidentFlash2</strong>.<br/><br/><strong>Затем нужно сбросить реестр</strong>:<br/><br/>Сам реестр храниться в разделе <strong>\regfat</strong><br/>1) Переходим в панель управления => Storage Manager<br/>2) Ищем самый маленький раздел на <strong>DSK1</strong><br/>У меня это оказался раздел <strong>Part03 (0x11)</strong><br/>Отмонтируем его, форматируем и монтируем обратно.<br/>3) Перезагружаем устройство.<br/><br/>После перезагрузки вылезло какое-то китайское окно с одной кнопкой, после нажатия на неё там что-то ещё обновилось.<br/><br/>Все файлы можно после удалить, если хотите пользоваться разлоченным навигатором, то оставьте файл <strong>YFGo2CE.bld</strong><br/><br/>Эта прошивка стоит на текущий момент на моём навигаторе, мне нравиться.<br/><br/><strong>Обновляем системную оболочку:</strong><br/><br/>Последняя на текущий момент версия <strong>4.0.11.24</strong><br/>Качаем последнюю версию <a href="http://www.mediafire.com/?qnwmnwnji4y">ТУТ</a><br/><br/>Я залил полный комплект, но в нём прошивка старая - <strong>7DA82C.YF.F.2.25</strong> (Последняя - <strong>7DA82C.YF.F.3.12</strong>)<br/><br/>В этой оболочке отсутствует поддержка <strong>Bluetooth</strong>.<br/>Данная проблема решается наложение <a href="http://www.mediafire.com/?tmag2jngmmt">патча</a>.<br/>После обновления файлы мз архива нужно закинуть в папку<strong> /residentflash2/YFAP30/skins/BlackGold_NavReady_CMMB</strong><br/><br/><strong>В новой оболочке очень много изменений:</strong><br/><blockquote><strong>ALARM</strong> (обнаружение радаров)<br/><strong>DTV</strong> (Цифровое телевидение)<br/><strong>WinCE</strong> (Выход в Windows CE, т.е разлочка)<br/><strong>Office</strong> (Word, Excel, PowerPoint, PDFView, ImageViewer)<br/><strong>NES</strong> (Эмулятор Денди)<br/>И ещё много чего интересного.</blockquote><br/><strong>Из минусов:</strong><br/><strong>Нет Русского языка</strong>, только Китайский и <strong>Английский</strong><br/><br/><strong>Для тех кто решил прошить:</strong><br/><br/>1) В корень карты памяти кидаем файл <strong>YFAPP.wzp</strong><br/>Так-же нам потребуется папка<strong> ResidentFlash2</strong> из скаченного комплекта.<br/><br/>2) Перезапускаем аппарат и начнётся процесс обновления оболочки (нужно нажать левую кнопку в окне подтверждения)<br/>Если у Вас разлоченный аппарат то Вам нужно запустить оболочку в ручную, она предложит обновиться.<br/><br/>3) После обновления жмём меню <strong>WinCE</strong> и попадаем в систему, копируем файлы из папки <strong>ResidentFlash2</strong> с <strong>карты</strong> памяти в раздел <strong>ResidentFlash2</strong> на <strong>устройстве</strong>.<br/><br/>4) Удаляем из карты памяти файл <strong>YFAPP.wzp</strong> и папку <strong>ResidentFlash2</strong> и перезапускаем устройство.<br/><br/><strong>Идём дальше: </strong><br/><br/><strong>Сменим заставку на устройстве:</strong><br/><br/>1) Нужно подготовить картинку размером <strong>480x272 pixels</strong>.<br/>2) Сохранить её в <strong>BMP</strong> формате и <strong>24-bit</strong> цветом.<br/>Имя задать такое: "<strong>Logo82c.bmp</strong>".<br/>3) Скопировать картинку в корень карты памяти и перезапустить аппарат, картинка прошьётся в устройство<br/>4) Удалить картинку с карты памяти.<br/><br/><strong>Сброс реестра и форматирование аппарата:</strong><br/><br/>1) Создайте файл<strong> Yformat.fmt</strong><br/>2) В текстовом редакторе запишите туда следующий код: <strong>666F726D6174</strong><br/>3) Скопируйте файл в корень карты памяти<br/>4) Перезапустите аппарат<br/>5) Дождитесь окончания форматирования<br/>6) Вы увидите такое сообщение "<strong>No OS on SD found</strong>" или что-то похожее<br/>7) Выключите аппарат<br/>5) Удалите файл <strong>Yformat.fmt </strong>из картоки<br/>6) Скопируйте прошивку на карту памяти и прошейте аппарат<br/><br/>Удачных экспериментов.<br/><br/><strong>Источники:</strong><br/>Как всегда, форум <a href="http://4pda.ru/forum/index.php?showtopic=96698">4pda</a> на котором я опубликовал все эти инструкции.<br/>По всем вопросам восстановления и прочим навигаторам писать туда.Davnozduhttp://www.blogger.com/profile/06531201304669465898noreply@blogger.com46tag:blogger.com,1999:blog-9079538622014860007.post-13708248371026537712009-05-10T02:19:00.000+02:002010-07-03T18:28:32.276+02:00Автоответчик и приём факсов в ОС Linux с помощью старого Voice модемаВсем привет!<br/><br/>Завалилось у меня тут несколько <strong>Voice модемов</strong>.<br/>Два <strong>Zyxel Omni 56k com-port </strong>и один<strong> Acorp Sprinter 56k USB</strong> (софт модем)<br/><br/>Я уже про них давно забыл, со времён когда ещё сидел в интернете по <strong>Dial UP</strong><br/>Но на этой недели их спокойная и безмятежная жизнь на полке закончилась.<br/><br/>Мне пришла в голову очередная <strong>идея</strong>:<br/><strong>Сделать автоответчик для дома.</strong><br/><br/>Первое, с чего я решил начать, так это подключение самого модема к серверу.<br/>Для начала решил попробывать завести Soft modem <strong>Acorp sprinter 56k USB</strong><br/>Пересобрал ядро, и принялся искать драйвера.<br/>Для начала заглянул на страничку <a href="http://www.linmodems.org/">www.linmodems.org</a> и скачал там скрипт <a href="http://132.68.73.235/linmodems/packages/scanModem.gz">scanModem</a><br/>Он сам определить Ваш модем и предложит скачать подходящий драйвер.<br/>Мне же он предложил подгрузить модуль ядра и попробывать снова.<br/>Пересобирать ядро и возиться с драйверами мне было неохота и я решил поставить <strong>Zyxel Omni 56k</strong> с <strong>COM</strong>-port'ом<br/><br/>После подсоединения модема к серверу у меня возник вопрос:<br/>Как же проверить его работоспособность?<br/><br/>Погуглив я наткнулся на программу <strong>minicom</strong><br/>Она позволяет Вам общаться с устройствами через <strong>COM port</strong><br/>Но почему-то она так и не смогла увидеть мой модем.<br/>Тогда я решил послать <strong>AT</strong> команды напрямую через <strong>COM port</strong><br/>Делается это так:<br/><!--more Читать Далее...--><br/>Для начала ознакомимся с таблицей нумерации<strong> COM</strong> портов<br/><table border="1" cellpadding="10"><br/><tbody><br/><tr><br/><td align="center"><span style="font-family:arial;"><strong>Serial Port</strong></span></td><br/><td align="center"><span style="font-family:arial;"><strong>DOS</strong></span></td><br/><td align="center"><span style="font-family:courier;color:#a8003b;font-size:medium;"><strong>Linux</strong></span></td><br/><td align="center"><span style="font-family:arial;"><strong>I/O Port</strong></span></td><br/><td align="center"><span style="font-family:arial;"><strong>IRQ</strong></span></td><br/></tr><br/><tr><br/><td align="center"><span style="font-family:arial;">First</span></td><br/><td align="center"><span style="font-family:arial;">COM1</span></td><br/><td align="center"><span style="font-family:courier;color:#a8003b;font-size:medium;">/dev/ttyS0</span></td><br/><td align="center"><span style="font-family:arial;">03F8</span></td><br/><td align="center"><span style="font-family:arial;">4</span></td><br/></tr><br/><tr><br/><td align="center"><span style="font-family:arial;">Second</span></td><br/><td align="center"><span style="font-family:arial;">COM2</span></td><br/><td align="center"><span style="font-family:courier;color:#a8003b;font-size:medium;">/dev/ttyS1</span></td><br/><td align="center"><span style="font-family:arial;">02F8</span></td><br/><td align="center"><span style="font-family:arial;">3</span></td><br/></tr><br/><tr><br/><td align="center"><span style="font-family:arial;">Third</span></td><br/><td align="center"><span style="font-family:arial;">COM3</span></td><br/><td align="center"><span style="font-family:courier;color:#a8003b;font-size:medium;">/dev/ttyS2</span></td><br/><td align="center"><span style="font-family:arial;">03E8</span></td><br/><td align="center"><span style="font-family:arial;">4</span></td><br/></tr><br/><tr><br/><td align="center"><span style="font-family:arial;">Fourth</span></td><br/><td align="center"><span style="font-family:arial;">COM4</span></td><br/><td align="center"><span style="font-family:courier;color:#a8003b;font-size:medium;">/dev/ttyS3</span></td><br/><td align="center"><span style="font-family:arial;">02E8</span></td><br/><td align="center"><span style="font-family:arial;">3</span></td><br/></tr><br/></tbody></table><br/>По скольку мой модем подключён к первому <strong>COM</strong> порту я послал на него следущую команду:<br/><blockquote>echo atdt3333333 > /dev/ttyS0</blockquote><br/>Эта команда говорит модему сделать звонок на номер <strong>3333333</strong><br/><br/>Услышав щелчок модема я успокоился и понял что модем работает и воспринимает команды.<br/>Но что-то он ни как не хотел работать.<br/><br/>После 2-х часов ковыряний выяснилось что <strong>IRQ 4</strong> (прерывание) на котором он работает был занят.<br/>Пришлось подключать сервер к монитору и в <strong>BIOS</strong> выключить <strong>LPT</strong> порт.<br/>Как альтернативное решение: можно было просто сменить <strong>IRQ</strong> в <strong>BIOS</strong>.<br/><br/>После этого я установил программы <strong>wvdial</strong> и с помощью неё окончательно убедился в работоспособности модема.<br/><br/>Следующим шагом был шаг: <strong>Выбор ПО</strong><br/><br/>Поскольку это была лишь идея, и я да же не знал, есть-ли такая программа вообще, то я решил спросить у народа.<br/><br/>К сожалению в моём <a href="http://twitter.com/davnozdu">Twitter'e</a> такую программу мне никто не подсказал и пришлось искать её самому.<br/>Немного погуглив я сначала наткнулся на программу <strong>vgetty</strong> и на её потомка <a href="http://mgetty.greenie.net/">mgetty</a><br/>Быстренько нашёл её в своём репозитории и запустил процесс установки:<br/><blockquote>USE="fax" emerge mgetty</blockquote><br/>Спустя некоторое время всё скомпилировалось и я перешёл непосредственно к настройке программы.<br/><blockquote><strong>Правим /etc/mgetty/voice.conf</strong><br/><strong><br/></strong>port ttyS0 -- Последовательный порт<br/>rings 3 -- Три звонка и поднимается трубка<br/>answer_mode voice:fax:data -- Порядок ответа голос:факс:данные<br/>rec_max_len 30 -- Задаем максимальную длину сообщения у меня 30 секунд.<br/>rec_min_len 2 -- Минимальная длинна сообщения.<br/>port_speed 115200 -- Устанавливаем скорость порта.<br/>backup_message standard.rmd -- Файл приветственного сообщения.<br/>phone_owner root -- Владелец файлов сообщений (root).<br/>phone_group voice -- Группа файлов сообщений (voice).<br/><code>phone_mode 0660 - Права для файлов сообщений (-rw--rw---).</code><br/><br/>В /etc/inittab пишим<br/><br/># starting vgetty<br/>S1:2345:respawn:/usr/sbin/vgetty ttyS0</blockquote><br/>В принципе уже всё готово.<br/><br/>Осталось записать файл приветствия для автоответчика.<br/>Это можно сделать <strong>двумя способами</strong>:<br/><br/>1) Записать с помощью микрофона<br/><br/>Подключаем микрофон, даём команду и говорим:<br/><blockquote>sudo /usr/bin/vm record -m -l ttyS0 -v standard.rmd</blockquote><br/>Результат можно прослушать так:<br/><blockquote>rmdtopvf -b standard.rmd | pvftowav > temp.wav && play temp.wav</blockquote><br/>2) Скачать запись автоответчика в интернете и сконвертировать в формат <strong>rmd</strong> для своего модема.<br/>Я пошёл именно таким путём<br/><br/>a) Конвертация<strong> wav</strong> или <strong>mp3</strong> файла для последующей обработки<br/><br/>Для этого нам потребуется дополнительная программа -<strong> sox</strong><br/><br/>Допустим мы скачали сообщение для автоответчика - <strong>message.wav</strong><br/>Тогда конвертация будет выглядеть так:<br/><blockquote>sox message.wav -r 9600 -c 1 message_new.wav</blockquote><br/>Если Вы используете mp3 файл, то добавьте ключ -t mp3<br/><blockquote>sox -t mp3 message.mp3 -r 9600 -c 1 message_new.wav</blockquote><br/>б) Конвертация <strong>wav</strong> файла в <strong>pvf</strong> файл<br/><blockquote>wavtopvf message_new.wav message_new.pvf</blockquote><br/>в) Конвертация<strong> pvf </strong>файла в<strong> rmd</strong> файл для Вашего типа модема<br/><br/>Для этого нам потребуется утилита <strong>pvftormd</strong><br/><br/>Даём следующую команду <strong>pvftormd -L</strong> и выбираем свой или похожий модем из списка.<br/><br/>Затем выполняем конвертацию.<br/>Конкретно для моего модема команда выглядит так:<br/><blockquote>pvftormd ZyXEL_Omni56K 4 message_new.pvf standard.rmd</blockquote><br/>г) Файл <strong>standard.rmd</strong> помещаем в папку с сообщениями.<br/>По умолчанию она находится тут:<br/><blockquote>/var/spool/voice/messages/</blockquote><br/>После этого Вы уже можете звонить себе и проверять результат.<br/><br/>Остался только один интересный вопрос:<br/>Как забирать оставленные сообщения?<br/><br/>Существует несколько способов:<br/><br/>1) Сделать сетевую папку<br/>2) Заходить на сервер и слушать их от туда через скрипт<br/>3) Установить Flash плеер на сервер и через браузер прослушивать сообщения (Придумал сам)<br/><br/>Скрипты для конвертации сообщений в WAV или MP3 я выложу походу описания.<br/><br/>Рассмотрим каждый из них:<br/><br/>1) Тут всё просто, ставите Samba или NFS сервер и открываете доступ в сеть<br/><br/>2) Скрипты, я их честно не проверял, а просто скопировал.<br/><br/>Прослушивание сообщений:<br/><blockquote><code><span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><a href="http://s-c.me/1931/s">Copy Source</a> | <a href="http://s-c.me/1931/h">Copy HTML</a> </span></code><br/><ol> <span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><br/> <li><span style="color:#696969;">#!/bin/bash</span></li><br/> <li><span style="color:#696969;">#--------------------------------</span></li><br/> <li>MINC=/var/spool/voice/incoming/</li><br/> <li>MDIR=/home/<span style="color:#cc6633;">$USER</span>/msg</li><br/> <li><span style="color:#696969;">#--------------------------------</span></li><br/> <li><span style="color:#cc6633;">clear</span></li><br/> <li><span style="color:#0000ff;">case</span> <span style="color:#008000;">"$1"</span> <span style="color:#0000ff;">in</span></li><br/> <li> -h|--h|--he|--hel|--<span style="color:#0000ff;">help</span>)</li><br/> <li> <span style="color:#0000ff;">echo</span> <span style="color:#008000;">"</span><br/><span style="color:#008000;"> Copyringts (c) Andrey G-v 2007</span><br/><br/><span style="color:#008000;"> Options:</span><br/><span style="color:#008000;"> -h, --help Показать справку и выйти</span><br/><span style="color:#008000;"> -v, --version Показать информацию о версии</span><br/><span style="color:#008000;"> </span><br/><span style="color:#008000;"> "</span></li><br/> <li><span style="color:#0000ff;">exit</span> <span style="color:#008000;">1</span></li><br/> <li>;;</li><br/> <li> -v|--v|--ve|--ver|--vers|--versi|--versio|--version)</li><br/> <li><span style="color:#0000ff;">echo</span> <span style="color:#008000;">"ubdate 0.1 "</span></li><br/> <li><span style="color:#0000ff;">exit</span> <span style="color:#008000;">1</span></li><br/> <li>;;</li><br/> <li> -*)</li><br/> <li><span style="color:#0000ff;">echo</span> <span style="color:#008000;">1</span>>&<span style="color:#008000;">2 "$0: Unknown \`$1' option"</span></li><br/> <li><span style="color:#0000ff;">echo</span> <span style="color:#008000;">1</span>>&<span style="color:#008000;">2 "Try \`$0 --help' for more information"</span></li><br/> <li><span style="color:#0000ff;">exit</span> <span style="color:#008000;">1</span></li><br/> <li>;;</li><br/> <li><span style="color:#0000ff;">esac</span></li><br/> <li><span style="color:#cc6633;">clear</span></li><br/> <li><span style="color:#0000ff;">echo</span> -en <span style="color:#008000;">" \33[33m</span><br/><span style="color:#008000;">==============================</span><br/><span style="color:#008000;">1) Новые сообщения:</span><br/><span style="color:#008000;">2) Слушать старьё:</span><br/><span style="color:#008000;">3) Выход: </span><br/><span style="color:#008000;">==============================</span><br/><span style="color:#008000;">Выберите действие :# \33[0m"</span></li><br/> <li><span style="color:#cc6633;">read</span> num</li><br/> <li><span style="color:#0000ff;">case</span> <span style="color:#cc6633;">$num</span> <span style="color:#0000ff;">in</span></li><br/> <li><span style="color:#008000;">1</span>)</li><br/> <li><span style="color:#0000ff;">if</span> !( [ -d <span style="color:#cc6633;">$MDIR</span> ] ); <span style="color:#0000ff;">then</span></li><br/> <li> <span style="color:#cc6633;">mkdir $MDIR</span> ;</li><br/> <li> <span style="color:#0000ff;">fi</span></li><br/> <li><span style="color:#0000ff;">cd</span> <span style="color:#cc6633;">$MINC</span></li><br/> <li><span style="color:#0000ff;">for</span> i <span style="color:#0000ff;">in</span> `ls -x1 *.[Rr][Mm][Dd] <span style="color:#008000;">2</span>> /dev/null`; <span style="color:#0000ff;">do</span></li><br/> <li> MSDATE=$(date -r <span style="color:#cc6633;">$i</span> +Msg-%d%m%y-%H%M%S.wav)</li><br/> <li> rmdtopvf -b <span style="color:#cc6633;">$i</span> | pvftowav > <span style="color:#cc6633;">$MDIR</span>/$MSDATE</li><br/> <li><span style="color:#0000ff;">done</span></li><br/> <li><span style="color:#0000ff;">cd</span> <span style="color:#cc6633;">$MDIR</span></li><br/> <li><span style="color:#0000ff;">for</span> i <span style="color:#0000ff;">in</span> `ls -x1 *.[Ww][Aa][Vv] <span style="color:#008000;">2</span>> /dev/null`; <span style="color:#0000ff;">do</span></li><br/> <li> <span style="color:#0000ff;">echo</span> <span style="color:#008000;">"Играю "</span><span style="color:#cc6633;">$i</span><span style="color:#008000;">"..."</span></li><br/> <li> play <span style="color:#cc6633;">$i</span></li><br/> <li><span style="color:#0000ff;">done</span></li><br/> <li><span style="color:#cc6633;">rm</span> -f <span style="color:#cc6633;">$MINC</span>/*.[Rr][Mm][Dd]</li><br/> <li>;;</li><br/> <li><span style="color:#008000;">2</span>)</li><br/> <li><span style="color:#cc6633;">clear</span></li><br/> <li><span style="color:#0000ff;">cd</span> <span style="color:#cc6633;">$MDIR</span></li><br/> <li>LSDIR=$(ls -x1 *.[Ww][Aa][Vv] <span style="color:#008000;">2</span>> /dev/null)</li><br/> <li><span style="color:#0000ff;">echo</span> -en <span style="color:#008000;">" \33[33m</span><br/><span style="color:#008000;">==============================</span><br/><span style="color:#008000;">$LSDIR</span><br/><span style="color:#008000;">==============================</span><br/><span style="color:#008000;">Имя фаила :# \33[0m"</span></li><br/> <li><span style="color:#cc6633;">read</span> PLFILE</li><br/> <li><span style="color:#696969;">#ls -x1 *.[Ww][Aa][Vv]</span></li><br/> <li><span style="color:#0000ff;">echo</span> <span style="color:#008000;">"Играю "</span><span style="color:#cc6633;">$PLFILE</span><span style="color:#008000;">"..."</span></li><br/> <li>play <span style="color:#cc6633;">$PLFILE</span></li><br/> <li>;;</li><br/> <li><span style="color:#008000;">3</span>)</li><br/> <li><span style="color:#cc6633;">clear</span></li><br/> <li><span style="color:#0000ff;">echo</span> <span style="color:#008000;">"Не туда попал? :)"</span></li><br/> <li><span style="color:#cc6633;">sleep</span> <span style="color:#008000;">3</span></li><br/> <li>;;</li><br/> <li>*)</li><br/> <li><span style="color:#cc6633;">clear</span></li><br/> <li><span style="color:#0000ff;">echo</span> <span style="color:#008000;">"ОШИБКА! НЕ ВЕРНЫЙ АРГУМЕНТ! :("</span></li><br/> <li><span style="color:#0000ff;">exit</span> <span style="color:#008000;">1</span></li><br/> <li>;;</li><br/> <li><span style="color:#0000ff;">esac</span></li><br/></span></ol><br/></blockquote><br/>Скрипт для уведомления о новых сообщениях на <strong>Ваш e-mail</strong> :<br/><blockquote><code><span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><a href="http://s-c.me/1932/s">Copy Source</a> | <a href="http://s-c.me/1932/h">Copy HTML</a> </span></code><br/><ol> <span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><br/> <li><span style="color:#696969;">#!/bin/bash</span></li><br/> <li>MESDIR=`ls /var/spool/voice/incoming/*.[Rr][Mm][Dd] <span style="color:#008000;">2</span>> /dev/null | <span style="color:#cc6633;">wc</span> -l`</li><br/> <li><span style="color:#0000ff;">if</span> [ <span style="color:#cc6633;">$MESDIR</span> != <span style="color:#008000;">"0"</span> ]; <span style="color:#0000ff;">then</span></li><br/> <li> <span style="color:#0000ff;">echo</span> Для Вас есть <span style="color:#cc6633;">$MESDIR</span> сообщение\(ний\). | mail -s <span style="color:#008000;">"Есть сообщения на автоответчике"</span> <span style="color:#cc6633;">$USER</span> <span style="color:#696969;"># Имя пользователя</span></li><br/> <li><span style="color:#0000ff;">fi</span></li><br/></span></ol><br/></blockquote><br/>Настраиваем его запуск через <strong>Cron</strong> и получаем уведомления.<br/><br/>3) Прослушиваем сообщения через Flash плеер прямо в браузере<br/><br/>Для начала нам нужно скачать подходящий <strong>Flash </strong>плеер.<br/>Я остановил свой выбор на <a href="http://www.flashmp3player.org/">ЭТОМ</a><br/>Его самый главный плюс - он автоматически генерирует <strong>playlist из mp3</strong> файлов в папке.<br/><br/>Скачиваем, распаковываем и настраиваем свой <strong>WEB сервер</strong>.<br/>Сам же плеер настраивать практически не нужно.<br/>Я просто скопировал его себе в <strong>htdocs</strong>, удалил папку <strong>mp3</strong><br/>Затем сделал символическую ссылку папки<strong> /var/spool/voice/incoming</strong> в папку с плеером, и переименовал ссылку в <strong>mp3</strong><br/><br/>Ещё пришлось дать права на исполнения на некоторые папки.<br/><br/>Затем я написал скрипт, для перегона файлов автоответчика rmd в mp3 формат:<br/><blockquote><code><span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><a href="http://s-c.me/1933/s">Copy Source</a> | <a href="http://s-c.me/1933/h">Copy HTML</a> </span></code><br/><ol> <span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><br/> <li><span style="color:#696969;">#!/bin/sh</span></li><br/> <li><span style="color:#cc6633;">find</span> /var/spool/voice/incoming -<span style="color:#0000ff;">type</span> f -mtime +<span style="color:#008000;">30</span> -delete <span style="color:#696969;">#удаляю файлы старше 30 дней</span></li><br/> <li><span style="color:#0000ff;">cd</span> /var/spool/voice/incoming</li><br/> <li><span style="color:#0000ff;">for</span> i <span style="color:#0000ff;">in</span> `ls -x1 *.[RrWw][MmAa][DdVv] <span style="color:#008000;">2</span>> /dev/null`; <span style="color:#0000ff;">do</span></li><br/> <li> dm_date=$(date -r <span style="color:#cc6633;">$i</span> +Msg-%d%m%y-%H%M%S)</li><br/> <li> /usr/bin/rmdtopvf -b <span style="color:#cc6633;">$i</span> _tmp.pvf > /dev/null <span style="color:#008000;">2</span>>&<span style="color:#008000;">1</span></li><br/> <li> /usr/bin/pvftowav _tmp.pvf <span style="color:#cc6633;">$dm_date</span>.wav > /dev/null <span style="color:#008000;">2</span>>&<span style="color:#008000;">1</span></li><br/> <li> /usr/bin/sox -t wav <span style="color:#cc6633;">$dm_date</span>.wav -t mp3 <span style="color:#cc6633;">$dm_date</span>.mp3 > /dev/null <span style="color:#008000;">2</span>>&<span style="color:#008000;">1</span></li><br/> <li><span style="color:#0000ff;">done</span></li><br/> <li><span style="color:#cc6633;">rm</span> -f *.[Pp][Vv][Ff]</li><br/> <li><span style="color:#cc6633;">rm</span> -f *.[Rr][Mm][Dd]</li><br/> <li><span style="color:#cc6633;">rm</span> -f *.[Ww][Aa][Vv]</li><br/></span></ol><br/></blockquote><br/>Его запуск я добавил в <strong>Cron</strong> с интервалом в 5 минут.<br/><br/>А если <strong>открыть WEB сервер в интернет</strong>, то можно слушать сообщения где угодно и когда угодно.<br/>Кому интересно, тот может поднять свой <strong>Dial IN</strong> сервер и стать провайдером модемного интернета :)<br/><br/>Источники:<br/><br/><a href="http://andgera.livejournal.com/4606.html">Настройка телефонного автоответчика под Linux</a><br/><a href="http://www.gsoft.com.au/~doconnor/mp3-voicemail/">Настройка vgetty для автоответчика+PPP</a>Davnozduhttp://www.blogger.com/profile/06531201304669465898noreply@blogger.com10tag:blogger.com,1999:blog-9079538622014860007.post-88936761176037248102009-05-03T22:57:00.000+02:002010-07-03T18:28:32.003+02:00Получаем число непрочитанных писем Gmail в статус баре GNU ScreenВсем привет!<br/><br/>Попалась на глаза интересная статейка: <a href="http://tuxtraining.com/2009/04/29/show-unread-gmails-in-gnu-screen-status-bar">Show Unread Gmails in Gnu Screen Status Bar</a><br/><br/>Решил перевести и разместить у себя в блоге:<br/><br/>Итак, нам потребуется установленный <strong>GNU Screen</strong> и <strong>Wget</strong><br/><br/>Правим свой файл <strong>.screenrc</strong><br/><blockquote><code>caption always "%{= kw}%-w%{= BW}%n %t%{-}%+w %-= | %1` Unread |"</code><br/><br/><code>backtick 1 60 60 /home/Ваша_home_директория/bin/get_gmail</code></blockquote><br/><strong>get_gmail</strong> - Это скрипт для получения почты, листинг смотрите ниже.<br/><br/>Сейчас создадим необходимые директории<br/><blockquote>mkdir ~/bin<br/>cd bin/</blockquote><br/>В этом каталоге создаём скрипт <strong>get_mail</strong><br/><blockquote><code><span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><a href="http://s-c.me/1886/s">Copy Source</a> | <a href="http://s-c.me/1886/h">Copy HTML</a> </span></code><br/><ol> <span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><br/> <li><span style="color:#696969;">#!/bin/bash</span></li><br/> <li>gmail_login=<span style="color:#008000;">"username"</span></li><br/> <li>gmail_password=<span style="color:#008000;">"password"</span></li><br/> <li>fetch=<span style="color:#008000;">"$(wget --secure-protocol=TLSv1 --timeout=3 -t 1 -q -O - https://${gmail_login}:${gmail_password}@mail.google.com/mail/feed/atom --no-check-certificate )"</span></li><br/> <li>line=<span style="color:#008000;">"$(echo "</span><span style="color:#cc6633;">$fetch</span><span style="color:#008000;">" | grep 'fullcount')"</span></li><br/> <li>unread=<span style="color:#008000;">"$(echo "</span><span style="color:#cc6633;">$line</span><span style="color:#008000;">" | sed "</span>s/<fullcount>\(.*\)<\/fullcount>/\<span style="color:#008000;">1</span>/<span style="color:#008000;">")"</span></li><br/> <li><span style="color:#0000ff;">if</span> [ -z <span style="color:#008000;">"$unread"</span> ]; <span style="color:#0000ff;">then</span></li><br/> <li><span style="color:#0000ff;">echo</span> “!”</li><br/> <li><span style="color:#0000ff;">else</span></li><br/> <li><span style="color:#0000ff;">echo</span> “<span style="color:#cc6633;">$unread</span>”</li><br/> <li><span style="color:#0000ff;">fi</span></li><br/></span></ol><br/></blockquote><br/>Осталось дать права на запуск<br/><blockquote>chmod 700 get_gmail</blockquote><br/>В принципе, это написано в качестве примера использования.<br/>Остальное всё зависит от Вашей фантазии.<br/><br/>Можно например зациклить выполнение проверки писем.<br/><blockquote><code><span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><a href="http://s-c.me/1888/s">Copy Source</a> | <a href="http://s-c.me/1888/h">Copy HTML</a> </span></code><br/><ol> <span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><br/> <li><span style="color:#696969;">#!/bin/bash</span></li><br/> <li>gmail_login=<span style="color:#008000;">"username"</span></li><br/> <li>gmail_password=<span style="color:#008000;">"password"</span></li><br/> <li><span style="color:#0000ff;">while</span> [ <span style="color:#008000;">1</span> ]; <span style="color:#0000ff;">do</span></li><br/> <li>fetch=<span style="color:#008000;">"$(wget --secure-protocol=TLSv1 --timeout=3 -t 1 -q -O - https://${gmail_login}:${gmail_password}@mail.google.com/mail/feed/atom --no-check-certificate )"</span></li><br/> <li>line=<span style="color:#008000;">"$(echo "</span><span style="color:#cc6633;">$fetch</span><span style="color:#008000;">" | grep 'fullcount')"</span></li><br/> <li>unread=<span style="color:#008000;">"$(echo "</span><span style="color:#cc6633;">$line</span><span style="color:#008000;">" | sed "</span>s/<fullcount>\(.*\)<\/fullcount>/\<span style="color:#008000;">1</span>/<span style="color:#008000;">")"</span></li><br/> <li><span style="color:#0000ff;">if</span> [ -z <span style="color:#008000;">"$unread"</span> ]; <span style="color:#0000ff;">then</span></li><br/> <li><span style="color:#0000ff;">echo</span> “!”</li><br/> <li><span style="color:#0000ff;">else</span></li><br/> <li><span style="color:#0000ff;">echo</span> “<span style="color:#cc6633;">$unread</span>”</li><br/> <li><span style="color:#0000ff;">fi</span></li><br/> <li><span style="color:#cc6633;">sleep</span> 10m</li><br/> <li><span style="color:#0000ff;">done </span></li><br/></span></ol><br/></blockquote><br/>Затем если Вы как я используете оконный менеджер dwm, добавить это в файл <strong>~/.xinitrc</strong>.<br/>В скрипте после <strong>done</strong> нужно поставить знак <strong>&</strong> (<strong>done &</strong>)<br/>И получать число непрочитанных писем в его статус баре, с интервалом <strong>10 минут</strong>.<br/><br/>Как вариант, можно поправить строчку <code><strong>mail.google.com/mail/feed/atom</strong></code> накакой-нибудь другой<strong> feed</strong> и получать письма с определённого лэйбла.Davnozduhttp://www.blogger.com/profile/06531201304669465898noreply@blogger.com2tag:blogger.com,1999:blog-9079538622014860007.post-70173795402185216962009-04-26T00:24:00.000+02:002010-07-03T18:28:30.548+02:00Файлообмен и резервирование данных на Linux сервере с помощью DropboxВсем привет!<br/><br/>Опять Босс на работе сгенерировал очередное задание:<br/>Имеем 2 офиса одной фирмы.<br/><br/><strong>Задача:</strong><br/>Организовать файлообмен между ними.<br/><br/>У меня в голове возникло несколько решений этой задачи:<br/><br/><strong>1) VPN туннель.</strong><br/>Такое решение слишком избыточно для простого файлообмена.<br/><br/><strong>Плюсы:</strong><br/>Могут ходить в по сети в другой офис.<br/>Лёгкость работы.<br/>Шифрование данных<br/>Сжатие данных<br/><br/><strong>Из минусов:</strong><br/>Невозможно работать дома (я манагерам не доверяю, сертификаты не дам)<br/>Нагрузка на интернет канал.<br/>Из-за медленного канала возникнут тормоза при работе непосредственно с сетевой шары.<br/>(можно конечно синхронизацию с локальной шарой сделать и пускай они с неё работают)<br/>Избыточность для такой простой задачи.<br/><br/><strong>2) FTP</strong><br/>Плюсы:<br/>Простота реализации<br/>Гибкие настройки<br/>Можно работать дома<br/><br/><strong>Минусы:</strong><br/><br/>Сложность работы с FTP, манагеры этого точно не осилят.<br/>Должен кто-то постоянно отгружать данные (Синхронизировать)<br/><br/><strong>3) Подумав ещё немного я вспомнил про проект <a href="https://www.getdropbox.com/">DropBox</a>.<br/>Особенно про Linux версию, которая может работать в качестве демона.</strong><br/><!--more Читать Далее...--><br/><strong>Плюсы:</strong><br/>Резервирование данных<br/>Возможность отката<br/>Можно работать из дома<br/>Оптимизация интернет трафика<br/>Шифрование данных<br/>Сжатие данных перед отправкой<br/>Абсолютная прозрачность для пользователя.<br/><br/><strong>Минусы:</strong><br/><br/>2 Гига места, но решается покупкой платного аккаунта.<br/>Зависимость от сервиса.<br/><br/>Проанализировав эти три варианта я остановился на сервисе <strong>DropBox</strong><br/><br/><strong>Схема файлообмена:</strong><br/><br/><code>Офис 1 <=> Samba шара <=> DropBox <=> internet <=> DropBox <=> Winodws шара (Офис 2)</code><br/><br/><strong>Пояснения:</strong><br/><br/>Папку <strong>~/Dropbox </strong>я открою по сети через <strong>Samba сервер</strong>.<br/>Всё что туда будет попадать, автоматически будет синхронизироваться с сервисом DropBox<br/>Во втором офисе я ставлю Windows клиента DropBox и папку так-же открываю в сеть.<br/><br/><strong>PS</strong>. Как вариант использования:<br/>Можно например туда базы 1С разместить, и они будут бэкапиться автоматически.<br/>Или просто туда какие-нидуь бэкапы скидывать или важные документы, всё зависит от Вашей фантазии.<br/><br/>Для начала нам требуется зарегистрировать на сервисе.<br/><strong>Сделайте одолжение:</strong><br/>Зарегистрируйтесь по моей <a href="https://www.getdropbox.com/referrals/NTE1NzQ1OQ">реферальной ссылке</a>, это даст <strong>мне</strong> и <strong>Вам</strong> дополнительное место (<strong>250 Мб</strong>)<br/><br/>Вот смотрю рефералы (<strong>Спасибо</strong> кто по ссылке регистрируется).<br/><br/>Для получения дополнительного места нужно выполнить <strong>3 этапа</strong>:<br/>1) Перейти по <a href="https://www.getdropbox.com/referrals/NTE1NzQ1OQ">реферальной ссылке</a><br/>2) Зарегистрироваться<br/>3) Установить программу клиент <strong>Dropbox</strong><br/><br/>Установка клиента<strong> DropBox</strong> на <strong>Linux без GUI</strong><br/><br/>Если у Вас <strong>есть GUI на сервере</strong>, то для Вас задача существенно<strong> упрощается</strong>:<br/><br/>Вам просто нужно скачать один из архивов (<strong>ссылки ниже</strong>)<br/><br/><strong>Например:</strong><br/><blockquote>wget -O dropbox.tar.gz http://www.getdropbox.com/download?plat=lnx.x86</blockquote><br/><strong><br/>Разархивировать:</strong><br/><blockquote>tar zxof dropbox.tar.gz</blockquote><br/>И <strong>перенисти</strong> полученные файлы в свою <strong>домашнюю директорию</strong><br/><blockquote>mv .dropbox-dist ~/.dropbox-dist/</blockquote><br/><strong>Запустить демона</strong>.<br/><blockquote>~/.dropbox-dist/dropboxd &</blockquote><br/>И заполнить данные <strong>своего аккаунта</strong>.<br/><br/>Я же работаю через с серверами удалённо через SSH и GUI мне вообще не нужен.<br/><br/><strong>Приступаем:</strong><br/><br/>Качаем подходящий архив для Вашего Linux'a (<a href="http://www.getdropbox.com/download?plat=lnx.x86">32 бита</a> или <a href="http://www.getdropbox.com/download?plat=lnx.x86_64">64 бита</a>)<br/><br/>Поскольку у меня <strong>32-х битная версия</strong> <strong>Linux</strong>, я разумеется выбрал <strong>32-х битную версию</strong><br/><br/><strong>Качаем:</strong><br/><blockquote>cd /tmp<br/>wget -O dropbox.tar.gz http://www.getdropbox.com/download?plat=lnx.x86</blockquote><br/><strong>Распаковываем:</strong><br/><blockquote>tar zxof dropbox.tar.gz</blockquote><br/>И <strong>переносим</strong> полученные файлы в свою <strong>домашнюю директорию</strong><br/><blockquote>mv .dropbox-dist ~/.dropbox-dist/</blockquote><br/>Далее нам потребуется пара <strong>программ на python'e</strong><br/><br/><strong>Качаем их:</strong><br/><br/>wget http://dl.getdropbox.com/u/6995/dbmakefakelib.py<br/>wget http://dl.getdropbox.com/u/6995/dbreadconfig.py (не обязателен)<br/><br/>Затем выполняем первую - <strong>dbmakefakelib.py</strong><br/><blockquote>python dbmakefakelib.py</blockquote><br/>И видим такую строку:<br/><blockquote>dropboxd ran for 15 seconds without quitting - success?</blockquote><br/>Значит всё прошло хорошо.<br/><br/>Идём дальше.<br/><br/>Выполняем вторую программу <strong>dbreadconfig.py</strong><br/>Она нам нужна, что-бы узнать <strong>HostID</strong><br/><blockquote>python dbreadconfig.py<br/><br/>host_id = 739bfe362f3bb3246da99dc8d20dbe2b<br/>last_revision = None<br/>schema_version = 6</blockquote><br/>Лично у меня эта программа не запустилась.<br/>Решено было воспользоваться вторым способом: <strong>через sqlite</strong><br/><blockquote>cd .~/.dropbox</blockquote><br/><strong>Выполняем:</strong><br/><blockquote>sqlite3 dropbox.db<br/><br/>SQLite version 3.6.11<br/>Enter ".help" for instructions<br/>Enter SQL statements terminated with a ";"<br/>sqlite></blockquote><br/><strong>Вводим:</strong><br/><blockquote>.dump config</blockquote><br/><strong>И в ответ получаем что-то типа этого:</strong><br/><blockquote><code><br/>BEGIN TRANSACTION;<br/>CREATE TABLE config (<br/>id INTEGER PRIMARY KEY,<br/>key TEXT NOT NULL UNIQUE,<br/>value TEXT<br/>);<br/>INSERT INTO "config" VALUES(1,'schema_version','STYKLg==<br/>');<br/>INSERT INTO "config" VALUES(2,'last_revision',NULL);<br/>INSERT INTO "config" VALUES(3,'host_id','VmJjYTZiY9Y2MGY1OGExMjA5ODc0ODU6NWZmMzNhY2VmCnAxCi7=<br/>');<br/>COMMIT;</code></blockquote><br/>Нас интересует вот это, у Вас будет своё значение (в примере я <strong>исказил</strong> свои данные):<br/><blockquote>VmJjYTZiY9Y2MGY1OGExMjA5ODc0ODU6NWZmMzNhY2VmCnAxCi7=</blockquote><br/>Это и есть идентификатор Вашего хоста, но он зашифрован по технологии <strong>Base64</strong><br/><br/>Ну что ж, <strong>расшифруем:</strong><br/><br/><strong>Способ 1:</strong><br/><br/>Используем интернет.<br/>Идём по <a href="http://www.opinionatedgeek.com/dotnet/tools/Base64Decode/">ЭТОЙ</a> ссылке и вставляем туда наше значение.<br/><br/><strong>Способ 2:</strong><br/><br/>Без соединения с интернетом.<br/>Воспользуемся утилитой <strong>base64</strong><br/>Делаем так:<br/><blockquote>echo "VmJjYTZiY9Y2MGY1OGExMjA5ODc0ODU6NWZmMzNhY2VmCnAxCi7=" > /tmp/enc.txt<br/>base64 -d /tmp/enc.txt</blockquote><br/>В результате любого способы мы получим например такое значение:<br/><blockquote>Vbca6bc60f58a120987485р5ff33acef</blockquote><br/>Отбрасываем буквы <strong>V</strong> спереди и получаем такое значение:<br/><blockquote>bca6bc60f58a120987485р5ff33acef</blockquote><br/>Это и есть на <strong>HOSTID</strong><br/><br/>Идём по ссылке:<br/><a href="https://www.getdropbox.com/register?host_id=HOSTID">https://www.getdropbox.com/register?host_id=<strong>HOSTID</strong></a><br/><br/>Это можно сделать с <strong>любого ПК</strong> подключённого к интернету, не обязательно с сервера.<br/><br/><strong>HOSTID</strong> нужно заменить на свой, полученный на предыдущим шаге.<br/>В наше случае будет такая ссылка:<br/><blockquote>https://www.getdropbox.com/register?host_id=bca6bc60f58a120987485р5ff33acef</blockquote><br/>Далее просто<strong> вводим</strong> своё <strong>имя и пароль</strong>, снизу будет <strong>имя Вашего сервера</strong>.<br/>После авторизации Ваш хост будет добавлен в <strong>список хостов</strong>.<br/>Повторите данную операцию для <strong>всех ПК</strong>, которые будут использовать в <strong>файлообмене</strong>.<br/><br/>Осталось совсем немного, создать папку <strong>Dropbox</strong> в своей домашней директории:<br/><blockquote>mkdir ~/Dropbox</blockquote><br/>И <strong>запустить демона</strong>.<br/><blockquote>~/.dropbox-dist/dropboxd &</blockquote><br/>Ну и разумеется написать скрипты для автостарта, примеры для <strong>Gentoo, Fedora/RedHat, Debian</strong> Вы можете посмотреть в <a href="http://wiki.getdropbox.com/TipsAndTricks/TextBasedLinuxInstall">Источнике</a><br/><br/>Всё, теперь можно насаждаться всеми прелестями сервиса <strong>DropBox<br/><br/>UPD:<br/></strong>Заметил, DropBox не синхронизирует файлы и папки с русскими именами.<br/>Причём именно Linux клиент, хотя у меня вся система работает в юникоде.<br/>Надеюсь, в будущем профиксят.Davnozduhttp://www.blogger.com/profile/06531201304669465898noreply@blogger.com14tag:blogger.com,1999:blog-9079538622014860007.post-40908474606229013482009-04-24T23:36:00.000+02:002010-07-03T18:28:30.174+02:00Gentoo: Получи SMS когда закончится сборка пакетаВсем привет!<br/><br/>Вот наткнулся на интересную статью для пользователей <strong>Gentoo</strong>.<br/><br/><strong>Идея:</strong> Поставить сборку пакета (или обновление мира) с помощью emerge и получить SMS при выполнении.<br/><br/><strong>Реализация:</strong><br/><br/><strong>Нам потребуется:</strong><br/><strong>mailx clien</strong>t (mail-client/mailx) - это консольное приложение для отправки почты.<br/><strong>MTA</strong> (mail transfer agent) агент для mailx (Postfix, Sendmail или ssmtp)<br/><br/>Скрипт: <strong>/usr/local/sbin/emobalert</strong><br/><blockquote><code><span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><a href="http://s-c.me/1680/s">Copy Source</a> | <a href="http://s-c.me/1680/h">Copy HTML</a> </span></code><br/><ol> <span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><br/> <li><span style="color:#696969;">#!/bin/sh</span></li><br/> <li><span style="color:#696969;"># Record exit status of emerge–must precede ALL other commands!</span></li><br/> <li>[ $? -eq <span style="color:#008000;">0</span> ] && RESULT=”PASS” || RESULT=”FAIL”</li><br/> <li><span style="color:#696969;"># Change next line to your mobile/SMS address</span></li><br/> <li>SMS_ADDR=”<span style="color:#008000;">2015551212</span>@sms.some-mobile.com”</li><br/> <li>LAST_PKG=”$(tac /var/log/emerge.log | <span style="color:#cc6633;">awk</span> ‘<span style="color:#cc6633;">$2</span> == “>>>” {print <span style="color:#cc6633;">$4</span>,$<span style="color:#008000;">5</span>,<span style="color:#cc6633;">$6</span>,$<span style="color:#008000;">7</span>; <span style="color:#0000ff;">exit</span>;}’)”</li><br/> <li>CFG_MODS=”$(find /etc -iname ‘._cfg????_*’ | <span style="color:#cc6633;">wc</span> -l)”</li><br/> <li>mail -s”Emerge Completed” <span style="color:#cc6633;">$SMS_ADDR</span> <<-EOM</li><br/> <li>${RESULT} ${LAST_PKG}</li><br/> <li>:::</li><br/> <li>${CFG_MODS} config updates pending</li><br/> <li>$*</li><br/> <li>EOM</li><br/></span></ol><br/></blockquote><br/>Замените <strong>SMS_ADDR</strong> на Ваш <strong>телефон</strong> и <strong>SMS шлюз оператора</strong>.<br/>И сделайте скрипт <strong>исполняемым</strong>.<br/><br/><strong>Запуск:</strong><br/><br/>Например вот так:<br/><blockquote>emerge -uDv world; emobalert</blockquote><br/>И по <strong>окончании</strong> сборки Вы получите такое сообщение:<br/><blockquote>From: root@localhost.localdomain<br/>(Emerge Completed)<br/>PASS (2 of 2) app-crypt/seahorse-2.22.3<br/>:::<br/>0 config updates pending</blockquote><br/>По моему очень удобно.<br/><br/><a href="http://tuxtraining.com/2009/04/21/gentoo-trick-send-sms-alerts-when-emerge-completes">Источник</a>Davnozduhttp://www.blogger.com/profile/06531201304669465898noreply@blogger.com3tag:blogger.com,1999:blog-9079538622014860007.post-17094141021923998042009-04-20T01:00:00.000+02:002010-07-03T18:28:30.094+02:00Разработка кластера сервера печати на базе Windows server 2008Всем привет!<br/><br/>Сейчас у меня очень напряжённое время.<br/>Диплом, собеседование в консульстве, работа ...<br/>Ещё где-то 1.5 недели напряга, Вы можете следить за моими делами в <a href="http://twitter.com/davnozdu" target="_blank">твиттере</a>.<br/><br/>Выкладываю свой курсовой проект, посвященный построению кластера печати на базе ОС Windows server 2008<br/><br/><strong>Моё видео:</strong><br/><br/> <a href="http://rutube.ru/tracks/1790402.html?v=476d1263f41d646e301a7b0d985ac21f" target="_blank">http://rutube.ru/tracks/1790402.html?v=476d1263f41d646e301a7b0d985ac21f</a><br/><br/>Описание построения читаем <a href="http://technet.microsoft.com/ru-ru/library/cc771509.aspx">ТУТ</a><br/>Само видео записано до момента добавления общего SCSI диска.<br/>Поскольку такового у меня нет и эмулятор его создать не позволяет.<br/>Впрочем там всего-то 2 кнопки остаётся нажать до окончания построения.<br/><br/>Надеюсь что найду время написать что-нибудь интересное.Davnozduhttp://www.blogger.com/profile/06531201304669465898noreply@blogger.com1tag:blogger.com,1999:blog-9079538622014860007.post-74059986851618186722009-04-12T14:24:00.000+02:002010-07-03T18:28:29.525+02:00Загрузчик PLOP - загрузись с чего угодно и где угодноВсем привет!<br/>Сегодня хочу поделиться с Вами информацией об очень интересном загрузчике - <a href="http://www.plop.at/en/bootmanager.html">Plop</a><br/>Вот список того что он умеет:<br/><blockquote>* CD/DVD boot without BIOS support<br/>* USB boot without BIOS support (UHCI, OHCI and EHCI)<br/>* Floppy boot<br/>* Different profiles for operating systems<br/>* Define up to 16 partitions<br/>* No extra partition for the boot manager<br/>* Hidden boot, maybe you have a rescue system installed and the user should not see that there is another system installed<br/>* Boot countdown<br/>* Hide partitions<br/>* Password protection for the computer and the boot manager setup<br/>* Backup of partition table data<br/>* Textmode user interface 80x50<br/>* Graphic user interface 640x480, 800x600, 1024x786, 1280x1024<br/>* MBR partition table edit<br/>* Start of the boot manager from harddisk, floppy, USB, CD, DVD<br/>* Starting from Windows boot menu<br/>* Starting from LILO, GRUB, Syslinux, Isolinux, Pxelinux (network)<br/>* The boot manager is freeware</blockquote><br/>Самая любопытная его возможность - загрузка с<strong> USB</strong> и<strong> CD</strong> дисков на тех материнских платах, где эта возможность отсутствует (Старые материнские платы).<br/>И что самое интересное, он позволяет получить <strong>USB 2.0</strong> скорость на тех материнских платах, на которых эта возможность урезана (касается первых материнских плат, с поддержкой загрузки с USB устройств).<br/><br/>Например Ваша мат.плата <strong>выдаёт</strong> USB 2.0 скорость в ОС Windows или Linux, но при загрузке с USB работает на USB 1.1 и <strong>грузиться ОЧЕНЬ медленно</strong>.<br/><br/>Начнём Мы как обычно с установки.<br/><!--more Читать Далее...--><br/>Для начала скачаем последнюю стабильную версию Plop.<br/>В моём случае это версия - <a href="http://download.plop.at/files/bootmngr/plpbt-5.0.3.zip">plpbt-5.0.3</a><br/>После распаковки zip архива я советую Вам сперва изучить файл <strong>readme.txt</strong>, в котором содержаться все инструкции по установке и прочая интересная и полезная информация.<br/><br/>Кратко рассмотрим некоторые варианты установки, благо разработчики позаботились о том, что-бы Plop можно было быстро и легко установить практически на любой носитель информации.<br/><br/>Хотите <strong>установить</strong> Plop на дискету?<br/>Нет ничего проще, просто выполните:<br/><br/>Для <strong>ОС Linux</strong>:<br/><blockquote><code>dd if=plpbtin.img of=/dev/fd0</code></blockquote><br/>Для установки из-под <strong>DOS</strong> можно воспользоваться утилитой <strong>diskimg.com</strong>:<br/><blockquote>diskimg.com with diskimg -d a -w plpbtin.img</blockquote><br/>Хотите установить Plop на <strong>CD диск</strong>?<br/>Просто <strong>прожгите ISO образ</strong> на свой носитель.<br/><br/>Пользователи <strong>ОС Windows</strong> могут это сделать с помощью бесплатной программы для записи дисков - <strong>CDBurnerXP</strong> или воспользоваться любой другой программой для записи дисков.<br/><br/>Пользователи ОС Linux могут воспользоваться программой - <strong>cdrecord </strong><br/><blockquote><code>cdrecord -v dev=devicename iso_image</code></blockquote><br/><strong>Установка Plop:</strong><br/><br/>Для<strong> ОС DOS:</strong><br/><br/>1) Скачайте <a href="http://download.plop.at/files/bootmngr/plpgenbtldr-0.5.zip">plpgenbtldr-0.5.zip</a><br/>2) Скопируйте файлы plpinstc.com и plpgenbtldr.exe в корень диска C:<br/>3) Переименуйте файл plpinstc.com в plpbt.bin<br/>4) Откройте shell с правами администратора системы<br/>5) Выполните файл plpgenbtldr который создаст файл plpbtldr.bin, это займёт несколько секунд.<br/>Если это займёт больше времени, то значит что-то пошло не так.<br/><br/>Для<strong> Windows 2K и XP</strong>:<br/>Просто впишите эту строчку в Ваш файл boot.ini:<br/><blockquote>c:\plpbtldr.bin="PLoP Boot Manager"</blockquote><br/>Разумеется файл plpbtldr.bin должен быть в корне диска c:<br/><br/>Для <strong>Windows Vista</strong>:<br/><br/>Просто выполните такую команду:<br/><blockquote>bcdedit /create /d "Install PLoP Boot Manager" /application bootsector</blockquote><br/>После выполнения этой команды вы получите номер в { } скобках.<br/>Этот номер зовётся (Called) <strong>id</strong><br/><br/>Дальше выполните следующие команды, заменяя id на свой, полученный из предыдущей команды:<br/><blockquote>bcdedit /set {id} device boot<br/><br/>bcdedit /set {id} path \plpbtldr.bin<br/><br/>bcdedit /displayorder {id} /addlast</blockquote><br/>Установка для<strong> Syslinux, Isolinux, Pxelinux (Network)</strong><br/>Добавьте <strong>plpinstc.com</strong> в следующие конфигурационные файлы:<br/><blockquote>* для Syslinux это syslinux.cfg<br/>* для Isolinux это isolinux.cfg<br/>* для Pxelinux это pxelinux.cfg/default</blockquote><br/>Добавьте следующие строки в эти файлы конфигурации:<br/><blockquote>label plpinst<br/>kernel plpinstc</blockquote><br/>Файл <strong>plpinstc</strong> положите в корень папки с конфигами.<br/><br/>Если же Вам просто нужно <strong>запустить Plop без его установки</strong>, то впишите такие строчки:<br/><blockquote>label plp<br/>kernel plpbt</blockquote><br/>Файл <strong>plpbt</strong> так-же положите в корень папки с конфигами и в загрузчике выберите пункт <strong>plp</strong><br/><br/>Установка с использование<strong> LILO:</strong><br/><br/>Скопируйте файл <strong>plpinstc.com</strong> в папку<strong> /boot</strong><br/>В файл <strong>/etc/lilo.conf</strong> допишите:<br/><blockquote>image=/boot/plpinstc.com<br/>label=plop-install</blockquote><br/><strong>Для запуска Plop без его установки:</strong><br/><br/>Скопируйте файл <strong>plpbt.bin</strong> в папку <strong>/boot</strong><br/>Добавьте такие строчки в файл <strong>lilo.conf</strong>:<br/><blockquote>image=/boot/plpbt.bin<br/>label=PLoP</blockquote><br/>И выполните команду <strong>lilo</strong> для обновления конфигурации.<br/><br/>Установка с использование <strong>GRUB / grub4dos</strong><br/><br/>Скопируйте файл <strong>plpinstc.com</strong> в папку <strong>/boot</strong><br/><br/>В файл <strong>menu.lst</strong> впишите следующие строки:<br/><blockquote>title PLoP Boot Manager Install<br/>root (hd0,0)<br/>kernel /boot/plpinstc.com</blockquote><br/><strong>Для запуска Plop без его установки:</strong><br/><br/>Скопируйте файл <strong>plpbt.bin</strong> в папку /boot<br/><br/>В файл <strong>menu.lst</strong> впишите следующие строки:<br/><blockquote>title PLoP Boot Manager<br/>root (hd0,0)<br/>kernel /boot/plpbt.bin</blockquote><br/><strong>Конфигурирование Plop</strong>:<br/>Настройка производится путём <strong>патчинья</strong> самого загрузчика Plop с помощью утилиты <a href="http://download.plop.at/files/bootmngr/plpcfgbt-0.4.zip">plpcfgbt</a><br/><br/>Например, если Вам нужно сделать<strong> загрузку</strong> с usb устройства и<strong> без лишних вопросов</strong>, то введите такую строку:<br/><blockquote>plpcfgbt.exe stm=hidden cnt=on cntval=1 dbt=usb plpbt.bin</blockquote><br/>Полный список опций можно посмотреть в файле <strong>1README.TXT</strong> в директории с программой.<br/><br/>А теперь рассмотрим реально полезный <strong>пример использования Plop:</strong><br/><br/><strong>Задача:</strong><br/><br/>1) Получить USB 2.0 или близкую к нему скорость на тех материнских, которые работают с USB 2.0 только в загруженной ОС, а на этапе загрузки выдают USB 1.1<br/><br/>2) Загрузиться в PCI USB 2.0 внешнего конроллера.<br/><br/><strong>Решение:</strong><br/><br/>1) Устанавливаем Plop на ваш носитель информации, я решил воспользоваться свой BootFlash с Grub4DOS в качестве загрузчика.<br/>Общая схема загрузки будет выглядеть так:<br/><blockquote>Grub4DOS (usb1.1) => Plop => Grub4DOS (usb 2.0)</blockquote><br/>Устанавливаем:<br/>Копируем файл<strong> plpbt.bin</strong> на Flash накопитель, в папку <strong>/boot</strong> или в любое удобное для Вас место.<br/>В файл <strong>menu.lst</strong> пишем:<br/><blockquote>title Start PLoP Usb driver<br/><code>find --set-root --ignore-floppies /boot/plpbt.bin</code><br/>kernel /boot/plpbt.bin</blockquote><br/>Сохраняем и пробуем.<br/><br/>Так-же можно сделать загрузку i<strong>so образа через RAM</strong>:<br/>Скопируем ISO образ в корень диска, в файл <strong>menu.lst</strong> впишем следующие строки:<br/><blockquote>title Plop RAM<br/><code>map --mem (hd0,0)/plop/plpbt.iso (hd32)</code><br/><code>map --hook</code><br/>chainloader (hd32)<br/>boot</blockquote><br/>Сохраняем и пробуем.<br/><br/>2) В этом случае мы просто устанавливаем Plop на наш <strong>HDD,CD-ROM диск или дискету</strong> и в качестве устройства выбираем <strong>USB</strong><br/><br/>Plop<strong> автоматически</strong> просканирует все USB порты и загрузить Ваш <strong>LiveUSB</strong> накопитель.<br/><br/>Думаю для ознакомления пока-что достаточно.<br/>Возможно в будущим я <strong>продолжу публиковать</strong> информацию по этому замечательному загрузчику.Davnozduhttp://www.blogger.com/profile/06531201304669465898noreply@blogger.com13tag:blogger.com,1999:blog-9079538622014860007.post-10198104031369800582009-04-05T01:34:00.000+02:002010-07-03T18:28:29.139+02:00Скрипты для переподключения pppoe соединения на ADSL модемеВсем привет!<br/><br/>На неделе от безделья написал скрипты для сброса<strong> PPPOE</strong> сессии на <strong>ADSL</strong> модеме через <strong>ПК</strong><br/>Поскольку у меня нет белого IP адреса я пользуюсь ими для переподключения сессии.<br/>Это позволяет мне качать с файлообменников без задержек и ожидания.<br/><br/>Скрипты написаны для <strong>ОС Linux</strong><br/>Требуется программа - <strong>expect</strong><br/>На смену IP адреса уходит <strong>~20 секунд</strong>.<br/>Тестировалось на модеме<strong> StarNet</strong> перешитый в <strong>Acorp Lan 120</strong><br/><strong></strong><br/><br/><strong>Идея</strong>:<br/><br/>При обрыве соединения ppp0 происходит автоматическое переподключение.<br/>Всего 3 скрипта, всё сложить в одну папку.<br/><br/><strong>p1</strong> - Узнаёт <strong>PID</strong> демона <strong>PPPD</strong><br/><!--more Читать Далее...--><br/><strong>Листинг</strong>:<br/><blockquote><code><span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><a href="http://s-c.me/1543/s">Copy Source</a> | <a href="http://s-c.me/1543/h">Copy HTML</a> </span></code><br/><ol> <span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><br/> <li>#!/usr/bin/expect -f</li><br/> <li>log_user <span style="color:#a31515;">0</span></li><br/> <li>spawn telnet <span style="color:#a31515;">192.168.1</span>.<span style="color:#a31515;">1</span></li><br/> <li>expect <span style="color:#a31515;">"BusyBox on router login:"</span> {send <span style="color:#a31515;">"root\r"</span>}</li><br/> <li>expect <span style="color:#a31515;">"Password:"</span> {send <span style="color:#a31515;">"Admin\r"</span>}</li><br/> <li>expect <span style="color:#a31515;">"#"</span> {send <span style="color:#a31515;">"ps ax |grep pppd\r"</span>}</li><br/> <li>log_user <span style="color:#a31515;">1</span></li><br/> <li>send <span style="color:#a31515;">"exit\r"</span></li><br/> <li>expect eof</li><br/></span></ol><br/></blockquote><br/><strong>p2 </strong>- Убивает <strong>PPPD</strong> по <strong>PID</strong> возвращённому скриптом <strong>run.sh</strong> (смотри ниже)<br/>И модем СРАЗУ автоматически поднимает заново.<br/><br/><strong>Листинг:</strong><br/><blockquote><code><span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><a href="http://s-c.me/1544/s">Copy Source</a> | <a href="http://s-c.me/1544/h">Copy HTML</a> </span></code><br/><ol> <span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><br/> <li>#!/usr/bin/expect -f</li><br/> <li><span style="color:#0000ff;">set</span> pid [lindex $argv <span style="color:#a31515;">0</span>]</li><br/> <li>log_user <span style="color:#a31515;">0</span></li><br/> <li>spawn telnet <span style="color:#a31515;">192.168.1</span>.<span style="color:#a31515;">1</span></li><br/> <li>expect <span style="color:#a31515;">"BusyBox on router login:"</span> {send <span style="color:#a31515;">"root\r"</span>}</li><br/> <li>expect <span style="color:#a31515;">"Password:"</span> {send <span style="color:#a31515;">"Admin\r"</span>}</li><br/> <li>expect <span style="color:#a31515;">"#"</span> {send <span style="color:#a31515;">"kill $pid"</span>}</li><br/> <li>send <span style="color:#a31515;">"exit\r"</span></li><br/> <li>expect eof</li><br/></span></ol><br/></blockquote><br/>Скрипт <strong>run.sh</strong> - Парсит<strong> PID</strong> от <strong>p1</strong> и отсылает его в качестве аргумента <strong>p2</strong> который и прибивает <strong>PPPD</strong><br/>Листинг:<br/><blockquote><code>#!/bin/sh<br/>./p1 | grep pppd | grep -v grep | awk '{print $1;}' | xargs ./p2 </code></blockquote><br/>Даём права на исполнение и просто делаем: <strong>./run.sh</strong><br/>Всё остальное пройдёт автоматом.<br/>Поправьте <strong>IP</strong> модема на свой.<br/><br/>Для желающих прикрутить цикл проверки IP:<br/>Пропарсить IP с модема можно на пример так:<br/><blockquote><code>ifconfig eth0 | colrm 1 10 | awk -F "[: ]" '$1 ~ /^inet$/{print $3}'</code></blockquote><br/>Т.е пишем например скрипт <strong>p3</strong> который возвращает<strong> ip</strong><br/>Вот готовый:<br/><blockquote><code><span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><a href="http://s-c.me/1545/s">Copy Source</a> | <a href="http://s-c.me/1545/h">Copy HTML</a> </span></code><br/><ol> <span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><br/> <li>#!/usr/bin/expect -f</li><br/> <li>log_user <span style="color:#a31515;">0</span></li><br/> <li>spawn telnet <span style="color:#a31515;">192.168.1</span>.<span style="color:#a31515;">1</span></li><br/> <li>expect <span style="color:#a31515;">"BusyBox on router login:"</span> {send <span style="color:#a31515;">"root\r"</span>}</li><br/> <li>expect <span style="color:#a31515;">"Password:"</span> {send <span style="color:#a31515;">"Admin\r"</span>}</li><br/> <li>expect <span style="color:#a31515;">"#"</span> {send <span style="color:#a31515;">"ifconfig ppp0\r"</span>}</li><br/> <li>log_user <span style="color:#a31515;">1</span></li><br/> <li>send <span style="color:#a31515;">"exit\r"</span></li><br/> <li>expect eof</li><br/></span></ol><br/></blockquote><br/>И парсим его вывод.<br/>Например:<br/><blockquote><code>$ ./p3.sh | colrm 1 10 | awk -F "[: ]" '$1 ~ /^inet$/{print $3}'<br/>90.151.225.121 </code></blockquote><br/>Скрипты можно модифицировать, например:<br/>Можно написать цикл проверки IP адреса если Вас интересует конкретный диапазон <strong>IP</strong>.<br/><br/>В общем всё зависит от Вашей фантазии.Davnozduhttp://www.blogger.com/profile/06531201304669465898noreply@blogger.com4tag:blogger.com,1999:blog-9079538622014860007.post-48110644742870350142009-04-03T16:58:00.000+02:002010-07-03T18:28:29.044+02:00eee pc 701 включение и выключение WIFI и WEB камеры из LinuxВсем привет!<br/><br/>В связи с началом весны у меня резко прибавилось работы, поэтому писать сейчас буду по реже.<br/><br/>Сегодня небольшая статейка про<strong> Eee PC 701</strong>, а точнее про <strong>WiFi</strong> и <strong>WEB камеру</strong>.<br/><br/>Суть проблемы:<br/>Требуется включать и выключать WiFi и WEB камеру без перезагрузки в<strong> OS Linux</strong>.<br/><br/><em><strong>PS</strong>. К сожалению <strong>ACPI</strong> ещё не допилили для обработки HotKey</em><br/><br/><strong>Решение:</strong><br/><br/>Воспользоваться скриптами.<br/><br/><strong>Приступим:</strong><br/><br/>Для начала пересоберём ядро до версии<strong> 2.6.29</strong><br/>Вот мой конфиг:<br/><!--more Читать Далее...--><br/><a href="http://www.mediafire.com/?mlttyjxykcg">http://www.mediafire.com/?mlttyjxykcg</a><br/><br/>Далее пишем скрипты:<br/><br/><strong>wifi.sh</strong> и <strong>camera.sh</strong><br/><br/>Для WiFI:<br/><blockquote><code><span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><a href="http://s-c.me/1508/s">Copy Source</a> | <a href="http://s-c.me/1508/h">Copy HTML</a> </span></code><br/><ol> <span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><br/> <li><span style="color:#696969;">#!/bin/bash</span></li><br/> <li>PWR=$(cat /sys/class/rfkill/rfkill0/state)</li><br/> <li><span style="color:#0000ff;">case</span> <span style="color:#cc6633;">$1</span> <span style="color:#0000ff;">in</span></li><br/> <li> poweron)</li><br/> <li> <span style="color:#0000ff;">if</span> [[ <span style="color:#008000;">"$PWR"</span> = <span style="color:#008000;">"0"</span> ]]; <span style="color:#0000ff;">then</span></li><br/> <li> <span style="color:#0000ff;">echo</span> <span style="color:#008000;">1</span> > /sys/class/rfkill/rfkill0/state</li><br/> <li> <span style="color:#cc6633;">sleep</span> <span style="color:#008000;">1</span></li><br/> <li> <span style="color:#0000ff;">fi</span></li><br/> <li> ;;</li><br/> <li> poweroff)</li><br/> <li> <span style="color:#0000ff;">if</span> [[ <span style="color:#008000;">"$PWR"</span> = <span style="color:#008000;">"1"</span> ]]; <span style="color:#0000ff;">then</span></li><br/> <li> <span style="color:#cc6633;">ifconfig</span> wlan0 down</li><br/> <li> <span style="color:#cc6633;">sleep</span> <span style="color:#008000;">1</span></li><br/> <li> <span style="color:#0000ff;">echo</span> <span style="color:#008000;">0</span> > /sys/class/rfkill/rfkill0/state</li><br/> <li> <span style="color:#0000ff;">fi</span></li><br/> <li> ;;</li><br/> <li><span style="color:#0000ff;">esac</span></li><br/></span></ol><br/></blockquote><br/>Для камеры:<br/><blockquote><code><span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><a href="http://s-c.me/1510/s">Copy Source</a> | <a href="http://s-c.me/1510/h">Copy HTML</a> </span></code><br/><ol> <span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><br/> <li><span style="color:#696969;">#!/bin/bash</span></li><br/> <li>PWR=$(cat /sys/devices/platform/eeepc/camera)</li><br/> <li><span style="color:#0000ff;">case</span> <span style="color:#cc6633;">$1</span> <span style="color:#0000ff;">in</span></li><br/> <li>poweron)</li><br/> <li><span style="color:#0000ff;">if</span> [[ <span style="color:#008000;">"$PWR"</span> = <span style="color:#008000;">"0"</span> ]]; <span style="color:#0000ff;">then</span></li><br/> <li><span style="color:#0000ff;">echo</span> <span style="color:#008000;">1</span> > /sys/devices/platform/eeepc/camera</li><br/> <li><span style="color:#cc6633;">sleep</span> <span style="color:#008000;">1</span></li><br/> <li><span style="color:#0000ff;">fi</span></li><br/> <li>;;</li><br/> <li>poweroff)</li><br/> <li><span style="color:#0000ff;">if</span> [[ <span style="color:#008000;">"$PWR"</span> = <span style="color:#008000;">"1"</span> ]]; <span style="color:#0000ff;">then</span></li><br/> <li><span style="color:#0000ff;">echo</span> <span style="color:#008000;">0</span> > /sys/devices/platform/eeepc/camera</li><br/> <li><span style="color:#0000ff;">fi</span></li><br/> <li>;;</li><br/> <li><span style="color:#0000ff;">esac</span></li><br/></span></ol><br/></blockquote><br/>Запускать так:<br/>Для WiFi:<br/><blockquote><br/><strong>wifi.sh</strong> poweron<br/><strong>wifi.sh</strong> poweroff</blockquote><br/><br/>Для камеры:<br/><blockquote><strong>camera.sh</strong> poweron<br/><strong>camera.sh</strong> poweroff</blockquote>Davnozduhttp://www.blogger.com/profile/06531201304669465898noreply@blogger.com1tag:blogger.com,1999:blog-9079538622014860007.post-66120783856475878082009-03-27T21:46:00.000+01:002010-07-03T18:28:26.415+02:00Разлочка GPS навигатораВсем привет!<br/><br/>Купил я себе вот <a href="http://dealextreme.com/details.dx/sku.21038">такой</a> <strong>GPS навигатор</strong>.<br/>Функциональность у него просто потрясающая при цене всего <strong>120 баксов</strong>:<br/><blockquote>- All-in-one navigation, communication, and entertainment handheld<br/>- 5.0" vibrant color TFT LCD touch screen<br/>- Powered by Windows CE 5.0 worldwide English/WWE operating system<br/>- CPU: Centrality Atlas-III 372MHz ARM<br/>- Memory: 64MB RAM<br/>- 12-channel parallel GPS satellite tracking<br/>- Comes with a 2GB SD card with street-level USA maps bundled by the manufacturer<br/>- 3rd party WinCE GPS navigation software can be downloaded and installed<br/>- Supports SD/SDHC cards up to 8GB in size<br/>- Built-in bluetooth handsfree speakerphone that pairs with cell phones<br/>- Built-in FM radio tuner<br/>- Lithium rechargeable 1000mAh battery allows standalone self-powered operation<br/>- Built-in MP3/MP4 player supports WMV9, MPEG4, DIVX5.0, WMA, ASF, AVI, MP4, JPG, BMP, GIF, PNG, and more file formats</blockquote><br/>Только вот беда, он оказался <strong>залочен</strong> только под свою оболочку и без возможности установки сторонних программ.<br/><br/>Исправление этого мы и займёмся.<br/><br/>Существует два вида устройств: <strong>PNA</strong> и <strong>PDA</strong><br/><br/><strong>PNA</strong> - обрезанный вариант <strong>Windows Mobile</strong> (WM) специально для GPS навигаторов.<br/>Причём WM используется только как платформа для запуска оболочки навигатора.<br/><br/><strong>PDA</strong> - Самый обычный полноценный КПК с полной версией WM<br/><br/>Суть разлочки: Сделать старт <strong>explorer.exe</strong> вместо той оболочки, которая идёт у Вас с навигатором.<br/><br/>Существует <strong>3 метода</strong> разлочки и каждый из них позволяет сделать безболезненный откат:<br/><!--more Читать Далее...--><br/>Внимание: Настоятельно рекомендую Вам сделать BackUP своей прошивки.<br/>Инструкции читаем <a href="http://4pda.ru/forum/index.php?showtopic=96698">ТУТ</a><br/>Я сделал 2 разных: с помощью <strong>RomReader</strong> и <strong>DiskRW</strong>.<br/><strong>Это займёт у Вас 5-10 минут, зато даст 100% возможность отката</strong>.<br/><br/><strong>Метод №1:</strong><br/><br/>а) Вынимаем карту памяти из устройства и вставляем её в Card Reader.<br/>Или переводим устройство в режим накопителя.<br/><br/>б) На карте памяти видим файл <strong>shell.ini</strong>, делаем его копию и оригинал открываем в текстовом редакторе.<br/>Внутри находится путь к той программе, которая запускается при нажатии на иконку "<strong>Навигация</strong>"<br/><br/>в) Меняем к программе на путь к <strong>explorer.exe</strong><br/>Например:<br/><strong>\windows\explorer.exe</strong><br/><br/>г) Вставляем карту обратно в устройство, включаем и жмём на иконку "<strong>Навигация</strong>".<br/>В результате будет запущен explorer.exe со всеми прочими радостями полноценной <strong>WM 5.0</strong><br/><br/><strong>Метод№2:</strong><br/><br/>а) создайте на обычном компьютере файл <strong>YFGo2CE.bld</strong><br/>б) внутри файла что угодно, лучше всего просто пробел (то есть файл пустой практически).<br/>в) Записываем данный файл на флешку в корневую директорию<br/>г) вставляем флешку в навигатор, нажимаем "<strong>реcет</strong>" и наслаждаемся видом Винды 2000<br/><br/>Чтобы все вернуть к изначальному, вытаскиваем флешку или удаляем с нее файл.<br/>После перезагрузки увидите стандартную для вашего навигатора оболочку.<br/><br/><strong>Метод №3:</strong><br/><br/>Этот метод позволит Вам полностью отучить GPS навигатор от родной оболочки, да-же после сброса настроек.<br/><br/>а) Переводим устройство в режим работы с программой <strong>Active Sync</strong><br/><br/>б) Подключаем устройство к ПК и качаем программу <strong>Registry_Workshop</strong> или любой другой редактор реестра для КПК через Active Sync<br/><br/>в) <strong>ВНИМАНИЕ: в этом месте нужно быть внимательным, любая опечатка убьет Ваш GPS.</strong><br/><br/>В реестре переходим по адресу:<br/><strong>HKEY_LOCAL_MACHINE\init </strong><br/><br/>В нём видим строку <strong>Launch50=YFLoader.exe</strong><br/>Меняем значение <strong>YFLoader.exe</strong> на <strong>explorer.exe</strong><br/><br/>Внимание: Убедитесь что explorer.exe <strong>ТОЧНО</strong> существует в папке <strong>\windows</strong><br/><br/>(Если нужно вернуть оболочку обратно, то меняйте значение обратно на <strong>YFLoader.exe</strong>)<br/><br/>[caption id="attachment_380" align="aligncenter" width="800" caption="Реестр"]<img class="size-full wp-image-380" title="3791rw-med1" src="http://itbg.files.wordpress.com/2009/03/3791rw-med1.jpg" alt="Реестр" width="800" height="601" />[/caption]<br/><br/>PS. Модифицируйте <strong>ТОЛЬКО</strong> если у Вас оболочка <strong>YFLoader.exe</strong>, с другими оболочками работа метода <strong>не проверялась</strong>.<br/><br/>г) Перезагружаем устройство и видим обычный рабочий стол Windows 2000<br/><br/><strong>Поздравляю! </strong>Вы разлочили свой GPS и стали обладателем полноценного КПК.<br/><br/>У меня же на Linux разумеется Active Sync'a нету, я пошёл проще :<br/>Скачал редактор реестра <strong>regeditce </strong>с сайта 4pda.ru (работает без установки), залил на карту памяти.<br/>Запустил explorer.exe по <strong>Методу №1</strong> и разлочил по пункту <strong>в)</strong> Метода №2<br/><br/><strong>Особенности работы:</strong><br/><br/>Все программы, которые используются в оболочке, находятся на скрытом разделе <strong>\ResidentFlash2</strong><br/>Просто наберите:<br/>Start => Run => \ResidentFlash2 и перейдите в папку <strong>YFAP30</strong> (У меня называлась так).<br/><br/>Если Вы хотите что-бы картинка на рабочем столе оставалась после перезагрузки, то отредактируйте реестр:<br/><strong>HKEY_CURRENT_USER\ControlPanel\Desktop</strong><br/><br/>В качестве значения укажите:<br/><strong>RESIDENTFLASH\WINDOWS\KARTINKO.BMP </strong><br/>не забыв положить картинку с разрешение Вашего экрана в указанное место.<br/><br/>Что-бы ярлыки и программы не удалялись при перезагрузки поправьте реестр следующим образом:<br/><br/>[caption id="attachment_381" align="aligncenter" width="641" caption="Программы"]<img class="size-full wp-image-381" title="735414program" src="http://itbg.files.wordpress.com/2009/03/735414program.png" alt="Программы" width="641" height="427" />[/caption]<br/><br/>Убедитесь что указанные папки существуют.<br/><br/>На всякий случай прикладываю Бэкапы моей прошивки:<br/>Сделанный с помощью программы DiskRW <a href="http://www.mediafire.com/?vrhgygqtdd8">ТУТ</a><br/>Сделанный с помощью программы RomReader <a href="http://www.mediafire.com/?mj8iccdxwnz">ТУТ</a><br/><br/>Все инструкции по восстановлению в комплекте.<br/><br/>Источники:<br/><a href="http://forum.nedoma.ru/topic20797.html">Форум</a> посвящённый настройке твику навигатора.<br/><a href="http://4pda.ru/forum/index.php?showtopic=96698">Форум</a> 4pda.ru посвящённый восстановлению GPSDavnozduhttp://www.blogger.com/profile/06531201304669465898noreply@blogger.com32tag:blogger.com,1999:blog-9079538622014860007.post-10703295760220955382009-03-19T01:21:00.000+01:002010-07-03T18:28:26.080+02:00Squid+Bfilter+Ziproxy+листы AdBlock=быстрый интернет без рекламыВсем привет!<br/>Наткнулся на замечательные статьи посвящённые оптимизации интернет канала для пользователей.<br/>У меня дома есть сервер, который раздаёт интернет на несколько ПК и на нём крутиться Squid.<br/>Раньше рекламу резал SquidGuard, но как-то не качественно получалось.<br/>Решил заменить и оптимизировать.<br/><br/>Схема оптимизации проста:<br/>В интернет:<br/><strong>Squid</strong> (кэшируем) =><strong> Ziproxy</strong> (сжимаем) => <strong>Bfilter</strong> (обрезаем рекламу) => <strong>Интернет</strong><br/><br/>Из Интернета:<br/><strong>Интернет</strong> =><strong> Bfilter</strong> (обрезаем рекламу) => <strong> Ziproxy</strong> (сжимаем) => <strong>Squid</strong> (кэшируем) =><strong> Клиент</strong><br/><br/>1) Ставим Bfilter по <a href="http://wiki.firstvds.ru/index.php/BFilter">ЭТОЙ</a> инструкции.<br/>Для пользователей Gentoo по первой части <a href="http://ylsoftware.com/?action=news&na=viewfull&news=360">ЭТОЙ </a>инструкции:<br/><br/><!--more Читать Далее...--><br/><br/>Цитата:<br/><blockquote>Итак. Приступим. Допустим что Gentoo Linux уже установлен на уровне базовой системы и в ядре включена поддержка iptables. Теперь установим bfilter, squid и iptables:<br/><br/><strong>emerge bfilter squid iptables</strong><br/><br/>Далее приступаем к настройке. Сначала настраиваем bfilter. По умолчанию он запускается в chroot-окружении, но не работает:) Для решения этой проблемы "достаём" его из chroot. Для этого в файле /etc/conf.d/bfilter заменяем строчку:<br/><br/><strong><code>BFILTER_OPTS="-u bfilter -g bfilter -r /etc/bfilter"</code></strong><br/><br/>На строку:<br/><br/><strong><code>BFILTER_OPTS="-u bfilter -g bfilter"</code></strong><br/><br/>Затем открываем в редакторе файл /etc/bfilter/config и правим следующим образом: меняем значение параметра "ad_border" на "none", т.е. отключаем отображение границ вырезаной рекламы (уж больно не эстетично они выглядят:)). Так же меняем значение параметра "page_cleanup" на "safe", чтобы не просто блокировать рекламу, но и по возможности вырезать её код, из кода загружаемых страниц. Здесь так же ещё возможно значение "maximum", но в этом случае возможны поломки кода, что нежелательно.<br/><br/>На этом настройка bfilter заканчивается и можно его запускать:<br/><strong><br/>rc-update add bfilter default<br/>/etc/init.d/bfilter start</strong></blockquote><br/>2) Ставим Ziproxy по <a href="http://wiki.firstvds.ru/index.php/Ziproxy">ЭТОЙ</a> инструкции.<br/><br/>3) Прикручиваем к Squid<br/>Правим <strong>squid.conf</strong><br/><blockquote>http_port 3128 <strong>transparent</strong></blockquote><br/><blockquote><br/>never_direct allow all<br/>cache_peer 127.0.0.1 parent <strong>8787</strong> 0 no-query no-digest<br/></blockquote><br/><strong>8787</strong> - Это порт <strong>Ziproxy</strong> из примера.<br/><br/>4) Пробуем всё запустить и добавляем сервисы в автозапуск.<br/><br/>5) Прикручиваем фильтры от программы <strong>AdBlock</strong><br/><br/>Базовая инструкция для FreeBSD доступна <a href="http://bookshelf.ath.cx/articles/bfilter_adblock-plus.html">здесь</a><br/><br/>Но, она предназначена для получения апдейтов из одного источника.<br/>Что-ж модифицируем скрипт для скачивания списков из множества источников<br/>Источники списков для AdBlock для русских сайтов можно взять на <a href="http://forum.mozilla-russia.org/viewtopic.php?id=3679&p=72">ЭТОЙ</a> ветке форуме в подписях участников.<br/><br/>Поскольку у меня Gentoo, то я выкладываю свои правленые скрипты:<br/><br/>В <strong>adblock2bfilter.pl</strong> меняем путь до <strong>Perl</strong><br/><blockquote>#!/usr/bin/perl</blockquote><br/>В <strong>bfilterUpdateLists.sh</strong> требуются большие изменения.<br/>Вот мой файл, который качает списки со множества источников:<br/><blockquote><br/><ol> <span style="font-family:Consolas,Courier New,Courier,Monospace;color:black;font-size:x-small;"><br/> <li><span style="color:#696969;">#!/bin/bash</span></li><br/> <li><span style="color:#696969;">#Update Bfilter<br/></span></li><br/> <li>EASYLIST_URL=link.txt</li><br/> <li>TEMP_FILE=<span style="color:#008000;">"/tmp/bfilterList.tmp"</span></li><br/> <li>LOCAL_LIST_FILE=<span style="color:#008000;">"/etc/bfilter/urls.local.save"</span></li><br/> <li>OUTPUT_FILE=<span style="color:#008000;">"/etc/bfilter/urls.local"</span></li><br/> <li>WGET=<span style="color:#008000;">"/usr/bin/wget"</span></li><br/> <li>CAT=<span style="color:#008000;">"/bin/cat"</span></li><br/> <li>CONVERTER=<span style="color:#008000;">"/usr/local/bin/adblock2bfilter.pl"</span></li><br/> <li>BFILTER=<span style="color:#008000;">"/etc/init.d/bfilter"</span></li><br/> <li>${WGET} -q -O - -i ${EASYLIST_URL} | ${CONVERTER} >${TEMP_FILE}</li><br/> <li><span style="color:#0000ff;">if</span> [ -s ${TEMP_FILE} ]; <span style="color:#0000ff;">then</span></li><br/> <li> <span style="color:#0000ff;">echo</span> <span style="color:#008000;">"Updating BFilter URLs:"</span></li><br/> <li> <span style="color:#0000ff;">if</span> [ -f ${LOCAL_LIST_FILE} ]; <span style="color:#0000ff;">then</span></li><br/> <li> ${CAT} ${TEMP_FILE} ${LOCAL_LIST_FILE} >${OUTPUT_FILE}</li><br/> <li> <span style="color:#cc6633;">rm</span> ${TEMP_FILE}</li><br/> <li> <span style="color:#0000ff;">else</span></li><br/> <li> <span style="color:#cc6633;">mv</span> ${TEMP_FILE} ${OUTPUT_FILE}</li><br/> <li> <span style="color:#0000ff;">fi</span></li><br/> <li> <span style="color:#cc6633;">chmod</span> <span style="color:#008000;">640</span> ${OUTPUT_FILE}</li><br/> <li> ${BFILTER} restart</li><br/> <li> <span style="color:#0000ff;">echo</span> <span style="color:#008000;">""</span></li><br/> <li><span style="color:#0000ff;">fi</span></li><br/></span></ol><br/></blockquote><br/>Т.е Ссылки на списки с фильтрами Мы пишем в файл <strong>link.txt</strong>, который у меня лежит в директории со скриптом.<br/><br/>Вот мой link.txt с некоторыми фильтрами:<br/><blockquote>http://ruadlist.googlecode.com/svn/trunk/adblock.txt<br/>http://easylist.adblockplus.org/adblock_rick752.txt<br/>http://nsis.narod.ru/clean_internet/aag.txt<br/>http://nsis.narod.ru/clean_internet/aas.txt<br/>http://nsis.narod.ru/clean_internet/ac.txt<br/>http://nsis.narod.ru/clean_internet/ae.txt<br/>http://nsis.narod.ru/clean_internet/ao.txt</blockquote><br/>6) Записываем скрипт <strong>cron</strong> для автообновления.<br/><br/>Всё, радуемся результату.Davnozduhttp://www.blogger.com/profile/06531201304669465898noreply@blogger.com4tag:blogger.com,1999:blog-9079538622014860007.post-408235658119705222009-03-17T00:42:00.000+01:002010-07-03T18:28:25.646+02:00Запись видео с WEB камеры со звуком в Linux с помощью MencoderВсем привет!<br/><br/>Понадобилось мне записать видео письмо другу, а под рукой есть только <strong>Eee PC 701 с WEB камерой</strong>.<br/>Что-же делать? Правильно. Начать записывать :)<br/><br/>Для начала убедимся что у Вас в ядре уже <strong>включена</strong> поддержка <strong>WEB камеры</strong> и <strong>v4l2</strong><br/>Писать видео Мы будем через <strong>Mplayer</strong> и <strong>mencoder</strong>.<br/>Mplayer наверняка уже у Вас установлен, если нет то незабываем его установить.<br/>Если производите сборку из сорцов позаботьтесь о соответствующих <strong>флагах</strong>.<br/><br/>Теперь убедимся что <strong>WEB камера</strong> у Нас <strong>показывает</strong>.<br/>Даём команду:<br/><!--more Читать Далее...--><br/><br/><br/><blockquote><code>mplayer tv:// -tv driver=v4l2:width=352:height=288:device=/dev/video0</code></blockquote><br/><br/>И <strong>наблюдаем</strong> сами-себя.<br/><br/>Идём дальше.<br/><br/>Пробуем <strong>записать</strong> видео:<br/><br/><br/><blockquote><br/>cd /tmp<br/><code>mencoder tv:// -tv driver=v4l2:width=:height=:device=/dev/video0 -nosound -ovc lavc -o .avi</code></blockquote><br/><br/>На выходе получим видео но <strong>без звука</strong>.<br/><br/>Теперь дело осталось за малым: Прикрутить звук к видео, который Мы будем писать через встроенную звуковую карту.<br/><br/><strong>Готовая команда</strong> выглядит так:<br/><br/><br/><blockquote><code>mencoder tv:// -tv driver=v4l2:width=320:height=240:device=/dev/video0:alsa:forceaudio:amode=0:adevice=hw.0,0 -ovc lavc -lavcopts vcodec=mpeg4 -oac mp3lame -lameopts vbr=3:br=32:mode=3 -af volnorm -o VideoFile.avi<br/></code></blockquote><br/><br/><br/>Описание команд:<br/><br/><br/><blockquote><code><strong>tv://</strong> </code> - Источник видео<br/><strong>driver=v4l2</strong> - Драйвер видео, в нашем случае v4l2<br/><strong>width и height</strong> - Размеры видеокартинки<br/><strong>device=/dev/video0</strong> - Видеоустроство<br/><strong>-nosound </strong>- Без звука<br/><strong>-ovc lavc</strong> - Видеокодек<br/><strong><code>alsa:forceaudio:amode=0:</code></strong> - Параметры звука<br/><strong>adevice=hw.0,0</strong> - Звуковая карта, если нет звука или Вы хотите писать его например через микрофон в WEB камере то поиграйтесь со значениями 0,0 (0,1;1,0 и т.д)<br/><strong>-lavcopts vcodec=mpeg4 </strong>- Параметры кодека<br/><strong>-oac mp3lame</strong> - Звуковой кодек, в Нашем случае mp3 Lame<br/><strong>lameopts vbr=3:br=128:mode=0</strong> - параметры для кодека Lame<br/><strong>vbr=3 </strong>- используем ABR. vbr=0 соответствует CBR<br/><strong>br=32</strong> - указываем битрейт, в данном случае 32 Kbps<br/><strong>mode=0</strong> - на выходе получаем стерео звук. mode=3 соответствует mono-звуку<br/><strong>-af volnorm</strong> - Нормализация звука<br/></blockquote><br/><br/>Можно ещё добавить каких-нибудь <strong>видеофильтров</strong>, хотя мне и так нравиться.<br/><br/>Ссылки:<br/>Номер <a href="http://forum.lafox.net/index.php?showtopic=7753">раз</a><br/>Номер <a href="http://lists.mplayerhq.hu/pipermail/mencoder-users/2008-February/008069.html">два</a><br/>Номер <a href="http://lists.mplayerhq.hu/pipermail/mplayer-users/2003-April/032506.html">три</a><br/>Номер <a href="http://www.security-teams.net/board/index.php?showtopic=5148">четыре</a><br/>Номер <a href="http://mydebian.blogdns.org/?p=120">пять</a>Davnozduhttp://www.blogger.com/profile/06531201304669465898noreply@blogger.com5tag:blogger.com,1999:blog-9079538622014860007.post-11464152374744000552009-03-12T00:52:00.000+01:002010-07-03T18:28:25.125+02:00Используем SSMTP для отправки почты по умолчаниюВсем привет!<br/><br/>Сегодня рассмотрим, как Нам заменить стандартный <a href="http://ru.wikipedia.org/wiki/Sendmail">sendmail </a>на <strong>SSMTP</strong> и получать всю почту к себе на <strong>e-mail</strong>.<br/><br/>Для начала поставим <strong>SSMTP</strong>.<br/><br/>Пользователи Linux ставят и делают первичную настройку по<a href="http://itbg.wordpress.com/2009/02/23/%d0%be%d1%82%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d1%8f%d0%b5%d0%bc-%d0%bb%d0%be%d0%b3%d0%b8-%d0%bf%d0%be-%d0%bf%d0%be%d1%87%d1%82%d0%b5-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-ssmtp-%d0%b8-bash-%d1%81%d0%ba%d1%80/"> ЭТОЙ</a> инструкции.<br/>И переходят ко <strong>второй части статьи</strong>.<br/><br/>Для пользователей <strong>FreeBSD</strong>:<br/><br/><br/>1) Устанавливаем <strong>SSMTP</strong><br/><blockquote>monitor# cd /usr/ports/mail/ssmtp<br/>monitor# make install replace clean<br/>monitor# cd /usr/local/etc/ssmtp<br/>monitor# ls<br/>revaliases.sample ssmtp.conf.sample<br/>monitor# cp revaliases.sample revaliases<br/>monitor# cp ssmtp.conf.sample ssmtp.conf<br/>monitor# ls<br/>revaliases revaliases.sample ssmtp.conf ssmtp.conf.sample</blockquote><br/><br/>2) Правим <strong>rc.conf</strong><br/><!--more Читать Далее...--><br/><blockquote>sendmail_enable="NO"<br/>sendmail_submit_enable="NO"<br/>sendmail_outbound_enable="NO"<br/>sendmail_msp_queue_enable="NO"</blockquote><br/><br/>3) Затем правим <strong>ssmtp.conf</strong> и <strong>revaliases</strong> по <a href="http://itbg.wordpress.com/2009/02/23/%d0%be%d1%82%d0%bf%d1%80%d0%b0%d0%b2%d0%bb%d1%8f%d0%b5%d0%bc-%d0%bb%d0%be%d0%b3%d0%b8-%d0%bf%d0%be-%d0%bf%d0%be%d1%87%d1%82%d0%b5-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-ssmtp-%d0%b8-bash-%d1%81%d0%ba%d1%80/">ЭТОЙ</a> инструкции.<br/><br/><strong>Часть вторая:</strong><br/><br/><strong>Для всех систем:</strong><br/><br/>Ищем бинарный файл <strong>sendmail</strong><br/>Переименовываем его, к примеру так:<br/><br/><br/><blockquote>mv /usr/sbin/sendmail /usr/sbin/sendmail.old</blockquote><br/><br/>И делаем <strong>симлинк</strong> на ssmtp, например так:<br/><br/><br/><blockquote>ln -s /usr/sbin/ssmtp /usr/sbin/sendmail</blockquote><br/><br/><strong>Всё!</strong> Теперь все сообщения будут пересылаться через программу <strong>SSMTP</strong><br/><br/>Проверить можно так:<br/><br/><blockquote>echo "Test message" | mail -s Test</blockquote><br/><br/><strong>Альтернативная</strong> замена <strong>SSMTP</strong> без копирования <strong>sendmail</strong> для пользователей <strong>FreeBSD</strong>:<br/><br/>Правим файл <strong>/etc/mail/mailer.conf</strong> :<br/><br/><br/><br/><blockquote># cat /etc/mail/mailer.conf<br/># $FreeBSD: src/etc/mail/mailer.conf,v 1.3 2002/04/05 04:25:12 gshapiro Exp $<br/>#<br/># Execute the "real" sendmail program, named /usr/libexec/sendmail/sendmail<br/>#<br/>#sendmail /usr/libexec/sendmail/sendmail<br/>#send-mail /usr/libexec/sendmail/sendmail<br/>#mailq /usr/libexec/sendmail/sendmail<br/>#newaliases /usr/libexec/sendmail/sendmail<br/>#hoststat /usr/libexec/sendmail/sendmail<br/>#purgestat /usr/libexec/sendmail/sendmail<br/>sendmail /usr/local/sbin/ssmtp<br/>send-mail /usr/local/sbin/ssmtp<br/>mailq /usr/local/sbin/ssmtp<br/>newaliases /usr/local/sbin/ssmtp<br/>hoststat /usr/bin/true<br/>purgestat /usr/bin/true</blockquote><br/><br/><a href="http://lsdnet.ru/page-id-49-comments-1.html">Источник</a><br/><br/><br/><strong>PS.</strong><br/>Для пользователей <strong>NAGIOS</strong> рекомендуют воспользоваться программой <strong>mailx</strong><br/><br/>Источники:<br/><a href="http://www.linux.com/feature/132006">Первый</a><br/><a href="http://man.chinaunix.net/newsoft/nagios/ch11s03.html">Второй</a>Davnozduhttp://www.blogger.com/profile/06531201304669465898noreply@blogger.com6tag:blogger.com,1999:blog-9079538622014860007.post-48245660239213423052009-03-09T01:55:00.000+01:002010-07-03T18:28:25.031+02:00Лечим баг плагина "check_ping" системы NagiosВсем привет!<br/><br/>Сегодня поставил систему мониторинга <strong>Nagios</strong> на <strong>FreeBSD</strong> и столкнулся со сложным <strong>багом</strong> плагина <strong>check_ping</strong><br/><br/>При попытке проверить ping до хоста вылетала следующая ошибка:<br/><br/><br/><br/><blockquote>CRITICAL - You need more args!!!<br/>Could not open pipe:<br/></blockquote><br/><br/><br/><strong>Лечение</strong>:<br/><br/>Качаем <strong>Nagios Plugins</strong> с <a href="http://www.nagiosplugins.org/download">ЭТОЙ</a> страницы<br/><br/><strong>Распаковываем</strong><br/><br/><br/><br/><blockquote>tar xvzf nagios-plugins-1.4.13.tar.gz</blockquote><br/><br/><br/><br/>Выполняем команду <strong>./configure</strong><br/><br/>Открываем в текстовом редакторе <strong>config.h</strong><br/><br/>В нём ищем строку<br/><br/><br/><blockquote>#define PING_COMMAND “"</blockquote><br/><br/><br/><br/>Меняем её на<br/><br/><br/><blockquote>#define PING_COMMAND “/sbin/ping -c5 -s 56 %s"</blockquote><br/><br/>Сохраняем, компилируем и проверяем:<br/><br/><br/><blockquote>make<br/>cd plugins<br/>./check_ping -H Ваш_Хост -4 -w 300.0,80% -c 500.0,100%</blockquote><br/><br/><br/><br/>Если всё ОК, то переносим в папку с плагинами Nagios <strong>/usr/local/libexec/nagios</strong>Davnozduhttp://www.blogger.com/profile/06531201304669465898noreply@blogger.com3tag:blogger.com,1999:blog-9079538622014860007.post-39385295144828702232009-03-06T21:02:00.000+01:002010-07-03T18:28:24.940+02:00Kaspersky RescueCD на Flash, через Grub4DOSВсем привет!<br/>Сегодня займёмся <strong>Kaspersky RescueCD</strong>.<br/>По сути это обычный <strong>LiveCD</strong> с антивирусов<strong> KAV</strong> для проверки Вашей системы на вирусы.<br/>Если у Вас нет загрузочной Flash с Grub4DOS то Вы можете её сделать следуя <a href="http://itbg.wordpress.com/2008/12/14/%d0%b7%d0%b0%d0%b3%d1%80%d1%83%d0%b7%d0%be%d1%87%d0%bd%d0%b0%d1%8f-flash-%d1%81-%d0%bf%d0%be%d0%bc%d0%be%d1%89%d1%8c%d1%8e-grub4dos/">инструкциям</a><br/><br/>Приступим к установке:<br/><!--more Читать Далее...--><br/>Качаем его <a href="http://downloads.kaspersky-labs.com/devbuilds/RescueDisk/">ВОТ ОТСЮДА</a><br/><br/>1. Выдернуть с <strong>iso</strong> следующие файлы и положить по соответствующим местам:<br/><strong>флешка:\livecd</strong> - файл маркер, размер 0, положить в корень флешки<br/><strong>От себя:</strong> Именно по этому файлу <strong>KAV RescueCD</strong> ищет корень диска, положите этот файл в корень того раздела, на котором находятся остальные фалы <strong>KAV RescueCD</strong><br/><br/><strong>флешка:\bases\... </strong> - файлы баз лежат тут, в папке, в корне флешки (иначе не найдет, да и тяжело потом обновлять будет)<br/><br/>Файлы ниже я ложил в нужную мне папку, можете переместить, соответственно подкорректировав конфиг grub4dos:<br/><blockquote>флешка:\Boot\kav\rescue<br/>флешка:\Boot\kav\rescue.igz<br/>флешка:\Boot\kav\image.squashfs</blockquote><br/>2. Конфиг для<strong> memu.lst</strong>:<br/><blockquote>title rescue<br/>kernel /Boot/kav/rescue append root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/Boot/kav/image.squashfs cdroot<br/>initrd /Boot/kav/rescue.igz<br/><br/>title rescue-safe<br/>kernel /Boot/kav/rescue append root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/Boot/kav/image.squashfs cdroot nox trace<br/>initrd /Boot/kav/rescue.igz<br/><br/>title rescue-raid<br/>kernel /Boot/kav/rescue append root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/Boot/kav/image.squashfs cdroot nox dolvm dodmraid<br/>initrd /Boot/kav/rescue.igz<br/><br/>title rescue-trace<br/>kernel /Boot/kav/rescue append root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/Boot/kav/image.squashfs cdroot quiet trace<br/>initrd /Boot/kav/rescue.igz<br/><br/>title rescue-text<br/>kernel /Boot/kav/rescue append root=/dev/ram0 init=/linuxrc looptype=squashfs loop=/Boot/kav/image.squashfs cdroot console=tty2 console=ttyS2,115200 softlevel=iamt nox kavshell trace<br/>initrd /Boot/kav/rescue.igz</blockquote><br/><br/><strong>От себя:</strong><br/>Если требуется принудительно указать диск или раздел используйте <br/><br/><br/><blockquote>root(0,0) - первый раздел на первом диске<br/>root(0,1) - второй раздел на первом диске <br/>и т.д</blockquote><br/><br/><br/>3. <strong>Все</strong>.<br/><br/>Это минимально-достаточный набор файлов.<br/>Запускайте и работайте.<br/><strong>Некоторые нюансы работы</strong>: при запуске тестит правильно ли были отмонтированы разделы, если коряво - говорит, что запуск на свой страх и риск (может такое быть когда вы увели комп в Хибернайт и теперь неразумно пытаетесь сканить...<br/>Последствия несинхронизированности файловых систем обычно печальные - поврежденные файлы, так что к предупреждению нужно прислушиваться, или чистить кэш файловой системы при выходе из хиребнэйта[конечно если сможете и знаете как)))]).<br/>Далее выбор языков и попытка подключиться по лан - язык пробовал только русский, остальные не проверил, но так чуствую, что места они гребут прилично и можно было бы почистить...<br/>Сеть тестирует и пытается вытянуть настройки с установленных операционок.<br/>У меня DHCP и не подключенный кабель, т.к. все через WiFi сделано, соответственно нифига не работает, да и не особо нужно.<br/>Далее ищет установленный <strong>KAV</strong> или <strong>KIS,</strong> если находит, то свои файлы засунет на винт, относительно установленных продуктов (например C:\Documents and Settings\All Users\Application Data\Kaspersky Lab\...).<br/>Соответственно, после запуска можно обновиться по сети, по предварительно подготовленным файлам и т.д.<br/>А полученную папку баз взять с винта и вписать на флешку.<br/>Ну... кому надо, тот разберется. Писать лень. Если же <strong>KAV</strong> или <strong>KIS</strong> не найдет, то будет создана спец. папка на одном из доступных дисков, куда опять же будут положены базы и своп.<br/>Ну и последнее, флешка монтируется как<strong> LIVE</strong>-устройство (типа как CD, без непосредственного доступа), что очень хорошо, по некоторым причинам (своп туда ложить не будет и т.д.).<br/>Но если нужно посканить ее - перемонтируйте на RW-доступ.<br/><br/>Базы после обновления:<br/><strong>Один из дисков:\kl.files</strong> - если не найдет установленного касперского либо:<br/><br/>Положит в папку с базами от касперского, типа:<br/><blockquote>c:\Documents and Settings\All Users\Application Data\Kaspersky Lab\AVP8\bases_rd</blockquote><br/>(файлы баз отличаются от Windows-версии, обратите на это внимание, после обновления их спокойно переносите на флешку)<br/><br/>Тестирование показало что на флешке с файловой системой <strong>NTFS</strong> не работает, сам использую флешку размеченную в <strong>FAT32</strong>...<br/><br/><strong>От себя добавлю:</strong><br/>У меня файловая система <strong>ext2</strong> и всё замечательно работает.<br/><br/>Совместно с пользователем <strong>kDnZP</strong><br/><a href="http://forum.ru-board.com/topic.cgi?forum=5&topic=22426&start=900#13">Источник</a>Davnozduhttp://www.blogger.com/profile/06531201304669465898noreply@blogger.com1