понедельник, 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 не забудьте изменить пути к файлам в коде сайта и параметры подключения к базе данных, если это необходимо ;-)

среда, 18 июня 2014 г.

OS X получить полные сведения о системе через терминал

Если необходимо получить полные сведения о системе OS X через SSH или терминал, воспользуйтесь программой system_profiler. Получите исчерпывающие сведения об установленном железе и софте.

# system_profiler

Если есть небольшой опыт в использовании UNIX shell, то можно отобрать отдельно сведения об оперативной памяти


# system_profiler | grep -A 9 "BANK [0-9]/DIMM[0-9]"
2013-03-01 09:52:16.831 system_profiler[15041:707] httpdEnabled is deprecated !!
BANK 0/DIMM0:

Size: 8 GB
Type: DDR3
Speed: 1600 MHz
Status: OK
Manufacturer: 0x80AD
Part Number: 0x484D5434314753364D465238432D50422020
Serial Number: 0x00000000

--
BANK 1/DIMM0:

Size: 8 GB
Type: DDR3
Speed: 1600 MHz
Status: OK
Manufacturer: 0x80AD
Part Number: 0x484D5434314753364D465238432D50422020
Serial Number: 0x00000000

Или получить сведения о процессоре

# system_profiler | grep Processor

      Processor Name: Intel Core i7
      Processor Speed: 2.3 GHz
      Number of Processors: 1

А совсем давно я писал, как можно следить за аккумулятор MacBook с помощью программы system_profiler. Пользуйтесь на здоровье не забывайте!

среда, 30 апреля 2014 г.

OS X Server: Создание пользователя из командной строки

Графический интерфейс OS X великолепен и удобен, но иногда удаленно приходится все же и пользователей создавать. Сделать можно через встроенный VNC, с помощью установленной службы TeamViewer (благо в наше время средств удаленного управления хватает). Но так как OS X это полноценный UNIX создать пользователя можно классическим способом из командной строки с помощью удаленного подключения к ssh.

Итак,

1) подключаемся к серверу с помощью ssh;
2) вводим команды

sudo dscl . -create /Users/Имя_Пользователя
sudo dscl . -create /Users/Имя_Пользователя UniqueID Идентификатор_Пользователя
sudo dscl . -create /Users/Имя_Пользователя UserShell /bin/bash
sudo dscl . -create /Users/Имя_Пользователя RealName 'Имя Фамилия'
sudo dscl . -create /Users/Имя_Пользователя NFSHomeDirectory /Users/Имя_Пользователя
sudo dscl . -create /Users/Имя_Пользователя PrimaryGroupID Идентификатор_Группы
sudo dscl . -passwd /Users/Имя_Пользователя Пароль

Конечно, это не такой удобный Wizard по созданию пользователей как во FreeBSD или Linux. Одним словом привыкните, понравится. А если не хотите привыкать создайте свою утилиту useradd.sh в которую передавайте домашнюю директорию, логин, пароль, идентификатор группы, идентификатор пользователя, шелл и любые другие параметры...

вторник, 8 апреля 2014 г.

OS X Mountain Lion: перенос Wiki с одного сервера на другой

Приобрел более мощный Mac Mini Server и потребовалось перенести мою вики с одного на другой. На обоих серверах установлен OS X Mountain Lion и набор серверных утилит версии 2.2. Поэтому делаем следующее:

1) На текущем сервере создаем дамп базы данных. Для этого выполняем команды.
cd /Applications/Server.app/Contents/ServerRoot/usr/bin/
sudo ./pg_dump -h "/Library/Server/PostgreSQL For Server Services/Socket" --format=c --compress=9 --blobs --username=collab --file=/tmp/collab.pgdump collab

2) Копируем созданный дамп /tmp/collab.pgdump на новый сервер в папку /tmp, так же копируем все содержимое папки /Library/Server/Wiki/FileData/ на новый сервер в папку /Library/Server/Wiki/FileData/

Далее заходим под администратором и вводим команды в терминале

sudo chown -R _teamsserver:_teamsserver /Library/Server/Wiki/FileData
sudo chmod -R +a "www allow search" /Library/Server/Wiki/FileData
sudo serveradmin stop wiki
sudo serveradmin start postgres_server
cd /Applications/Server.app/Contents/ServerRoot/usr/bin/
sudo ./dropdb -h "/Library/Server/PostgreSQL For Server Services/Socket" -U collab collab
sudo ./createdb -h "/Library/Server/PostgreSQL For Server Services/Socket" -U collab collab
sudo -u _postgres ./pg_restore -h "/Library/Server/PostgreSQL For Server Services/Socket" -d collab -U collab --single-transaction /tmp/collab.pgdump
sudo serveradmin start wiki

Смысл команд прост, вы назначаете нужные права на папку /Library/Server/Wiki/FileData и восстанавливаете базу данных из дампа. Ну и запускаете службу Wiki.

Эта процедура не восстанавливает пользователей и группы (если вы создавали на старом сервере).

воскресенье, 30 марта 2014 г.

Включение TRIM в Apple OS X

Ранее я писал как включить функция TRIM для SSD дисков в операционной системе Apple OS X  10.7. Ознакомиться со статьей можно по ссылке http://www.absolutebsd.ru/2012/05/os-x-lion-trim-ssd.html

К сожалению это не является универсальным решением, так как для разных версий OS X нужно использовать разные команды для модификации драйвера.

Ниже вы можете с ними ознакомиться

# Для Mavericks и Mountain Lion версии с 10.8.3 до 10.9.2
sudo perl -pi -e 's|(\x52\x6F\x74\x61\x74\x69\x6F\x6E\x61\x6C\x00{1,20})[^\x00]{9}(\x00{1,20}\x54)|$1\x00\x00\x00\x00\x00\x00\x00\x00\x00$2|sg' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage


# Для Mountain Lion версии с 10.8.1 до 10.8.2, а так же Lion 10.7.5
sudo perl -pi -e 's|(\x52\x6F\x74\x61\x74\x69\x6F\x6E\x61\x6C\x00{1,20})[^\x00]{9}(\x00{1,20}\x4D)|$1\x00\x00\x00\x00\x00\x00\x00\x00\x00$2|sg' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage


# Для Mountain Lion 10.8.0 и Lion 10.7.4 и ниже
sudo perl -pi -e 's|(\x52\x6F\x74\x61\x74\x69\x6F\x6E\x61\x6C\x00{1,20})[^\x00]{9}(\x00{1,20}\x51)|$1\x00\x00\x00\x00\x00\x00\x00\x00\x00$2|sg' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage