FastNetMon

Показаны сообщения с ярлыком OpenSuse. Показать все сообщения
Показаны сообщения с ярлыком OpenSuse. Показать все сообщения

четверг, 17 января 2008 г.

Решение проблемы с Apache2::ModSSL OpenSuse 10.3

При установке данного модуля высыпается несколько проблем -- первая из них, идёт много ругани на отсутствие mod_perl.h, но если путь с этим файликом жёстко прописать в Makefile.PL (который был предварительно сгенерирован посредством perl Makefile.PL, все файлы лежат по пути ~/.cpan/build/Apache2-ModSSL-0.03-некоторые_символы):
INC = -I/usr/include/apache2 -I/usr/include/apache2/modules/perl


То высыпется ещё целая прорва ошибок сборки, которая решается прописыванием путей к заголовочным файлам библиотеки apr:
INC = -I/usr/include/apache2 -I/usr/include/apache2/modules/perl -I/usr/include/apr-1


Ну и конечно же, devel версии пакетов Apache2 и mod_perl должны стоят в системе :)

суббота, 12 января 2008 г.

Apache2 MPM Worker + mod_perl2 на OpenSuse 10.3

В установке данной связки ничего сильно сложного нету, но тем не менее на некоторые моменты стоит обратить внимание. Для начала ставим пакеты apache2, apache2-worker, apache2-utils, apache2-mod_perl и apache2-example-pages через Yast2 или вручную, это уже зависит от Ваших предпочтений. В заголовке статьи я специально сделал акцент на то, что настройка именно для Опенсусе, т.к. некоторые моменты при конфигурировании могут отличаться от дистрибутива к дистрибутиву. Все рассуждения и выводы будут основаны на данной статье.

После того, как всё было успешно (а я ,надеюсь, это так и будет) установлено переходим к настройке. Для начала запустим Апач командой service apache2 start, после этого будет выведено: Starting httpd2 (worker) done, это означает, что запуск веб сервера Apache2 c MPM Worker выполнен успешно.

Далее нам необходимо просмотреть список модулей, которые загружаются сервером, для этого можно воспользоваться командой: apache2ctl -t -D DUMP_MODULES, как можно видеть, там нету perl_module (именно так зовётся модуль mod_perl), поэтому нам нужно сообщить серверу о том, что мы хотим использовать именно его. Список модулей, загружаемых Apache2, хранится в файле /etc/apache2/sysconfig.d/loadmodule.conf, но его особенность в том, что все изменения в нём живут до перезапуска сервера, т.к. в это время конфиг файл затирается и приводится в первоначальную форму. Как можно понять, добавлять в этот конфиг mod_perl2 бесполезно, но куда же его прописывать? Некоторое время поломав голову, я-таки понял, что где-то есть внешний конфиг файл, где и хранится список модулей, на основе которого и создаётся loadmodule.conf - это файл /etc/sysconfig/apache2. Открываем его на редактирование любимым редактором текстов, например vim, ищем строку APACHE_MODULES="а здесь список модулей" и добавляем в неё mod_perl, не забывая, что имена модулей отделяются друг от друга пробелами.

Далее снова ерезапускаем Apache2 и смотрим список модулей командой apache2ctl -t -D DUMP_MODULES, теперь же в этом списке должен появиться "perl_module (shared)". Ещё один способ убедиться в успешной загрузке mod_perl - это команда tail -n20 /var/log/apache2/error_log, далее ищете в лог файле строку наподобие вот этой:
[Sat Jan 12 11:51:58 2008] [notice] Apache/2.2.4 (Linux/SUSE) mod_ssl/2.2.4 OpenSSL/0.9.8e mod_perl/2.0.3 Perl/v5.8.8 configured -- resuming normal operations

Теперь попробуем запустить обычный perl cgi скрипт. Просмотрев конфиг файл /etc/apache2/default-server.conf, можно понять, что обычным местом для CGI приложений является папка /srv/www/cgi-bin (если её нету, то Вам потребуется её создать). В указанной папке создаём файл hello.pl следующего содержания:
#!/usr/bin/perl
print "Content-type: text/plain\n\n";
print "Standard CGI!\n";

После этого нам нужно поставить права 755 для файла hello.pl, для этого можно использовать команду chmod a+rx hello.pl. Всё, можете пробовать открыть ссылку http://127.0.0.1/cgi-bin/hello.pl, если отобразится "Standard CGI!", то с настройкой обычного CGI мы закончили. Переходим непосредственно к настройке к mod_perl.

Создадим папку для наших mod_perl2 приложений - mkdir /srv/www/cgi-fast. Далее переименуем старый конфиг mod_perl2 mv /etc/apache2/conf.d/mod_perl.conf /etc/apache2/conf.d/conf_old, т.к. мы его будем заменять на новый, а старый лишь сохраняем на всякий случай, вдруг пригодится.

Создаём файл /etc/apache2/conf.d/mod_perl.conf следующего содержания:
Alias /cgi-fast/ /srv/www/cgi-fast/

<IfModule mod_perl.c>
PerlRequire "/etc/apache2/mod_perl-startup.pl"
<Location /cgi-fast/>
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
# PerlResponseHandler ModPerl::PerlRun 
# выбор конкретного модуля определяется
# условиями решаемой задачи
# более подробно про модули на search.cpan.org
PerlOptions +ParseHeaders
Options +ExecCGI
Order allow,deny
Allow from all
</Location>
</IfModule>


Далее в папке /srv/www/cgi-fast создаём файл test.pl следующего содержания:
#!/usr/bin/perl
print "Content-type: text/plain\n\n";
print "Standard CGI from mod_perl folder!\n";
print $ENV{MOD_PERL};


Выставляем права chmod a+rx test.pl, проверяем http://127.0.0.1/cgi-fast/test.pl, скрипт должен напечатать строки: Standard CGI from mod_perl folder! и mod_perl/2.0.3, что повествует о работоспособности mod_perl. Как можно понять, в этом случае мы произвели запуск обыкновенного Perl скрипта через mod_perl.

Создаём в папке /srv/www/perl-lib подпапку MyApache2 и во вновь созданной папке создаём файл Rocks.pm следующего содержания:
#file:MyApache2/Rocks.pm
#----------------------
package MyApache2::Rocks;

use strict;
use warnings;

use Apache2::RequestRec ();
use Apache2::RequestIO ();

use Apache2::Const -compile => qw(OK);

sub handler {
my $r = shift;

$r->content_type('text/plain');
print "mod_perl2 application rocks!!!\n";

return Apache2::Const::OK;
}
1;



Теперь добавляем в конфиг /etc/apache2/conf.d/mod_perl.conf следующий блок:
<Location /rocks>
SetHandler perl-script
PerlResponseHandler  MyApache2::Rocks
</Location>


Таким образом конфиг примет вид:
Alias /cgi-fast/ /srv/www/cgi-fast/

<IfModule mod_perl.c>
PerlRequire "/etc/apache2/mod_perl-startup.pl"
<Location /cgi-fast/>
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
# PerlResponseHandler ModPerl::PerlRun
PerlOptions +ParseHeaders
Options +ExecCGI
Order allow,deny
Allow from all
</Location>
<Location /rocks>
SetHandler perl-script
PerlResponseHandler  MyApache2::Rocks
</Location>
</IfModule>


Теперь открываем http://127.0.0.1/rocks и, надеюсь, радуемся увиденному :)

воскресенье, 18 ноября 2007 г.

Создание сервера для раздачи инета в локалку на базе Opensuse 10.3

Материальная база:
  1. Имеем две машины на базе OpenSuSe Linux 10.3.
  2. В каждой машине имеем по сетевому интерфейсу (в моём случае он ещё и беспроводной, но это картины не меняет) eth0.
Сетевая конфигурация машин:
  1. Первый компьютер, далее именуемый как "сервер" подключен к провайдеру ДомРу (замените на имя Вашего провайдера) через PPPoE (IP адрес вида 10.x.x.x выдаётся динамически, но каждый раз один и тот же, адреса DNS серверов также получаются при подключении) и в моём случае имеет внутренний IP 192.168.155.2 (в Вашем случае пропишите ему адрес 192.168.0.1, так будет привычнее) .
  2. Второй компьютер, далее именуемый как "клиент" соединён сетью с первым через свитч (с серверной стороны и ДомРу и локалка подключены через один интерфейс) и имеет внутренний IP 192.168.155.1 (Вы же выберите лучше 192.168.0.2)
Требуется:
  1. Обеспечить прозрачный доступ в интернет через NAT для клиентской машины
  2. Обеспечить поддержку внутреннего ДНС сервера в качестве ретранслятора (далее поймёте зачем это)
Некоторые данные, которые нам пригодятся:
  1. IP адрес яндекса 213.180.204.8
  2. IP адрес гугла 64.233.187.99
  3. Утилита "ping", предназначенная для проверки сетевого соединения между узлами
  4. DNS сервер bind для удобной работы с DNS
  5. Прозрачный прокси на squid (факультативно), позволяющий кешировать весь хттп трафик для его экономии и увеличения скорости доступа к ресурсам.
  6. Suse Firewall 2, обертка для Iptables, предназначенная для удобного конфигурирования фаервола.
  7. Немного бутербродов и чая \ кофе, т.к. процесс не очень-то и быстрый
Для начала предположим, что у нас уже есть настроенное и исправно функционирующее PPPoE соединение. Убедиться в этом можно командой: ping ya.ru и есть в ответ будет выдано нечто вида:
nrg@dell:~> ping google.com
PING google.com (72.14.207.99) 56(84) bytes of data.
64 bytes from eh-in-f99.google.com (72.14.207.99): icmp_seq=1 ttl=244 time=171 ms
64 bytes from eh-in-f99.google.com (72.14.207.99): icmp_seq=2 ttl=244 time=173 ms
64 bytes from eh-in-f99.google.com (72.14.207.99): icmp_seq=3 ttl=244 time=184 ms
64 bytes from eh-in-f99.google.com (72.14.207.99): icmp_seq=4 ttl=244 time=172 ms
64 bytes from eh-in-f99.google.com (72.14.207.99): icmp_seq=5 ttl=244 time=170 ms
То все отлично, можно идти дальше. Далее проверим соединение между машинами наберём на сервере команду ping 192.168.155.1, а на клиенте соответственно ping 192.168.155.2 и в ответ должны посыпаться ответы, указанные выше. Насчёт IP, как я уже сказал выше, используейте 192.168.0.1 вместо 192.168.155.2 и 192.168.0.1 вместо 192.168.155.1. Сеть работоспособна. Шаг первый, настроим трансляцию пакетов с Локальной сети в Интернет.
  1. Открываем Yast2 -> "Пользователи и безопасность" -> "Брандмауэр".
  2. Переходим на вкладку "Интерфейсы", выбираем там наше ДСЛ соединение (так зовётся PPPoE), щёлкаем кнопку изменить и выбираем "Внешняя зона", а для сетевой карты, подключённой к Локальной Сети (далее "ЛВС"), выбираем соответственно "Внутренняя зона"
  3. Переходим на вкладку "Трансляция сетевых адресов", в верху ставим галочку "Трансляция сетевых адресов".
  4. Далее щёлкаем кнопку "Добавить" и вводим следующее: сеть источника 192.168.155.0/24, протокол TCP, в полях "Требуемый порт" и "Перенаправление в порт" прописываем нули, требуемый IP вводим "0.0.0.0/0", т.е. любой. А в поле "Перенаправить в транслированный IP" наш IP, который выдаётся для dsl соединения (ifconfig dsl0 и смотрите поле inet addr:). В моём случае это адрес вида 10.65.0.x.
  5. Применяем настройки Брандмауэра.
  6. Переходим к клиентской машине.
На клиентской машине в Yast2->"Сетевые устройства" -> Сетевая плата вбиваем IP сервера (192.168.155.2) как шлюз по умолчанию на вкладке Маршрутизация. Далее опять же на клиентской машине вбиваем ping 64.233.187.99 и смотрим %) Если полетели пакетики, то ура, ибо роутинг уже работает! Далее нам нужно сделать, чтобы вместо ping ip можно было сделать ping ya.ru. Установка локального DNS сервера
  1. Ставим через Yast2 пакет bind и пакета для конфигурирования Бинда через yast2 (вбейте в поиске bind он будет показан)
  2. Открываем Yast2 -> "Сетевые службы" -> "Сервер DNS"
  3. Ставим галочку "PPP Демон устанавливает направление запроса", это означает, что если наш локальный ДНС сервер не обнаружит в своей базе IP адреса требуемого домена, то он попросит его у ДНС провайдера, а в случае указанной конфигурации он автоматически определит ДНС провайдера и будет использовать его. Щелкаем далее.
  4. ничего не трогаем на странице "Установка DNS сервера: DNS зоны" и щелкаем далее.
  5. В поле "Запуск службы" ставим галочку "При загрузке системы" и жмем завершить, тем самым применяя настройки.
Возвращаемся к клиентской машине.И снова Yast2 -> "Сетевые настройки" -> "Сетевая карта" -> Имя узла DNS и там ставим галочку "Изменить /etc/resolv.conf вручную", после этого в поле Сервер имён №1 вбиваем IP нашего сервера - 192.168.155.2 и применяем. Теперь делаем ping ya.ru и радуемся увиденному %) Всё, мои поздравления, сервер настроен, можете открывать браузер на клиентской машине и юзать Инет %) Добавление прозрачного прокси на базе squid (опционально). Теперь можно улучшить скорость доступа к ресурсам и уменьшить потребляемый трафик посредством кэширующего прокси на базе squid. Установите прокси сервер squid и запустите его командой service squid start (или поместите в автозагрузку на 3й либо 5й уровень запуска). После этого нам требуется немного модифицировать его конфигурацию, открываем любым текстовым редактором файл /etc/squid/squid.conf Потом отыскиваем там строку "http_port 3128" и меняем её на "http_port 3128 transparent", тем самым мы указали, что прокси теперь может использоваться как прозрачный. Далее нам нужно указать, что подсеть 192.168.155.0/24 (а в Вашем случае 192.168.0.0/24) является доверенной, чтобы клиенты из данной подсети смогли использовать прокси. Находим текст:
http_access allow localhost
# And finally deny all other access to this proxy
http_access deny all
И изменяем на следующее следующее:
acl our_networks src 192.168.155.0/24
http_access allow our_networks
http_access allow localhost
# And finally deny all other access to this proxy
http_access deny all
Тем самым мы как раз и добавили нашу подсеть в список допустимых и перезапускаем squid командой service squid restart дабы применить произведённые настройки. И, наконец, укажем SuSe Firewall`у, что для портов 80 и 8080 нужно использовать прокси. Для этого открываем /etc/sysconfig/SuSEfirewall2 Там ищем строку вида FW_REDIRECT="" и заменяем её на
FW_REDIRECT="192.168.155.0/24,0/0,tcp,80,3128"

Далее перезапускаем Suse Firewall2 через Yast2 и наблюдаем через команду tail -f /var/log/squid/access.log ,что теперь все запросы на указанные порты перекидываются на прокси :)

Чуть позже дополню все скриншотами и выправлю текст.
Благодарность, критика, вопросы по теме принимаются и приветствуются за исключением случаев, когда собеседник хочет, чтобы все сделали за него ("быстро и шоп работало") и ведёт себя бестактно, тогда в помощи я буду вынужден отказать, т.к. ценю своё время.

Автор: Одинцов Павел ака энерджи. Ноября 2007г. Общее время написания статьи: 1 час.

суббота, 3 ноября 2007 г.

How-to: Установка OpenSuSe 10.3 без повреждения MS Windows

Мне довольно часто спрашивают, как безболезненно для Виндовса поставить Сусе, так что пора бы уже на данный вопрос ответить развернуто. В установке есть некоторая специфика, которую я постараюсь изложить в данном посте.
  1. Ну, во-первых, о расположении и размерах разделов. Лично я бы советовал отдать Сусе гигов 15 места на диске, из них 200 мегабайт под /boot раздел(отсюда будет осуществлять загрузка), 8 гигов под / (тут будет система) и 6 под /home (здесь будут пользовательские данные), в дальнейшем можно будет безболезненно переформатировать остальные разделы в ext3 и использовать их в Линуксе.
  2. При первом знакомстве с линуксом лучшим решением будет отрезать (тем же партишен меджиком) от жёсткого диска гигов 15 в конце и оставить их пустыми (строго говоря, это можно сделать и из инсталлятора Сусе, но т.к. мы только начинаем знакомство с линуксом, лучше сделать привычным для себя путём).
  3. Потом при установке Суси щёлкнуть на последнем экране по пункту "разбиение" и выбрать "ручное разбиение", а потом "пользовательское разбиение".
  4. Там уже создать указанные мной разделы с указанным размером (в качестве файловой системы настоятельно рекомендую выбрать ext3, т.к. она является наиболее оптимальной для среднестатистической настольной системы), а в пунктах точка монтирования указать соответственно /boot, / и /home.
  5. Всё остальное (поиск раздела с MS Windows и добавление его в загрузчик) сделает установщик Суси.


Если у вас остались вопросы, милости прошу nrg [собака]jabber.snc.ru :)

How-to: настройка PPPoE (ДомРу) в OpenSuse 10.3

  1. Открываем конфигурационный центр Yast2 (yast2 в консоли), вводим пароль рута, указанный при установке.
  2. Слева выбираем вкладку сетевые устройства.
  3. Справа выбираем пункт DSL (не смущайтесь названию, это подходит не только для ADSL, но и для PPPoE)
  4. Далее создаём подключение, тут все довольно прозрачно. Выбираем сетевую карту, к которой подключён кабель от провадера, потом добавляем нового провайдера в соответствующем пункте меню и вводим свои логин и пароль (только убираем галочку "всегда запрашивать пароль"), других настроек производить не нужно (там много всяких галочек - их не трогайте) !
  5. После того, как соединение создано, ищем значок knetworkmanager (нечто прямоугольное и белое или синяя лесенка в случае беспроводного соединения) в системной области, жмём правой кнопкой мыши и выбираем пункт "Коммутируемые подключения", далее выбираем нашего провайдера и соединяемся :)
  6. Если не нашли значок, значит выбран метод управления сетевыми соединениями через ifup нужно это исправить.
  7. Заходим в подпункт Сетевых устройств "Сетевая карта" и во вкладке "общие параметры" выбираем "Управляемый пользователем knetworkmanager" и применяем, значок должен появиться.
  8. Соединяемся и пользуем все блага Интернета %)

вторник, 30 октября 2007 г.

Сборка Live CD на основе OpenSUSE Linux 10.3 и ядра с linux-live.org

Сборка Live CD на основе OpenSUSE Linux 10.3 и ядра с linux-live.org

Ну так вот, встала такая необходимость - до понедельника собрать загружаемый Livecd с Линуксом и некоторым набором своего софта.
Давно на примете было статейка: http://mydebianblog.blogspot.com/2007/09/1-livecd.html , по которой мы и будем собирать наш LiveCd, только я буду поподробнее описывать сам процесс установки линукс-системы в эмулятор qemu.

Собирать дистрибутив мы будем на основе OpenSUSE Linux 2007.0, а не на основе Дебияна, что объяснить довольно просто - Сусю я знаю немного получше (т.к. это моя рабочая ОС). Собираться все это будет под 32 разрядной SuSe Linux 10.3 (в итоге первая часть была собрана на 32 разрядной машине под 10.3, а сам дистрибутив уже под 64 разрядной 10.2, вот так вота), но лайвсиди будет 32 разрядный %)
Для начала небольшой ликбез по qemu: http://phpsuxx.blogspot.com/2007/09/opensu...c-qemu-kvm.html и http://phpsuxx.blogspot.com/2007/09/opensu...emu-kvm_04.html.
При сборке дистрибутива будем придерживаться т.н. Linux-way, то есть не будем изобретать велосипед и соберём все на основе уже готовых и достаточно хорошо отлаженных компонентов.

Для начала сольём весь необходимый софт:
  1. http://www.linuxdevcenter.com/linux/2007/07/05/examples/hello_printk.tar.gz - пример модуля ядра.
  2. ftp://ftp.slax.org/source/slax/kernel/2.6.21.5/src-core/config - конфиг для Лайв ядра.
  3. ftp://ftp.slax.org/Linux-Live/linux-live-6.1.5.tar.gz Linux Live scripts, т.е. скрипты для создания Live дистрибутива
    сайт: http://www.linux-live.org
  4. Качаем Linux Live Scripts и Linux Kernel c сайта: http://www.linux-live.org
  5. Весь софт (а он весьма увесистый) немного позже выложу на наш локальный ФТП (справедливо только для абонентов провайдера ЭрТелеком в г. Самара).

    Набор софта:
    • Не будет графической оболочки в принципе, т.к. задача написать свой аналог Кноппикса и прочих не стоит.
    • GCC
    • VIM
    • MC (Файловый менеджер)
    • Консольные браузеры
    • Исходники патченного ядра, т.к. будет необходима сборка модулей
    • Perl, не, а Вы что хотели лишить меня любимого языка программирования ? И не стыдно, а ?
    • Пакеты поддержки PPPoE, дабы сборку можно было использовать как Rescue CD.
    • Ну это... я ещу думаю
    Energy Live! v2 В связи с тупиковостью предыдущей попытки создать Live CD, пойдем немного другим путем и уже с OpenSUSE 10.3, на которой qemu чувствует себя намного лучше, т.к. kqemu (модуль ядра для поддержки виртуализации) ставится из пакетов. Теперь нам понадобится инсталляционный dvd диск OpenSuSe 10.3 под платформу i386 1штука. Ядро, сорцы ядра и скрипты с linux-live.org
  6. Создаём виртуальный диск:
    #qemu-img create vdisk.img 5G
  7. Запускаем инсталляцию
    modprobe kqemu # грузим модули поддержки
    qemu -hda vdisk.img -cdrom путь_к_исо_образу_суси.iso -boot d -m 128
    либо непосредственно с DVD диска, вставленного в привод хостовой машины:
    qemu -hda vdisk.img -cdrom /dev/sr0 -boot d -m 128, где /dev/sr0 - имя вашего DVD привода.

    При использовании OpenSuSe 10.2 грузим модули kvm вот в данном случаеж
    Запускаем установку от имени рута:
    qemu-kvm -hda vdisk.img -cdrom install-x86-minimal-2007.0-r1.iso -boot d -m 128
    Если в ответ получаем следующее:
    QUOTE
    open /dev/kvm: No such file or directory
    Could not initialize KVM, will disable KVM support

    То делаем modprobe kvm и modprobe kvm_amd (или kvm_intel в зависимости от процессора) и повторяем операцию, все должно заработать и Вы увидите окошко запуска инсталляции.
    Чтобы загружать модули kvm автоматически при старте openSUSE отредактируйте /etc/sysconfig/kernel и добавьте модули kvm в строку MODULES_LOADED_ON_BOOT=”…” . Или настройке их загрузку с помощью yast2 sysconfig.

    А также в данном случае везде используейте qemu-kvm, вместо qemu.

  8. Ставим Сусе, убирая все лишее.В моём случае список необходимых пакетов имеет примерной такой вид
    • tar
    • bzip2
    • mkisofs
    • GCC
    • nano
    • kernel-sources (хотя можно их и не ставить)
    • mc
    • G++
    • Perl
    • vim
    Ещё небольшая тонкость - я советую всю систему ставить на один раздел (и форматировать его в файловой системе ext3)!
  9. Ждём окончания установки системы...
  10. Загружаем установленную систему: qemu -hda vdisk.img -cdrom /dev/sr0 -boot c -m 128
  11. Кофигурируем параметры системы, задаём пользователю root пароль SSAU, а пользователю student пароль 1.
  12. Ставим имя узла energy-live.
  13. Настройку сети пропускаем.
  14. Потом, после окончания всех установочных процедур отключаем сусе командой shutdown -h now
  15. Создаём папку cdrom и монтируем к ней наш образ:
    # mount vdisk.img cdrom/ -t ext3 -o loop,offset=32256
    cp linux-live-6.1.5.tar.gz linux-2.6.21.5.tar.bz2 linux-2.6.21.5-i486-1.tgz hello_printk.tar.gz config cdrom/
    umount cdrom

    Тем самым мы скопировали требуемые файлы в наш виртуальный образ.
  16. Грузим систему: # qemu -hda vdisk.img -cdrom /dev/sr0 -boot c -m 128
  17. Открываем файл /etc/fstab любым текстовым редактором и там видим в первой строчке запись вида вида: "/dev/disk/by-id/....part1", так вот меняем это безобразие на /dev/hda1.
  18. Так, насчет этого пункта у меня большие сомнения, лучше этого не делайте. Открываем файл /boot/grub/menu.lst ищем там подобную штуку и меняем её везде на /dev/sda1.
  19. Перезагружаемся командой reboot (о ура, новый qemu научился-такие подхватывать рестарты системы и адекватно их обрабатывать), чтобы проверить работоспособность системы.
  20. Распаковываем наше бинарное ядро в систему (находясь в корневой папке /) tar -xvzf linux-2.6.21.5-i486-1.tgz
  21. Ядро будет распаковано в папку /boot под именем vmlinuz, переименуем его до адекватного имени: mv vmlinuz vmlinuz-2.6.21.5
  22. Открываем /boot/grub/menu.lst и добавляем внизу следующее:
    title Energy Live!
    root(hd0,0)
    kernel /boot/vmlinuz-2.6.21.5 root=/dev/hda1 #именно hda1 %)

    А в верху default 0 исправляем на default 2 и перезагружаемся с новым ядром.
  23. Вылезет пачка ошибок по поводу модулей и куча ругани на modules.dep , это решаем командой #depmod и последующей перезагрузкой для проверки.
  24. Проверка сборки модулей. берём файл hello_printk.tar.gz и переносим его в папку /root, распаковываем командой tar -xzf hello_printk.tar.gz, переходим в его папку и выполняем make, но получаем ошибку, т.к. исходников данного ядра у нас нету!
  25. Берем файл linux-2.6.21.5.tar.bz и переносим в папку /usr/src/, потом распаковываем его там командой tar -xjvvf linux-2.6.21.5.tar.bz
  26. переносим файл config в папку /usr/src/linux-2.6.21.5 под именем .config (#mv /config /usr/src/linux-2.6.21.5/.config)
  27. Переходим в папку с ядром: /usr/src/linux-2.6.21.5 и выполняем команды make oldconfig && make prepare && make modules_prepare Эти команды генерирую платформозависимые участки кода ядра, которые и будут использоваться при сборку модулей.
  28. Возвращаемся в нашу папку с модулем и повторяем процедуру сборки, посредством вызова команды make
  29. Модуль должен собраться успешно, после этого подгружаем его в ядро вызовом команды: insmod hello_printk.ko
  30. Если в самом низу вывода команды dmesg появилис строки Hello, World! то можно очень сильно радоваться , т.к. модули функционируют успешно !
  31. Переносим скрипты для лайвсиди в папку /tmp уомандой mv /linux-live-6.1.5.tar.gz и распаковываем их там. После этого переходим во вновь созданную папку и открываем файл .config , ищем в нём пункт "KERNEL=$(uname -r)" и заменяем его на "KERNEL=2.6.21.5"
  32. Запускаем скрипт сборки ./build сначала вводим "Energy Live!", потом /boot/vmlinuz-2.6.21.5, а потом ждем сжатия основных папок, что довольно не быстро... каково же ваше "двольно небыстро?" я хз, но у меня на настольнике (П4-1600\1Гиг оперы это потребовало бы около 5 часов, почему "бы", а потому, что я прерывал на 4м часу). А на ноуте с процессором Турион (у которого виртуализация на железном уровне) управился за где-то полтора часа.
  33. Следуя информационным надписям, можете либо создать загрузочную флешку, либо iso образ.
  34. Потом монтируем виртуальную ФС к хостовой машине и вытаскиываем оттуда образ исо, а также радуемся ;)
У меня получился 400 меговый образ )

четверг, 18 октября 2007 г.

OpenSuSe 10.3, тест драйв

Вот сегодня - через две недели после официального релиза - я все же обновил тестовую машину на i386 на ОпенСусе 10.3, впечатления на твёрдую пятёрку, глюков пока не замечено.
Сразу заметил:

* Абсолютно гладкое обновление с 10.2
* Намного быстрее загружается и выключается, чем 10.2
* Новый ОпенОфис 2.3
* Поддержка мп3 включается парой очевидных кликов.
* Красивая зеленая тема smile.gif
* Намного быстрее работает система управления репозиториями
* Новое 22е ядро (а-то что-то надоело сидеть на 18ом)
* Дрова (и сразу с поддержкой 3Д !!!) на мой радеон 9600XT встали сходу
* Поправлено очень много багов и шероховатостей в софте
* Новый Yast
* Куски КДЕ4 просто потрясающие!
* Не слетела раскладка, хотя народ жаловался на это
* Полный мануал по ОпенСусе на русском (вбиваем в Yast2 opensuse-manual_ru) !! После установки ищите его вот тут: /usr/share/doc/manual/opensuse-manual_ru
* Компиз сразу работать не захотел, будем мучать дальше

воскресенье, 23 сентября 2007 г.

Установка драйверов на видеокарту ATI, OpenSuSe 10.2 x86_64

Вот решил поставить поддержку 3D, а-то как-то непривычно работать без неё. Наиболее адекватное руководство, которое я нашёл представлено здесь, но оно несколько устрело, поэтому немного модифицируем алгоритм обновления драйвера.

Переходим на этот сайт и скачиваем драйвера под 64 линукс платформу. Либо можно сделать следующее (только учтите, что ссылка со временем может устареть, поэтому лучше воспользуйтесь сайтом) прямая ссылка на драйвер. Потом переходим в папку с драйвером и делаем следующее:
# sh ati-driver-installer-*.run --listpkg
В результате этого видим, что есть пакет для ОпенСусе: "SuSE/SUSE102-AMD64" и нам его нужно собрать, чем мы и займёмся ниже:
# sh ati-driver-installer-*.run --buildpkg SuSE/SUSE102-AMD64
И дожидаемся сборки пакета. После данных манипуляций в текущей папке у нас должен появиться файлик, но он может называться по-разному на различных платформах, поэтому лучше выполнить команду: # ls | grep fglrx -i и тем самым получить имя необходимого нам файла.

Потом выполняем: # rpm -Uhv fglr*.rpm
И далее:
# ldconfig
# aticonfig --initial --input=/etc/X11/xorg.conf
# sax2 -r -m 0=fglrx
Потом перезапускаем икс сервер (выйти -> выйти из системы) и потом тестируем 3D командой # glxgears, если все прошло успешно, она должна выполняться без тормозов.

суббота, 22 сентября 2007 г.

Монтирование NTFS разделов с возможностью записи

Речь пойдёт о проекте ntfs-3g (он в свою очередь основан на разработке fuse), который уже вышел из стадии бета-тестирования (это произошло в феврале 2007) и считается стабильным. Не буду усложнять и представлю всё в форме пошагового руководства.
  • Из репозитория http://download.opensuse.org/distribution/SL-OSS-factory/inst-source/suse/x86_64/ ставим пакет ntfs-3g (можно вручную скачать пакеты по ссылке выше и поставить от имени рута посредством rpm -ihv ntfs-3g.rpm).
  • Потом от имени рута открываем на редактирование файл /etc/fstab
    Ищем строку (или несколько строк) со словом ntfs, например у меня она имеет вид:
    /dev/sda2 /windows ntfs ro,users,gid=users,umask=0002,nls=utf8 0 0

    Заменяем это на строку:
    /dev/sda2 /windows ntfs-3g umask=0,locale=ru_RU.UTF-8 0 0

  • Потом от имени рута: umount -a (отмонтировать все файловые системы, указанные в файле fstab) и потом mount -a (примонтировать все фс) и радуемся примонтированному на запись нтфс разделу)



Сразу хотелось бы предупредить, что fuse загружает систему сильнее, чем обычный модуль ntfs (который поддерживает только чтение) по причине того, что работает в пользовательском пространстве без привлечения ядра, так что не пугайтесь, это не бага, а фича %)

среда, 5 сентября 2007 г.

Виртуализация в openSUSE 10.2 x86_64 c помощью QEMU и kvm, практическая реализация

Установка QEMU

С установкой самого QEMU все достаточно просто, вот, например, отличная ссылка по данной теме: тут. Хотя я сам немного схавлявничал, скачав руками с репозитория файлик qemu-0.8.2-22.x86_64.rpm и поставив его командой
rpm -ihv qemu-0.8.2-22.x86_64.rpm


Для проверки правильности установки можете скачать образ freedos c сайта http://fabrice.bellard.free.fr/qemu/download.html и запустить его командой
qemu-system-x86_64 freedos.img
(ну конечно же на забыв распаковать его из архива).

Стоп, а что если мы работает на платформе x86_64 ? Вот как раз по данному поводу есть небольшая ремарка на сайте с документацией к QEMU (http://fabrice.bellard.free.fr/qemu/kqemu-doc.html#SEC7), а именно: "If you use kqemu on an x86_64 host, you must use `qemu-system-x86_64' instead of `qemu'", так что для всех пользователе 64 битной платформы родной становится программа qemu-system-x86_64, которая при запуска того же freedos конастатирует весьма неприятный факт, kvm отключен "Could not open '/dev/kqemu' - QEMU acceleration layer not activated", но тем не менее продолжает отлично работатать, хоть и медлненней, но это не надолго, сейчас мы решим и проблемы со скоростью.

Установка поддерржки kvm

Вот по данной теме есть две отличные статьи: оригинал, перевод, описывающие установку поддержки kvm посредством рпм пакетов.

Сам настраивал по данным мануалам и хотел бы сделать некоторые добавления, а именно то, что для запуска kvm модулей ядра нужно использовать команды:
modprobe kvm и modprobe kvm-amd (или kvm-intel)
и после этого запускать образы ОС посредством команды
qemu-kvm
которая сразу же проинформирует об ошибке, если не найдет модули kvm.

И все же у меня все ещё остались некоторые вопросы, буду рад если кто-то мне пояснит их - мы установили модули kvm и добились их стабильного функционирования, а тогда что такое модуль ядра kqemu, который цепляется как устройство /dev/kqemu и очень любим приложением qemu-system-x86_64?

Ну вот теперь точно все, приятной Вам виртуализации)

Виртуализация в openSUSE 10.2 x86_64 c помощью QEMU и kvm, введение.

Вы должно быть заметили, что последнее время начался бум всевозможных технологий виртуализации и соответственно самих эмлуяторов (Parallels Desktop, QEMU, Xen, vmware, VirtualBox и проч.) это и не случайно, ведь данные технологии предоставляют невиданые ранее удобства в масштабировании и интеграции всевозможных система, чего только стоят решения vmware для корпоративных клиентов, позволяющие создавать в целые виртуальные вычислительные среды на основе кластеров, причём отдельные элементы этих ВС являются виртуальными машинами, которые могут в случае сбоя одного из элементов кластера (уже физического) быть автоматически перемещены на другой физический сервер.

Также учитывая мощности (зачастую 2х и более ядерных) современных систем можно без проблем держать несколько виртуальных машин на некоторой хост операционной системе, например почтовый сервер от MS или сервер 1С можно спокойно держать в виртуальной машине. У меня собственно необходимость в виртуализации встала, когда потребовалось поставить программы, которые работают либо только под виндовс, либо под дос (да, увы, и такие архаизмы встречаются), а сервера (впрочем, как и рабочие станции, находящиеся в моём распоряжении) работают исключительно на Линуксе.

Для начала краткий экскурс по технологиям.
QEMU is a generic and open source machine emulator and virtualizer.

When used as a machine emulator, QEMU can run OSes and programs made for one machine (e.g. an ARM board) on a different machine (e.g. your own PC). By using dynamic translation, it achieves very good performances.

When used as a virtualizer, QEMU achieves near native performances by executing the guest code directly on the host CPU. A host driver called the QEMU accelerator (also known as KQEMU) is needed in this case. The virtualizer mode requires that both the host and guest machine use x86 compatible processors.

Тут вроде итак все понятно, Qemu представляет собой платформу для эмуляции систем (а также других платформ, например Arm).
KVM (for Kernel-based Virtual Machine) is a full virtualization solution for Linux on x86 hardware containing virtualization extensions (Intel VT or AMD-V). It consists of a loadable kernel module, kvm.ko, that provides the core virtualization infrastructure and a processor specific module, kvm-intel.ko or kvm-amd.ko. KVM also requires a modified QEMU although work is underway to get the required changes upstream.

Using KVM, one can run multiple virtual machines running unmodified Linux or Windows images. Each virtual machine has private virtualized hardware: a network card, disk, graphics adapter, etc.

The kernel component of KVM is included in mainline Linux, as of 2.6.20.

KVM is open source software.

Тут, конечно, как в предыдущем случае двумя словами обойтись нельзя, но я постараюсь - kvm представляет собой модули для ядра Линукса, которые позволяют достичь очень высокой производительности виртуальных систем (до 50% мощности хостовой операционной системы).

Для заинтересовавшихся привожу официальные сайты этих проектов:
- QEMU
- kvm

В следующих публикациях будут пошаговые инструкции по конкретной реализации описанных технологий.

понедельник, 27 августа 2007 г.

Установка ndiswrapper 1.47 из исходников на OpenSuse 10.2

Установка ndiswrapper 1.47 из исходников

Окончательно достали меня проблемы с Ндисвраппером (а точнее - мертвые зависания), что сейчас сижу из винды(!!!) и вот что нашёл на оффсайте ндисвраппера:
1.47 released
Written by Giri
Wednesday, 13 June 2007
Version 1.47 has been released. Short summary of changes since 1.46:

* Fixed random (occassional) crash issues with 64-bit drivers (observed with Broadcom driver)
* Fixed compilation issues with version 1.46

У меня как раз Броадком и 64 разрядная машинка) Сейчас будем патчиться.
Вот ссылка на сайт: http://ndiswrapper.sourceforge.net/joomla/

Установка предельно проста и сводится к слудующим шагам:
1) Скачиваем последнюю стабильную версию ndiswrapper c сайта, указанного выше.
2) Распаковываем содержимое архива в папку в папку.
3) Удаляем предыдущую установку ndiswrapper через yast2 (что предпочтительно)
4) После этого делаем с правами суперпользователя следующее: переходим в папку с распакованным драйвером, делаем make uninstall (эта цель сборки сносит все остатки ндиса, если они остались после удаления через яст). Отмечу, что этой же командой при необходимости вы можете полностью стереть драйвер из системы.
5) Выполнить команду make.
6) Выполнить команду make install, которая поместит модуль ndiswrapper в папку /lib/modules/`uname -r`/misc/
7) Переконфигурируем ндисвраппер: ndiswrapper -l служит для вывода всех установленных драйверов, ndiswrapper -r имя_установленного_драйвера служит для удаления дров, ndiswrapper -i служит для установки дров завново. Лично я советую, удалить Ваш драйвер и поставить его заново.
8) Загружаем модуль ядра ndiswrapper от имени суперпользователя посредством команды modprobe ndiswrapper.

Радуемся, хотя у меня вроде баг сохранился, но надеюсь Вам повезёт больше!
Более подробную инфу по второму этапу установки можете найти на: http://tomachinsky.blogspot.com/2007/06/wi-fi.html
-----
Баг полностью побежден обновлением через Йаст на ядро 2.6.18.8-0.5-default вместе с последующей пересборко данного модуля уже под новое ядро! // дико радостное, эх, как много крови мне попортил это баг

воскресенье, 26 августа 2007 г.

Обновление ядра для OpenSuse 10.2 и немного про Firefox2

Вот встала необходимость избавится от ndiswrapper (который, предположительно, и является причиной зависания моей Сузьки).

Вот адрес репозитория: ссылка, прописываем его как источник обновления и благополучно обновляемся, хотя предварительно все же советую свернуть содержимое раздела/папки /boot в архив, дабы себя застраховать от падения ядра. На этом все)



Огнелис

Нашел просто потрясающе удобный плагин для Firefox!
Вот ссылка: https://addons.mozilla.org/ru/firefox/addon/2410
Плагин занимается ни чем иным, как сохраняет ваше избранное на сайте, для доступа со многих компьютеров! Не правда ли, прелестная вещь ?

If you use Firefox on more than one computer, you'll want Foxmarks. Install Foxmarks on each computer, and it will work silently in the background to keep your bookmarks synchronized. You can also log in to my.foxmarks.com to manage your bookmarks from any computer.

A simple wizard guides you through the startup process. After that, just forget about it. It's simple and solid.

среда, 22 августа 2007 г.

Решение проблем с kdesu в openSUSE 10.2

Сегодня ограничимся небольшой заметкой об излечении одной забавной "фичи", которая мне портила целую неделю нервы. А именнно, о баге в kdesu, который проявлял себя следующим образом - при попытке запустить с помощью меню приложение, требующее прав рута (например yast2), выскакивало окошко "введите пароль рута", но особенность в том, что она на заведомо верный пароль она отвечала "ошибочный пароль" и закрывалась.

Лечится так:
1) Открываем консоль.
2) Логинимся суперпользователем посредством команды su
3) Переходим в папку: /home/nrg/.kde/share/config, где "nrg" - соотвественно имя вашего пользователя.
4) Открываем текстовый редактор (ну я, например, очень люблю Vim) и создаем файл kdesurc следующего содержания:
[super-user-command]
super-user-command=su
5) Сохраняем файл, меняем на него права командой chmod 777 kdesurc (это, чтобы он не ругался на невозможность записи в данный файл)
6) Радуемся избавлению от бага)
Решение взято вот отсюда: ссылка
P.S. Хм, а мне понравилось выделять команды и пути жирным шрифтом, значит так и буду делать, если Вы, конечно, не против.