18 февраля 2015

Чем открыть файл *.h264

Если у вас возникли трудности, вы не знаете, как открыть и воспроизвести видео файлы в формате *.h264, то данная статья специально для вас.
 
Как правило, в таком формате сохраняют видео многие видеорегистраторы и DVR. Это не что иное, как видео сжатое кодеком h.264 в сыром, бинарном виде, т.е. без контейнера.  Поэтому видеоплееры не знают какой демультиплексор использовать и не могут декодировать видео. 

Все, что нужно сделать, это положить такое видео в контейнер, например, в MKV, MP4, или OGM. Для работы с mp4 используют утилиту командной строки MP4Box отдельно или в связке с графическим интерфейсом My MP4Box GUI.

Мы будем использовать контейнер MKV и утилиту MKVmerge GUI из пакета MKVToolnix. Взять можно на официальной странице в разделе Windows.

Запускаете программу mkvtoolnix-gui.exe, добавляете файл *.h264 и нажимаете кнопку "Выполнить слияние".


На выходе получаете файл mkv, который открывается в любом плеере.

Единственное, что нужно добавлять по одному видеофайлу, а иначе на выходе он их объединит в один!

Если хотите разом обработать несколько файлов, то сначала добавьте первый,  затем кликните на нем правой клавишей мыши и выберите "прикрепить файлы". Они прикрепятся следующим образом, как на изображении ниже.


Теперь перейдите на вкладку  "Вывод" и выберите в пункте режим разбиения "После этого времени", а ниже поставьте длительность в секундах. В примере выходной файл разобьется на файлы по 8,33 мин.


Или же можно научить плеер открывать файлы *.h264 без лишних манипуляций. Для этого нужно вручную задать, какой модуль демультиплексора использовать.

На примере плеера VLC. Открываете настройки.
Ставите "Показывать все настройки", заходите в раздел Демультиплексоры и выбираете "Демультиплексор H264". Нажимаем Сохранить.


Теперь сырое видео из файлов *.h264 будет воспроизводиться прямо в плеере! После просмотра не забудьте вернуть назад автоматический выбор демультиплексора.

Wi-Fi на BSD системах

Думаю у многих есть желание добавить функционал точки доступа к своему FreeBSD серверу. Очевидно, зачем покупать лишнее устройство в виде отдельно стоящего Wi-Fi-роутера, если практически тоже самое можно получить от вашего сервера с минимальными затратами.

Но  те, кто уже сталкивались с этой задачей, знают, что не все так гладко. Поэтому в этой статье я постараюсь описать все грабли, на которые не следует наступать и быстро настроить wi-fi сеть.

Нам понадобится обычная wi-fi карта, USB или PCI [Express].

И тут появляется первая проблема, с которой вы можете столкнуться. Он связана с тем, что не все карточки поддерживаются драйверами. Поэтому важно знать, как подобрать подходящую и рабочую карту.

Для чипов разных производителей с разными интерфейсами шин существуют отдельные драйверы. Например, для Broadcom на PCI это bwi, для Atheros  на  PCI- ath, atheros на USB - uath, Ralink на USB - run, rum и т.д.

На страницах man есть подробные описания последних версий каждого из них, включая какие конкретно модели карточек поддерживаются.
 
От версии к версии эти списки пополняются, поэтому с большой вероятностью ваш старенький адаптер будет работать.

Проверить поддерживаемые беспроводные адаптерв можно непосредственно на сайте в разделе GetFreeBSD>Release Information> Hardware Notes> 3.5. Wireless Network Interfaces
 
Если вашего адаптера нет в числе поддерживаемого, то можно попробовать использовать windows драйвер в обертке NDIS. Но имейте в виду, что такой драйвер  не сможет работать в режиме точки доступа!

Здесь есть полный список и поддерживаемых чипов всех производителей для BSD-систем. 
Что бы узнать на каком чипе ваша карточка, достаточно открыть ее описание на сайте wikidevi.com. Обращайте внимание, что некоторые модели имеют несколько ревизий на разных чипах, поэтому внимательно сверяйте версии. Они указываются на наклейках коробки или самих устройствах.

Так же обращайте внимание, что не все драйверы поддерживают 11n режим, даже если на самом устройстве написано, что оно работает. На текущий момент его поддерживают всего три драйвера ath, iwn и mwl.

Посмотрев, что предлагается в ближайших магазинах мой выбор пал на два адаптера D-Link DWA-140 и DWA-160, оба собраны на чипах Ralink и поддерживаются драйвером run, но пока только в 11g режиме. Их основное отличие - второй может работать в двух диапазонах 2,4 и 5 ГГц. Стоимость 580 и 850 руб соответственно.
 
Будем считать, что подходящий адаптер у вас имеется. Теперь приступаем непосредственно к настройке.

Опишем общий процесс поиска, как узнать какое устройство подключено.
После того, как вы подключили устройство, посмотрим, что оно из себя представляет.

Если это  USB устройство, то пишем
# usbconfig dump_device_desc
Находим там ваш адаптер по ключевым словам 802.11
ugen4.2: <802.11 n WLAN Ralink> at usbus4, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (450mA)

bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0200
bDeviceClass = 0x0000
bDeviceSubClass = 0x0000
bDeviceProtocol = 0x0000
bMaxPacketSize0 = 0x0040
idVendor = 0x2001
idProduct = 0x3c20
bcdDevice = 0x0101
iManufacturer = 0x0001 <Ralink>
iProduct = 0x0002 <802.11 n WLAN>
iSerialNumber = 0x0003 <1.0>
bNumConfigurations = 0x0001
Берем его idProduct и ищем в этом списке. Таким образом вы узнаете полное наименование и даже чип.

Если это PCI, то воспользуемся утилитой pciconf.
# pciconf -lv
Получите список всех PCI устройств с указанием драйвера, идентификатора производителя, наименования, класса и подкласса. Например,
rl0@pci0:0:9:0: class=0x020000 card=0x813910ec chip=0x813910ec rev=0x10 hdr=0x00
    vendor     = 'Realtek Semiconductor Co., Ltd.'
    device     = 'RTL-8139/8139C/8139C+'
    class      = network
    subclass   = ethernet
После того, как вы узнали на каком чипе ваше устройство и какой нужен драйвер. Обращаемся к справке man, там сказано, что необходимо прописать в /boot/loader.conf  для загрузки модуля драйвера. В моем случае это.
if_run_load="YES"
runfw_load="YES"
После перезагрузки у вас должно появится новое устройство.
# ifconfig
run0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 2290
        ether ac:f1:df:01:e5:64
        nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
        media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <hostap>
        status: running
Если нет, то дайте команду:
# ifconfig wlan0 create wlandev run0
И посмотрите создался ли у вас интерфейс wlan0.
# ifconfig wlan0
Если создался, то удалим:
# ifconfig wlan0 destroy
Дальше в /etc/rc.conf  напишем
ifconfig_wlan0="inet 192.168.0.1/24"
wlans_run0="wlan0"
create_args_wlan0="wlanmode hostap channel 7 country RU"
hostapd_enable=YES
Далее настроим WPA2 аутентификацию. 
И создадим файл
# vi /etc/hostapd.conf
С таким содержимым
interface=wlan0
hw_mode=g
ssid=Your_name
ctrl_interface=/var/run/hostapd
ctrl_interface_group=wheel
# 1 - WPA1; 2 - WPA2; 3 - WPA1+WPA2
wpa=3
wpa_passphrase=Password
# алгоритм управления
wpa_key_mgmt=WPA-PSK
# алгоритмы шифрования
wpa_pairwise=CCMP
Во избежание раскрытия пароля закрываем доступ на чтение файла всем кроме root.
# chmod 700 /etc/hostapd.conf
Вешаем dhcp на wlan0, прописываем в rc.conf
dhcpd_ifaces="wlan0"
Настраиваем фаервол. Для примера добавим в ipfw правило разрешающее все через интерфес wlan0.
add 1098 allow all from any to any via wlan0
Запускаем hostapd
# service hostapd forcestart
И вуаля, у вас появилась сеть  "Your_name".

Но если вдруг за место этого у вас появилось "panic: page fault" типа такого


не отчаивайтесь, у меня такое тоже наблюдалось на FreeBSD 10.1-RELEASE и исключительно на x86, на amd64 все четко. Мне помогло обновление мира до последней текущей версии, 10.1-STABLE #4 r278159.
 
Перед запуском Wi-Fi сети очень важно узнать какие частотные каналы еще не заняты и выбрать любой свободный. Иначе будут проблемы в работе. Например вы просто не сможете подключиться к вашей сети.

Если понадобится удалить точку доступа, то пишем
# ifconfig wlan0 destroy
Вручную создать
# ifconfig wlan0 create wlandev run0 wlanmode hostap ssid Your_name
Сканировать на доступные сети
# ifconfig wlan0 up scan
Или так
# ifconfig wlan0 list scan
Посмотреть, на каких каналах может работать ваш адаптер.
# ifconfig -v wlan0 list channel
И вручную установить нужный канал
# ifconfig wlan0 channel 13
Включить/выключить сеть.
 # ifconfig wlan0 down
 # ifconfig wlan0 up
Перезапустить wlan0 по настройкам из /etc/rc.conf
# service netif restart wlan0

12 февраля 2015

Замена резинок на гибридных дворниках Denso

Гибридные дворники Denso очень качественные! Сделаны "японскими девственницами у подножья вулкана Фудзияма". ))) И если вы счастливый обладатель таких дворников, а их с завода ставят на все японские и некоторые другие автомобили. Например, Subaru, Toyota, Lexus, Honda, Mazda, Mitsubishi, Nissan, Kia и Hyundai. То эта статья для вас! 


Вы узнаете, как проапгрейдить вашу щетку, самостоятельно поменять резинку и как сделать это без лишних затрат. Оригинальные у меня проходили больше 2-х лет, ресурс, конечно,  впечатляет, но нет ничего вечного. 

Менять щетки целиком, пусть даже на какие то другие, желания нет абсолютно. Неправильно это как то и жалко. А вот заменить резинку проще простого. И сейчас я вам покажу, как это сделать. Справится даже ребенок!

Снимите щетку с рычага, предполагается, что вы умеете это делать. Далее следуйте инструкции.

Шаг 1. Найти  конец с замком, т.е. специальными углублениями, не дающими резинке двигаться.


 Шаг 2. Потянуть за этот конец и вытащить резинку с направляющими.


Шаг 3. Отделить направляющие и запомнить, как они стояли по выемкам.


Шаг 4. Взять новую резинку и расположить направляющие с правильных сторон.


Шаг 5. Вставить направляющие поочередно.


Шаг 6. Расположить корпус дворника горизонтально так, как будто он чистит стекло. Относительно такого положения конец резинки с замком должен быть слева. Это не позволит резинке вылететь во время взмахов.


Шаг 7. Протянуть резинку через каждый зажим.


Шаг 8. Надавить большим пальцем, чтобы крайний зажим защелкнулся в замок на резинке.


Шаг 9. Все готово! Обратите внимание замок слева.


Покупать оригинальные резинки совсем не обязательно. Конечно они качественные, долговечная резина высокой плотности с графитовым покрытием, но и стоят в нынешних условиях, как целая щетка, на exist уже 500-1000 руб за штуку.

И если вас это не останавливает, то подобрать можно по тойотовским каталожным номерам.
350мм - 85214-68030
400мм - 85214-28090
425мм - 85214-12301, 85214-42050
430мм - 85214-42050
450мм - 85214-33180, 85214-30400
475мм - 85214-30390, 86579-AJ050(от субару)
500мм - 85214-53090
530 мм - 85214-48031
550мм - 85214-53080, 85214-0T040
600мм - 85214-30380
650мм - 85214-68020, 86579-AJ000(от субару)
700мм - 85214-28080
Хочу всех обрадовать, есть более дешевый аналог. Будем верить, что наша отечественная резина чистит ни чуть не хуже! Поэтому смело идем в любой автомобильный магазин или даже Ашан и приобретаем обычную ленту для стеклоочистителя, каучуковую или силиконовую на ваше усмотрение, стоит всего 70-150 руб. Срок службы конечно будет поменьше, но на сезон должно хватить!

К слову сказать, как выяснилось, силикон имеет даже ряд преимуществ. Он более устойчив к воздействию озона, ультрафиолета и омывающей жидкости, а значить должен быть долговечнее. Эластичнее, что немаловажно в условиях низких температур (выдерживает до –60°С). Ленты могут быть разных цветов, вообщем один сплошной позитив!!! А что бы дольше служили и не скрипели не рекомендуется использовать на сухую и каждый раз смачивать.
При покупке обращайте внимание на профиль, у разных производителей они немного отличаются, ширина нашего 9 мм. Я купил резинки Акробат от питерской фирмы Хорс и они подошли, как родные! А что бы резинка не шаталась и плотно держалась, зажимы нужно немного поджать пассатижами.

В заключение небольшая видеоинструкция.

 

Делайте все с головой!
------------------------------------------------

P.S.
Решил сделать небольшое дополнение. 

После недельной эксплуатации силиконовых резинок. На стекле стали оставаться небольшие капельные следы от омывайки. Когда они высыхают, то практически исчезают.


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

В магазине был целый стеллаж с такими резинками на разную длинну и ширину. 
Обратите внимание, что наш выбор 8мм!

Они оказались практически полным аналогом оригинальных denso. Как по форме, так и на ощупь. Чистят тоже отлично. Поэтому вы практически не заметите разницы. Только стоят гораздо дешевле, около 200 руб. Это тоже японская фирма, но произведены в Корее. 

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

Как и оригинальные имеют замок!


Кстати, у кого есть проблема, что уголок между дворниками плохо прочищается, то решение очень простое. 

Во-первых, нужно нужно убедиться, что направляющие в резинки вставлены правильно. Дело в том, что дворники привыкают к форме стекла и изгиб становится определенной формы. А  во-вторых, подогните руками резинку с направляющими с этого конца. Она будет плотнее прижиматься и прочищать уголок.


  Это все, чем хотел поделиться, спасибо за внимание!

04 февраля 2015

Удаленный мониторинг температуры CPU


Как узнать температуру процессора или скорость кулера из удаленной консоли на freebsd сервере?

А очень просто!







Если у вас процессор Intel Core или новее, то можно так

# kldload coretemp
# sysctl -a | grep temperature

Если AMD,
# nkldload amdtemp
# sysctl -a | grep temp

Но, если какой-нибудь Pentium 4, то coretemp работать не будет.

Благо в портах есть удобная утилитка mbmon, сокращенно от MotherBoard Monitor. Этот порт с недавнего времени был перенесен в sysutils/xmbmon.
# uname -srm
FreeBSD 10.1-STABLE i386
# dmesg | grep CPU
CPU: Intel(R) Celeron(R) CPU 2.66GHz (2666.84-MHz 686-class CPU)
Краткий, "how to" как обращаться.
Запускаем с опцией  -A, она автоматически определяет подходящий метод доступа "VIA686 HWM directly", "SMBus", "ISA I/O port".
# mbmon -A
Запуск в debag режиме покажет какой метод используется.
# mbmon -d
ioctl(smb0:open): No such file or directory
SMBus[VT8233/A/8235/8237(KT266/333/400/600/880)] found, but No HWM available on it!!
Using ISA-IO access method!!
* Winbond Chip W83697HF found.
Опция -r выводит информацию в столбик
# mbmon -I -r -с1

TEMP0 : 45.0
TEMP1 : 51.5
TEMP2 : 0.0
FAN0 : 0
FAN1 : 1807
FAN2 : 0
VC0 : +1.38
VC1 : +0.06
V33 : +3.26
V50P : +5.08
V12P : +10.94
V12N : +0.14
V50N : +1.64
Первая температура материнской платы, затем отдельно каждое ядро.
Опция -T задает краткий вывод. Имеется 7 режимов:
  1. temp0\n
  2. temp1\n
  3. temp2\n
  4. temp0\temp1\n
  5. temp0\temp2\n
  6. temp1\temp2\n
  7. temp0\temp1\temp2\n
# mbmon -I -T 2
50.5
И аналогично для скорости вращения вентиляторов, опция -F.

Для удобства можно забабахать небольшой скриптик и получать письма или смс-ки в критических ситуациях.
#!/bin/sh
t=`mbmon -I -c 1 -T 2`
if [ "$t" > "60" ]
then
echo "Temperature is $t " | mail -s "[Warning]: High Temp!" your@gmail.com
echo "Temperature is $t " | mail -s "[Warning]: High Temp!" 79124567890@sms.ural.mts.ru
fi
У мтс нужно подключить бесплатную доп услугу "Прием SMS с E-mail".

Так же для удобно, когда температура выводится автоматически на экран приветствия при логине. Для этого сделаем скрипт motd.sh
#!/bin/sh
t1=`mbmon -I -c 1 -T 2`
t2=`mbmon -I -c 1 -T 1`
f=`mbmon -I -c 1 -F 2`
echo "The weather is"
echo "CPU: $t1"
echo "Chipset: $t2"
echo "Fan: $f
"
Кладем его в /usr/local/sbin и прописываем в пользовательском .profile после или вместо подсказок.
#if [ -x /usr/games/fortune ] ; then /usr/games/fortune freebsd-tips ; fi
echo ""

if [ -f /usr/local/sbin/motd.sh ]; then motd.sh; else echo "file is absent"; fi
Теперь каждый раз во время логина будете видеть текущую погоду на сервере, насколько там жарко и ветрено!