воскресенье, 16 ноября 2014 г.

О настройке WiFi в Linux

Настройка wifi будет происходить на нетбуке MSI Wind U100. В моем случае драйвер wifi-адаптера был уже скомпилирован и загружен. Оставалось только настроить подключение. Если у вас не обнаруживается карточка wifi, то имеет смысл обратиься к официальной документации Gentoo.

Первым делом нужно обеспечить активацию карты. Нас будет интересовать настройка из командной строки.
Добавим скрипт для включения карты:

root # ln -s /etc/init.d/net.lo /etc/init.d/net.enp2s0

где enp2s0 - имя моей wifi-карты в выводе ifconfig -a

Теперь мы можем включать и выключать карту отправляя команды start и stop скрипту /etc/init.d/net.enp2s0(но пока этого не делайте, нужно еще сделать некоторые настройки). Например так:

root # /etc/init.d/net.enp2s0 start

Далее нужно указать в файле /etc/conf.d/net использование wpa_supplicant. wpa_supplicant - утилита, позволяющая подсоединяться к точкам доступа (с WPA в том числе). Есть еще альтернатива - wireless-tools, но я выбрал wpa_supplicant.
File /etc/conf.d/net
modules_enp2s0="wpa_supplicant"
wpa_supplicant_enp2s0="-Dwext"
config_enp2s0="dhcp"
Здесь wext - это название драйвера, этот должен работать с почти всеми картами. Можно поэкспериментировать с другими драйверами, их названия можно найти в официальной документации. Пока такой задачи не стоит, главное заставить работать.

Настройки wpa_supplicant хранятся в файле /etc/wpa_supplicant/wpa_supplicant.conf, и здесь хранятся самые важные для нас настройки.
root # nano /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
ap_scan=1
network={
  priority=1
  ssid="my_wifi"
  scan_ssid=1
  key_mgmt=NONE
}
Здесь my_wifi - название сети к которой вы хотите подключиться, priority - приоритет подключения (чем больше, тем лучше), key_mgmt=NONE - не использовать защиту подключения.

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

root # /etc/init.d/net.enp2s0 restart

воскресенье, 6 июля 2014 г.

Локальный оверлей

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

Для создания локального оверлея нам для начала нужен доступ к исходникам необходимой программы и ebuild файл. Ebuild файл представляет собой инструкции для компилятора и при должном упорстве доступен для написания сознательному линуксоиду. Но скорее всего кто-нибоудь поделится ebuild'ом. И здесь будет рассмотрен случай когда у вас есть ebuild файл для нужного приложения. Написани такого файла самостоятельно - это тема для отдельной заметки.

Для начала определимся с местом нашего оверлея. Пусть это будет /usr/local/overlay/. Создадим необходимые каталоги для служебной информации:

root # mkdir -p /usr/local/portage/{metadata,profiles}

заполним их информацией:

root # echo 'tolstiyman' > /usr/local/portage/profiles/repo_name
root # echo 'masters = gentoo' > /usr/local/portage/metadata/layout.conf

здесь tolstiyman - это имя нашего репозитория.

Чтобы наш оверлей имел приоритет перед всеми остальными нужно изменить переменную PORTDIR_OVERLAY в нашем файле make.conf. Для этого просто выполним команду:

root # echo 'PORTDIR_OVERLAY="/usr/local/portage ${PORTDIR_OVERLAY}"' >> /etc/make.conf

Допустим нам нужно установить программу steam-launcher-1.0.0.47 из категории games-util и у нас есть для этого файл steam-launcher-1.0.0.47.ebuild, который лежит в каталоге /root. Проделаем следующее:

root # mkdir -p /usr/local/portage/games-util/steam-launcher
root # cp /root/steam-launcher-1.0.0.47.ebuild /usr/local/portage/games-util/steam-launcher/steam-launcher-1.0.0.47.ebuild
root # pushd /usr/local/portage/games-util/steam-launcher

Пару слов о команде pushd. Она сохраняет имя текущего каталога для команды popd и переходит в другой каталог. Вобщем шаг не обязательный и позволяет после нужных нам манипуляций вернуться в исходный каталог одной командой (popd).

root # repoman manifest

Утилита repoman предназначена для контроля качества репозитариев ебилдов. В даноом случае она генерирует manifest файл. Более подробно об этой утилите на русском языке можно узнать здесь или здесь.

root # popd

Изменяем права доступа к каталогу с оверлеем.

root # chown -R portage:portage /usr/local/portage

Теперь можно установить пакет

root # emerge -a games-util/steam-launcher

Первоисточник на gentoo-wiki

среда, 19 марта 2014 г.

Работа с tar архивами и не только

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

Упаковать, распаковать, просмотреть содержимое tar.gz или tgz архива:

user $ tar cvzf *.tar.gz path/to/folder
user $ tar xvzf *.tar.gz
user $ tar tvzf *.tar.gz

Упаковать, распаковать, просмотреть содержимое tar.bz2 или tbz2 архива:

user $ tar cvjf *.tar.bz2 path/to/folder
user $ tar xvjf *.tar.bz2
user $ tar tvjf *.tar.bz2

Упаковать, распаковать, просмотреть содержимое tar.xz архива:

user $ tar cvJf *.tar.xz path/to/folder
user $ tar xvJf *.tar.xz
user $ tar tvJf *.tar.xz

Упаковать, распаковать, просмотреть содержимое tar архива:

user $ tar cvf *.tar path/to/folder
user $ tar xvf *.tar
user $ tar tvf *.tar

Команды bz2 и gz не могут применяться к директории, только к отдельным файлам. Кроме того исходный файл, после применения данных команд будет удален, т. е. при упаковке останется только архив, а при распаковке останется только распакованый файл.

Упаковать, распаковать bz2 архив (исходный файл удаляется):

user $ bzip2 some_faile some_faile.bz2
user $ bunzip2 *.bz2

Упаковать, распаковать gz архив (исходный файл удаляется):

user $ gzip some_faile some_faile.gz
user $ gunzip *.gz

Распаковка Z архива:

user $ uncompress *.Z

Распаковка rar архива:

user $ unrar x *.rar

Распаковка zip архива:

user $ unzip *.zip

Распаковка xz архива:

user $ unxz *.xz

Распаковка 7z архива:

user $ 7z x *.7z

Распаковка exe архива:

user $ cabextract *.exe

Используемые в командах ключи имеют следующее значение:
    c - создать архив;
    x - позволяет извлекать файлы из архива;
    v - делает вывод tar подробным. Это означает, что на экран будут выведены все найденные в архиве файлы (если эта опция опущена, информация, выводимая в процессе обработки, будет ограничена);
    f - (эта опция всегда идет последней в списке опций) является обязательной опцией для команды tar, без неё tar пытается использовать магнитную ленту вместо файла архива;
    z - позволяет вам обрабатывать архив, сжатый gzip'ом (с расширением .gz);
    j - позволяет вам обрабатывать архив, сжатый bzip2 (с расширением .bz2);
    J - позволяет вам обрабатывать архив, сжатый xz алгоритмом (с расширением .xz).

Для настоящих же сисадминов можно накарябать скрипт вроде приведенного ниже (скопипастен отсюда). Тогда можно будет распаковывать любой из описанных архивов одной командой. Этот код можно добавить в файл .bashrc в своей домашней директории.
File ~/.bashrc
unpack () {
  if [ -f $1 ] ; then
    case $1 in
      *.tar.bz2) tar xvjf $1    ;;
      *.tar.gz)  tar xvzf $1    ;;
      *.tar.xz)  tar xvJf $1    ;;
      *.bz2)     bunzip2 $1     ;;
      *.rar)     unrar x $1     ;;
      *.gz)      gunzip $1      ;;
      *.tar)     tar xvf $1     ;;
      *.tbz2)    tar xvjf $1    ;;
      *.tgz)     tar xvzf $1    ;;
      *.zip)     unzip $1       ;;
      *.Z)       uncompress $1  ;;
      *.7z)      7z x $1        ;;
      *.xz)      unxz $1        ;;
      *.exe)     cabextract $1  ;;
      *)         echo "\`$1': Unknown method of file compression" ;;
    esac
  else
    echo "\`$1' no foud"
  fi
}
Теперь для распаковки достаточно набрать:

user $ unpack  file

воскресенье, 5 января 2014 г.

Про оверлеи

Несмотря на то, что в основном репозитории Gentoo довольно много программ, наступает момент, когда нужной не находится. Но это не повод для уныния, почти наверняка нужная прога есть в сторонних оверлеях.

Оверлеи - это либо репозитории совместимых с Gentoo дистрибутивов, либо набор пакетов, поддерживаемых хорошим человеком, которые отсутствуют в основном дереве.

Вообще-то можно создать каталог для стороннего оверлея и вручную копировать туда ebuild-ы, поддерживая необходимую иерархию каталогов, но есть способ намного проще. Это команда layman. В Calculate она установлена по умолчанию, если же ее нет, то устанавливаем:

root # emerge app-portage/layman

Прописываем в /etc/make.conf строку (адрес можно подсмотреть в /etc/layman/layman.cfg):
File /etc/make.conf
source /var/lib/layman/make.conf
Теперь у нас есть мегапростой и мегаудобный способ для подключения сторонних репозиториев. Несколько наиболее употребительных примеров использования:
root # layman -L - выводит список доступных оверлеев (некоторые, помеченные красной звездочкой, недоступны для использования - обычно из-за неустановленой системы контроля версий, например subversion или mercurial);
root # layman -a rep_name - подключает оверлей rep_name;
root # layman -d rep_name - удаляет оверлей rep_name;
root # layman -l - выводит список подключенных оверлеев;
root # layman -S - обновляет все подключенные оверлеи

И еще одна полезная вещь - поиск по сторонним оверлеям. Для этого есть специальный сайт - gpo.zugaina.org.