Не бейте сразу ) Есть два вопроса и сразу скажу - еще не гуглил.
Понадобилось сотворить эмуляцию чистых Х-ов от Sun еще тех годов. Что-то типа #X -ac. В системе две видеокарты, два монитора..
Поставил последний CentOs. И сходу - gdm выдает логин не на той карте, где хочу.
Конфиг слизал - Xorg -configure. Иксы запускаются. На одной карте. Другую видят, но игнорируют. Добавил Options «Xinerama» «on» - тут вообще все упало с дампом.
Если убрать xinerama - оно хотя бы запускается - мышь хотя бы таскается между мониторами. Но кроме мыши, второму экрану все по барабану. И сколько не менял xorg.conf - gdm все равно запускается как приклеенный не там, где надо.
Конфиг xorg.conf лежит в /etc/X11 и в /usr/share/X11 - и судя по логам - оттуда и берет.
И вопросы
как запустить логин gdm в том окне, которое мне надо?
почему сломалась xinerama?
Спасибо, извините )
Eсть рабочая программка, написанная на Qt5. Если ее запускать локально, допустим из-под kde из консоли - никаких вопросов. Если запускать в виде #> ./prg -display xx.xx.xx.xx:0.0 - серое окно. Вылечилось изменением строки запуска на #> QT_X11_NO_MITSHM=1 ./prg -display xx.xx.xx.xx:0.0
Но при этом режим отображения.. никакой, вообщем. Вроде как 256 битная палитра - все серое и убогое. Собранное на Qt4 - тоже самое. Qt3 - огонь и без всяких проблем с шаремемори. Но Qt3 как-то не хочется. Это как-нибудь лечится?
Пробую внести изменения в IPv4 пакет - добавить 4 байта опций. Проверяю конкретно на DNS запросах, смотрю wiresharkом. Опции добавляются, тело DNS запроса - корректное, а вот в UDP заголовке - все нормально, кроме порта назначения - он может быть какой угодно. При этом проверял на выходе из функции-обработчика - все значения стоят какие надо. Где этот dstport может перетираться? Почему? Уже не пойму, куда рыть..
Есть плата сPCI с встроенными 4-мя сетевыми. И на ней же стоит в мезонине контроллер с еще 4-мя сетевыми. Нумерация eth0-eth3 - это встроенные, eth4-eth7 - добавленные. Но примерно на одну загрузку из трех непонятно с чего нумерация начинается с добавленного контроллера и продолжается со встроенных, то есть получается eth0-eth3 - добавленные, eth4-eth7 - встроенные. Соответственно, вся сеть настроена неправильно - ничего не работает. Привязка по МАС в данном случае невозможна да и не заработает она, как я понимаю.
Почему такое может быть? UEFI? ядро? udev? я даже не пойму, с чего начинать и куда смотреть. Спасибо.
если я правильно понимаю - этот сислогд помимо того, что пишет в файл - так он еще все кидает руту на консоль(даже по ssh).
как избавиться от этой напасти?
man syslogd и man syslog.conf курил.
ткните просто пальцем, позязя..
Есть процессорный модуль PC/104 с Atom на борту. Есть некая железка. Есть исходники драйвера на эту железку.
На ядре 2.6.18 - работает, на ядре 3.2 - работает, на ядре 3.16 - работает, на ядре 4.2 - минут через 15 пропадают прерывания от железки.
После перезагрузки драйвера появляются, но интервал в полтора раза больше, чем должен быть и опять пропадают. И так до тех пор, пока и перезагрузка драйвера уже не спасает.
Я вообще не могу понять даже - что это происходит? Если кто-нибудь что-нибудь подскажет - буду очень признателен ).
есть дефолтовое ядро 3.2.1-r2, есть initramfs, сгенеренный командой genkernel --install initramfs .в этом самом initramfs был изменен init - он должен перед монтированием диска вывалится в shell. а в shell надо руками набрать несколько команд. так вот если в этом shell набрать lspci, вывод будет такой:
есть переходник usb <-> com, на него в системе есть драйвер, называется cdc_atm. система появление устройства отслеживает, создает /dev/ttyACMx. но вот в федоре 15 с ядром 2.6.36 все работает как надо, а в генте с ядром 3.2.1 - не хочет. то есть файл /dev/ttyACMx - создается, открывается - но данные не ходят ни туда, ни оттуда. в федоре - все ок. кроме того есть возможность влезть внутрь переходника - так вот там видно, что он очень старается передать данные - но их не берут и после заполнения буфера он перестает пытаться ) еще момент - федора стоит на машине с обычным биос, а гента - на машине с uefi. хотя этот uefi уже провертели по всякому... если кто-нибудь что-нибудь подскажет, буду очень признателен )
есть три машины - pc1, pc2 и pc3. на них следующие сетевые интерфейсы: eth0 на рс1, eth1 и eth2 на рс2, eth3 на рс3.
машина рс2 является шлюзом для рс1, через который эта рс1 видит рс3. рс3 не знает про рс1.
на рс2 настроена маршрутизация и маскарад для рс1. а еще рс2 - бездисковая, т. е. грузится с рс1 и файловую систему берет по nfs тоже с рс1.
все это прекрасно живет - рс1 ходит где хочет и делает что хочет, рс2 все обеспечивает, а рс3 все это терпит.
теперь возникла необходимость с рс3 подключиться к nfs серверу на рс1. при этом рс3 знать про рс1 необходимости нет. с помощью DNAT пробросили порты - вуаля - рс3 прекрасно подключается к рс1. и с рс1 по-прежнему можно заходить на рс3. и рс2 пинговать. вот только файловая система у рс2 (которая по nfs берется с рс1) отваливается ровно в тот момент, когда подключается рс3. т. е. на рс2 фактически остается работать только ядро ))
сабж, собственно.
если коротко - есть железка, которая подключается по usb и в системе выглядит как соm порт. данные, которые по этому порту бегают - обрабатываются в другом модуле ядра.
можно сделать прокладку на userspace, которая занималась бы перегонкой данных, а можно достучаться до com порта напрямую из kernelspace. как это сделать - понятно. но везде почему-то это делать не советуют. почему - не говорят :). может кто-нибудь просветить на эту тему? не очень хочется прокладку городить...
пересобрал ядро. после этого перестал грузится сторонний модуль. пишет:
kernel: extra_module: version magic '3.2.1-gentoo-r2 SMP mod_unload modversions ATOM ' should be '3.2.1-gentoo-r2 SMP mod_unload ATOM '
в ядре отключена проверка версии модулей(MODVERSIONS=n). на более ранних версиях ядер этого хватало. куда б деть этот версион мэджик? из ядра просто были выкинуты лишние модули. пересобрать модуль не получится.
при сборке с MODVERSIONS=y заявляет:
kernel: extra_module: disagrees about version of symbol module_layout
написаны два модуля. собираются под ядра 2.6 и под 3.2. под ядром 2.6 нет вообще никаких проблем, под ядром 3.2 при загрузке одного из модулей все нормально, при загрузке второго во время вызова request_irq в логи попадает такой дамп:
насколько я понял, это вылетает когда цепляется прерывание и эта информация отображается куда-то в fs /proc, которой что-то не нравится. тогда непонятно, почему этого не происходит при загрузке первого модуля - в этом плане они идентичны. и хотя модуль работает, хотелось бы такого дампа в логе избавиться.
собираю ядро (2.6.32-ххх) для чего-то типа дистрибутива, который будет стоять на другой машине, на которой нет ничего кроме COM и ethernet. почему-то, прежде чем сливать туда, хочется проверить у себя )). initrd нет. и при загрузке - оппа - Warning: unable to open initial console. почему - понятно - /dev/console ис оут. udev, типа и все такое. создать у себя в /dev/ такое устройство к успеху не привело - udev, мать его..... подскажите, пожалуйста, что тут можно сотворить. а то разработчики udev сейчас столько на карму примут.. )))
сижу на федоре 15 с ядром 2.6.38. появилась необходимость собрать ядро другой версии. ядро 2.6.32 еще собралось, ядро 2.6.18 выдает:
scripts/mod/sumversion.c: В функции «get_src_version»:
scripts/mod/sumversion.c:384:16: ошибка: «PATH_MAX» undeclared (first use in this function)
scripts/mod/sumversion.c:384:16: замечание: each undeclared identifier is reported only once for each function it appears in
scripts/mod/sumversion.c:384:7: предупреждение: неиспользуемая переменная «filelist» [-Wunused-variable]
make[2]: *** [scripts/mod/sumversion.o] Error 1
make[1]: *** [scripts/mod] Error 2
make: *** [scripts] Error 2
конфиг ядра везде брал дефолтный. ясно, что что-то с инклудами - но что именно и оно вообще борется?
не знаю, оффтоп или нет, но может кто-то ответит:
надо было установить gcc на винду - установили mingw, выполняем make - и оба-на - уж не знаю кто - толи make при передаче gcc, толи сам gcc вообще не разбирают пути к файлам. а проект разветвленный и если в makefile есть строка собрать файл типа D:\home\1\1.cpp (причем слэш хоть / хоть \), gcc пишет что файла dhome11.cpp он не нашел - и ведь где-то он прав, зззараза ))). mingw последний, свежескаченный.
подскажите пожалуйста, что я делаю не так?
подскажите, пожалуйста - написан драйвер, написано ПО с ним работающее, и все работает - но, сцука, недолго. по истечении какого-то времени все дохнет, перед этим в логе появляется крик души:
Feb 25 00:07:07 kernel: Error querying loaded modules - Function not implemented
Feb 25 00:07:07 kernel: ACPI: Unable to locate RSDP
Feb 25 00:07:09 kernel: ISA access: No IT8888G PCI to ISA bridge found
причем первые две строчки появляются нерегулярно. но последняя - регулярно - и это аллес капут - гарантированный кирдык. к сожалению, разработка ведется на стороннем дистрибутиве и залезть в код проблематично. знаю только одно - эта строка - не из нашего колхоза. ядро 2.6.18. покопался по тому, что есть под рукой - 2.6.32 - ничего не нашел.
пишется программка на с++, в ней подключаются системные заголовочные файлы. в одном из этих файлов есть примерно такой кусок кода:
static __inline __ int* foo()
{
int *asd;
....
return (void*)asd + 10;
}
компилятор с++ тут-же вскидывается на неявное преобразование. если писать на с, а не на с++ все нормально. как-нибудь можно компилятору сказать, чтобы он на это внимание не обращал?
Из-за чего может происходить сабж? Время подключения порядка 3-х минут - просто тупо о чем-то молча думает.. После подключения все летает, рядом стоят аналогичные системы, там таких задержек не наблюдается. Порылся в конфигах, вплоть до сверки каталогов /etc на данной системе и на не тормозной, ничего не нашел