LINUX.ORG.RU

Сообщения slav

 

Туннель отваливается...

Создаю туннель между двумя компами через ipsec, используя в качестве транспорта udp. Использую только аутентификацию, без шифрования (оно в моём случае не нужно). Для организации туннеля используется pipsec. Туннель нормально создаётся, всё работает. Но периодически (возможно, после простоя определённое время - ещё не разобрался) туннель отваливается: пингую через него с одного компа, данные нормально пакуются в UDP и уходят в физический интерфейс, но из другого конца туннеля почему-то не выходят. Потом через какое-то время (около минуты) всё обратно восстанавливается. В логах на обоих концах пусто. Есть какие-то идеи в чём может быть дело?

slav
()

ppp поверх ssh: странные глюки

Нужно было организовать шифрованый туннель между двумя машинами (причём ещё нужно чтобы извне не было видно что это туннель). Для этого была выбрана схема ppp поверх ssh. Всё вроде нормально поднялось и заработало, но обнаружился такой странный глюк. Какое-то время всё работает нормально, но в какой-то момент туннель прекращает передавать данные в одном из направлений (конкретно - от "сервера" (на который логинятся по ssh) к "клиенту") (в другом направлении при этом всё проходит). Сниффером это хорошо видно - например, если с "клиента" пинговать "сервер" через туннель, то на "сервер" пинги приходят, а ответы в интерфейс почему-то не попадают (при этом через iptables они проходят - это специально проверялось).

Кто-нибудь сталкивался с подобным или может знает в чём тут может быть дело? Вот тут: http://www.faqs.org/docs/Linux-mini/ppp-ssh.html человек вроде тоже пишет о чём-то подобном (у него это проявлялось при открытии большого количества соединений), но причин он тоже не понимает...

slav
()

Странное поведение psi

В общем, после обновления системы с asp10 до asp11 появились странности в поведении psi. Периодически (при некоторых изменениях статуса пользователя - проявляется непосредственно перед появлением окна, информаирующего о смене статуса, но не всегда) на пару секунд psi занимает 100% процессора, причём занимает как-то хитро - так что всё остальное на эту пару секунд вообще виснет (ну по крайней мере иксовые проги точно). Думал сначала что это кривая сборка в asp11, пробовал ставить свою собственную которая до этого стояла в asp10 и нормально работала - то же самое. При этом этого глюка в других программах не замечал. Никто с подобным не встречался? Не посоветуете в каком направлении копать?

slav
()

dri и Suspend2

Обнаружил, что у видеокарты (какая-то savage, в ноут встроена) при выходе из суспенда отваливается dri. Причём не просто отваливается, а, похоже, пропадает только возможность работать с текстурами - glxgears работает нормально, а вот blender уже надписи не рисует и вместо меню какую-то кашу показывает. Как-то с этим можно бороться?

Для суспенда использую скрипт hibernate, перед входом в суспенд происходит переход из иксов в консоль.

slav
()

Странности с suspend2

Вот сегодня столкнулся с таким странным поведением suspend2: попробовал ограничить размер сохраняемого образа (image_size_limit) - видимо маленький размер задал, suspend2 сказал что не может освободить требуемое количество памяти. Ладно, сбрасываю image_size_limit обратно в ноль. Пробую загнать в суспенд. Результат тот же - при попытеке суспенда пишет много раз "Seeking to free XX Mb", затем опять говорит что не может освободить требуемое количество памяти. Регулировка image_size_limit не помогает (пробовал установить её в 1024 (у меня своп-раздел 1гб)). При этом ничего тяжеловесного не запущено (free показывает свободной примерно половину из моих 512мб). Однако после запуска firefox (её я запустил как нечто требующее достаточно много памяти) систему удалось нормально отправить в суспенд с первой же попытки. Кто-нибудь сталкивался с подобным поведением? Есть какое-то объяснение этого? (suspend2-2.2.4, ядро 2.6.16.1)

Вообще, лично мне показалось, что suspend2 заметно медленнее чем swsusp (который в стандартном ядре). Даже при отключенном сжатии и шифровании (а со сжатием - ещё медленее). Или это я "не умею его готовить"?

slav
()

Преобразование void* ->int на x86_64

gcc отказывается компилировать на x86_64 конструкции типа reinterpret_cast<int>(some_void_ptr) (говорит "error: cast from 'void*' to 'int' loses precision"). Опытным путём было установлено, что в long он конвертирует нормально. Но: разве разрядность int не должна соответствовать разрядности системы, т. е. в случае i386 быть равной 32 битам и совпадать с long, а в случая x86_64 составлять 64 бита и совпадать с long long и с размером указателя? Почему же gcc тут находит какую-то потерю точности?

slav
()

Посоветуйте ноутбяк...

В общем, решил себе ноутбук купить. Использовать предполагается в основом для работы (програмить), ну и другое по мелочи (типа там фильм посмотреть в свободное от учёбы и работы время). Готов потратить на это дело до 800 американских рублей. Разумеется, хочется чтобы железо максимально полно работало в линухе, ибо других ОС на нём не планируется. Что посоветуете?

slav
()

Разделитель полей в bash

Никак не могу понять как заставить bash воспринимать в качестве разделителей полей символы новой строки а не пробелы? Т. е. пишу что-то вроде того:

for F in `something`; do ...; done

Команда `something` выводит на stdout список файлов, по которым надо пройтись в цикле. В именах файлов есть пробелы. Пробовал устанавливать IFS="\n" - не помогает, тогда вообще весь текст воспринимает как одну запись...

slav
()

aspell и буква ё

Кто-нибудь знает, можно ли aspell приучить не различать буквы е и ё? А то я привык писать буку ё где она положена по звучанию, а aspell принимает это за ошибки...

slav
()

Сигнал во время ожидания ввода-вывода

Такая проблема. Программа получает данные через COM-порт, и основное время проводит в состоянии ожидания этих данных (в системном вызове read). Нужно чтобы она корректно обрабатывала сигнал TERM (т. е. правильно завершала свою работу). Но простая установка сигнала не помогает - при получении SIGTERM программа просто завершает работу с сообщением "Terminated.", мой обработчик сигнала вообще не вызывается. Подозреваю что дело тут как раз в том что сигнал приходит во время ожидания в системном вызове - видимо libc ставит на это время какой-то свой обработчик. Как с этим можно бороться - чтобы всё-таки получить этот сигнал?

slav
()

Приём данных по RS232

Задача стоит такая. Есть устройство, которое должно периодически слать на комп небольшие порции данных (фактически это медленый АЦП с несколькими каналами). Поскольку скорость требуется небольшая, для передачи данных был выбран RS232 (последовательный порт то есть). Возникла такая проблема: нужно как-то определять в потоке передаваемых данных границы пакета. Можно конечно передавать какой-то маркер начала пакета и его контрольную сумму, искать в потоке этот маркер а затем проверять контрольную сумму, если сошлась - значит нашли начало пакета. Но что-то как-то уж больно криво... Нет ли в RS232 каких-то аппаратных возможностей для этого? При этом крайне нежелательно использовать какие-то ещё линии последовательного порта помимо RxD.

И вообще, что можете посоветовать почитать по поводу работы с последовательным портом в линухе?

slav
()

Gtk: UIManager: как правильно задать кнопку с меню

В общем, нужно сделать панель, на которой одна из кнопок с меню. Сделать надо с помощью UIManager.

Описываю её так:
<toolbar name="Tb">
   <toolitem name="Item" action="Act1">
      <menu name="Menu" action="Act1">
         ....
      </menu>
   </toolitem>
</toolbar>

На это при создании панели gtk ругается:
Gtk-CRITICAL **: gtk_menu_tool_button_set_menu: assertion `GTK_IS_MENU_TOOL_BUTTON (button)' failed

В документации вроде написано, что "Note that toolitem elements may contain a menu element, but only if their associated action specifies a GtkMenuToolButton as proxy."
Собственно в чём вопрос: можно ли как-то сделать, чтобы GTK сам создал в качестве кнопки на панели GtkMenuToolButton (насколько я понял, проблема в том что он создаёт GtkToolButton, к которой нельзя прикрепить меню)? Или это только вручную можно сделать?
slav
()

Ударение в слове «анонимус»

Вот интересно мне стало... А на каком слоге ЛОРовцы ставят ударение в столь популярном в здешних краях имени? Мне вот например кажется естественным ставить на И...

slav
()

Самосборный Firefox

Как-то решил собрать палёную лису из исходников. Почитал доки, собрал. Всё нормально собралось, всё работало. Но вот только странная вещь: на иконке её окна и в диалоге about вместо обычной эмблемы (Земля с лисой) оказалась изображена только Земля БЕЗ лисы. Помню что две версии (из ветки 1.0) собирал сам, в обоих это было так. Это баг или так и задумано?

slav
()

GTK, toolbar, свой виджет

Вопрос такой: я хочу добавить в toolbar какой-то виджет, отличный от обычных кнопок (для примера - поле ввода GtkEntry). Для этого я создаю ToolItem, в который упаковываю требуемый виджет (Entry). ToolItem помещаю на панель инструментов. Всё вроде нормально работает, за исключением одного: если все элементы не помещаются на панель и часть из них уходит в выпадающее меню, то мой виджет (GtkEntry) почему-то там не появляется (он просто исчезает и не отображается вообще нигде - а всякие там ToolButton-ы вполне нормально отображаются как пункты меню). Вопрос: как с этим бороться? Вроде я видел где-то как в какой-то программе Entry убирался в меню, только вспомнить что это за программа была никак не могу...

ЗЫ пишу я используя GTKmm-2.6.4, GTK-2.8.6

slav
()

Меню в GTK-программах при запуске через ssh

Сейчас обнаружил такую вещь: у программ, написанных на GTK2 (2.8.6) при запуске туннелем через ssh вообще не отображаются никакие меню (ни контекстные, ни меню от ComboBox-а). Вопрос: это так и задумано или нет? И лечится ли это каким-либо образом?

ЗЫ QT-программы меню показывают, но при этом постоянно ругаются на X Error: BadWindow (или BadDrawable) (причём непрерывно, вне зависимости от того, используется меню или нет).

slav
()

Проблема с созданием ФС на dvd+rw

Решил проверить на работоспособность такую вещь как возможность создания на dvd+rw произвольной файловой системы. Вставил в свой свежекупленый BenQ dw1640 болванку, сказал `dvd+rw-format /dev/cdrom` - всё нормально. Пытаюсь создать на нём файловую систему udf:

$ mkudffs --spartable=2 --media-type=cdrw /dev/cdrom
start=0, blocks=16, type=RESERVED
start=16, blocks=3, type=VRS
start=19, blocks=237, type=USPACE
start=256, blocks=1, type=ANCHOR
start=257, blocks=31, type=USPACE
start=288, blocks=32, type=PVDS
start=320, blocks=32, type=LVID
start=352, blocks=32, type=STABLE
start=384, blocks=1024, type=SSPACE
start=1408, blocks=2293408, type=PSPACE
start=2294816, blocks=31, type=USPACE
start=2294847, blocks=1, type=ANCHOR
start=2294848, blocks=160, type=USPACE
start=2295008, blocks=32, type=STABLE
start=2295040, blocks=32, type=RVDS
start=2295072, blocks=31, type=USPACE
start=2295103, blocks=1, type=ANCHOR

При этом в логи пишется следующее:

Jan 12 22:46:01 fpfe kernel: hdc: media error (bad sector): status=0x51 { DriveReady SeekComplete Error }
Jan 12 22:46:01 fpfe kernel: hdc: media error (bad sector): error=0x34 { AbortedCommand LastFailedSense=0x03 }
Jan 12 22:46:01 fpfe kernel: ide: failed opcode was: unknown
Jan 12 22:46:01 fpfe kernel: end_request: I/O error, dev hdc, sector 9180032
Jan 12 22:46:01 fpfe kernel: Buffer I/O error on device hdc, logical block 1147504
Jan 12 22:46:01 fpfe kernel: lost page write due to I/O error on hdc
Jan 12 22:46:02 fpfe kernel: hdc: status error: status=0x00 { }
Jan 12 22:46:02 fpfe kernel: ide: failed opcode was: unknown
Jan 12 22:46:02 fpfe kernel: hdc: status error: status=0x00 { }
Jan 12 22:46:02 fpfe kernel: ide: failed opcode was: unknown
Jan 12 22:46:02 fpfe kernel: hdc: status error: status=0x00 { }
Jan 12 22:46:02 fpfe kernel: ide: failed opcode was: unknown
Jan 12 22:46:02 fpfe kernel: hdc: status error: status=0x00 { }
Jan 12 22:46:02 fpfe kernel: ide: failed opcode was: unknown
Jan 12 22:46:02 fpfe kernel: hdc: DMA disabled
Jan 12 22:46:02 fpfe kernel: hdc: ATAPI reset complete
Jan 12 22:46:02 fpfe kernel: end_request: I/O error, dev hdc, sector 9180408
Jan 12 22:46:02 fpfe kernel: Buffer I/O error on device hdc, logical block 1147551
Jan 12 22:46:02 fpfe kernel: lost page write due to I/O error on hdc
Jan 12 22:46:02 fpfe kernel: cdrom: hdc: dirty DVD+RW media, "finalizing"

При этом посредством обычного growisofs на эту болванку всё нормально пишется. Болванка вроде хорошая, verbatim. Ядро у меня 2.6.14.4. Через эмуляцию scsi не пишется вообще ничего - при этом сначала несколько раз повторяется сообщение:

Jan 12 22:22:36 fpfe kernel: ide-scsi: The scsi wants to send us more data than expected - discarding data
Jan 12 22:22:36 fpfe kernel: ide-scsi: transferred 2 of 4 bytes

затем:

Jan 12 22:24:06 fpfe kernel: hda: dma_timer_expiry: dma status == 0x21
Jan 12 22:24:15 fpfe kernel: hdc: DMA timeout retry
Jan 12 22:24:15 fpfe kernel: hdc: timeout waiting for DMA
Jan 12 22:24:15 fpfe kernel: hdc: status error: status=0x00 { }
Jan 12 22:24:15 fpfe kernel: ide: failed opcode was: unknown
Jan 12 22:24:15 fpfe kernel: ide-scsi: Strange, packet command initiated yet DRQ isn't asserted

Последние 3 сообщения повторяются очень много раз, при этом резак пытается что-то писать (индикатор мигает, диск заперт).

Собственно в чём вопрос: это всё недоделки ядра или аппаратные проблемы? Мне конечно эта фича не особо нужна - но если мне бракованый резак хотелось бы это понять и поменять пока не поздно...

slav
()

Посоветуйте DVD-резак

Решил тут купить dvd-резак. Хочется чтобы поддерживал основные форматы, полноценно работал под линухом и имел разумную цену. Посоветуйте что-нибудь... Заранее благодарен.

slav
()

Комп для счётных задач

Вопрос такой: знакомый собирается покупать в свою организацию компьютер для численного моделирования микромагнитных структур. Считаться всё это должно под Linux, имеется соответствующий счётный код под это дело. Ранее они всё считали на однопроцессорном компе; сейчас, поскольку данная задача относительно легко распараллеливается (при счёте большую часть времени занимает выполнение прямых и обратных преобразований Фурье и перемножение двух- или трёхмерных фурье-образов), они хотят купить двухпроцессорный компьютер с двумя двухъядерными процессорами AMD (какие точно не помню, по-моему Opteron какой-то). Вопрос в том, оправдано ли для таких задач использование такой конфигурации или может быть лучше пойти в другом направлении (использовать другие процессоры или может быть лучше построить кластер на основе нескольких более дешёвых компьютеров)?

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

slav
()

Проверка https сертифика в perl

Надо чтобы https-клиент, написаный на perl (работающий через LWP::UserAgent) устанавливал соединение только если ему предъявляют один конкретный сертификат, и выдавал ошибку в противном случае. Нужно для защиты от подмены адреса. Сертификат сервера подписан каким-то другим сертификатом, получить который для проверки не представляется возможным (поэтому простое добавление сертификата в список доверительных не помогает). Вопрос: каким образом такое можно сделать? Пробовал класть сертификат сервера в файл и указывать его как $ENV{HTTPS_CA_FILE} - не помогает, говорит что не может достать сертификат выдавшей организации (и правду в общем-то говорит)...

slav
()

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