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

среда, 16 января 2008 г.

Подъём виртуальных bridg интерфейсов для Virtualbox

1. Создаем мост (что это такое так и не вкурил)
sudo /sbin/brctl addbr br0

2. Убираем IP адрес у интерфейса
sudo /sbin/ifconfig eth0 0.0.0.0 promisc

3. Добавляем интерфейс к мосту
sudo /sbin/brctl addif br0 eth0

4. Даем адрес мосту
sudo /sbin/ifconfig br0 192.168.1.74

5. Чтобы работал интернет
sudo /sbin/route add default gw 192.168.1.1

6. Создаем фиктивный интерфейс
sudo /usr/lib/virtualbox/VBoxTunctl -t vbox0 -u

7. Добавляем его к мосту
sudo /sbin/brctl addif br0 vbox0

8. Поднимаем фиктивный интерфейс (одной из команд)
а) sudo /sbin/ifconfig vbox0 192.168.1.75 up
б) sudo /sbin/ifconfig vbox0 192.168.2.75 up

9. В Virtual Box указываем Host Interface и говорим какой интефейс используем - vbox0.

10. Смотрим результат:

Для правильного разрешения экрана, для автоматического захвата мыши, для общего буфера обмена (не заработало, а читать инструкцию и лазить у них по сайту я поленился) можно поставить эти дополнения. Для установки выберите в меню гостевой ОС пункт Устройства / Установить Дополнения гостевой ОС, далее просто подмонтируйте CD-привод. На нем будут лежать файлы для Windows и Linux. Если вы эмулируете Linux, то обязательно пропишите в /etc/X11/xorg.conf

Section "ServerFlags"
Option "Xinerama" "true"
EndSection

Отличная консолька! консоль

Исчезающая в верху консоль
yakuake

Менеджер пакетов APT

Менеджер пакетов APT

Warderer
при участии представителей коллективного разума Линуксфорума:
Vladislav, Topper, zhik, Genie, t.t, clx, ValKov, Demetrio
Версия 2, 2005.11.24

Q: Что такое apt?
A: apt - это Advanced Packaging Tool, система управления пакетами, то есть набор программ для установки, удаления, поиска бинарных пакетов определенных форматов.

Q: В каких дистрибутивах используется apt?
A: apt первоначально был разработан для дистрибутива Debian и формата пакетов deb. Ныне используется во всех клонах Debian (Ubuntu, Kubuntu, Mepis, Xandros), а также в некоторыхх rpm based дистрибутивах (например, в Altlinux).

Q: Какие утилиты входят в состав пакета apt?
apt-cache - средство для работы с кэшами пакетов (например, поиса пакетов по ключевым словам), apt-extracttemplates, apt-sortpkgs, apt-cdrom, apt-ftparchive, apt-key, apt-config, apt-get - средство установки и удаления пакетов, apt-setup

Q: Как обновить список пакетов?
A: apt-get update пройдет по всему списку указанному у вас в /etc/apt/sources.list и обновит списки пакетов по всем репозиториям.

Q: Списки я обновил, как теперь обновить сами пакеты?
A: apt-get upgrade - менее "интеллектуальный" вариант, обновляющий пакеты, которые есть в системе;
apt-get dist-upgrade - более "интеллектуальный" вариант, который следит за тем, не сменили ли пакеты имя и пытающийся обновлять более важные пакеты даже ценой удаления менее важных.

Q: А я не хочу все обновлять, как мне обновить только один пакет?
A: Точно так же, как и установка пакета: apt-get install <пакет>

Q: Как удалить пакет?
A: apt-get remove <пакет>

Q: А после удаления точно ничего от пакета не останется?
A: Для того, чтобы точно не осталось, лучше пользоваться apt-get remove --purge <пакет>

Q: Как мне узнать, как называется пакет для какой-то определенной цели?
A: Попробуйте поиск по ключевым словам при помощи apt-cache search <слова>

Q: Мне принесли компакты дистрибутива, которых у меня не было, как мне их добавить?
A: apt-cdrom add должно помочь

Q: Мне кажется, что меня взломали и что-то сделали с <пакетом>
A: apt-get install --reinstall вернет пакет к изначальному состоянию, то есть такому, какой он был на свежеустановленной системе.

Q: Очень хочется создать локальное зеркало, в какую сторону смотреть?
A: apt-move скорее всего решит полностью вашу проблему, для него достаточно указать, где лежит архив файлов и куда выложить ваше зеркало.

Q: А подробнее про apt-move можно?
А: Можно:
apt-move update - переносит из /var/cache/apt/archives пакеты в директорию локального зеркала (указывается в /etc/apt-move.conf как переменная LOCALDIR=path_to).
По сути apt-move update является выполнением последовательности команд 
$ apt-move get
$ apt-move move
$ apt-move delete
$ apt-move packages
apt-move get - формирует мастер-файл;
apt-move move - переносит пакеты из кэша apt в локальное зеркало;
apt-move delete - удаляет устаревшие пакеты;
apt-move packages - создает Packages.gz и Sources.gz дерева локального зеркала


Q: У меня пакеты все уже удалени из кэша, а друг тоже хочет весь "свежак", который у меня установлен...
A: Простой скрипт, выполненный в пустом каталоге, соберет в нем пакеты, которые установлены в системе:
dpkg --get-selections | \
grep -v "deinstall" | \
awk '{print $1}' | \
xargs dpkg-repack

Q: Есть подозрение, что из-за моих экспериментов в системе много мусора...
A: Попробуйте пакет debfoster, он при первом запуске спросит у вас о необходимости пакетов и удалит все лишнее.

Q: Где по умолчанию лежат пакеты, которые мне скачал apt-get?
A: в /var/cache/apt/archives

Q: Как мне поставить один *.deb пакет в систему?
A: При условии того, что удовлетворены все зависимости, dpkg -i <пакет> приведет к желаемому результату.

Q: Как заставит apt работать через proxy-сервер?
A: Либо установив переменную окружения при помощи 
export "http://login:password@xxx.xxx.x.xx:yyyy"
либо прописав в файл /etc/apt/apt.conf строку 
Acquire::http::Proxy "http://xxx.xxx.xx:yyyy"
где xxx.xxx.xx - имя вашего прокси, yyyy - порт


Q: Я хочу определить в каком пакете необходимый мне файл (например, libodbc.so).
А:
apt-file - утилита поиска по содержимому пакетов.
apt-file update - получает файл Contents-.gz, следует учесть, что исходя из того, что проект Debian довольно большой, то и файл получится соответствующий. apt-file search <файл> - поиск пакета с указанным файлом.
Пример: 
apt-file search libodbc.so
unixodbc: usr/lib/libodbc.so.1
unixodbc: usr/lib/libodbc.so.1.0.0
unixodbc-dev: usr/lib/libodbc.so

 

Q: А как просмотреть полный список содержимого пакета?
А: apt-file list <пакет> - отображает содержимое указанного пакета

Q: Я больше не собираюсь использовать apt-file, а Contents-.gz занимает место на диске.
А: apt-file purge удалить все Contents-.gz.
По поводу дополнительных опций - man apt-file

Q: Как мне найти неиспользуемые (осиротевшие) пакеты?
А: deborphan без указания ключа осуществляет поиск в разделе библиотек, с указанием ключа -a поиск ведется во всех разделах. Имеется и интерфейс к deborphan - orphaner, поставляются в одном пакете.

Q: есть локальный репозиторий из дистрибутивных дисков. Packages.gz сделал, а вот как сделать Contents-.gz для того, чтобы apt-file'ом можно было пользоваться?
A: 
apt-ftparchive contents . | gzip > Contents-i386.gz
также с помощью apt-ftparchive можно создавать Sources.gz и Packages.gz 
apt-ftparchive sources . | gzip > Sources.gz
apt-ftparchive packages .| gzip > Packages.gz

Q: хочется создать дистрибутив некоторых выбранных пакетов и залить его на болванки. При этом хочется поместить на болванки и пакеты, не установленные в моей системе. Как это объяснить apt-move?
A: Вариант номер один - посмотреть в сторону jidgo, возможно, он вас устроит, вариант номер два - получить недостающие пакеты, но не устанавливать их в систему с помощью аpt-get install -d <пакеты>.

Q: У меня стоит мешанина из stable, testing, unstable и даже кое-что из experimental установил. Как мне сделать, чтобы все в таком виде и обновлялось?
A: Чтобы этого добиться, поместите следующую строку в /etc/apt/apt.conf: 
 
APT::Default-Release "testing";
Затем, при установке пакетов из, например, нестабильного дистрибутива, просто используйте ключ -t: 
$ apt-get -t unstable install имя_пакета

Синхронизация времени в Debian

Ставим пакет
ntpdate
Потом делаем
ntpdate-debian
Смена часового пояса через
tzselect
или
tzconfig - вот это! Первое что то не то!
вроде второе вернее

воскресенье, 13 января 2008 г.

TV-тюнер avertv cardbus plus

Начинаем эпопею с ноутбучным pcmci ТВ тюнером.
Тюнер основан на чипе
Philips Semiconductors SAA7133/SAA7135 Video Broadcast Decoder (rev d1)
Посмотреть что у нас можно командой lspci
После этого необходимо подгрузить модули ядра (команда modconf) наиболее соответствующие нашей карте по чипу.
В моем случае это saa7134
Раздел kernel/drivers/media/video/saa71
После этого в /dev появится устройство video0 и dsp1
это интерфейсы тюнера.
Есть одна особенность. При инициализации тюнера должно включаться его питание, о чём свидетельствует синяя лампочка. Пока это не случиться карточка при выполнении скана эфира не будет ничего видеть.
Для правильного включения тюнера надо либо в /etc/modprobe.conf либо /etc/modprobe.d/saa1734
надо записать параметры инициализации модуля

options saa7134 card=46 tuner=12 alsa=1
options tda9887 secam=d
install saa7134 /sbin/modprobe tda9887; /sbin/modprobe --ignore-install saa7134; /sbin/modprobe saa7134-alsa && /usr/sbin/alsactl restore >/dev/null 2>&1 || : remove saa7134-alsa { /usr/sbin/alsactl store >/dev/null 2>&1 || : ; }; /sbin/modprobe -r --ignore-remove saa7134-alsa

Сохраняем.
После перезагрузки компьютера и загрузки модуля на тюнере загорится синяя лампочка. После этого с помощью программы
tvtime
уже можно смотреть телевизор. У меня правда работает только чернобелый режим, с этим пока не разобрался увы.
tvtime-scanner - запускает скан эфира

Звука тоже нет. Радио не работает, и пульт бесполезен)
Звук удалось получить с помощью пробрасывания при отключенной звуковой системы звука напрямую со звукового выхода тюнера на вход компьютера.
ставим программу sox
далее командуем
sox -c 2 -s -w -r 32000 -t ossdsp /dev/dsp1 -t ossdsp -w -r 32000 /dev/dsp

в теории можно поставить звуковой сервер и правильно всё закомутировать. Перед выполнением команды надо отключить звуковую систему. иначе будет ругаться на занятые устройства.
Еу вот пока что всё.
Всё гениальное просто! Не надо отключать звуковую систему! вот так правильно...
play -c 2 -s -w -r 32000 -t ossdsp /dev/dsp1

пятница, 11 января 2008 г.

Излечение бага парковки головок в ubuntu

Запускаем команду

sudo smartctl -a /dev/sda | grep Load_Cycle

и смотрим сколько раз у нас уже происходила реинициализация. В моём случае это 67171 (столько натикало фактически за пару недель, работы в Gutsy со щелчками). У каждого жесткого диска заявленное максимальное количество реинициализаций разное, но в среднем это от 200 000 до 600 000. Так что делайте выводы.

Решение для меня такое:
Редактируем /etc/hdparm.conf, добавляем в него следующие строки:

/dev/sda {
apm = 255
spindown_time = 0
}

Затем

sudo update-rc.d hdparm defaults

чтобы эти изменения применялись после каждого ребута.

Это эквивалентно выполнению следующих команд:

hdparm -B255 /dev/sda
hdparm -S0 /dev/sda

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

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

Чистые ссылки в Apache2

Сперва скопировать rewrite.load из /etc/apache2/mods-availabl в /etc/apache2/mods-enabled
а httpd.conf должен выглядеть примерно так

Alias /www /home/accura/www


AllowOverride All
RewriteEngine on
RewriteBase /www
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
AllowOverride All




Alias /phpmyadmin /var/www/phpmyadmin

AllowOverride All

среда, 9 января 2008 г.

DNS прокси

PDNSD – это маленький кэширующий сервер доменных имен идеальный для наших условий потому как:


1.

Не требователен к ресурсам
2.

Очень быстр
3.

Прост в настройке
4.

Надёжен
5.

Штатно хранит кэш на диске
6.

Постоянно развивается и дорабатывается


Домашняя страница проекта http://www.phys.uu.nl/~rombouts/pdnsd.html . Пакеты для своего дистрибутива вы можете найти на http://rpm.pbone.net .


И так, ставим пакет: urpmi -a pdnsd


Идём в / etc и редактируем файл pdnsd.conf


В секции global описываются глобальные параметры

global {

debug=on;

Включаем режим отладки (на время тестирования потом установить в off)

verbosity=2;

Детализация отладки (2 вполне достаточно)

perm_cache=8192;

Максимальное количество постоянно хранящихся в кэше

cache_dir="/ opt / pdnsd / var / cache / pdnsd";

Путь где будут находиться pdnsd.cache и pdnsd.debug (файлы должны существовать)

pid_file = / var / run / pdnsd.pid;

Путь к к pid файлу

run_as="pdnsd";

Включаем параноидальный режим (подробности man pdnsd.conf)

paranoid=on;

Разрешаем запрсы по tcp и udp

query_method=tcp_udp;

Минимальное время жизни записи в кэше в секундах (2 недели многовато но при условии GPRS самое оно)

min_ttl=1209600;

Максимальное время жизни записи (1 месяц, комментарий тот же)

max_ttl=2419200;

Таймаут операций (1на минута, опятьже исходя из GPRS)

timeout=60;

}


Локальные источники:

source {

Время жизни в кэше

ttl=1209600;

Родительский домен

owner="sadnet.lo";

Поддержка альясов

serve_aliases=on;

Файл источник в формате hosts (может быть указано несколько источников путём дублирования секции).

file="/etc/hosts";

}


Внешние источники

server {

Название источника (задать произвольно)

label="dns-1";

Список внешних адресов DNS серверов (желательно указать DNS вашего провайдера)

ip=

81.211.47.1,

193.124.83.69;

Таймаут ответа источников (1 минута для ГПРС самое оно)

timeout=60;

Не проверять источник (значительно экономит трафик, если у вас хороший канал установите uptest=ping)

uptest=none;

Разрешаем кэширование

caching=on;

Только проксируем (запрещает экспорт собственных зон)

proxy_only=on;

}


Описание прямой и обратной локальных зон (если нет собственного реального домена и не требуется поддержка экспорта данных во вне, достаточно указать прямые зоны для localhost и вашдомен.lo)


rr {

name=localhost;

reverse=on;

a=127.0.0.1;

owner=localhost;

soa=localhost,root.localhost,42,86400,900,86400,86400;

}


rr {

name = sadnet.lo;

a = 10.0.0.254;

}


Вот во общем-то этого и хватит для начала. перезапускам pdnsd (service pdnsd restart).

Если Все настроено верно то nslookup <имя сервера> вернёт ip адрес.


P.S. В следующий раз расскажу, как организовать динамическое обновление имен машин локальной сети в DNS из WINS.