LINUX.ORG.RU

Сообщения bk_

 

Gentoo готов для десктопа

Галерея — Скриншоты

Абсолютно доволен своей гентой на лептопе.

  • Самосборное ядро 2.6.39 с отключенными ненужностями.

    Кстати, на 3.0 гента также запустилась, однако, отвалился fglrx (репозиторный). Сделал в /usr/src симлинк linux на linux-3.0, но он ругался на отсутствие в оном .config, хотя он там был. В общем, я пока забил на это и работаю под 2.6.39-gentoo-r3.

  • awesome с отшлифованным под мои нужды конфигом: - теги идеально расставлены по частоте использования различных приложений; - для уменьшения занимаеомого места и повышения «интерактивности» названия тегов заменены на картинки.

    Кстати, в rules exclude и exclude_any у меня не заработали.

  • Gnome 2 - gnome-settings-manager (очень удобен); - переключалка раскаладок по caps lock с картинками вместо текста в трее; - использую множество приложений gnome 2; - кед нет (USE qt только для сраного скайпа).
  • Тема - Equinox Evolution Light - допилил тему для отображения нормальной каемки окошек, ибо по умолчанию это можно использовать только в композитных ВМ с теньками по границе; - полосы прокрутки изумительны (а-ля iphone); - цветовая гамма радует глаз.
  • Часто работаю от проводной сети (в смысле, ethernet). Для этого настроил такую цепочку событий:

    iflpugd подхватывает eth0 -> dhcpcd получает ip -> pon myprovider -> изменение роутов

    Плюс pppd-шные ip-up и ip-down через notify-send уведомляют о подключении/отключении к провайдеру.

    Ествественно, там стоят проверки на принадлежность полученного ip соответствующей сети и т.п.

    Получается так, что уже при появлении gdm сеть поднята и Интернет доступен. Раньше пользовался networkmanager-gnome - по сравнению с текущим вариантом он неудобен.

    (wifi через wpa_supplicant через менюшку awesome по mod4+w)

  • gnome-do как мега-быстрый лаунчер через клаву (иногда mod4-r - еще быстрее).
  • В firefox некогда юзал vimperator, но сейчас его отключил, поскольку сраный noremap через Ctrl+V иногда не работает, блждад! Это бесит, когда по двадцать раз пытаешься перейти в ctrl-k или ctrl-l или скопипастить что-нибудь.
  • Небольшое ШГ в статус-баре не мешает работать.

В общем, все прекрасно. Однако, для настройки всего этого и, что самое главное, понимания того, что же мне нужно, пришлось потратить около недели. Но теперь все просто работает до ближайшего обновления тулчейна.

Кстати, полная загрузка от выбора системы в грабе до появления awesome занимает 30 секунд, и это с учетом, возможно, ненужного в моей простой ситуации gdm и времени набора логина-пароля.

Вердикт - готов для десктопа!

 ,

bk_
()

[gentoo][Пародия на 12309] Виснет система при emerge

Форум — Desktop

Когда начинается какой-нибудь жирный emerge, то иногда случается следующее (довольно редко, но бывает):

- клавиатура перестает реагировать на нажатия: capslock не переключает индикатор, ничего не печатает; SysRq-комбинации нажимать не рискнул.

Правда, не помню, мышка работает в этот момент или нет.

Однако, решение я нашел совершенно случайно и оно оказалось феерическим: надо нажать кнопку включения на ноутбуке - тогда клава «раздупляется».

Причем, это было на моем ноуте как на 32-битной генте, так и на 64-битной.

Что делать как мне быть? Кто-нибудь еще с таким встречался и кто может объяснить происходящее?

2.6.38-r6 из реп, но самопальный (не genkernel)

 

bk_
()

[gentoo] Изменить яркость подсветки lcd из консоли

Форум — Desktop

Собственно, ядро собрано правильно, и яркость великолепно меняется при запущенном gnome-power-manager fn-кнопками.

Но у меня в дебиане я также мог менять яркость через /proc/acpi/video/SOMETHING/LCD/brightness, - как-то так, кажется.

Проблема в том, что в генте нет директории video в /proc/acpi.

Как мне изменить яркость из скрипта?

zdo@mamburu ~ $ zcat /proc/config.gz | grep -i video
CONFIG_ACPI_VIDEO=y
CONFIG_VIDEO_DEV=y
CONFIG_VIDEO_V4L2_COMMON=y
CONFIG_VIDEO_MEDIA=y
CONFIG_VIDEO_V4L2=y
CONFIG_VIDEO_CAPTURE_DRIVERS=y
# CONFIG_VIDEO_ADV_DEBUG is not set
# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
# Video decoders
# Video and audio decoders
# MPEG video encoders
# Video encoders
# Video improvement chips
# CONFIG_VIDEO_CPIA2 is not set
# CONFIG_VIDEO_ZORAN is not set
# CONFIG_VIDEO_SAA7134 is not set
# CONFIG_VIDEO_MXB is not set
# CONFIG_VIDEO_HEXIUM_ORION is not set
# CONFIG_VIDEO_HEXIUM_GEMINI is not set
# CONFIG_VIDEO_TIMBERDALE is not set
# CONFIG_VIDEO_CAFE_CCIC is not set
# CONFIG_VIDEO_SR030PC30 is not set
CONFIG_USB_VIDEO_CLASS=y
CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
# CONFIG_VIDEO_PVRUSB2 is not set
# CONFIG_VIDEO_HDPVR is not set
# CONFIG_VIDEO_USBVISION is not set
CONFIG_VIDEO_OUTPUT_CONTROL=y

 

bk_
()

Применить добавление пользователя в группу без logout

Форум — Desktop

Было решение, да забыл. При добавлении юзера в группу

gpasswd -a myuser mygroup

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

bk_
()

[ЖЖ][FreeBSD] FreeBSD must be installed into a primary partition

Форум — Talks

Не хотелось бы, чтобы получилось слишком толсто, но, увы, долго сижу на линуксе - просто стало интересно глянуть на FreeBSD. Почитал статейки разных авторов, которые проводили сравнение, плюс ко всему туда портировали драйвер radeon, на котором моя hd2400 кое-как работала и что-то ускоряла. В теории - все красиво, решил проверить на практике.

Итак, записал ее на rw-шку, перегружаюсь, запускаю инсталлятор, и когда доходит дело до т.н. fdisk (так называемый - потому что привыкнув к старому линуксовому fdisk бсдяшый fdisk - это, пардон, п__дец) - оно отказывается ставить фряху на logical partition в моем специально выделенном для этого extended.

А дело в том, что у меня в triple-буте винда, дебиан и генту. Семерочка отожрала по-минимуму 2 primary + 1 primary на дебиан + 1 primary для экскрементов экспериментов, куда, собственно, и была поставлена 64-битная гента.

Бл_ха муха, современная, пусть и сервер-ориентированная, ось не может быть установлена на extended partition!

Перегрузился обратно в дебиан, начал гуглить - http://www.freebsd.org/doc/handbook/install-pre.html

2.3.3.1 Disk Layouts for FreeBSD/i386

FreeBSD must be installed into a primary partition.

Друзья, это просто п__здец!

Я все больше люблю свой линукс! И вам того же.

 ,

bk_
()

[c][linux][kernel] Не могу понять list_head

Форум — Development

Начал глубоко изучать list_head в ядре линукса - наткнулся на непонимание базового принципа работы.

Все макросы list_foreach_* начинают перебор со _второго_ объекта, то есть пропускается самый первый объект.

Это наводит на мысль, что первый объект _всегда_ должен быть «мусорным», то есть он нигде не применяется, а служит только для указания головы списка.

Либо этот самый первый объект должен обрабатываться вручную, что, по-моему, глупо.

Я так понял, что если у меня в программе динамически создаются объекты типа struct my_list_object, которые имеют внутри list_head, то чтобы в _другом_ объекте иметь указатель на этот список, я должен:

1. Либо сделать один «мусорный» объект struct my_list_object, от которого я буду стартовать.

2. Либо иметь указатель на struct my_list_obj * или на соответствующий struct list_head *, который будет равен NULL при пустом списке и иметь нормальное значение при непустом списке.

Мне кажется, что вариант (1) более разумен, однако, смущает наличие мусорного объекта.

Я правильно понимаю «философию» list_head? Если нет, то как надо его применять?

 , ,

bk_
()

[C] Связные списки: реализация glib VS реализация linux kernel

Форум — Development

Интересуют преимущества и недостатки этих двух подходов к реализации связных списков.

glib:

struct GList {
  gpointer data;
  GList *next;
  GList *prev;
};

next и prev указывают на такой же GList

linux:

struct list_head{
	struct list_head *next;
	struct list_head *prev;
};

struct my_cool_list{
	struct list_head list; /* kernel's list structure */
	int my_cool_data;
	void* my_cool_void;
};

То, что вижу я:

1. Реализация в linux требует на sizeof(void *)*N байт меньше, чем реализация в glib, где N - количество элементов в списке.

Why so?

glib = N * { sizeof(next_ptr) + sizeof(prev_ptr) + sizeof(data_ptr) + sizeof(data_struct) }

linux = N * { sizeof(data_struct) + sizeof(next_ptr) + sizeof(prev_ptr) }

То есть, нет N штук data_ptr.

2. Мне кажется, модель списков в glib более интуитивно понятная.

Плюс, в linux list_head структура сама определяет, в каких списках она может хранится. Если я захочу добавить возможность вносить структуру в список, у меня есть 2 варианта:

а) изменить код структуры и добавить туда еще один list_head;

б) написать структуру-обертку и использовать уже ее.

То есть, код получается зависимым от того, что сделал разработчик. В linux такое можно легко использовать, поскольку сорцы открыты, либо закрыты полностью (есть только unmodifiable headers).

Опять же, неудобно каждый раз писать структуру обертку

struct my_struct {
  int a;
  struct list_head list1;
};

struct my_struct_add {
  struct my_struct datal
  struct list_head list2;
};

для добавления возможности вставлять структуру в списки.

Гораздо проще в данном плане использовать модель GLib, где _любой_ объект может быть добавлен в список.

3. Реализация list_head оперирует сдвигом для определения указателя на структуру по указателю на list_head.

void *mystruct_ptr = mylist_ptr - &(((struct mystruct *)0)->mylist_head);

Насколько это портабельно между различными компиляторами?

Тема интересная, посему - lets discuss begin!

 

bk_
()

Много здесь разработчиков под iPhone/iPad?

Форум — Talks

Как много здесь разработчиков под iPhone/iPad?

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

bk_
()

[gentoo] Где gnome commander?

Форум — Desktop

Не могу найти в стандртном репозитории любимый gnome commander. Он там вообще есть?

 

bk_
()

> whois google.com

Форум — Talks

Случайно ввел

whois google.com

Там бОльшая часть обычна, но интересны имена найденных серверов.

zdo@mamburu /mnt/windows/Program Files/Microsoft Games/Фриленсер/EXE $ whois google.com | grep "Server Name"
   Server Name: GOOGLE.COM.ZZZZZZZZZZZZZ.GET.ONE.MILLION.DOLLARS.AT.WWW.UNIMUNDI.COM
   Server Name: GOOGLE.COM.ZZZZZ.GET.LAID.AT.WWW.SWINGINGCOMMUNITY.COM
   Server Name: GOOGLE.COM.ZOMBIED.AND.HACKED.BY.WWW.WEB-HACK.COM
   Server Name: GOOGLE.COM.ZNAET.PRODOMEN.COM
   Server Name: GOOGLE.COM.YUCEKIRBAC.COM
   Server Name: GOOGLE.COM.YUCEHOCA.COM
   Server Name: GOOGLE.COM.WORDT.DOOR.VEEL.WHTERS.GEBRUIKT.SERVERTJE.NET
   Server Name: GOOGLE.COM.VN
   Server Name: GOOGLE.COM.VABDAYOFF.COM
   Server Name: GOOGLE.COM.UY
   Server Name: GOOGLE.COM.UA
   Server Name: GOOGLE.COM.TW
   Server Name: GOOGLE.COM.TR
   Server Name: GOOGLE.COM.SUCKS.FIND.CRACKZ.WITH.SEARCH.GULLI.COM
   Server Name: GOOGLE.COM.SPROSIUYANDEKSA.RU
   Server Name: GOOGLE.COM.SOUTHBEACHNEEDLEARTISTRY.COM
   Server Name: GOOGLE.COM.SHTHEAD.NET
   Server Name: GOOGLE.COM.SERVES.PR0N.FOR.ALLIYAH.NET
   Server Name: GOOGLE.COM.SA
   Server Name: GOOGLE.COM.PE
   Server Name: GOOGLE.COM.MX
   Server Name: GOOGLE.COM.LASERPIPE.COM
   Server Name: GOOGLE.COM.KNOWS.THAT.THE.BEST.WEB.HOSTING.IS.NASHHOST.NET
   Server Name: GOOGLE.COM.KNOWS.THAT.THE.BEST.HOSTING.IS.NASHHOST.NET
   Server Name: GOOGLE.COM.IS.SHIT.SQUAREBOARDS.COM
   Server Name: GOOGLE.COM.IS.NOT.HOSTED.BY.ACTIVEDOMAINDNS.NET
   Server Name: GOOGLE.COM.IS.HOSTED.ON.PROFITHOSTING.NET
   Server Name: GOOGLE.COM.IS.APPROVED.BY.NUMEA.COM
   Server Name: GOOGLE.COM.HK
   Server Name: GOOGLE.COM.HICHINA.COM
   Server Name: GOOGLE.COM.HAS.LESS.FREE.PORN.IN.ITS.SEARCH.ENGINE.THAN.SECZY.COM
   Server Name: GOOGLE.COM.ESJUEGOS.NET
   Server Name: GOOGLE.COM.DO
   Server Name: GOOGLE.COM.CO
   Server Name: GOOGLE.COM.CN
   Server Name: GOOGLE.COM.BR
   Server Name: GOOGLE.COM.BITERMANSOLUTIONS.COM
   Server Name: GOOGLE.COM.BEYONDWHOIS.COM
   Server Name: GOOGLE.COM.AU
   Server Name: GOOGLE.COM.AR
   Server Name: GOOGLE.COM.AFRICANBATS.ORG
zdo@mamburu /mnt/windows/Program Files/Microsoft Games/Фриленсер/EXE $ 

Объясните мне, пожалуйста, что все это значит?

bk_
()

Как изменить цвет фона в tty*?

Форум — Desktop

Как изменить цвет фона в линуксовом терминале tty*? Гугление успехом не увенчалось - везде попадалась инфа только по изменению цвета вывода grep, приглашения шелла и т.п.

bk_
()

Переносы непомещающихся строк в BSD/MacOSX и Linux терминалах

Форум — Desktop

Заметил такую вещь: когда в линуксе на терминал идет вывод, в котором строка не помещается в ширину экрана, она переносится с точностью до символа на следующую строку. Но после этого, если увеличить размер терминала, строка как была перенесена, так и остается фиксированно на своем месте.

В MacOSX, однако, после изменения размера терминала перенесенная строка подстраивается под новый размер динамически.

Не знаю, как в *BSD, но думаю, что также, как и в MacOSX.

Хоть это и не столь важно, но на мой взгляд, - второй вариант удобнее.

Собственно, вопрос: понятно, что реализации терминала разные, но с чем связано такое отличие - почему в Linux не сделали динамическую подстройку переносов строк под измененный размер терминала?

bk_
()

[gentoo][libsqlite] Anjuta вылетает (LD_LIBRARY_PATH)

Форум — Desktop

Вылетает анюта при запуске.

zdo@mamburu ~ $ anjuta --version
anjuta 2.32.1.1
zdo@mamburu ~ $ anjuta

** (anjuta:17586): WARNING **: Can't find libsqlite3.so file.

(anjuta:17586): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed

(anjuta:17586): GLib-GObject-CRITICAL **: g_object_set_data: assertion `G_IS_OBJECT (object)' failed

** (anjuta:17586): WARNING **: Can't find libsqlite3.so file.

(anjuta:17586): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed

** (anjuta:17586): WARNING **: Can't find libsqlite3.so file.

(anjuta:17586): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed

(anjuta:17586): GLib-GObject-CRITICAL **: g_object_set_data: assertion `G_IS_OBJECT (object)' failed

** (anjuta:17586): CRITICAL **: gda_server_provider_supports_feature: assertion `GDA_IS_SERVER_PROVIDER (provider)' failed

** (anjuta:17586): WARNING **: Can't find libsqlite3.so file.

(anjuta:17586): GLib-GObject-CRITICAL **: g_object_new: assertion `G_TYPE_IS_OBJECT (object_type)' failed

(anjuta:17586): GLib-GObject-CRITICAL **: g_object_set_data: assertion `G_IS_OBJECT (object)' failed

(anjuta:17586): libanjuta-symbol-db-WARNING **: Could not open connection to DB_DIR=/home/zdo/.cache/anjuta;DB_NAME=.anjuta_sym_db


libanjuta-symbol-db-ERROR **: Opening global project under /home/zdo/.cache/anjuta
aborting...
zdo@mamburu ~ $ 

Однако, если указать

zdo@mamburu ~ $ LD_LIBRARY_PATH=/usr/lib anjuta

То все работает.

Собственно, libsqlite лежит в /usr/lib

zdo@mamburu ~ $ ls -l /usr/lib/libsqlite*
-rw-r--r-- 1 root root 634736 Jun 22 02:08 /usr/lib/libsqlite3.a
-rw-r--r-- 1 root root    948 Jun 22 02:08 /usr/lib/libsqlite3.la
lrwxrwxrwx 1 root root     19 Jun 22 02:08 /usr/lib/libsqlite3.so -> libsqlite3.so.0.8.6
lrwxrwxrwx 1 root root     19 Jun 22 02:08 /usr/lib/libsqlite3.so.0 -> libsqlite3.so.0.8.6
-rwxr-xr-x 1 root root 603096 Jun 22 02:08 /usr/lib/libsqlite3.so.0.8.6
-rw-r--r-- 1 root root 464360 Jun 11 20:23 /usr/lib/libsqlite.a
-rw-r--r-- 1 root root    812 Jun 11 20:23 /usr/lib/libsqlite.la
lrwxrwxrwx 1 root root     18 Jun 11 20:23 /usr/lib/libsqlite.so -> libsqlite.so.0.8.6
lrwxrwxrwx 1 root root     18 Jun 11 20:23 /usr/lib/libsqlite.so.0 -> libsqlite.so.0.8.6
-rwxr-xr-x 1 root root 362444 Jun 11 20:23 /usr/lib/libsqlite.so.0.8.6
zdo@mamburu ~ $ 

Вопрос такой - где anjuta по умолчанию пыталась найти libsqlite, что вылетала?

zdo@mamburu ~ $ ls -l /usr/local/lib/
total 0

 

bk_
()

[gentoo] Как заemergить исходники, но не устанавливать?

Форум — Desktop

Задача: хочу посмотреть и, возможно, сделать патч для плейера moc.

Проблема: moc уже установлен. Как мне скачать _именно те_ исходники, которые _установились_? В ebuild-e написано такое:

SRC_URI="ftp://ftp.daper.net/pub/soft/${PN}/unstable/${MY_P}.tar.bz2"

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

Флаг --fetch-only вроде бы по смыслу подходит, но, написав, его никаких сорцов не скачивается. Так что делает сей флаг?

В результате, как я понимаю, будет патч, который за-epatch-ится через изменный ebuild. Но как это сделать правильно, без костылей?

 

bk_
()

Если firefox <-> vimperator, то X11 <-> [???]

Форум — Desktop

Нужна программа, которая бы давала возможности, подобные vimperator в фурифоксе, для иксов. Может, кто слышал о такой?

bk_
()

[gentoo] Hooks на up/down сетевых интерфейсов

Форум — Desktop

Как можно прописать генте свои скрипты на поднятие какого-либо сетевого интерфейса?

 

bk_
()

[gentoo][awesome] LibreOffice - не открывается в требуемом теге

Форум — Desktop

Awesome собрал на днях из gentoo repo.

В конфиге прописал отдельный тег для office:

awful.rules.rules = {
  ...
  { rule = { class = "libreoffice-writer" },
    properties = {
      tag = tags[1][4]
    },
  },
{ rule = { class = "libreoffice-calc" },
    properties = {
      tag = tags[1][4]
    },
  },
{ rule = { class = "libreoffice-impress" },
    properties = {
      tag = tags[1][4]
    },
  },
...

Ошибка в том, что запуске libreoffice он открывается на _текущем_ теге, но когда нажимаю, например, Ctrl+P (печать) - то окно печати открывается на _заданном_ 4-ом теге.

Классы окон взял из xprop.

Кто как настроил работу офиса для awesome?

В чем ошибка и как ее исправить?

 ,

bk_
()

[success_story][Debian -> Gentoo] emerge - показать список пакетов для установки

Форум — Desktop

Вчера вечером начал компелять генту, сегодня в 15:00 закончил. Собственно, осваиваюсь в новой среде.

Вот вопрос, на который я не нашел ответ:

Как заставить emerge не устанавливать пакеты при emerge <smth>, а просто показать, что оно хочет установить? То есть, как в apt-get, когда он спрашивет перед установкой и показывает список пакетов, которые будут поставлены.

P.S.

Впечатлило, что гном кушает 62МБ оперативки (mesa software), а такой же дебиан - 150...200МБ.

bk_
()

[debian squeeze][libreoffice 3.4] Не запускается

Форум — Desktop

Работал нормально libreoffice 3.3. Установил 3.4 - при запуске выдает следующее:

~$ libreoffice3.4
/opt/libreoffice3.4/program/soffice.bin: /usr/lib/libdb-4.7.so: version `DB_4_7' not found (required by /opt/libreoffice3.4/program/../basis-link/program/libdeploymentmiscli.so)

Даже не появляется сплэш.

Хотя все либы стоят из репов:

$ ls -la /usr/lib/libdb-*
-rw-r--r-- 1 root root 1178304 Sep 13  2008 /usr/lib/libdb-4.5.so
-rw-r--r-- 1 root root 1252512 Dec 30  2009 /usr/lib/libdb-4.6.so
-rw-r--r-- 1 root root 1408516 Dec 29  2009 /usr/lib/libdb-4.7.so
-rw-r--r-- 1 root root 1464988 Aug 30  2010 /usr/lib/libdb-4.8.so

В чем проблема?

bk_
()

[debian] fglrx 2.6.39

Форум — Desktop

Debian 32bit stable

fglrx на стабильном 2.6.32 работает великолепно. Собрал 2.6.39 ядро, переустановил fglrx - fglrx перестал работать. Работает только radeon и radeonhd.

Что может мешать работе fglrx в свежесобранном ядре?

Логи Xorg есть, опубликую позже. Может кто уже сталкивался с такой проблемой или знает, от чего зависит fglrx?

 

bk_
()

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