Если инфорация оказалась интересна и/или полезна, не побрезгуйте, оставьте комментарий ;)
Показаны сообщения с ярлыком archlinux. Показать все сообщения
Показаны сообщения с ярлыком archlinux. Показать все сообщения

вторник, 22 сентября 2009 г.

Вебкамера в Archlinux

У меня стоит 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

К чему это я. К тому, что если у вас не моя проблема, то стоит прочесть и осознать статью полностью :)

суббота, 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 следующего содержания:
<?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 проще диагностировать.