LINUX.ORG.RU

Сообщения ksv

 

Странный скачок времени

Форум — Development

Привет.

Может кто-нибудь объяснить скачок времени с 07.01.2009 00:00 на 06.01.2009 23:00 (или обратно)?

sergey@debian:~/dev/tzdata$ cat test.c
#include <time.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
        struct tm localTM;
        time_t t1, t2;

        localTM.tm_sec = 0;
        localTM.tm_min = 0;
        localTM.tm_hour = 0;
        localTM.tm_mday = 7;
        localTM.tm_mon = 0;
        localTM.tm_year = 109;

        t1 = mktime(&localTM);

        localTM.tm_mday = 6;
        localTM.tm_hour = 23;
        t2 = mktime(&localTM);

        printf("t1 == t2: %d\n", t1 == t2);

        return 0;
}
sergey@debian:~/dev/tzdata$ gcc -o test test.c
sergey@debian:~/dev/tzdata$ ./test
t1 == t2: 1
sergey@debian:~/dev/tzdata$ date +%Z
MSK

 mktime,

ksv
()

Вывод sensors

Форум — Linux-hardware

Всем привет.

На сервере (Lenny powered) sensors показывает некую причину для тревоги (in5)

# sensors
it8718-isa-0290
Adapter: ISA adapter
in0:         +1.17 V  (min =  +0.00 V, max =  +4.08 V)
in1:         +1.89 V  (min =  +0.00 V, max =  +4.08 V)
in2:         +3.28 V  (min =  +0.00 V, max =  +4.08 V)
in3:         +2.98 V  (min =  +0.00 V, max =  +4.08 V)
in4:         +0.43 V  (min =  +0.00 V, max =  +4.08 V)
in5:         +0.00 V  (min =  +0.00 V, max =  +4.08 V)   ALARM
in6:         +0.10 V  (min =  +0.00 V, max =  +4.08 V)
in7:         +3.12 V  (min =  +0.00 V, max =  +4.08 V)
in8:         +3.26 V
fan1:       1418 RPM  (min =    0 RPM)
fan2:          0 RPM  (min =    0 RPM)
fan3:          0 RPM  (min =    0 RPM)
fan4:          0 RPM  (min =    0 RPM)
temp1:       +33.0°C  (low  = +127.0°C, high = +127.0°C)  sensor = transistor
temp2:       +25.0°C  (low  = +127.0°C, high = +127.0°C)  sensor = thermal diode
temp3:        -2.0°C  (low  = +127.0°C, high = +127.0°C)  sensor = transistor
cpu0_vid:   +1.075 V

На сайте материнской платы (http://www.gigabyte.com/products/product-page.aspx?pid=2810#sp) пишут что 6й по порядку (5й если считать с нуля) - CPU fan speed control. Но кулер у процессора крутит неплохо. К тому же, температура достаточно приемлемая. Да и в выводе sensors больше 6ти входов (в документе на материнскую плату только 6).

Собственно, вопросы. Правильно ли я нашел описание сенсоров, или это что-то совсем другое? Если неправильно - где поискать? Если правильно - стоит ли волноваться, если все кулеры работают нормально?

ksv
()

rsyslog пропускает сообщения

Форум — Admin

Здравствуйте.

Пожаловались мне, что на одной машине (Debian Lenny) rsyslog пропускает некоторые сообщения, генерируемые файрволом. Точнее, rsyslog через плагин не выгружает некоторые сообщения в mysql базу.

Быстро написал генератор сообщений syslog:

#include <syslog.h>

int main(int argc, char *argv[])
{
    char s[] = "TESTLOG0000000000";
    int i;
    unsigned int len = sizeof(s) / sizeof(s[0]);
    char *strend = s + len - 2;

    openlog("TMG", LOG_NDELAY | LOG_NOWAIT, LOG_USER);
    for (i = 0; i < 500000; ++i)
    {
        char *p = strend;
        syslog(LOG_NOTICE, s);
        while (*p == '9') {
            *p = '0';
            --p;
        }
        (*p) ++;
    }
    closelog();

    return 0;
}

Запускал на виртуалке. Сообщения генерируются, средняя скорость варьируется в зависимости от их количества (100к - 600 сообщений в секунду, 500к - 400). На 500к сообщений видны пропадания - в базу не попадает порядка 150 сообщений. Проверял содержимое /var/log/syslog - там этих сообщений тоже нет. Значит, каким-то образом сообщения не дошли до самого syslog.

Погуглил, нашел, что пропадание может быть вызвано маленьким размером буфера стека UDP. Повысил, перезапустил rsyslog:

# sudo sysctl -w net.core.wmem_max=1116160
# sysctl -w net.core.rmem_max=1116160
# sysctl -w net.ipv4.udp_rmem_min=1116160
# sysctl -w net.ipv4.udp_wmem_min=1116160
# sysctl -w net.ipv4.udp_mem='1116160 1116160 1116160'
# sysctl -w net.ipv4.route.flush=1
# /etc/init.d/rsyslog stop && sudo /etc/init.d/rsyslog start

Все равно сообщения пропадают, причем потери примерно такие же - 150 сообщений при 500к сгенерированных. Значит, ни при чем тут стек UDP.

Вопрос - почему могут пропадать сообщения? Где посмотреть и что можно подкрутить?

ksv
()

network sniffing и wireshark

Форум — Development

Всем привет.

У меня наверное достаточно простой вопрос по сетевым пакетам, но найти решение не получилось.

Поставлена задача: модифицировать имеющийся сниффер для выгрузки данных в формат, поддерживаемый wireshark'ом (я склоняюсь в сторону формата tcpdump).

Сниффер использует библиотеку libpcap для сбора данных. Реализация примитивна:

ph = pcap_open_live('eth0', 65535, 1, 0, errbuf);
while (1) {
    data = pcap_next(ph, info);
    // process packet (info, data)
}

Но здесь есть проблема. data указывает на начало Ethernet пакета. Структура Ethernet пакета достаточно проста: маки источника и получателя, протокол, данные, никаких меток начала нового заголовка пакета. Поэтому если просто выгружать в файл данные из data, то непонятно как отделять окончание одного пакета и начало другого (в моем примере snaplen = 65535, но на самом деле используются меньшие значения, что приводит к обрезанию пакетов, т.е. использовать длины пакетов в заголовках - не вариант). Само собой, Wireshark некорректно обрабатывает dump файл, сформированный таким образом.

Можно заставить libpcap сформировать нормальный dump файл его же средствами.

pcap_loop(ph, 100, pcap_dump_open(ph, "wireshark.dump"));
Просмотрев полученный файл, обнаружил, что между Ethernet пакетами в файле находятся некие неизвестные мне байты. В то же время этот файл Wireshark отлично открывает и обрабатывает.

Собственно, вопрос. Что необходимо вставлять между Ethernet пакетами? Или как иначе можно вручную сгенерировать dump файл для Wireshark, используя libpcap?

ksv
()

mount не понимает ext3

Форум — General

Всем привет.

Создал LiveCD из образа Debian Lenny (инструкция). Вкратце сделал следующее.

  • Установил необходимые пакеты (squashfs-tools, squashfs-modules-`uname -r`)
  • Сделал копию системы с помощью rsync
  • Сделал chroot в нее, установил дополнительные модули (live-initramfs, unionfs-modules-`uname -r`, discover1, xresprobe), обновил initramfs
  • Создал файловую систему - mksquashfs (без сжатия)
  • Создал образ системы (mkisofs)

Подключил образ в виртуалке. Образ загрузился. Попробовал подключить жесткий диск виртуалки (предварительно создал раздел ext3 на /dev/sda с помощью fdisk и mkfs.ext3). На что mount мне выругался: Unknown filesystem type 'ext3'.

Собственно, прошу помощи. Ткните меня носом где я что забыл добавить при создании образа (от инструкции выше не отходил).

ksv
()

Андрей Александреску на конференции ACCU

Новости — Документация
Группа Документация

Выступая на конференции ACCU Silicon Valley, Андрей Александреску в свободной манере рассказал о некоторых особенностях языка D, попутно сравнивая D и C++. Вкратце, Андрей рассказал о корректности, обобщенном программировании и перегрузке операторов в языке D.

В качестве заключения Александреску отмечает, что D является неплохим средством как для системного, так и для прикладного программирования.

>>> Слайды выступления

 ,

ksv
()

Ядро в Debian Squeeze будет свободным

Новости — Debian
Группа Debian

Команда разработчиков Debian сообщила, что ядро в предстоящем релизе Debian Squeeze будет полностью свободным (в соответствии с Debian Free Software Guidelines). В настоящее время работы по удалению non-free компонент (firmware и т.д.) практически окончены.

>>> Подробности

ksv
()

third-party библиотеки в репозитарии

Форум — Development

Всем привет. Прошу помочь с вопросом из серии «а как лучше сделать».

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

Сейчас рассматриваем три варианта организации структуры проектов.

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

2. Слить в репозитарий всю библиотеку, подключать например с помощью svn:externals. Скорее всего, придется опять-таки тащить всю библиотеку при экспорте. Зато не придется устанавливать ее отдельно на каждую машину.

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

1. хорош легкостью поддержки. aptitude dist-upgrade обновит все стандартные библиотеки, никаких лишних телодвижений. Но отдельная установка на все компьютеры разработчиков... не очень нравится.

3. плох (ИМХО) возможной сложностью перехода на новые версии. Да и если потребуется использовать дополнительные части библиотеки... придется заново раздирать библиотеку.

2. вообще практически со всех сторон плох :)

Собственно, кто что посоветует в данном случае?

ksv
()

Генерация сетевых пакетов

Форум — Development

Всем привет.

Сейчас пишу приложение для анализа сетевых пакетов. Для чтения пакетов с интерфейса используется библиотека pcap. В дальнейшем пакеты анализируются. В частности, используется информация об используемом протоколе.

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

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

Собственно, два вопроса.

Как создать виртуальный сетевой интерфейс без привязки его к какому-либо железу?

Как генерировать пакеты для данного интерфейса? Нашел pktgen, но он слишком низкоуровневый, а мне бы генерировать пинги, http(s) запросы и т.д.

Буду благодарен за любую информацию.

ksv
()

Apache2 не выполняет cgi скрипты

Форум — Admin

Всем привет.

Имеется OS Debian Lenny. Стоит Apache (2.2.9). Потребовалось поставить Nagios из lenny-backports. После установки страничка Nagios (http://localhost/nagios3) доступна, но при переходе по любой ссылке на cgi-скрипт идет предложение его скачать. Посмотрел с помощью Firebug - Apache отдает content-type скрипта как Plain text.

Открыл mods-available/mime.conf, раскоментировал строчку

AddHandler cgi-script .cgi
Само собой, модуль mime подключен. Опция
Options +ExecCGI
имеется в sites-available/default. После перезапуска Apache ситуация не меняется. Пробовал выставить у apache LogLevel в debug - ничего полезного в логах не нашел.

У кого какие идеи?

ksv
()

Lucas Nussbaum: в Debian с Ruby все нормально

Новости — Debian
Группа Debian

Lucas Nussbaum в своем блоге развенчал несколько мифов о статусе Ruby в популярных дистрибутивах Debian и Ubuntu. Данная статья призвана покончить с призывами пользователям дистрибутивов Ubuntu и Debian устанавливать Ruby из исходников.

>>> Подробности

 , , ,

ksv
()

75% пакетов Ubuntu берутся из Debian без изменений

Новости — Ubuntu Linux
Группа Ubuntu Linux

Будучи приглашенным на последний саммит разработчиков Ubuntu, Stefano Zacchiroli, лидер проекта Debian, получил отзывы о взаимоотношениях между проектами Debian и Ubuntu. Среди них имеются как истории успеха, так и крайне неудачные случаи взаимодействия.

Позже Stefano опубликовал свои слайды с конференции с несколькими интересными диаграммами. В частности, из одной из них следует, что 75% пакетов Debian используются в Ubuntu без внесения каких-либо изменений, за исключением брендинга и интеграции с launchpad

Резюме выступления.

>>> Видео выступления

 , ,

ksv
()

Hudson build server

Форум — Development

Всем привет.

На работе предлагают поставить build-сервер. Один из вариантов - Hudson (http://hudson-ci.org/). Кто-нибудь использовал? Какие впечатления?

Если я правильно понял, hudson больше приспособлен для java проектов. У нас же все проекты пишутся на C. Серьезных проблем, конечно, возникнуть не должно, но может быть будут подводные камни?

Может быть, какие-нибудь другие build-серверы можете порекомендовать?

ksv
()

Отключить сетевую карту при загрузке

Форум — Linux-hardware

Всем привет.

На работе имеется кривой сервер. Кривость заключается в двух встроенных сетевушках на чипсете r8168 (именно 8168, не 8169). На компе стоит Debian Lenny (буквально недавно обновился с Etch).

Сетевую карточку со стандартными модулями ядра завести не удалось. Постоянно пытались подгрузиться драйвера на r8169. Драйвер (модуль ядра, как я понимаю) для r8168 удалось найти в сети. Скомпилировал, поставил.

Просмотрел я dmesg, там промелькивают сообщения о r8169, хотя такого чипсета в компе нет, а r8169 занесен в /etc/modprobe.d/blacklist (хотя lsmod | grep r8169 тоже ничего не показывает).

Комп подключен к сети только через одну сетевушку (eth2 в нашем случае, хотя думаю, не существенно).

$cat /etc/network/interfaces
auto lo eth2
iface lo inet loopback
iface eth2 inet dhcp

Но после перезагрузки ifconfig выдает два интерфейса - eth1 и lo, а eth2 при этом выключен. Сеть, естественно, не работает. Если сделать ifconfig eth1 down && ifdown eth2 && ifup eth2, то сеть появляется, работает без проблем. До перезагрузки.

Пока что как временное решение прописал в /etc/crontab при перезагрузке выполнять простейший скрипт (sleep + 3 команды выше), дабы сеть после перезагрузки сама поднималась. Но это ведь костыль, хочется от него избавиться.

Собственно, прошу совета - как лучше всего все настроить. Мне кажется, надо как-то принудительно отключать сетевой интерфейс eth1, и заставить включаться eth2. Но как это сделать? Как отключить eth1, если он и так не включен в interfaces? Как заставить включаться eth2, хотя он и так в секции auto?

Прошу прощения, что так сумбурно. Сам я не системный администратор, но с этим сервером похоже придется заниматься именно мне. Буду благодарен любым советам (кроме новых вариантов скриптов в crontab - это, ИМХО, костыль).

ksv
()

Образы Debian будут доступны быстрее

Новости — Debian
Группа Debian

Команда администраторов Debian перешла на новый сервер генерации ISO образов дистрибутивов Debian. Данный сервер генерирует новые образы дисков Debian по мере готовности всех пакетов ПО для очередного релиза.

Основная особенность нового сервера - более высокая (по сравнению с старым сервером) скорость работы. Предполагается, что генерация новых образов будет длиться около двух часов. Для сравнения, старый сервер требует порядка 20ти часов.

>>> Подробности

 cdbuilder,

ksv
()

sqlite3 - соединить три таблицы

Форум — Development

Всем привет.

Имеется три таблицы (A, B, C). A связана с B (A.b = B.id), B связана с C (B.c = C.id). Возникла необходимость взять значения из таблицы A, отфильтровав по данным из таблицы C. Думал - все просто:

SELECT a.id
FROM a INNER JOIN (b INNER JOIN c ON b.c = c.id) ON a.b = b.id
WHERE c.value = foo
Не тут то было:
SQL error: no such column: c.value
Если начать связывать с конца - то не найдет a.id.

Я конечно могу сделать связывание вручную - прописать все условия в WHERE. Но мне казалось, что идеологически более правильно организовывать связывание с помощью INNER JOIN. Никто не в курсе, это осуществимо в sqlite?

PS

sergey@Desktop:~/dev/pyPostIndex$ sqlite3 --version
3.6.22

ksv
()

Второй конкурс для разработчиков Pocketbook

Новости — PDA
Группа PDA

Проект Pocketbook Free и издательство MOST объявляют о начале нового конкурса для разработчиков. На этот раз речь идёт о разработке игр для PocketBook. Учитывая предстоящие праздники, длительность конкурса увеличена по сравнению с первым: конкурс пройдёт со 2 декабря 2009 года по 17 января 2010 года. С 18 по 31 января будет проведено всеобщее голосование на сайте http://bookfast.org. Результаты голосования будут обязательно приняты во внимание при определении победителей.

Призы конкурса:

  • первое место: электронная книга PocketBook 360 в подарок;
  • второе место: скидка 60% на приобретение PocketBook 360;
  • третье место: скидка 40% на приобретение PocketBook 360.

Pocketbook - устройство для чтения книг, в основе которого лежит технология «электронных чернил» (E-Ink). Управляется операционной системой GNU/Linux.

>>> Подробности

 , ,

ksv
()

Форматирование /var на рабочей системе

Форум — Desktop

Всем привет.

При чтении жесткого диска (в частности, /var и /tmp, находящихся на отдельных разделах) вылетают ошибки:

[  151.705347] ata3.00: exception Emask 0x0 SAct 0x2 SErr 0x0 action 0x0
[  151.705391] ata3.00: irq_stat 0x40000008
[  151.705430] ata3.00: cmd 60/e0:08:b7:82:45/00:00:03:00:00/40 tag 1 ncq 114688 in
[  151.705431]          res 41/40:00:07:83:45/06:00:03:00:00/40 Emask 0x409 (media error) <F>
[  151.705517] ata3.00: status: { DRDY ERR }
[  151.705551] ata3.00: error: { UNC }
[  151.707427] ata3.00: configured for UDMA/133
[  151.707433] ata3: EH complete 
Проверял командой
dd if=/dev/sdaX of=/dev/zero bs=1M
Для начала поэкспериментировал с /tmp - перезаписал его нулями
dd if=/dev/zero of=/dev/sda6 bs=1M
Потом создал файловую систему
mke2fs -cc -j -t ext3 /dev/sda6
mke2fs при проверке (-cc) не выдало ошибок. Смонтировал, проверил с помощью dd - ошибок нет. Сложилось у меня впечатление, что ошибки - исключительно логические. Вот теперь хочу такой же фокус сделать с /var. Если с /tmp все было понятно - там хранятся только временные файлы, удалять можно было смело, то с /var не все так понятно. Почитал описание FHS на wiki - вроде как на этом разделе не находится ничего сильно важного. Собственно, вопрос - какие подводные камни мне встретятся при форматировании /var? Надо ли будет потом производить какие-нибудь шаманства для восстановления работоспособности системы?

ksv
()

Удалились файлы с системы (Debian)

Форум — Desktop

Всем привет.

На домашней машинке под управлением Debian Sid произошли какие-то проблемы с диском. После очередной проверки, похоже, куча файлов была удалена. В связи с этим система теперь не грузится. Имеется возможность получить доступ к системе только загрузившись в single user mode.

Попробовал исправить ситуацию - переустановить все что только можно.

apt-get update
apt-get --reinstall dist-upgrade
На это система поругалась - похоже, помимо прочего, был удален strict.pm. По всей видимости, apt требует как минимум наличия нормально установленного перла.

Собственно, вопросы. Что требуется apt'у для нормальной работы? Какие можете посоветовать действия для восстановления системы? Не хотелось бы устанавливать все с нуля.

Ну и имеет ли смысл перевести некоторые разделы на другой тип ФС? Сейчас все на ext3. В отдельные разделы выделены /home, /tmp, /usr, /var. Насколько я понял по логам, проблемы с диском возникли именно на /usr, /tmp и /var. Какие ФС порекомендуете для этих разделов?

ksv
()

Debian под водой

Новости — Debian
Группа Debian

Робот-субмарина под управлением Debian выиграла 12е ежегодное соревнование среди автономных подводных аппаратов. Робот был создан группой из 35ти студентов Корнельского университета.

Помимо системы Debian, при создании робота были использованы и другие открытые программные продукты, такие как библиотека OpenCV для обработки изображений, и библиотека захвата видео libdc1394.

Стоит отметить, что спонсором соревнования, помимо прочих, является управление военно-морских исследований США.

>>> Подробности

 ,

ksv
()

RSS подписка на новые темы