LINUX.ORG.RU

Сообщения alt-x

 

icmpv6 raw sockets в pyhon

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

python-pcs решает эту проблему через libpcap формируя пакеты на уровне ethernet, но это извращение.

В исходниках линуксного ping6.c они включают опцию IPV6_CHECKSUM и сетевой стек всё считает сам, что несомненно логично. Но как её включить в python’e?

 , ,

alt-x
()

Воспроизводимые сборки с maven

Кто как делает сабж в больших проектах? Имеется огромная система, которая содержит сотни модулей разработанных клиентом, которые в свою очередь используют другие сотни библиотек 3rd party.

Для того чтобы при разработке не было полного хаоса, для 3rd party на глобальном уровне выставляются интервалы версий вида [X.y;X+1.0), чтобы использовались всегда самые новые минорные версии, которые не ломают совместимость.

Вопрос, как обеспечить воспроизводимые на уровне версий модулей и библиотек 3rd party сборки релизов?

Теоретически это должно решаться с помощью mvn versions:resolve-ranges, но для наследованных версий этот метод не работает. Баг https://github.com/mojohaus/versions-maven-plugin/issues/298 открыт ещё в 2018м, но на него нет никакой реакции. Видимо, люди делают воспроизводимые сборки по-другому.

Кто как?

 ,

alt-x
()

Сохранить страницу подменив динамические вызовы

Ситуация такая. Есть некое веб приложение от IBM, использующее dojo для генерации страниц. И есть фреймворк для тестирования этого приложения (который использует Selenium).

Теперь нужно протестировать сам фреймворк. Для этого страницы приложения сохраняются статически, и вызываются потом юнит-тестами.

К сожалению, страницы довольно сложные (100K+ строк кода) и если их сохранить в Firefox -> Save Page As -> Complete Page и восстановить - выглядят зачастую не так как в онлайне.

Нету ли какого-нибудь инструмента, который бы при сохранении все вызовы веб-сервисов заменять содержимым последнего вызова? Чтобы сохраненная страница была полностью автономна?

Моё гугл-фу тут слабовато: находятся результаты как тестировать с помощью селениума, а мне по существу нужно тестировать сам селениум с обвязкой.

 , , ,

alt-x
()

Java 10, куда дели derby (aka javadb)?

JDK 10.0.1, чойта я не вижу ни jmod, ни jar для derby. Не могли же её молча выкинуть? И ничего не нагугливается. Я что, один пользовался jar'ом из JDK, остальные апачевский пользовали?

 , java 10, , javadb,

alt-x
()

PCI VGA без видебиоса будет доступно?

Занимаюсь видеобиосом для PowerPC, захотел проверить код на обычном писюке.

План такой: вытащить ПЗУ, загрузить свой биос (он на Форте, поэтому платформо-независим) и увидеть, что видюха проинициализирована.

При наличии ПЗУ мой биос всё инитит, устанавливает правильный режим. При отсутствии - пищит, но загружает мой биос. Экран остаётся чёрным. Отсутсвует hsync.

До того как начну копаться в своём биосе - хочу уточнить, что это в принцпипе работает. Там же какие-то заморочки с legacy портами isa. Может, если основной биос не находит видеобиоса, то видюха вообще потом не видна? Как в случае нескольких видюх - когда биос отключает все кроме одной (речь про старые биосы и карты до SLI и Crossfire).

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

Неохота с нуль-модемным кабелем возиться, чтобы отлаживать.

 , , , , видеобиос

alt-x
()

geforce2 Ti есть у кого?

Продолжаю разбирать старый хлам. Стояла в компе (Tualatin 1.3Ghz) видюха Matrox Millenium 450. Потомку захотелось запустить на этой машинке minecraft.

Minecraft запустился, скорость 5 FPS. Смотрю - валяется GeForce2 Ti. Согласно википедии она должна быть существенно быстрее Matroxа в OpenGL. Установил закрытые legacy дрова (впервые в жизни), glxinfo говорит, что Direct rendering on и на вид, вроде всё включено. В логах - никаких ошибок. glxgears показывает ~5000 FPS.

А вот скорость minecraft теперь упала до одного кадра в 10 минут. Я даже не смог войти в меню options, чтобы посмотреть, что можно отключить.

Это так и должно быть? Как я понимаю, matrox использует софтовый рендеринг? И как же он быстрее? Может, надо было другую версию дров взять? Может, в legacy они отключили что-то?

Может, открытые дрова лучше на старых картах? Есть у кого Geforce2, или все выкинули?

Хотябы tuxracer на ней должен без тормозов идти? Всё-таки в ней 32мега памяти вместо 8 в матроксе.

 , , , ,

alt-x
()

SB AWE32 в 2017 году

Имеет ли смысл сабж? Пытаюсь собрать комп для старых квестов. Нашёл в кладовке AWE32. Под досом - работает, но но под ДОСом, как минимум в некоторые квесты на этой машинке играть невозможно: P3-1300 для них быстроват.

Соотвественно, можно поставить Linux, там есть dosbox и scummvm. Но там есть и pulseaudio. Будут хардверные фичи AWE32 использоваться, или он с pulseaudio превратится просто в тормозящую isaшную звуковуху, и лучше ставить SB Live?

 awe32, , , ,

alt-x
()

sq1rus под чем проходить?

ScummVM его не цепляет - не находит файла с ресурсами (что неудивительно, поскольку в списке поддерживаемых его нет). FreeSCI 0.6 - 0.6.4 вроде цепляют, но далеко не уйти - не работает инвентарь. Вроде, в инете пишут, что обычный Space Quest 1 vga с FreeSCI работал - похоже, у русской версии есть своя специфика.

Никто не знает?

 , freesci, , ,

alt-x
()

lor в koi8

Осталась возможность увидеть лор в однобайтных кодировках? Хочу забубенить очередной некро-скриншот, а некробраузер не умеет utf8.

 , ,

alt-x
()

tar без кэша

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

Попробовал запустить программку nocache. Но у неё на здешнем сервере даже тесты не проходят. Сервер - RHEL 5.

Почитал я интернеты и офигел: In kernels before 2.6.18, POSIX_FADV_NOREUSE had the same semantics as POSIX_FADV_WILLNEED. This was probably a bug; since kernel 2.6.18, this flag is a no-op.

Можно ли в RHEL 5 как-то организовать бэкап данных без смс и регистрации загаживания кэша?

Рамы до терабайта клиент добить пока что не может.

 , , fadvise,

alt-x
()

Запуск консольных программ (x86) на Андроиде (arm)

Возникло странное желание запустить одну маленькую (~400К), но закрытую прогу для обычного линукса, на телефоне с андроидом (SGS3 c CM11).

В принципе, понятно, что надо сделать: собрать qemu-linux-user статически и зафигячить chroot с минимальными библиотеками для x86.

Поскольку под андроид раньше не собирал, погуглил, но не нашёл, чтобы хоть кто-нибудь собирал user mode qemu для Android.

Ну, думаю, ладно - попробую сам. Но нынешнему QEMU нужен glib, а чтобы собрать glib нужен pkgconfig, а чтобы собрать pkgconfig - нужен glib. Это всё, конечно, решается, но возни много.

И в общем, решил я сначала спросить: может, всё проще делается? Или, может, наоборот, вообще не делается из-за ограничений Android? Например, под линуксом/x86_64 у меня статически собраный бинарник qemu имеет размер 68 мегов, это уже дофига, а сборка под arm наверняка ещё побольше получится.

 , , ,

alt-x
()

откуда берутся стеки

Откуда берётся стек в программе выполняющейся без ОС (загрузчике ОС, например)? Насколько я себе представляю, его нужно создавать самому. Или есть какая-то магия gcc?

Пример из практики, код NetBSD.

int stack[8192/4 + 4] __attribute__((__aligned__ (4), __used__));

А в соседнем файле,

int devopen() {
 ...
 /* allow disk blocks up to 65536 bytes */
   char buf[65536];
Локальный массив, по стандарту, создаётся на стеке. Но стека-то столько нет. В результате, у меня buf наползает на код. И как только что-то большое записывается в buf - наступает конец. Однако, есть куча сообщений в сети, что этот код работает. Но, чёрт побери, как?

 , , , ,

alt-x
()

HP Color LaserJet Pro CP1025nw

Кто нибудь пользует сабж? На openprinting пишут про CP1025 без «nw» - «works mostly». Интересно узнать как обстоят дела с моделью nw.

 , ,

alt-x
()

git bisect c автоматическим rebase

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

Процедура поиска бага выглядит таким образом: git bisect (увидеть номер тестируемой версии) git checkout my_branch git checkout -b testing git rebase my_branch (тестируемая версия) (проверить, работает ли) git branch -d testing git checkout (тестируемая версия) git bisect good/bad (и т.д)

Есть ли очевидные способы это упростить?

alt-x
()

Разрешить Cisco AnyConnect

Имеется домашний сервер с Linux'ом и белым ip. Что нужно разрешить в iptables, чтобы ноутбук с Cisco AnyConnect, подключненный через домашний сервер, мог соединяться?

Думал, что из домашней сети форвардится вообще весь трафик. Но что-то AnyConnect'у не нравится - не может начать сессию. Забавный момент, что если открыть сессию не через домашний сервер, а через телефон, потом можно переключиться на домашний сервер и VPN продолжает работать.

Текущие правила iptables для FORWARD:

:PREROUTING ACCEPT [3848:186272]
:POSTROUTING ACCEPT [873:48418]
:OUTPUT ACCEPT [1279:69120]
-A POSTROUTING -o ppp0 -j MASQUERADE
COMMIT
-A FORWARD -d 192.246.40.244 -j DROP
-A FORWARD -i eth0 -o ppp0 -j ACCEPT
-A FORWARD -i ppp0 -o ppp0 -j DROP

Разве "-A FORWARD -i eth0 -o ppp0 -j ACCEPT" - без указания протокола, не разрешает перенаправлять вообще всё? Или для UDP нужно отдельное правило?

 , cisco anyconnect, ,

alt-x
()

Пропатчить бинарник (с помошью objcopy или ещё как)

Есть закрытый драйвер (ELF для Солярис/спарк, но это скорее всего, не принципиально), содержащий примерно такой код:

static struct type_a struct1 = {
        1,
        func1_from_other_module,
        static_func2,
};
static struct type_b struct2 = {
/* Тут тоже полно ссылок на локальные и внешние фукции */
};

Как посредством objcopy (или ещё чего) сделать что-нибудь из следующего:

  • поменять в struct1 ссылку static_func2 на func2_from_other_module ?
  • зарезервировать место между struct1 и struct2 ?
  • или перенести struct1 в конец файла (и обновить ссылки на неё)?

Второй-третий пункт опциональны. Просто, в новой версии соляры, type_a cущественно расширился, и теперь структуры наползают друг на друга. К счастью, пожертвовав некоторой функциональностью на это забить, но лучше сделать всё чисто.

alt-x
()

Исходники Solaris 8-9 есть у кого?

Добрался я до момента, когда солярис/спарк в эмуляторе уже начинает грузиться и даже грузит boot block. Но этот boot block почему-то не находит следующую фазу загрузки - ufsboot.

Одно время сан давал исходники всем купившим 8ку или 9ку. Они их до сих пор продают учебным заведениям за символическую цену. Ни у кого не завалялось?

Посмотреть бы, как бут-блок работает. Там в принципе 8 килобайт всего, когда-нибудь и дебаггером расковыряю, но вдруг у кого на полке лежат...

alt-x
()

Спарководы, отзовитесь

Ищу имиджи ПЗУ (OpenBoot) от машинок архитектуры sun4m (sun4u тоже может пригодиться на будущее).

Мне это надо для доведения qemu до состояния, когда он сможет запускать солярис.

Покамест удалось найти имиджи от SparcStation-10 и 20. К сожалению обе эти машинки очень слабо эмулируются qemu, так что пока прогресс нулевой. Особенно сильно разыскиваются имиджи от SS-5, поскольку её железо лучше всего поддерживается на настоящий момент. Но если у кого завалялись ПЗУ или имиджи от LC, LX или Sun-4/6x0 - буду премного благодарен.

Или может, кто знает Forth и FCode? Есть небольшая функция (определающая объём присутсвующей памяти), которую надо отладить. Подозреваю, что для спеца по FCode - это 5 минут, но среди разработчиков qemu таких, к сожалению, нет.

alt-x
()

Где можно загрузочный диск от старой соляры найти?

Пытаюсь запустить solaris/sparc под qemu, как оказалось с opensolaris он не дружит, потому что не умеет толком 64 бита. Перерыл всю рапиду, нигде не могу найти загрузочную-установочную дискету для solaris/sparc 8-9. Ни у кого в загашнике нет, случаем?

alt-x
()

Включить dma в libata

Если дивидюк не читается, libata снижает скорость и выключает dma:

kernel: ata5.01: limiting speed to UDMA/33:PIO4
kernel: ata5.01: limiting speed to PIO4
kernel: ata5.01: configured for PIO4

После того как втыкаю другой диск, скорость и dma не возвращаются к нормальным значениям.
Есть какой-то способ их вернуть без перезагрузки?

# /sbin/hdparm -d1 /dev/dvdrw1

/dev/dvdrw1:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Inappropriate ioctl for device
HDIO_GET_DMA failed: Inappropriate ioctl for device


/sbin/hdparm -X67 /dev/dvdrw1

/dev/dvdrw1:
setting xfermode to 67 (UltraDMA mode3)
SG_IO: bad/missing ATA_16 sense data:: 70 00 05 00 00 00 00 0a 00 00 00 00 24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
HDIO_DRIVE_CMD(setxfermode) failed: Input/output error

alt-x
()

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