Подборка по категории »linux «

Линухня: Расширенная вселенная

Упражняясь в самоиронии, решил подытожить посты по тэгу linux и заодно проиллюстрировать современный подход к созданию шедевральных произведений массового искусства. Получилось нудновато, но иллюстративно.

  • Приквел
    Лучше всего смотреть после одного-двух эпизодов основной серии, когда уже понятно, о чём это вообще. Несмотря на позиционирование в анонсах, не поясняет, почему в основной серии события происходят так, как происходят. Не раскрывает даже персонажей основой серии. Вообще ничего толком не объясняет, кроме частного момента: показывает, как незаметно происходит подсадка на противоестественный киберсекс с программно-аппаратными комплексами.
  • Начало основной серии
    Сюжетная завязка, первые события – по-прежнему нихера не понятно, зато экшна больше. В сюжете оставлено громадное поле для сиквелов – фактически, закладывается первый кирпич в фундамент франшизы. На данном этапе никто не знает, чем закончится сюжет и судьба проекта – ни команда, ни персонажи, ни, уж тем более, все остальные.
  • Второй эпизод основной серии
    Краткая уточняющая ретроспектива к первому эпизоду, последовавшие за событиями в нём обломы, нездавательства (чижило! несломить!! низдайус!!!), работа над ошибками и оптимизм-вопреки. Развязка – далибуде.

  • Оффшут
    Про незаслуженно забытых монстров из вселенной, в которой происходят действия основной серии. Ну, просто не стали раскрывать их в основной – думали, картонные персонажи сойдут, а вона какой потенциал, оказывается.
  • Третий эпизод основной серии, часть первая
    Промежуточная победа, имеющая ключевое значение. Много чрезмерно подробного экшна. Зритель начинает скучать – всё же с обещанной трилогией его обдурили и придётся ждать ещё одного эпизода.
  • Вторая и последняя часть третьего эпизода основной серии
    “Неожиданный” перелом в сторону поражения главных героев – замах на реализм и претензия на нетрадиционную концовку. Общее разочарование в концепции, раскрытой в прошлых трёх эпизодах. Провал в кассовых сборах, скандад в массмедиа, возмущённые предсказания конца карьеры руководителей проекта.
  • Не слишком ожидаемое продолжение франшизы
    Попытка вернуть репутацию и отдать долги по кредитам на бюджет прошлого эпизода. Ретроспектива событий основной серии и их переосмысление. Экшна почти нет. Как часто бывает в подобных произведениях-по-мотивам, выясняется, что вся франшиза – совсем не о том, о чём вам всем казалось. Поэтому и конец такой. Народ не ведётся, но засчёт существенно урезанного бюджета (по сравнению с прошлым эпизодом), руководителям проекта удаётся окупить продолжение и даже немножко заработать. На раскрываемую сюжетом франшизы суть всем уже почти наплевать.
  • Перезапуск франшизы!
    Не ждали, критики и проклинатели?! А мы тут новый цикл придумали! Актуальная и свежая завязка, многообещающие герои и их неприятности. Всё совсем не так, как в первой тритетралогии, но в соответствие с веяниями времени. Окупилось три-четыре раза – старые обиды забыты, новые тренды учтены, народ истосковался по вселенной франшизы.
  • Унылое продолжение
    Необъяснимо просрали поднятую перезапуском волну. Попытка ещё немного подзаработать на франшизе путём скрещивания её с извечным трендом, ранее в оной не использованным. И какой-то тупой юморок в нагрузку, из современных молодёжных комедий. Ни экшна, ни смысла, ни месседжа – скучно и непонятно нахера вообще было это делать.
  • Неплохой сиквел унылого продолжения
    То есть продолжают клепать с учётом последней поделки, невзирая на её провал. В целом неплохо, но почему нельзя было прошлую часть сделать хотя бы на этом уровне? Что помешало? И почему не забыли последнюю как страшный сон? Теперь же почти ни о чём приходится делать. Как им только деньги на это достаются…
  • Короткое и безыдейное завершение новой серии
    Сюжет вроде как продолжается и не достигает окончательной развязки, но следующие серии решили не делать – зачем рисковать? Этот эпизод едва окупился, и решение о не-продолжении озвучено окончательно.

Финита ля комедия :) Могу только добавить, что ВСЕ свои приключения я в блоге не описывал, ибо много их было ) Линукс дома – то ещё удовольствие, если у вас есть свободное время, нестандартные потребности или просто привычка ставить программное окружение в удобные для вас позы. Следует, однако, иметь ввиду, что процесс постановки в позу неизбежно двусторонний. Я лично сам не заметил, как проникся идеологией свободного ПО и начал необоснованно отторгать поприетарщину. Чем-то напоминает процесс смены ориентации, будь то профессиональной, политической или той, о которой вы подумали.

Я вас предупредил. Дерзайте! =)

С точки зрения банальной эрудиции
Ёжики плакали, кололись, но продолжали жрать кактус!

Приходит геймер в гости к проДвинутому юзеру, садятся за комп, и гамер немедленно вопрошает:

-Чё, не можешь файлик запустить элементарный? Часы глючат? Настройки закрыты и пароль забыл?

-Эээ, а как ты узнал?

-Да у тебя же линухня!

Моё знакомство с никсами более чем скромно:

  1. Редхат 6 – поставил, споткнулся об консоль (2001 год, далеко не на все видяхи есть дрова в дистрибах,  инет 2 бакса в час на 128 кбит/с или дома по модему, репозитории только появляются и дров в них тоже нет).
  2. Мандрива – поставил, поигрался кедами и играми и ушёл обратно в винду: непонятно, зачем дома нужен графический линукс без привычных прог.
  3. LiveCD, десятки их – прикольно и ещё более ненужно: не монтируются виндовые разделы, ntfs-3g только появился и поддерживает только RO.
  4. R.I.P. 11 – консольный LiveCD, названный (R)escue (I)s (P)ossible: наконец-то монтирует ntfs, есть всё необходимое для подготовки харда к имплантации ОСей и восстановления инфы после их отмирания, а LiveCD с виндями ещё не появились; досовские же ущербны и напоминают скелет из плохо подогнанных протезов настолько же, насколько многие гуёвые дистрибы линухи сегодня; есть скрипты сохранения ФС лайвсидюхи для последующего перепрожига. Так я познакомился с консолью, скриптами и удовольствием от их использования – говорите что хотите, а виндовые потуги сотворить адекватную замену консоли ущербны, по крайней мере, в домашних версиях (я готов ловить тапки с записками “нахера козе баян” и “зачем дома консоль”).

Потом был один диплом, потом – второй. А потом – Ubuntu 8.04, которая не желала иметь дело со звуком и VPN, хоть я и пробовал разные самодельные маны по теме. Лежала в резерве год, радовала, когда летела винда, но современный линух без инета – как современный инженер без справочников. А современные актуальные справочники, кстати, тоже в инете, так что современный инженер без инета – как линух без… Ну вы поняли.

А потом мой провайдер наладил нормальный роутинг с биллингом и избавил юзеров от VPN, подарив прямой доступ в инет – after all, the Unlimited Internet Era has finally dawned in The United States of Hohlyandiya. И я сразу же поставил себе Ubuntu 9.04 и всё заверте…

Сначала было круто. 3Д-эффекты, виртуальные рабочие столы, удобные приложения, те же браузеры, и КОНСОЛЬ. Гном, в отличие от кед, на себе не замыкается, с ним как-то легче и приятнее познавать систему. Кеды же созданы для окукливания юзера в нежный, тёплый клетчатый плед кокон гуёв. Ну, это только мои впечатления.

Сколько было радости! Сколько восхищения бесплатным и ЛЕГАЛЬНЫМ софтом и его standalone-каталогом! Сколько было удивления отсутствию вирусов и общей стабильности! Сколько было прожектов насчёт выжать из компа всё: и звук в несколько комнат (было в винде), и скайп в наушниках и нигде больше (было там же), и отдельные виртуальные каналы на каждую комнату с динамическим переключением и микшированием потока из каждого приложения (в винде можно как-то сделать, есть и готовые проги забабло, и средства в winapi, но я не пробовал), и мультистанция… Под последнюю даже радостно закупил железо – думал под НГ забабахать…

А через полгода я на эту суку забил. Ну в самом деле! Да, всё работает из коробки, но большинство – криво. Пытаешься поправить, а это, оказывается, так же легко, как сделать из сложной растровой кривой прямую… Можно, но сложно, и желательно иметь в голове матмодель кривой. Любое нестандартное использование системы вроде мультистанции и других извращений (доступно и в деталях описанных в разных самодельных руководствах, зачастую более подробных, нежели руководства профессионалов по анальному сексу), оборачивается крахом всей системы или её части.

Отдельные этажи, комнаты и даже мебель здания-системы крепятся друг к другу костылями на суперклее, или просто состоят из хитросплетения оных. Ты трогаешь текстовые конфиги в попытке поправить то, чего нет в графических. Система не знает, как реагировать на нешаблонно изогнувшийся костыль – такого сборщики, программизды и кодерасты не предусмотрели. Изящно подправленный тобой костыль выпадает из хитросплетения, и участок здания рушится к едрене фене. Ты восстанавливаешь участок, но у тебя нет и не может быть единой картины, и ты допускаешь мелкие неточности, которые могут лишь ослаБЛЯТЬ конструкцию. Регулярные и назойливые апдейты всё вышеперечисленное производят самостоятельно – от тебя требуется только согласие и пароль. А если поправишь /etc/sudoers – вообще только согласие.

И ты заёбываешься.

Потом я поставил Calculate Linux – такую милую и слегка гламурненькую домашнюю сборку на базе генты. И сначала радовался – более-менее опытного линюзера кедовские гуи не так окукливают, как новичка. Зато гномовский аскетизм отсутствует напрочь. Поигрался кедами, поставил, что надо, заодно повоевав с менее автоматическим, но более экономным, чем aptitude, пакетным менеджером emerge. Развлекает и доставляет.

А дальше начались новые траблы – то часы время показывают левое (часовые пояса), и в гуёвых настройках их не поправит даже рут (нет прав сука и всё, хоть паспорт ему показывай, сертификат админа и именной гарантийный талон на комп с чеком), то автологин не поставишь из-за этого же сраного глюка с отсутствием кнопки “Разблокировать”. Текстовые же конфиги тоже, мать их, как надо не пашут, хоть и документированы – срали разработчики на собственноручно написанную документацию, и на её написание тоже, в общем-то.

Консольный date вообще никак не влияет на часовой пояс, установленный в кедах. Зато если в /etc/conf.d/hwclock стоит clock=UTC, то каждая смена часового пояса меняет системное время сообразно, а кеды продолжают показывать UTC. Как следствие несоответствия /etc/localtime и часового пояса, установленного в кедах, показывают херню.

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

И всё это, ввиду нерушимости как фич, так и багов, создаёт ощущение намертво приделанной недоделки. Корень всех бед, без сомнения, в глюке кде4 с кнопочкой “Разблокировать” в systemsettings, чтоб его сослали в Сибирь к похотливым медведям. Лично я перепробовал с этим багом всё – и sudo, и kdesu, и запуск из-под графического сеанса рута (который ещё пришлось включать), и даже установку policykit и policykit-kde (последний обновил нахрен весь kde), которая вроде как должна реально устранить проблему. “АВОТХУЙ ТЕБЕ А НЕ ПРАВА, %username%!!!11”, как бы говорит Calculate Linux лично мне (другим помогали вышеописанные решения, каждому своё).

И я начинаю задумываться об openSuSE или Windows 7. Последняя хотя бы не требует копаться в текстовых конфигах, кстати, давно устаревших ввиду своей неинтерактивности. И не кидайте в меня обувь с воплями “подавись своими гуями,Джордж Буш!” – я натурал, и сравнение с экс-президентом меня не характеризует. Текстовые конфиги неинтерактивны и зачастую слабо документированы, а так же слепо исполняемы программами без оглядки на свою безопасность. Проще говоря, они не дуракоустойчивы.

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

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

Сорвались покровы с упавших шор, и развеялись иллюзии
"Вот так, с помощью нехитрых приспособлений буханку белого (или чёрного) ХЛЕБА можно превратить в троллейбус... НО ЗАЧЕМ?!!" "-Ворона, ты реально птица сильная, птица смелая! -Ага, но ЕБАНУТАЯ НА ВСЮ ГОЛОВУ!"

Прежде всего: Игорь и Валик, вы были правы. Не даром вы однофамильцы :)

Вот этот вот полуфабрикат статьи помог мне разглядеть пару брёвен в глазах:

32 причин почему Linux не имеет будущего

Там, конечно, многабукав, но меня зацепило: как-никак, полгода убил и желаемого не достиг. Сам виноват, конечно: изучал вопрос бессистемно, малоосмысленно пробовал готовые рецепты счастья от энтузиастов на форумах, чересчур дерзко экспериментировал сам. Но всё-таки даже сейчас, когда мой гугл-навык заточен под поиск решений проблем моей домашней линухни, и я уже более-менее понимаю, чего делать не надо, времени на настройку системы уходит больше, чем на работу с ней (после каждого грёбаного обновления, например).

Я теперь понимаю, как чувствует себя наивный бета-тестер: “я хотел попользоваться новой штучкой раньше других, а в итоге борюсь с ней и невольно помогаю её доделывать”. Моя же ошибка в том, что я решил, будто в линуксе мои нестандартные потребности будет легче решить. Я был готов к миграции, знаком с некоторыми основными принципами никсовых осей (на Вы) и наивно полагал, что настраивать, конечно, придётся дольше, зато потом будет удобнее. Нет, ребята, “вам так не буде” (с)

На самом деле за эти полгода я просто привык к софту и интерфейсу Убунты. Последний не намного удобнее последней версии Windows, зато можно настроить кучу рюшечек. Некоторых адекватных заменителей виндовых программ даже нет – из-за того, что они якобы не нужны настоящему линуксоиду (Total Commander и AIMP, например). Может быть настоящему линуксоиду и не нужны, а мне нужны. Образно говоря, я не хочу следовать Путём Джедая только для того, чтобы вместо моющего пылесоса обходиться веником, совком и шваброй с тряпкой, программируемыми через Всеобщую Силу. Да, консоль даёт бОльшую гибкость в решении задач вроде группового переименования, зато соответствующий инструмент в TC-like файловых менеджерах нагляднее, предсказуемее и, следовательно, удобнее. И во многих программах ситуация аналогична. Есть поделочки, частично заменяющие виндософт, но нет равных по функциональности вещей. Можно, конечно, решить для себя, что оно не надо, но это уже Путь Джедая. Этого мне и на работе хватит.

Стоит отметить, что таких моментов немного. Просто они бросаются в глаза.

А вот проблем с дровами много. В u10.04, например, не ставится драйвер видеокарт NVidia. Я знаю, что можно нагуглить, потрахать убунтовое ядро и свой мозг, и добиться результата, но мне лень. Я устал от этого. Я очень надеюсь когда-нибудь иметь доход, позволяющий мне купить что-то нормальное вместо набора “доработай напильником сам”, который к тому же приобретает новые огрехи после каждого обновления. Скажем, дрова на видяху надо переставлять после каждого обновления ядра. Я знаю, что можно организовать процесс так, чтобы этого не делать.

Но я не хочу организовывать процесс. Я дома, я отдыхаю. Захотелось мне вечером посмотреть фильм, а тут оно обновилось и опять дров требует. Так что теперь я не обновляюсь до последнего, но рано или поздно старое начинает глючить, и вуаля. Обновляемся, терпим.

Со звуком отдельная история: мне надо его использовать не совсем по назначению, выше была ссылка на назначение. Под виндой просто нет такой гибкости в настройках звука. Например, труднее будет назначить горячие клавиши для отключения отдельных каналов 5.1 системы (которая у меня, так уж повелось, используется как 3 стереосистемы в разных комнатах). Зато в семёрке по умолчанию глушится звук от всех программ, когда звонит скайп, воткнутая usb-гарнитура автоматом назначается скайпу (в колонках продолжает играть музыка)… Уверен, это же можно настроить и в PulseAudio под Ubuntu, и, наверное, энтузиасты уже пробовали и поделились рецептами, но Я ЗАЕБАЛСЯ НАСТРАИВАТЬ. Баста.

ФФАТИТ!!! (с) Ёжик

Пойду искать альтернативную обоим вышеописанным вариантам систему, а пока пусть хромает как есть…

Из положительных моментов могу отметить только пользу приобретённых навыков в свете необходимости использовать линукс по работе. Дома, конечно, освоить некоторые навыки работы с ним было проще.

Dixi.

Не было у старухи печали
"Ну, у тебя ж линухня!"

Давеча начала виснуть система. Начало было такое. И стали у меня через недельку винты пропадать по два. А именно – половинка и единичка. Вторая единичка в поряде, но ОС там не стоит. Вот зависнет оно, выключу, потрогаю SATA-разъёмы на плате и у винтов, включу – определяются… И так раз в два-три дня. Дальнейшие события показали, что можно было и не трогать – комп то ли перегревался, то ли просто требовал перезагрузки.

На выходных случилась ещё одна зАвись… До этого пока нам ставили мебель мы полдня смотрели Discovery Science по IPTV (кстати, стало интереснее: наснимали новые выпуски, придумали новые передачи) – даже монитор перегрелся и стал легонько пахнуть. Одно слово – лето. А потом я без выключения (ещё ж специально просил не выключать, а зачем – хз) засел за инет, оно зависло и после перезагрузки-дёрганья вывалилось в консоль восстановления.

И что же я делаю? Я делаю e2fsck. Не знаю, важно ли, что системный раздел на самом деле ext4, важно ли, что системный раздел кагбе примонтирован, и, хотя я в консоли, на винт ещё кое-что пишется… В общем, с u9.10, пропатченной и заапдейченной, я попрощался.

grub: unknown file system

Уже потом я запускал по очереди все имеющиеся дома LiveCD и дивился то ошибкам из разряда “no kernel image found”, то загадочным BSoDам… В общем, заказал новую мать (повезло, отгрузили в тот же вечер), невольно пересобрал системник,  включаю. – пашет! От радости ночь не спал – игралсо. Под утро поставил u10.04 и начались новые сурпрайзы: setvol не пашет, звук доступен только различных сортов паршивости (в зависимости от настроек режима мультиканальности PulseAudio), особенно из браузера…

Собирался менять мать (звук интегрированный), но человек, продавший мне её, потребовал сначала проверить с родными дровами на винде, и щито ви думаити? Звучит лучше чем прошлая! Вот такая случается иногда линухня. Зато теперь в корпусе стало просторнее и уютнее (раньше где попало висели следы ленивых апгрейдов – несобраные шлейфы и провода). И прохладнее – заодно добавил наконец своим трём винтам кулер. Вот такой вот внезапный апгрейд.

А корпус я теперь держу открытым до осени – лучше иногда чистить, чем часто грейдить.

Кто дочитал – извините, что-то я всё о компах да о компах… Так уж получается, что бОльшая часть моей жизни пока проходит в двумерном пространстве полупроводниковых джунглей.

Звуковые затейки: частичный успех

Моя эпопея с дурацкой затеей всеквартирной-звуковой-системы-на-компе наконец начала приносить плоды: уже два месяца пользуюсь хоть и единым стереовыходом для всех каналов, но с клавиатурным вкл/выкл для каждого. Как и обещал, внушил Pulse что у меня есть микрофон, в остальном его настройки не касался.

А сегодня речь пойдёт о простеньком скрипте, который в рабстве у моих горячих клавиш. Ничего военного он из себя не представляет – банальный параметризированный сборник amixer-команд для включения/выключения тех или иных каналов вывода (и ввода :)).

Листинг:

#!/bin/bash
if [[ "$2" = "" ]]
then
 com="toggle"
else
 com=$2
fi

#amixer -c 0 set Master on
#amixer -c 0 set Master 100%,100%

if [[ "$1" = "call" ]]
then
 amixer -c 0 set "Input Source",0 "Front Mic"
 amixer -c 0 set "Front Mic Boost" 100%
 amixer -c 0 set Capture,0 100%,100%
 amixer -c 0 set Capture,1 0%,0%
 if [[ "$2" = "only" ]]
 then
 amixer -c 0 set Front 100%,100%
 amixer -c 0 set Front on
 amixer -c 0 set Headphone on
 amixer -c 0 set Side off
 amixer -c 0 set Surround off
 amixer -c 0 set Capture,0 cap
 amixer -c 0 set Capture,1 cap
 notify-send setvol "Sound input on. Sound is now in the headphones only"
 else
 amixer -c 0 set Capture,0 $com
 amixer -c 0 set Capture,1 $com
 notify-send setvol "Sound input $com"
 fi
elif [[ "$1" = "kitchen" ]]
then
 amixer -c 0 set Surround 100%,91%
 if [[ "$2" = "only" ]]
 then
 amixer -c 0 set Front off
 amixer -c 0 set Side off
 amixer -c 0 set Surround on
 notify-send setvol "Sound is now in the kitchen only"
 else
 amixer -c 0 set Surround $com
 notify-send setvol "Sound in the kitchen $com"
 fi
elif [[ "$1" = "room" ]]
then
 amixer -c 0 set Side 100%,100%
 if [[ "$2" = "only" ]]
 then
 amixer -c 0 set Front off
 amixer -c 0 set Surround off
 amixer -c 0 set Side on
 notify-send setvol "Sound is now in the room only"
 else
 amixer -c 0 set Side $com
 notify-send setvol "Sound in the room is $com"
 fi
elif [[ "$1" = "ears" ]]
then
 amixer -c 0 set Front 100%,100%
 amixer -c 0 set Headphone on
 if [[ "$2" = "only" ]]
 then
 amixer -c 0 set Front on
 amixer -c 0 set Surround off
 amixer -c 0 set Side off
 notify-send setvol "Sound is now in the headphones only"
 else
 amixer -c 0 set Front $com
 notify-send setvol "Sound in the headphones $com"
 fi
elif [[ "$1" = "master" ]]
then
 if [[ "$2" = "only" ]]
 then
 amixer -c 0 set Master on
 amixer -c 0 set Master 100%,100%
 notify-send setvol "Master channel is on"
 else
 amixer -c 0 set Master $com
 amixer -c 0 set Master 100%,100%
 notify-send setvol "Master channel is $com"
 fi
else
 echo -e "Usage: $ setvol call|kitchen|room|ears [command|only]\n    \"command\" can be \"on\", \"off\" and \"toggle\" and defaults to \"toggle\"\n    \"only\" will reroute sound output exclusively to the given channel"
fi

Вполне самообъясняющий, правда? На горячих клавишах Win+[F1|F2|F3|F4] висят, соответственно, setvol [kitchen|room|ears|call only], на Win+Alt+[F1|F2|F3|F4] – setvol [kitchen only|room only|ears only|call]. С командой setvol call интересно: мне чаще нужно приглушить звук везде кроме наушников и включить capture-каналы (для skype), чем включать-выключать одни только capture-каналы, так что для Win+F4 и Win+Alt+F4 я функции по сравнению с остальными клавишами поменял.

Команда setvol master висит на автозагрузке и служит хреновым объездом ямы в конфиге Pulse, которая обуславливает старт с приглушённым главным каналом если был приглушен хоть один 5.1-канал. А через каналы 5.1-вывода hda-intel у меня звук идёт в комнату и кухню.

Вот такая вот поделочка. Пока что мне хватает и этого, на очереди – изнасилование Pulse с целью создания второго канала для телефонии. А потом – с целью трансляции звука на тонкий клиент.

Категория: all, linux  Теги: ,  Один комментарий  
Звуковые затейки: опыт – сын ошибок трудных

Писал давеча про возню с никсовыми драйвером (ALSA) и системой вещания звука (PulseAudio). Решил я тогда, долго не думаючи, выковырять этот самый саундсервер к едрене-фене, чтоб жить стало лучше… И жить стало совсем наоборот. Ниже – подробности.

Я, конечно, криворучка и шапкозакидатель часто, но это ранее не сказывалось на состоянии ОС :) Т.е., я выработал некую паранойю в вопросах стабильности винды, которая компенсировала моё экспериментаторское начало, и со временем мне стало лень воевать с этим новым и очень полезным ощущением. Но настал День Д и Час Ч, когда потребовалось настроить что-то новое (мультистанция), паранойя была отброшена, но не помогло. То ли лень осталась, то ли всё-таки Ея Светлейшество Виндуз и Майкрасовк, Пророк Ея против такой расточительной экономии на железе и лицензиях…

Но адекватного софта на тему два-параллельных-сеанса-на-двух-комплектах-ввода-вывода-и-одном-системнике (сокращённо – мультистанция) под винду я просто не нашёл. И не стал на ней ради старых привычек оставаться. Молодой я ещё, кровными платить за старые привычки :) И как раз отпала необходимость настраивать VPN для доступа в нет, без которого экспериментировать на никсовом поле нынче больно накладно.

В общем, поставил я Убунту, и давай экспериментировать. Нужна была мне как адекватная замена винде в домашних задачах, так и свой АПК (там определение хорошее, это не реклама), с преферансом и танцовщицами. А именно – управляемый хоткеями типа “[вырубить|врубить|отдать другому юзеру|отдать ноуту] [комнату|кухню|наушники|ванну|вещательные колонки во дворе]” звуковой сервер. Это я потом узнал, как это называется. Сначала я даже не знал, что мне нужен именно саундсервер.

Что может натворить человек, который пытается заменить свой мозг манами с форумов, и осознаёт свои необходимости лишь после содеянного, представить нетрудно. Я убил PulseAudio только потому, что энтузиасты со слабым железом, экзотическими пристрастиями и аудиокартами, и сильными амбициями, публично проклиная новые веяния по встраиванию саундсервера в десктопные оси, наперебой предлагали толковые высеры по его выковыриванию (чтоб уютненькая ALSA осталась). И остался с однозадачным звуковым драйвером, лол этакий :) Звук от микрофона, конечно, в скайпе тоже появился, но ресэмплинг потока с 48 на 24 кГц убивал это преимущество. И да, ALSA очень запутанно документирована, признаюсь, не разобрался даже с dmix (для мультизадачности).

В общем, вернул я Pulse. И зря ругался на него, на моём железе его так, как у них не плющит. Да и развивается же, ошибки исправляют. Надо будет только изнасиловать его насчёт того, что у меня ЕСТЬ микрофонные каналы, даже два, мало ли кто их не видит. ALSA, кстати, уже знает об этом. А задачу с хоткеями на уровне “[вырубить|врубить] [комнату|кухню|наушники]” можно решить и на уровне команд ALSA Mixer, ничего страшного, сойдёт пока.

P.S. Позорную для никсоида практику переустановки ОС проходил трижды, собирался 4й раз, но сдохший привод уберёг от такой потери времени, пришлось экспериментировать с повторной установкой саундсервера. И вуаля! Всё заработало почти само :) Силён, СИЛЁН рефлекс переустановки у бывших виндузятников, не привыкших к починке поломанной своими руками системы своими же шаловливыми ручёнками.

Категория: all, linux  Теги: ,  2 комментариев  
Звуковые затейки

Понадобилось мне как-то убрать pulseaudio из моей уютненькой ubuntu 9.10 –  помогло Выковыриваем pulseaudio из Ubuntu 9.10. Большое им  спасибо за инструкцию! В конечном итоге всё сработало отлично.

А понадобилось Pulseaudio удалить вот почему: я вывожу звук сразу в наушники, колонки и комнату (комп на кухне), иногда надо выключить/подрегулировать эти каналы, а Его Невменяемость Апплет Громкости Pulseaudio ни в какую нежелал управлять ими отдельно, несмотря на все мои попытки внушить ему модель звучка. Сучёнок. Туда ему и дорога…

Всё ещё остаётся у меня другая задачка: заставить разные приложения вещать в разные каналы, дабы, скажем, говорить по скайпу в наушниках, а в два других гнать музыку, или включить жене телевизер в комнате (второй монитор, VLC и iptv), а самому кодить дальше. А пока у меня один PCM на всех, да выключатель наушников, что торчат из передней панели.

А в перспективе у меня настройка multiseat, т.к. клавомышь в комнате тоже есть и лениво тратить валюту на второй системник/нетбук, мы с женой в основном комп не нагружаем… И проблема разделения звукового вывода есть и в этой задаче.

Не подскажете, господа хорошие, как мне коммутировать звуковой вывод с приложений на мои каналы альсой?

P.S. И да, я знаю толк в извращениях.

Категория: all, linux  Теги: ,  3 комментариев  
Последовательное копирование
UPD: Я мудак, задача решалась командой вроде "sort %src_path | cp -r".

…или “Почему, как и почём скупой платит дважды”.

Полгода назад я, в надежде разрешить наконец проблему мрущих от избыточной влаги мобильных девайсов (похоронил, в общей сложности, 4 мобилы и 3 плеера именно по этой причине), приобрёл сначала минимальный GSM-аппарат, а потом и почти минимальный mp3-звучок. Телефон Nokia 1202 пока служит мне верой и правдой, за что огромное спасибо и ему, и производителю – мой режим эксплуатации выдержит далеко не каждый девайс.

Но сегодня речь о плеере. Неплохие наушники спасли меня от посредственного качества звучка Apacer, но есть у него и другие недостатки. Основные же достоинства – слот для карт памяти SDHC и цена в 30 евро, аккурат как телефон.

Задача

Вопрос, стоявший перед разработчиком архибюджетного плеера: как простейшим образом отсортировать файлы перед проигрыванием? Правильно: не сортировать вообще! То есть, и вопроса-то такого не стояло – внутри поставленной на воспроизведение  папки файлы проигрываются не по алфавиту и даже не по дате создания/модификации, нееет… Строго по порядку добавления в файловую систему: THIS IS SPARTAAA!!!

Пока для заливки использовался Total Commander, я эту “фишечку” замечал только при сортировке папок, но вот давеча пересел на никсы и обнаружил, что и cp, и nautilus, и gnome-commander юзают функцию копирования, реализованную в ядре (правильно, зачем изобретать велосипеды? nix way, open source, etc.), а вот она-то, голубушка, копирует файлы по порядковому номеру иноды, или как-то ещё, словом – не по алфавиту и не по дате. И всё бы ничего, да только слушаю я аудиокниги на своём звучке, и мне страшно лень каждые 5 минут шерстить папку о 50 файликах в поисках следующего.

UPD: Я мудак, задача решалась командой вроде “sort %src_path | cp -r”. Звучок накрылся раньше, чем я это узнал – пришлось сделать апгрейд до YP-T10, хорошо, хоть нашёл. Хороший айподкиллер, кстати. Главное достоинство киллера соблюдено – плюшек больше, цена та же.

Всё-таки дата модификации

Сначала я искал решение проблемы в установлении положительной разницы в n секунд между датами модификации каждого следующего и предыдущего файлов, даже написал более-менее удачный скрипт, который реализует сие по заданному пути рекурсивно:

#!/bin/sh
cd "$1"
if [ "$2" != '' ];
then
 ig=$2
 echo "Starting in $1, $ig"
else
 ig=`date +%s`
 echo "Starting in the source dir..."
fi
num=`ls -1 | wc -l`
echo "$num files to touch"
for i in `ls -1`do 
 if [ -d "$i" ]; then
  echo "Subdir $i found, calling child...n"
  $0 $i $ig
 else
  touch $i --date="`date -d @$ig +%X%t%z`"#
  echo "$i touched" 
 fi
 ig=`expr $ig + 60`
done

Как видно, в IF-е мы поверяем, не вызвали ли нас рекурсивно (а при таком вызове нам сообщают, с какого времени в “формате epoch” следует начинать модификацию), и ежели не рекурсивно вызвали, то узнаём текущее время. Далее мы сообщаем пользователю, сколько файлов в данной папке надобно перетыкать, и приступаем непосредственно к тыканью (трогательной командой touch). Лично я задал инкремент, равный 60 секундам, чтобы наглядно видеть результат в файлменеджере. В самом тыкоцикле есть проверка – а не папку ли мы тыкаем? А ежели папку, то вызываем мы сами себя, но уже с указанием этой подпапки. Такая вот простейшая конструкция.

Есть у этой поделки и небольшой минус: поскольку итоговое значение переменной цикла по выходу из дочернего экземпляра скрипта назад в родительский не передаётся, файлы с одинаковой датой в разных папках всё-таки будут. Но для моей задачи значения это не имеет: “хитрая” сортировка файлов нужна только внутри одной папки.

Наконец, последовательное копирование

В любом случае, вышеописанный скрипт мне не помог, по известной причине – чихать мой Apacer хотел на дату, ему важны только положения файлов в FAT-таблице. Так что задача существенно упрощается: точно тем же макаром отсортировать файлы в папке по алфавиту и скопировать их в таком порядке в нужную папку!

#!/bin/sh
cd "$1"
if [ "$2" != '' ];
then
 echo "Starting alphabetic cp from $1 to $2"
else
 echo "Select destination"
 exit 3
fi
num=`ls -1 -R | wc -l`echo "$num files to copy"
for i in `ls -1`do
 if [ -d "$i" ];
 then
  echo "Subdir $i found, calling child...n"
  mkdir "$2/$i"
  $0 $i "$2/$i"
 else
  cp -f $i $2
 fi
done

Здесь мы просто проверяем, задан ли конечный пункт (если не задан начальный, не страшно, правда?), и если задан, считаем количество копируемых файлов-папок в начальном пункте (поленился уже выводить подсчёт размера). Дальше всё как в прошлом скрипте – ежели папка, запускаем дочерний экземпляр, если нет – копируем в пункт назначения. И всё.

Итого:

Ушедшее время: полночи, со всеми разбирательствами, шаманством и манокурством (именно в такой последовательности);

Базовые инструменты: dash, date, ls, touch, cp; grep, sed, и Total Commander-под-Wine были рассмотрены и отвергнуты по причине избыточности.

Источники: три туториала по sh-скриптингу, маны и гайды по date и epoch легко находятся в гугле по соответствующим запросам.

Всем, кто участвовал в появлении задачи как таковой (Apacer, linux kernel devteam) и помощи в её решении (Google и много незапомнившегося народу из сети) – большое спасибо!