LINUX.ORG.RU

Сообщения Vshmuk

 

«Authentication failed» в wayland-приложении

Форум — Development

Заранее прошу прощения за потенциально ламерский вопрос. Это мой первый опыт работы с Wayland.

Система, которую я разрабатываю, очень критична по времени запуска графической подсистемы, поэтому возникла идея запускать Weston и нужное приложение ещё на этапе initramfs. Желаемое получилось, но внезапно появилась проблема запуска остальных приложений, из «основного» юзерспейса, а именно они отказываются запускаться, возвращая ошибку «Authentication Failed» под номером 3.

Вот подробности.

Initramfs была собрана вручную, на базе busybox. Weston с приложением и либами были тоже скопированы (включая либы PAM и прочий мусор, без которого не взлетело). /dev статичен, с минимумом необходимых нод. /init представляет собой маленький sh-скрипт, который монтирует /proc, /run, /sys, запускает Weston и приложение, а потом монтирует основной корень и передаёт туда управление через switch_root(). Помимо этого, я монтирую в новую ФС существующий /run под именем /run_old, чтобы спасти сокет Wayland’a. Я не уверен, что последнее сделано правильно, но systemd в основной ФС затирает содержимое /run, а до сервера надо как-то достучаться, а этот костыль, вроде как, работает.

В основной ФС я линкую сокет wayland-0 и wayland-0.lock из /run_old в /run.

Всякий диагностический софт (LayerManagerControl, weston-info) работает и показывает инфу по поводу сервера, но всё, что пытается выводить картинку (и использует /dev/dri/card0), валится с вышеназванной ошибкой.

Вот кусочек strace клиентского приложения:

https://pastebin.com/1K3EDUhB

Видно, что оно цепляется корректно к /run/user/0/wayland-0, потом шлёт ioctl DRM_IOCTL_GET_MAGIC к /dev/dri/card0, дальше шлёт (?) magic в сокет сервера, который уже посылает приложение нафиг.

Со стороны сервера всё выглядит так:

https://pastebin.com/jkmeMzH7

Интересна строка:

[pid  1107] ioctl(14, DRM_IOCTL_AUTH_MAGIC, 0xfffff92b32d0) = -1 EACCES (Permission denied)

Хендл 14 указывает на (уже удалённый) /dev/dri/card0. Вот список всех открытых хендлов сервера:

https://pastebin.com/RTFNbEDW.

Единственная зацепка, которая у меня есть, это то, что switch_root() перед переключением на основную ФС рекурсиво удаляет все файлы в initramfs, включая /dev/dri/card0 (это видно выше по пометке «(deleted)»). И по факту новые приложения уже общаются с другим, динамически созданным devtmpfs. Но я не понимаю, как это должно влиять, так как хендл-то у нас всё равно жив, да и какая разница, какая у нас нода устройства и когда она примонтирована, если Major/Minor номера совпадают! В общем, зацепка так себе, и я даже не знаю, как её нормально проверить. Неактуально

Кстати, вот ещё грепнутый кусок трассировки сервера:

$ grep "AUTH_MAGIC" strace-wayland-log
[pid  1107] ioctl(14, DRM_IOCTL_AUTH_MAGIC, 0xfffff92b32d0) = 0
[pid  1107] ioctl(14, DRM_IOCTL_AUTH_MAGIC, 0xfffff92b32d0) = -1 EACCES (Permission denied)
[pid  1107] ioctl(14, DRM_IOCTL_AUTH_MAGIC, 0xfffff92b32d0) = -1 EACCES (Permission denied)
[pid  1107] ioctl(14, DRM_IOCTL_AUTH_MAGIC, 0xfffff92b32d0) = -1 EACCES (Permission denied)
[pid  1107] ioctl(14, DRM_IOCTL_AUTH_MAGIC, 0xfffff92b32d0) = -1 EACCES (Permission denied)
[pid  1107] ioctl(14, DRM_IOCTL_AUTH_MAGIC, 0xfffff92b32d0) = -1 EACCES (Permission denied)

Видно, что первое граф. приложение (из initramfs) авторизуется нормально, но не последующие.

Есть идеи, куда копать?

UPD: в общем, я монтирую devtmpfs вместо статического /dev, оно правильно переносится в основную rootfs, все хендлы живы, в /proc/x/FD никаких удалённых файлов. Тем не менее, продолжаем иметь ту же проблему

 , ,

Vshmuk ()

Конвертация .frm,.ibd, ibdata1 в sql-формат

Форум — Admin

Такой вопрос. Есть неповреждённые копии файлов, составляющих структуру InnoDB базы данных. Нужно перевести их в понятный человеку текстовый sql-дамп. Вариант с подсовыванием их серверу в каталог /var/lib/mysql очень некрасив, и я верю, что есть более изящное решение. Пока что я смог с помощью mysqlfrm --diagnostic достать CREATE-инструкции для таблиц. Но хотелось бы выковырять и сами данные.

Спасибо

 ,

Vshmuk ()

Apache2 и ScriptAlias

Форум — Web-development

Коллеги, я наткнулся на немного странное поведение Апача. Если отбросить лишнее, то проблема такая. Есть веб-сервис мониторинга серверов munin. При вызове страничек этого веб-сервиса Апач ругается в лог. При этом всё работает, но ругань в error.log раздражает и заставляет чувствовать себя ущербным. После длительных экспериментов мне удалось локализовать проблему, но дальше я застрял.

Важный участок конфига вот такой:

<VirtualHost *:80>
        <Directory />
                Options -MultiViews
        </Directory>
    # Ensure we can run (fast)cgi scripts
    ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph
    <Location /munin-cgi/munin-cgi-graph>
        Options +ExecCGI -MultiViews
        <IfModule mod_fcgid.c>
            SetHandler fcgid-script
        </IfModule>
        <IfModule mod_fastcgi.c>
            SetHandler fastcgi-script
        </IfModule>
        <IfModule !mod_fastcgi.c>
            <IfModule !mod_fcgid.c>
                SetHandler cgi-script
            </IfModule>
        </IfModule>
        Require all granted
    </Location>
</VirtualHost>

Сам скрипт вызывается вот таким урлом:

http://<server>/munin-cgi/munin-cgi-graph/DOMAIN/HOST/apache_accesses-pinpoint=1476876158,1476984158.png?&lower_limit=&upper_limit=&size_x=800&size_y=400

После чего в логе мы видим это:

[Thu Oct 20 22:40:32.016850 2016] [authz_core:error] [pid 25196] [client 192.168.235.77:46192] AH01630: client denied by server configuration: /var/www/DOMAIN

Получается, что Апач, вызывая скрипт, параллельно зачем-то выкусывает строку /munin-cgi/munin-cgi-graph/ и пытается обратиться по несуществующему адресу.

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

Кто может помочь?

 ,

Vshmuk ()

Нужен консольный (с stdin & stdout) дизассемблер.

Форум — Development

Сразу скажу, objdump не подходит. Задача такая. Есть сотня бинарников, которые нужно пропатчить одним и тем же способом. Конкретно - найти printf известной строки, лежащей в .rodata, подняться выше по коду, найти jnz и заменить на nop :).

Выяснилось, что objdump не умеет показывать строковые референсы, поэтому грепать дизассеммблированный код с наскоку не получается. Сейчас мне приходится делать следующие действия. С помощью 'strings -t x' я нахожу абсолютное смещение строки в файле. Далее, через objdump -H я нахожу адрес и смещение секции .rodata. Потом складываю одно с другим и нахожу адрес строки. Вот его уже можно грепать скриптом.

Есть ли способ сократить телодвижения? Ida Pro умеет показывать референсы, но умеет ли оно в потоковое дизассемблиование и последующий патчинг?

Спасибо

 , ,

Vshmuk ()

Исправление повреждённых RAW CR2

Форум — Desktop

Имеется несколько тысяч файлов, вытащенных по сигнатуре из флешки с умершей ФС. Файлы формата Canon CR2, совместимые в целом с TIFF. Многие из них обрезаны, многие - вообще не файлы из-за ложных срабатываний. Большинство имеют бесполезные «хвосты» и весят раза в три больше, чем должны.

Ищется программка, которая просканирует эти файлы на корректность и, как максимум, скопирует внутренние структуры TIFF в новые файлы, проигнорировав «хвосты».

Открывать каждый из файлов в граф. редакторе долго, да и от хвостов я не избавлюсь.

Если известна программка под оффтопик, то запущу виртуалку.

Спасибо.

Vshmuk ()

Debian Squeeze, IPMI , HP ProLiant: не полностью заводится

Форум — Admin

Имеется система HP ProLiant DL180 G6 и Debian Squeeze 6.0.

Надо завести внутреннее общение с IPMI-интерфейсом.

При «modprobe ipmi_si» в лог пишется вот это:

[1730185.193373] Could not set up I/O space
[1730317.891364] ipmi message handler version 39.2
[1730317.893759] IPMI System Interface driver.
[1730317.894471] ipmi_si: Trying SMBIOS-specified kcs state machine at i/o address 0xca2, slave address 0x20, irq 0
[1730318.028656] ipmi: Found new BMC (man_id: 0x00000b,  prod_id: 0x0000, dev_id: 0x12)
[1730318.028676] IPMI kcs interface initialized
[1730318.028690] ipmi_si: Trying ACPI-specified kcs state machine at mem address 0x0, slave address 0x0, irq 0
[1730318.028695] Could not set up I/O space

То есть, плату драйвер находит, но при попытке подключиться через ACPI почему-то запрашивает адрес 0x0 вместо 0xca2.

Прямое указывание адресов даёт тот же эффект: «modprobe ipmi_si type=kcs ports=0xca2».

# dmidecode -t 38
# dmidecode 2.9
SMBIOS 2.6 present.

Handle 0x003C, DMI type 38, 18 bytes
IPMI Device Information
	Interface Type: KCS (Keyboard Control Style)
	Specification Version: 2.0
	I2C Slave Address: 0x10
	NV Storage Device Address: 1
	Base Address: 0x0000000000000CA2 (I/O)
	Register Spacing: Successive Byte Boundaries
$ uname -a
Linux amber 2.6.32-5-xen-amd64 #1 SMP Sun May 6 08:57:29 UTC 2012 x86_64 GNU/Linux

Что характерно, драйвер встаёт и, после добавления ipmi_devintf даже даёт немного пообщаться:

diver@amber:~$ sudo ipmitool power status
Chassis Power is on
diver@amber:~$ sudo ipmitool sel
SEL Information
Version          : 1.5 (v1.5, v2 compliant)
Entries          : 62
Free Space       : 6168 bytes 
Percent Used     : 13%
Last Add Time    : 02/08/2012 04:41:26
Last Del Time    : 08/21/2010 10:33:59
Overflow         : false
Supported Cmds   : 'Delete' 'Reserve' 'Get Alloc Info' 
# of Alloc Units : 319
Alloc Unit Size  : 24
# Free Units     : 257
Largest Free Blk : 257
Max Record Size  : 1
diver@amber:~$ sudo ipmitool sdr
OS Boot Status   | Not Readable      | ns
POST Error       | Not Readable      | ns
Memory ECC       | Not Readable      | ns
CPU1 DIMM1       | Not Readable      | ns
CPU1 DIMM2       | Not Readable      | ns
CPU1 DIMM3       | Not Readable      | ns
CPU1 DIMM4       | Not Readable      | ns
....<Тормоза, пропущено>...

В общем, получается так, что ACPI-шная часть драйвера (или как там оно правильно?) не завелась. Куда копать?

Vshmuk ()

NFS root mount auto reboot

Форум — Admin

Есть debian-squeeze система, грузящаяся по pxe и имеющая в качестве корневой ФС сетевой nfs-раздел. Хочется сделать так, чтобы ядро автоматически паниковало при отсутствии доступа к /, а не зацикливалось. Man говорит, что нужно использовать опцию монтирования «soft», но мне это не помогло. Подскажите и поправьте, пожалуйста. Вот опции pxe-загрузки:

append initrd=initrd.gz root=/dev/nfs nfsroot=192.168.2.100:/home/Ants/root,soft ip=dhcp ipconfdelay=10 ro

Вот кусок /etc/fstab в корневой ФС:

/dev/nfs        /             nfs    ro,noatime,soft       0      0

Вот вывод mount:

192.168.2.100:/home/Ants/root on / type nfs (ro,noatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,soft,nolock,proto=tcp,port=65535,timeo=7,retrans=3,sec=sys,mountport=65535,addr=192.168.2.100)

Вот это оно начинает писать в цикле при опускании сетевого интерфейса:

nfs: server 192.168.2.100 not responding, timed out

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

Vshmuk ()

Apache2 игнорирует .htaccess в userdir'е

Форум — Web-development

Собственно, сабж. Никак не могу найти, где я дурак. Система - Debian 6.0. Полностью игнорируется файл /home/users/<user>/public_html/.htaccess. Каталог Апачем виден, все прочие файлы читаются и выдаются. Даже если я ставлю файлу .htaccess права 700, сервер не ругается ошибкой 500, а продолжает работать как ни в чём не бывало.

# cat /etc/apache2/mods-enabled/userdir.conf 
<IfModule mod_userdir.c>
        UserDir public_html
        UserDir disabled root

        <Directory "/home/*/public_html">
                #AllowOverride FileInfo AuthConfig Limit Indexes
		AllowOverride All
                Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec 
                <Limit GET POST OPTIONS>
                        Order allow,deny
                        Allow from all
                </Limit>
                <LimitExcept GET POST OPTIONS>
                        Order deny,allow
                        Deny from all
                </LimitExcept>
        </Directory>

</IfModule>

# cat /home/users/<user>/public_html/.htaccess 
Order deny,allow
Deny from all

Vshmuk ()

Нарисовать граф топологии локальной сети

Форум — Admin

Есть сеть, построенная на Cisco. Все коммутаторы смотрят в один админский влан, имеют одинаковые пароли и включённый cdp.

Ищу программу, позволяющую не заходить на каждую циску персонально для ввода «show cdp neighbiours», а автоматически рекурсивно построить всю топологию сети и вывести её в графический файл или базу данных.

Vshmuk ()

Transparent Squid redirect w/Cisco

Форум — Admin

Такой вопрос, господа админы. Я Циски почти не знаю, а в организации возникла следующая задача. Есть внутренняя сеть, разделённая на сегменты (вланы).

В одном из сегментов живёт сервер со Squid-proxy на порту 3128, через который пользователи ходят по HTTP наружу. По всем остальным портам доступ в Интернет закрыт, поэтому этот Сквид - единственный канал. Естественно, у работников организации он жёстко забит в настройки броузеров. Но с появлением Wi-Fi точек и толпы посетителей возникла проблема раздачи этого прокси мобильным устройствам.

Так вот, рецепты, найденные мной в интернете, позволяют настроить на Циске редирект всех пакетов, идущих наружу на 80 порт, на 80 порт сервера со Сквидом. Это освобождает пользователей от настройки прокси у себя. Но на этом же сервере у нас находится Апач, прочно этот порт занявший! Так вот, я почему-то не смог нагуглить адекватную конфигурацию циски, делающую редирект не только адреса, но и порта. Кто подскажет?

Вообще, я так полагаю, что, если циски принципиально не умеют делать смешанную (ip-tcp) трансляцию, то можно попробовать извратиться и повесить Апач на 127.0.0.1-интерфейс сервера, тогда как Сквид - на внешний. Тогда, если грамотно и аккуратно вбить все его ВиртуалХосты в /etc/hosts, то Сквид будет перезапрашивать страницу на локальном интерфейсе, и из этого что-то может теоретически получиться. Что думаете?

ЗЫ. Wpad не предлагать

Vshmuk ()

Несколько вопросов по Aptitude.

Форум — Desktop

Я пользуюсь Дебианом. Содержимое preferences настроено так, что testing считается основным, потом stable, потом unstable и sid. Есть вопросы по Aptitude:

1). Существует команда apt-show-versions, показывающая, какие версии пакетов доступны, и можно ли обновиться. Например:

apt-show-versions -a kdetoys
kdetoys 4:3.5.8-1 install ok installed
kdetoys 4:3.5.9-2 stable  mirror.yandex.ru
kdetoys 4:4.4.5-1 testing mirror.yandex.ru
kdetoys 4:4.4.5-1 sid     mirror.yandex.ru
kdetoys/testing upgradeable from 4:3.5.8-1 to 4:4.4.5-1
Всё замечательно и хорошо расписано. Но aptitude так красиво не рисует, он показывает только версии пакетов, но никак не источники. Также, о том, до какой версии пакет обновится при нажатии кнопки «+», можно только догадываться.

Так вот, есть ли примочка/настройка/плагин к aptitudу, чтобы вывод списка версий пакета был таким же замечательным, как и в apt-show-versions?

2). Как некоторые заметили, я не обновляю кеды, хотя они постоянно порываются это сделать (в Stable - 3.5.10, в testing - 4.4). Как максимально православно зафиксировать все сотни пакетов, относящиеся к kde, в состоянии stable? Когда я делаю hold пакета kde, который зависит от всех остальных, это не мешает всем остальным помечаться как обновляемые, и в этом проблема. То есть, как фиксировать пакеты так, чтобы следом фиксировались все, от которых они зависят?

3). И всё-таки, как намертво фиксировать пакет? Вот попадает фиксированный пакет в список обновляемых, я тыкаю «U» для обновления всего, ну или тыкаю «+» для обновления ветки, а фиксация берёт и слетает. В хелпе написано, что фиксация запрещает обновление, а у меня ничего не запрещается (хотя состояние меняется с «i» на «ih»). Что не так?

Vshmuk ()

Перегрев и cpufreqd

Форум — Linux-hardware

Всем привет! Я - обладатель глючноватого чипсета nForce 4, славящегося тем, что всегда в /proc/acpi/thermal_zone/THRM/temperature показыает температуру в 40 градусов. В принципе, это не проблема, так как есть sensors, показывающая температуру правильно.

Проблема в том, что при достижении большой температуры (>80С), компьютер виснет, а удалённо перезагружать его в таком случае проблематично. В /etc/cpufreqd.conf есть следующее:

##
# Special Rules
##
# CPU Too hot!
[Rule]
name=CPU Too Hot
acpi_temperature=55-100
cpu_interval=50-100
profile=Performance Low
[/Rule]

Видно, что демон смотрит «глючную» температуру и, даже если процессор горячий, не снижает его частоту. Вопрос: как переконфигурить демон, чтобы он смотрел на sensors, а не acpi?

Vshmuk ()

Nvidia proprietary & uswsusp

Форум — General

Проблема: после небольшого обновления системы отвалился s2disk. Комп засыпает, просыпается (показывает процентики), но потом чёрный экран.

Описание:
Если сделать service kdm stop && rmmod nvidia, то всё работает, из чего можно сделать вывод, что виноват проприетарный драйвер видеокарты.
До недавнего времени всё работало и с ним, и что поменялось - не знаю.

Система:
Debian 5.0
Мат. плата Asus A8N-SLI SE
Видео GeForce 7600GT
Пробовал на ядрах:
2.6.30-2.6.32
Пробовал версии драйвера:
173.14.22, 185.18.36, 190.53, 195.22.

Xorg.conf: http://pastebin.com/m11d7e1bf

Есть какие-либо идеи?
Может ли быть так, что всё отвалилось из-за апгрейда 7600GS на 7600GT? :)


PPS. Если уж я тут пишу, то поною, что на моей материнке s2ram последний раз работал на ядре 2.6.18. Потом сломали, сволочи.

Vshmuk ()

ARM9. Проблемы с сетью.

Форум — Admin

Дано: 1. Девайс на контроллере AT91SAM9260

2. Микросхема физического уровня Micrel KSZ8041TL/FTL в режиме MII

3. Криво установленный Emdebian Grip.

Не пашет сеть. Симптомы такие:

emdiver:~# ifconfig
eth0      Link encap:Ethernet  HWaddr c6:19:d8:66:c8:ad
          inet addr:192.168.215.79  Bcast:192.168.215.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:65 errors:0 dropped:0 overruns:0 frame:0
          TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:9516 (9.2 KiB)  TX bytes:2016 (1.9 KiB)
          Interrupt:21 Base address:0x4000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:18 errors:0 dropped:0 overruns:0 frame:0
          TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1752 (1.7 KiB)  TX bytes:1752 (1.7 KiB)

Пингую заведомо доступный роутер:

emdiver:~# ping -c1 192.168.215.1
PING 192.168.215.1 (192.168.215.1) 56(84) bytes of data.
From 192.168.215.79 icmp_seq=1 Destination Host Unreachable

--- 192.168.215.1 ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms

Смотрю arp:

emdiver:~# arp
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.215.1                    (incomplete)                              eth0

Ага. Добавляю arp вручную:

emdiver:~# arp -s 192.168.215.1 00:0f:8f:2e:98:80

Пингую снова:

emdiver:~# ping -c1 192.168.215.1
PING 192.168.215.1 (192.168.215.1) 56(84) bytes of data.

--- 192.168.215.1 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

Теперь вываливаются тайм-ауты, что логично. ifconfig сообщает нормальную статистику об ушедших и пришедших пакетах. Но прочитать и отослать ничего не могу. Сниффер на той стороне провода никакой активности не замечает.

Мобыть, посоветуете какие-нибудь хорошие форумы линуксоидов, а то я в них вообще не спец?

ЗЫ. Ах, да, есть маленькая вероятность, что что-то не так с физическим уровнем, но в другой самопальной операционке интерфейс работает замечательно, пингует и пингуется.

Vshmuk ()

Пара вопросов по использованию kdm

Форум — Desktop

Собственно, пересадил я маму на Линух. Ей всё равно кроме сайтов знакомств ничего не надо. А так как она раньше за виндой вообще не работала, всё прошло и того лучше.
Но иногда она путает "Выйти из системы" и "Выключить компьютер". Так вот, как запретить пользователю выключать комп в KDE иначе как выдёргиванием шнура из розетки (она на это не решится)?
А ещё она не понимает, что есть многопользовательская ОС. Поэтому вот это состояние для нас нормально:
diver@dDiver:~$ w
 12:29:14 up  3:01,  4 users,  load average: 0,04, 0,03, 0,00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
mama     :1       -                09:31   ?xdm?  27.42s  0.03s /bin/sh /usr/bin/x-session-manager
mama     :2       -                09:33   ?xdm?  27.42s  0.05s /bin/sh /usr/bin/x-session-manager
mama     :3       -                09:36   ?xdm?  27.42s  0.02s /bin/sh /usr/bin/x-session-manager
diver    pts/0    192.168.192.3    12:15    0.00s  0.19s  0.00s w
Почему-то, когда она видит "заблокированный" ей же компьютер, то просто заходит в систему заново. Оперативы-то 2 гига, комп стольких сессий не замечает, а вот ФайрФокс ругается, что его где-то не там открыли. Так вот, хотелось бы ограничить количество сессий одной. Это будет легче, чем объяснять, что да как :).
Заранее спасибо.

>>>

Vshmuk ()

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