У меня стоит x86_64 версия Archlinux. Вебкамера Logitech Quickcam. Началось все с того, что Skype показывал зеленый или полосатый экран, а никак не мою физиономию.
Я не первый такой. Советов как, где, что проверить множество. Мне помогла простая вещь.
1. Устанавливаем пакет lib32-libv4l
yaourt -S lib32-libv4l
Кстати,всем рекомендую установить yaourt. В этом случае не надо вручную собирать пакеты через ABS. yaourt умеет все делать автоматически. Как если бы пакет был не в AUR, а в одном из официальных репозиториев.
2. Проверяем работоспособность камеры в Skype:
LD_PRELOAD=/opt/lib32/usr/lib/libv4l/v4l2convert.so skype
3. Если теперь все работает, добавляем в ~/.xinitrc строку
export LD_PRELOAD=/opt/lib32/usr/lib/libv4l/v4l1compat.so
Источник - статья в официальном wiki.
Если надо запустить cheese, то используем, соответственно:
LD_PRELOAD=/opt/lib32/usr/lib/libv4l/v4l2convert.so cheese
export LD_PRELOAD=/opt/lib32/usr/lib/libv4l/v4l2convert.so
Конечно, подводных камней в настройке может быть много. Надо проверять, добавлен ли простой смертный пользователь в группу video, какие права выставлены на/dev/video0:
# chmod 666 /dev/video0
К чему это я. К тому, что если у вас не моя проблема, то стоит прочесть и осознать статью полностью :)
Если инфорация оказалась интересна и/или полезна, не побрезгуйте, оставьте комментарий ;)
Показаны сообщения с ярлыком archlinux. Показать все сообщения
Показаны сообщения с ярлыком archlinux. Показать все сообщения
вторник, 22 сентября 2009 г.
суббота, 19 сентября 2009 г.
Ошибка автомонтирования ntfs-дисков через HAL
После установки Archlinux не работало автомонтирование ntfs-дисков.
Инструкции из официального wiki не помогали. Под обычным пользователем получал сообщение об ошибке, сводящиеся к "Доступ запрещен"
"PermissionDeniedByPolicy mount-removable no"
"PermissionDeniedByPolicy mount-removable-extra-options no"
"org.freedesktop.hal.storage.mount-removable no <-- (action, result)"
"org.freedesktop.hal.storage.mount-removable-extra-options no <-- (action, result)"
Как уже сказал, предложения по решению проблемы из wiki не помогли. Но помогло решение, на которое есть ссылка в этом wiki.
Далее предстален перевод.
Создаем файл /etc/Policykit/Policykit.conf следующего содержания:
Создаем скрипт /etc/rc.d/polkitparser
Делаем его исполняемым:
chmod +x /etc/rc.d/polkitparser
В файле /etc/rc.conf в список демонов (переменная DAEMONS) добавляем скрипт перед hal.
В файл /etc/pam.d/login добавляем строку:
session optional ck_connector.so
В файле ~/.xinitrc надо закомментировать текущую строку запуска менеджера окон (скорее всего единственная раскомментированная строка) и добавить следующую:
Инструкции из официального wiki не помогали. Под обычным пользователем получал сообщение об ошибке, сводящиеся к "Доступ запрещен"
"PermissionDeniedByPolicy mount-removable no"
"PermissionDeniedByPolicy mount-removable-extra-options no"
"org.freedesktop.hal.storage.mount-removable no <-- (action, result)"
"org.freedesktop.hal.storage.mount-removable-extra-options no <-- (action, result)"
Как уже сказал, предложения по решению проблемы из wiki не помогли. Но помогло решение, на которое есть ссылка в этом wiki.
Далее предстален перевод.
Создаем файл /etc/Policykit/Policykit.conf следующего содержания:
<?xml version="1.0" encoding="UTF-8"?> <!-- -*- XML -*- -->
<config version="0.1">
<match user="$storage_users">
<match action="org.freedesktop.hal.storage.*">
<return result="yes"/>
</match>
<match action="hal-storage-mount-fixed-extra-options">
<return result="yes" />
</match>
<match action="hal-storage-mount-removable-extra-options">
<return result="yes" />
</match>
</match>
<match user="$power_users">
<match action="org.freedesktop.hal.power-management.shutdown">
<return result="yes"/>
</match>
<match action="org.freedesktop.hal.power-management.reboot">
<return result="yes"/>
</match>
</match>
</config>Создаем скрипт /etc/rc.d/polkitparser
#!/bin/bash
# general config
. /etc/rc.conf
. /etc/rc.d/functions
stat_busy "Parsing groups for policykit handling"
export storage_users=$(cat /etc/group | grep -i storage | cut -d ':' -f 4 | sed 's/,/|/')
export power_users=$(cat /etc/group | grep -i power | cut -d ':' -f 4 | sed 's/,/|/')
stat_done
exit 0Делаем его исполняемым:
chmod +x /etc/rc.d/polkitparser
В файле /etc/rc.conf в список демонов (переменная DAEMONS) добавляем скрипт перед hal.
В файл /etc/pam.d/login добавляем строку:
session optional ck_connector.so
В файле ~/.xinitrc надо закомментировать текущую строку запуска менеджера окон (скорее всего единственная раскомментированная строка) и добавить следующую:
exec ck-launch-session YOUR-WM
где YOUR-WM - скрипт запуска вашего менеджера окон (скопируйте название из первоначальной строки запуска). У меня сее решение сработало
Archlinux. проблемы с DHCP
Проблема. После загрузки системы, сети нет. ifconfig показывает, что адрес не роздан, хотя DHCP-сервер (в моем случае на ADSL-модеме) работает (и работает правильно).
Решение. Заменить новый DHCP-клиент dhcpcd на старый dhclient. Как это сделать.
sudo pacman -S dhclient
sudo pacman -R dhcpcd
После этого необходимо подкорректировать /etc/rc.d/network.
Что корректировать, можно посмотреть здесь
После корректировки в процедуре ifup() стало так
ifup()
{
if [ "$1" = "" ]; then
echo "usage: $0 ifup"
return 1
fi
/sbin/ifconfig $1 up
wi_up $1 || return 1
eval ifcfg="\$${1}"
if [ "$ifcfg" = "dhcp" ]; then
# remove the .pid file if it exists
# /bin/rm -f /var/run/dhcpcd-${1}.pid >/dev/null 2>&1
# /bin/rm -f /var/run/dhcpcd-${1}.cache >/dev/null 2>&1
rm -f /var/lib/dhclient/dhclient.${1}.leases >/dev/null 2>&1
# I'm not sure if it's safe to remove the lease file
rm -rf /var/run/dhclient.${1}.pid >/dev/null 2>&1
/sbin/dhclient -lf /var/lib/dhclient/dhclient.${1}.leases -pf /var/run/dhclient.${1}.pid ${1}
# /sbin/dhcpcd $DHCPCD_ARGS ${1}
else
/sbin/ifconfig $ifcfg
fi
return $?
}
Аналогично исправляем код в процедуре ifdown()
ifdown()
{
if [ "$1" = "" ]; then
echo "usage: $0 ifdown"
return 1
fi
eval ifcfg="\$${1}"
if [ "$ifcfg" = "dhcp" ]; then
# if [ -f /var/run/dhcpcd-${1}.pid ]; then
# /bin/kill $(cat /var/run/dhcpcd-${1}.pid)
if [ -f /var/run/dhclient.${1}.pid ]; then
kill `cat /var/run/dhclient.${1}.pid`
fi
fi
# Always bring the interface itself down
/sbin/ifconfig ${1} down >/dev/null 2>&1
return $?
}
Хочу отметить, что в источнике .leases файл искался в директории /var/lib/dhcp. Но у меня такой директории не было, зато была /var/lib/dhclient. Я внес соответствующее изменение в исходный код патча.
P.S. dhclient сообщает больше информации, проблемы с DHCP проще диагностировать.
Решение. Заменить новый DHCP-клиент dhcpcd на старый dhclient. Как это сделать.
sudo pacman -S dhclient
sudo pacman -R dhcpcd
После этого необходимо подкорректировать /etc/rc.d/network.
Что корректировать, можно посмотреть здесь
После корректировки в процедуре ifup() стало так
ifup()
{
if [ "$1" = "" ]; then
echo "usage: $0 ifup
return 1
fi
/sbin/ifconfig $1 up
wi_up $1 || return 1
eval ifcfg="\$${1}"
if [ "$ifcfg" = "dhcp" ]; then
# remove the .pid file if it exists
# /bin/rm -f /var/run/dhcpcd-${1}.pid >/dev/null 2>&1
# /bin/rm -f /var/run/dhcpcd-${1}.cache >/dev/null 2>&1
rm -f /var/lib/dhclient/dhclient.${1}.leases >/dev/null 2>&1
# I'm not sure if it's safe to remove the lease file
rm -rf /var/run/dhclient.${1}.pid >/dev/null 2>&1
/sbin/dhclient -lf /var/lib/dhclient/dhclient.${1}.leases -pf /var/run/dhclient.${1}.pid ${1}
# /sbin/dhcpcd $DHCPCD_ARGS ${1}
else
/sbin/ifconfig $ifcfg
fi
return $?
}
Аналогично исправляем код в процедуре ifdown()
ifdown()
{
if [ "$1" = "" ]; then
echo "usage: $0 ifdown
return 1
fi
eval ifcfg="\$${1}"
if [ "$ifcfg" = "dhcp" ]; then
# if [ -f /var/run/dhcpcd-${1}.pid ]; then
# /bin/kill $(cat /var/run/dhcpcd-${1}.pid)
if [ -f /var/run/dhclient.${1}.pid ]; then
kill `cat /var/run/dhclient.${1}.pid`
fi
fi
# Always bring the interface itself down
/sbin/ifconfig ${1} down >/dev/null 2>&1
return $?
}
Хочу отметить, что в источнике .leases файл искался в директории /var/lib/dhcp. Но у меня такой директории не было, зато была /var/lib/dhclient. Я внес соответствующее изменение в исходный код патча.
P.S. dhclient сообщает больше информации, проблемы с DHCP проще диагностировать.
Подписаться на:
Сообщения (Atom)