понедельник, 28 сентября 2015 г.

OS X: Используем mac mini как колонку

В жизни бывает всякое, потребовалось мне подключить колонку к монитору, но т.к. колонок у меня не было, я решил принимать звук через разъем Line In в MacMini и передавать на встроенную колонку с помощью программы LineIn.

Скачать программу можно на сайте https://www.rogueamoeba.com/freebies/

понедельник, 27 октября 2014 г.

FreeBSD: options NETGRAPH_MPPC_COMPRESSION, NETGRAPH_MPPC_ENCRYPTION

При сборке ядра с опцией NETGRAPH_MPPC_COMPRESSION, NETGRAPH_MPPC_ENCRYPTION, как правило возникает ошибка:

cc: /usr/src/sys/net/mppcc.c: No such file or directory

cc: /usr/src/sys/net/mppcd.c: No such file or directory

/usr/src/sys/netgraph/ng_mppc.c:84:22: error: net/mppc.h: No such file or directory

mkdep: compile failed

*** Error code 1

Как правило это потому не установлена "Alternative MPPC compression/decompression library". MPPC -  это алгоритм сжатия, который расшифровывается как Microsoft Point to Point Compression. Протокол создан для передачи сжатых дейтаграмм через канал точка точка. Алгоритм MPPC использует в своей основе алгоритм сжатия LZ. Более подробную информацию можно узнать из RFC2118

Исходный код библиотеки MPPC доступен, несмотря на то, что алгоритм MPPC запатентован. Соответственно гражданам США во избежание юридических проблем использовать эту библиотеку не рекомендуется и в поставку FreeBSD она не входит.

Официальный сайт библиотеки http://mavhome.dp.ua/MPPC/

Инструкция по установке

cd /usr/src/sys/net/
fetch http://mavhome.dp.ua/MPPC/mppc-1.0.tgz
tar -xvf mppc-1.0.tgz
Отредактируйте файл /usr/src/sys/modules/netgraph/mppc/Makefile. Измените строку
NETGRAPH_MPPC_COMPRESSION?= 0
на
NETGRAPH_MPPC_COMPRESSION?= 1
Если вы Собираем модуль:
cd /usr/src/sys/modules/netgraph/mppc
make
make install
make clean

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

пятница, 10 октября 2014 г.

Поддержка Yota в ядре FreeBSD

Чтобы избавиться от загружаемых модулей для поддержки USB-модема Yota ядром FreeBSD. В конфигурационный файл ядра добавьте:

device miibus
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
device ehci # EHCI PCI->USB interface (USB 2.0)
device xhci # XHCI PCI->USB interface (USB 3.0)
device usb # USB Bus (required)
device aue
device cdce

Затем скомпилируйте и установите ядро заново.

Все вышеописанное актуально для версии FreeBSD 10, но в более ранних версиях, тоже должно работать. Я пока не проверял.

пятница, 12 сентября 2014 г.

Как установить VMWare ESXi 5.5 на Intel Nuc при маленьком объеме оперативной памяти

Взял на пару дней Intel NUC DC3217IYE (установлено 4Гб памяти и 60Гб SSD). В целом неплохой настольный компьютер - маленький, сильно не греется, есть возможность установить ОЗУ до 16Гб. Можно использовать в качестве "бюджетного" сервера для маленького офиса.

Я погонял на нем сервер Майнкрафта пару часов, потом решил посмотреть на сколько хорошо он будет держать тот же сервер Майнкрафта но с помощью виртуализации VMWare ESXi 5.5.

Собственно говоря дальше про установку и пойдет разговор. Во время установки ESXi, я столкнулся с двумя проблемами:
1) Отсутствие драйвера сетевой карты - пришлось делать Custom сборку, чтобы драйвера интегрировать в установщик;
2) VMWare ESXi не хотело устанавливаться, так как считало, что у меня меньше памяти, чем 4Гб;

Вот про вторую проблему в этой статье речь и пойдет. Установщик VMWare можно обмануть и заставить софт установиться при более меньшем объеме ОЗУ, чем требует ESXi. Итак,

1) Запускаем установку;
2) Ждем появления Welcome (рис. 1), нажимаем Alt+F1;


рис. 1

3) Попадем в консоль, вводим логин root и пустой пароль;
4) Выполняем команды
cd /usr/lib/vmware/weasel/utils
rm upgrade_precheck.pyc
mv upgrade_precheck.py upgrade_precheck.py.old
cp upgrade_precheck.py.old upgrade_precheck.py
chmod u+w upgrade_precheck.py
vi upgrader_precheck.py

5) В файле upgrader_precheck.py необходимо найти и изменить вычисление MEM_MIN_SIZE;
6) Сохраняем и закрываем файл, дальше ищем PID процесса, который необходимо перезапустить;
ps -c | grep [w]eas
7) Запоминаем PID, который получили в предыдущей команде и убиваем процесс
kill -9 PID

После последней команды вы должны вернуться в окно установщика, если этого не произошло нажмите Alt+F2

вторник, 1 июля 2014 г.

Еще про FreeBSD и Raspberry Pi

FreeBSD-CURRENT поддерживает Raspberri Pi начиная с ноября 2012 года. Если у вас есть какие-то дополнительные вопросы, вы всегда можете их уточнить в списке рассылки freebsd-arm.

Что такое Raspberry Pi?

Наверняка, можно пропустить этот раздел. Но для тех кто не в курсе Raspberry Pi это недорогой (35$) одноплатный компьютер размером с кредитную карту. Raspberry Pi была разработана британской компанией в начале 2012 года для использования в образовательных (учебных) целях на базе Broadcom BCM2835 SoC. По состоянию на апрель 2013 года было продано более одного миллиона устройств.

Есть несколько моделей Raspberry Pi

Модель B выполнена со встроенным Ethernet адаптером и содержит 256мб оперативной памяти. Впервые модель B поступила в продажу в феврале 2012 года, ее можно определить по отсутствию монтажных отверстий на плате. В конце 2012 года модель B была обновлена. Теперь на плате 512Мб оперативной памяти и два монтажных отверстия. Модель A была выпущена в начале 2013 года, она отличается от B отсутствием Ethernet-адаптера, на борту 256Мб оперативной памяти и стоит модель A порядка 25$, то есть несколько дешевле.

Как загрузить Raspberry Pi

По состоянию на январь 2013 года FreeBSD-CURRENT поддерживает полностью видео консоль (нужно подключить USB-клавиатуру и дисплей). Так же можно загрузить FreeBSD с использованием последовательной консоли, для этого вам потребуется адаптер RS232.

После подключения клавиатуры, дисплея, установки карты памяти SDHC и включения адаптера питания в розетку (или подключения USB кабеля к какому-нибудь компьютеру) Raspberry Pi сразу начнет загружаться.

Анатомия загрузочного образа Raspberry Pi

Загрузочный образ FreeBSD для Raspberry Pi содержит FAT и UFS разделы.

Файлы FAT-раздела

1) bootcode.bin - файл для первого этапа загрузки
2) start.elf - второй этап загрузки
3) config.txt - конфигурационный файл для start.elf
4) rpi.dtb - FDT-файл загружаемый через config.txt
5) uboot.bin - третий этап загрузки: загрузчик U-Boot
6) uEnv.txt - конфигурационный файл для загрузчика U-Boot
7) ubldr - Четвертый этап загрузки: загрузчик FreeBSD

Файлы UFS-раздела

1) /boot/kernel - ядро FreeBSD (динамическое)
2) Все тоже самое как и во FreeBSD

Как собрать загрузочный образ FreeBSD для Raspberry Pi

Собрать загрузочный образ FreeBSD для Raspberry Pi можно с помощью Crochet Build Tools. Так же можно получить уже готовые загрузочные образа для FreeBSD 10-RELEASE и FreeBSD 11-CURRENT.



пятница, 20 июня 2014 г.

Как активировать Windows 8 по телефону

Если не работает автоматическая активация Windows, ее можно активировать по телефону. Для это нажмите клавишу Win + R, откроется окно "Выполнить", введите "SLUI 04" (без кавычек) и нажмите Enter. Затем выбирайте свою страну, звоните по указанному в программе телефонному номеру и наслаждайтесь вводом цифр ;)

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

четверг, 19 июня 2014 г.

OS X: настраиваем веб севрер Apache через терминал

Итак, потребовалось перенести один из сайтов на другой сервер OS X Server Mountain Lion. Наш сайт пусть называется http://site.ru. Сперва создадим на новом сервере папку для файлов сайта и перенесем их в нее (я переносил с помощью scp, но тут вариантов много).

# mkdir /Library/Server/Web/Data/Sites/site.ru
# scp -r user@xxx.xxx.xxx.xxx:/var/www/site.ru/ /Library/Server/Web/Data/Sites/site.ru/

В команде scp, вместо user - указываете имя своего пользователя на удаленном сервере, вместо xxx.xxx.xxx.xxx - указываете или имя хоста, или его Ip-адрес, /var/www/site.ru/ это абсолютное расположение файлов на старом сервере.

После копирования файлов, нам осталось сервер настроить. Для этого создадим файл настроек для нового сайта. Этот файл должен размещаться в каталоге /Library/Server/Web/Config/apache2/sites/.

#vi /Library/Server/Web/Config/apache2/sites/0000_any_80_site.ru.conf

Содержимое файла это обычные настройки VirtualHost сервера Apache22, поэтому если вы уже настраивали Apache вы без труда внесете нужные для себя параметры. Мой файл смотрите ниже

#cat /Library/Server/Web/Config/apache2/sites/0000_any_80_site.ru.conf
<VirtualHost *:80>
        ServerName site.ru
        ServerAdmin admin@site.ru
        DocumentRoot "/Library/Server/Web/Data/Sites/site.ru"
        DirectoryIndex index.html
        CustomLog /var/log/apache2/access_log combinedvhost
        ErrorLog /var/log/apache2/error_log

        <IfModule mod_ssl.c>
                SSLEngine Off
                SSLCipherSuite "ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM"
                SSLProtocol -ALL +SSLv3 +TLSv1
                SSLProxyEngine On
                SSLProxyProtocol -ALL +SSLv3 +TLSv1
        </IfModule>

        <Directory "/Library/Server/Web/Data/Sites/site.ru">
                Options All -Indexes +ExecCGI +Includes +MultiViews
                AllowOverride All
                <IfModule mod_dav.c>
                        DAV Off
                </IfModule>
                <IfDefine !WEBSERVICE_ON>
                        Deny from all
                        ErrorDocument 403 /customerror/websitesoff403.html
                </IfDefine>
        </Directory>

</VirtualHost>

Теперь перезапускайте службу, меняйте A-запись на DNS сервере и ждите когда весь трафик пойдет на новый сервер.

# serveradmin stop web
# serveradmin start web

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