понедельник, 31 декабря 2012 г.

andro-user is back!

Вот я и снова пользователь Андроида.
Произошло это после того, как почитал, как на самом деле должны работать программы под Android, а точнее, какой жизненный цикл у Андро-программы. Оказывается, я сильно заблуждался о возможностях многозадачности этой ОС! Ура, справедливость восторжествовала, можно двигаться дальше.
Позже выложу список приложений, которые использую.
Устройство: RoverPad 3W T70... для начала.

пятница, 7 декабря 2012 г.

Проблемы с питанием? дорабатываем!

Всем известно низкое качество многих дешёвых китайских товаров. Особенно это касается "ширпотребной" техники.
Итак, гаджет: китайский bluetooth-handsfree для автомобиля.
Проблема: вырубается непредсказуемо, вероятно, проблема с питанием.
Решение: ставим Ионистор параллельно батарее питания.


Если поможет, опубликую эту заметку.

Добавлено Вт июн 24 17:26:49 ALMT 2014:
Статья была написана в конце 2012 года. К сожалению, реальных испытаний модифицированное изделие так и не прошло. Так что публикую, как есть.

пятница, 30 ноября 2012 г.

пятница, 23 ноября 2012 г.

Appliance бывают разные!

Кролик: Что значит «я»? «Я» бывают разные.
Снова возвращаюсь к теме Appliance. (Интересно, что я не нашёл ни одного адекватного перевода этого слова, кроме, разве что, жаргонного "тостер").
Пару последних дней касался вопроса о форме Appliance для практического использования, заострил внимание на двух из них: Virtual Appliance и LiveCD. И уяснил для себя, в чём их главное отличие:
  1. Virtual Appliance хорош для быстрого развёртывания приложения с последующей донастройкой. Пример: когда нужно развернуть инфраструктурные сервера, которые будут работать постоянно (файловый или почтовый сервер и т.п.).
  2. LiveCD незаменим для задач эпизодического использования, особенно без необходимости сохранения состояния. Один из примеров — live-builder.

Во время написания этой заметки наткнулся на статью в Википедии, где выделены именно эти два типа: Virtual Appliance и LiveCD. Причём, возможность создания Virtual Appliance на базе LiveCD, о которой в ней тоже написано, уже обсуждалась на этой неделе.

 
Добавлено Чт дек  6 16:40:36 ALMT 2012:  
Обе формы имеют свои достоинства. Из достоинств LiveCD можно отметить лёгкость использования в различных системах виртуализации и на различном (реальном) железе. Просто грузишься с образа или оптического носителя, и всё!
LiveCD часто можно использовать и в виртуальной машине, вместе с носителями для хранения данных. Например, виртуальная машина с CD и Жестким диском, с загрузкой с CD и хранением данных на жестком диске. В качестве примера можно привести ZeroShell appliance и Lotus Foundations Start (ныне умерший).
Но есть одно применение, в котором у LiveCD мало шансов: запуск в системах с "лёгкой виртуализацией", т.е. в контейнере, например, OpenVZ. Интересно, возможно ли это вообще?

пятница, 16 ноября 2012 г.

PlayStation2: плохо(?)

Вот совсем недавно я хвалил PlayStation2. Ну как может сложиться плохое мнение о хорошей вещи?
Плохо может появиться тогда, когда ожидание не соответствует действительности. В данном случае, если ожидать, что PlayStation2 можно хорошо использовать как компьютер универсального назначения (опять это слово "писюк").
Немного подробнее:
  1. RAM 32Мб. Даже по временам, когда PS2 разрабатывалась и начала выпускаться, это было смехотворное количество.
    Для "компутера" — мало. А для PlayStation2 — хватает. Впрочем, хватает даже Linux запустить со стареньким ядром (2.4).
  2. Очень слабый ввод-вывод USB. Так спроектировали: весь ввод-вывод USB, FireWire (в старых моделях) вместе с джойстиками идёт через IO Processor, который есть ничто иное, как MIPS R3000A на частоте 33MHz, хорошо известный как процессор PlayStation1. На такой частоте много не погоняешь, поэтому в PlayStation2 через USB не получить даже скоростей USB1.1.
    Что интересно, вопреки заявлению некоторых товарищей, по документам Sony сетевой адаптер подключен через отдельный чип, а не через IOP. Причём в моделях 70xxx у него есть даже выводы IDE :). Впрочем, его производительность тоже неплохо бы померить.
Таким образом, Sony сделали PlayStation2 малопривлекательной для не-игрового пользователя, что, впрочем, не может остановить "тру-хацкеров" :)

понедельник, 12 ноября 2012 г.

Сколько вешать в граммах?

Введение

Есть такой вопрос: сколько выделить оперативной памяти для виртуальной машины, в которой "крутится" серверная ОС с (фиксированным) серверным приложением (AKA appliance)? Этот вопрос возникает регулярно, чаще всего при создании этой самой ВМ.
Как я понимаю, к этому вопросу, как правило, сисадмины подходят либо чисто механически — находят в документации по главному приложению минимальные и рекомендуемые требования по памяти, и выставляют обозначенное количество, либо интуитивно, "на глаз".
Но у скрупулёзных представителей нашего вида может возникнуть желание (и даже зуд!) узнать точно, сколько памяти необходимо и достаточно данному приложению. Тут уже нужен научный подход!
(На всякий случай, поясню, что этот параметр тянет вверх такое бытовое соображение, что "чем больше памяти, тем лучше", а вниз — реальное количество памяти на физических машинах и бюджет виртуальной инфраструктуры.)

Задача и предполагаемое решение

Итак, имеем виртуальную машину с серверным приложением, работающую в нормальном режиме. Требуется узнать, какой минимальный объём оперативной памяти обеспечит её нормальное функционирование.
Решать задачу можно по-разному:
  • найти формулу, подставив в которую параметры текущей системы, можно получить нужное число. Я такой формулы не знаю, и думаю, что она сродни "серебряной пуле", и в природе не существует
  • выяснить эмпирически
Для экспериментального решения нужны методы измерения "нормального функционирования" и, желательно, хорошая экспериментальная установка. Если экспериментальная установка будет плохой, то сам эксперимент превратится из удовольствия в тяжкий труд.

Параметр нормальной работы в условиях ограниченной ОЗУ

В современных системах недостаток оперативной памяти восполняется разделом подкачки (swap). А свободное место в оперативной памяти используется под кэши дисков. Поэтому ориентироваться на объём свободной ОЗУ — весьма неточный подход. В самом деле, в наше время большинство систем, включая даже некоторые встраиваемые системы, в режиме нормальной работы "отсвопливают" часть памяти, принадлежащей работающим программам и файловым системам, размещающимся в ОЗУ (AKA Tmpfs).
Системы, которым не хватает ОЗУ отличаются интенсивной работой с разделом подкачки. Такие системы "задыхаются", постоянно работая с диском, записывая и читая куски памяти, часто одни и те же.
Посмотреть интенсивность работы с подкачкой можно простой командой (Linux):
iostat `tail -n +2 /proc/swaps | cut -d\  -f1`
Возможно даже, что параметра tps хватит, чтобы провести "достаточно научный" эксперимент.

Экспериментальная установка

Чтобы проводить реальные эксперименты, необходимо:
  • иметь возможность запускать ВМ с разным кол-вом памяти (в идеале — возможность автоматически перезапускать)
  • измерять и фиксировать рабочий параметр
Как говорится, "начать и закончить".
Кроме того, чтобы добавить наукообразия, замечу, что для эффективного экспериментирования нужно выработать алгоритм выбора входного параметра (объём RAM). По сути, это задача нахождения корня функции (второй производной воображаемой функции нормального функционирования от кол-ва ОЗУ). Соответственно кандидатами для алгоритма будут метод Ньютона и тому подобные, изучаемые на первом или втором курсе профильного ВУЗа.

Заключение

если осуществить написанное и собрать экспериментальные данные, то можно будет перейти к их анализу, и поискать "серебряную пулю". Есть добровольцы?

понедельник, 5 ноября 2012 г.

пример хорошей популярной тех. статьи

Недавно прочитал статейку о светодиодах, и получил положительное впечатление:
  • статья простая, не усложнена искусственно и не перегружена псевдонаучными рассуждениями
  • имеет небольшое количество теории + очень практична. Автор не считает читателя полным идиотом. За это ему спасибо;
  • имеет большие и заметные знаки STOP в тех местах, где можно напортачить (для тех, кто будет что-то делать руками)
Впрочем, чтобы статья ещё приблизилась к идеальной, нелохо было бы добавить ссылки на статьи "вглубь" для тех, кто заинтересовался всерьёз.

Одним словом, спасибо автору, есть чему поучиться!

понедельник, 29 октября 2012 г.

PlayStation2: хорошо!

Будучи hardware freak-ом (да, должен признаться, что являюсь таковым), мне было крайне любопытно посмотреть на этот плод инженерной мысли от Sony. Отчего аппарат вскоре появился у меня в руках, готовый к моим издевательствам исследованиям.
Sony PlayStation2 — второе поколение игровой консоли от Sony. Сразу замечу, что ни я, ни многие другие мне подобные крайне не любят эту компанию за её политическую позицию. Но надо отдать должное, инженерный отдел у них креативен.

Итак, Sony PlayStation2, если кто подумал о нём, как о писюке для игрового домашнего использования (как некоторые консоли), то PS2 совсем не похож на PC. Один камрад "из наших" написал подробную толковую статью о том, почему это не так. Рекомендую.

Меня этот аппарат привлёк по следующим причинам (это без особого порядка):
  • Наличие сообщества Linux для этой платформы. Причём, правильное сообщество собирается в сторонке от официального. Впрочем, с выходом PS3 и PSP, активность переместилась на новые платформы.
  • Есть user base (о котором я писал раньше), и какой! PS2 является чемпионом мира по продажам среди консолей, >150 млн. шт. Это по десять штук на каждого жителя Казахстана :)
Конечно же, есть и минусы, об этом в следующей статье PlayStation2: плохо(?)

среда, 29 августа 2012 г.

вкусный-вкусный Зефир

Xephyr - X server outputting to a window on a pre-existing X display

Чем не является Sisyphus

Достаточно важно понимать, чем Sisyphus точно не является, чтобы по ошибке не создать себе больших проблем.
  • Sisyphus не является самостоятельным дистрибутивом 
(ALTLinux wiki)

среда, 22 августа 2012 г.

mainstream: хорошо или плохо?

(ещё одно "философское" эссе)

Не люблю "ходить строем".
Не люблю Операционную Систему, которой пользуется большинство (ну, Вы знаете), офисный пакет, которым пользуется большинство.
Один человек сказал: "Think different", и сделал под этим лозунгом революционные вещи. Маргиналов не любит общество, но благодаря им оно совершает качественные изменения.

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

Несколько примеров:
  1. из Программного Обеспечения:
    1. OpenOffice.org: очень приспособлен к мэйнстриму (Java). Даже и комментировать не надо. Много-много-миллионная пользовательская база (англицизм с userbase).
    2. GIMP: не смотря на отставание от "лидера рынка" Adobe Photoshop, тоже имеет значительную пользовательскую базу. Хорошо подходит для примера mainstream-friendly, поскольку тулкит (GTK+) является многоплатформеным  и работает в т.ч. на системах от M$.
    3. Smalltalk-системы — видимо, никогда не станут mainstream. Просто в силу того, что парадигма Smalltalk конфликтует с современным промышленным подходом к ПО. Поэтому мы видим значительное кол-во программ на Python, Ruby и т.п., и не видим ни одной на Smalltalk, не смотря на то, что это элегантный, лёгкий, удобный и очень понятный язык программирования. Smalltalk очень много дал для Computer Science и развития ПО в целом, и ничего — для обычного современного пользователя.
  2. из проектов, связанных с "железом":
    1. Одним из лучших примеров я считаю OsmocomBB, а точнее тот набор телефонов, которые использовались для разработки, и являются поддерживаемыми. Эти древние аппараты уже не увидишь в руках у подростков на улице. Но зато любой разработчик может купить их задёшево в любом уголке земного шара. Что важно, наработки можно перенести на современные платформы, когда придёт время.
    2. OpenWRT: проект открытой прошивки на основе Linux для разных роутеров и подобных устройств. Mainstream-ready.
    3. OpenSchemes.com/mp5 : отлично проделанная работа. Ребята полностью "прохакали" железку, описали это, поделившись опытом и методологией. Очень рекомендую. Но не смотря на то, что сделано "для души" — абсолютно не mainstream. В общем-то, наверное, в Алматы такой "mp5" можно найти на барахолке, но, пожалуй, через год-два все накопленные знания обратятся в ничто, а китайские производители забудут и про RedBoot, и про SPMP8k.
    4. Wing-linux : хорошая попытка, которая никогда не дойдёт до финиша. Ибо не mainstream. Те, у кого ещё есть телефоны этой старой серии, никогда, услышав звонок, не ответят на него с этой прошивкой (Android или Linux). Хотя 90% работы уже проделано. Вот так грустно :( Разве что какое-то вмешательство огромной силы внезапно не вытолкнет проект до 100%-ной планки. Но кому это нужно?
Вывод.
Есть вещи, которые мне интересно делать. Но если я хочу, чтобы результатами  кто-то мог пользоваться (или даже я сам через два-три года), то надо озаботиться тем, чтобы платформа была жива и доступна хотя бы ещё пару лет (за которые проект может созреть до юзабельного состояния).

(В качестве бонуса) могу озвучить те направления, которые вписываются в этот критерий:
  1. Железо
    1. Nokia n900: вероятно поживёт ещё годик-другой, хотя уже для большей части людей на земле это мёртвая платформа. Хорошо бы допинать SHR до "звандабельного" состояния. Вероятно, для проекта SHR перспективно выглядит линейка смартфонов Samsung.
    2. Планшеты: RoverPad 3W T70 — маловероятно, но возможно водрузить на него Линукс. Возможно, лучшей альтернативой был бы какой-нибудь из Ainol-ов, которые заполонили полки магазинов нашего города (???)
  2. Софт
    1. Lua + LGI. С этими двумя можно сделать почти всё.

среда, 25 июля 2012 г.

gdbus examples

Известная шина DBus может использоваться из разных языков программирования. Это делается через так называемые "Bindings". Для Гномовых библиотек "биндинг" уже второго поколения, и теперь входит в фундаментальную библиотеку glib.
Прежде на "биндинг" предыдущего поколения была неплохая документация в виде "учебника" с главой, посвящённой dbus-glib. С gdbus же творится что-то непонятное: ни примеров, ни учебника не найдёшь даже гуглом ;)
Впрочем, здравый смысл подсказал, где искать: в исходниках! Там несколько тестов и примеров использования. Документация, как обычно, доступна на сайте Гнома.

четверг, 21 июня 2012 г.

Мысли о мышлении

Некоторые коллеги избегают подобных публикаций, а мне в своё время эта книга помогла лучше понять себя и свои мотивации.
Вот этот труд: http://progstone.ru/kartostroenie.htm .
Именно к построению карт относятся многие из моих Записок. Именно к нему относится вопрос "How it's made?"

зачем нужны "сопроцессоры" в телефоне?

(Уже скоро год, как в черновиках лежит тема "Как устроен телефон". Эта тема связана с моим желанием разобраться, как он устроен и как работает (в деталях). Надеюсь, что в обозримом будущем, таки, напишу, хотя бы коротко, в чём успел разобраться.)

По поводу "сопроцессоров" — это я так назвал некоторые относительно независимые элементы устройства, которые работают как бы сами по себе.
Вот некоторые примеры:
  1. GSM-модуль. Этот модуль представлять не надо. Он есть у любого GSM-телефона. Скажем, в старом каком-нибудь телефоне (глупофоне), например Motorola C115 он является единственным CPU и выполняет функции как GSM-терминала (общааясь с GSM-сетью), так и функции пользовательского интерфейса.
    Мне кажется, это и является причиной ограниченной функциональности, т.к. real-time-задачи GSM плохо сочетаются с произвольными программами, которые хотел бы запускать пользователь.
    "Рулит" этим процессором RTOS, например, VxWorks.
    Ещё добавлю, что иногда китайские производители телефонов упоминают этот модуль, как "второе ядро процессора" в такой формулировке: "Dual core 65nm ASIC: ARM1176JZFS 650MHz + ARM1176JZS 507MHz", хотя ничего, кроме GSM-стека там "не крутится". Впрочем, технически, это действительно второй процессор на SoC-е.
  2. GPS-модуль. Во многом находится в том же положении, что и GSM. (Конечно, GSM — это не только собственно GSM: это 3G, CDMA и т.п.)
  3. Вспомогательные DSP. Тут довольно большое разнообразие. DSP нельзя назвать универсальным CPU, но они так же относительно независимы, то есть работают в своём режиме и со своими программами и данными. В конкретных моделях примером могут послужить различные "железные" кодеки, такие, как H.264 и AAC.
Модули работают независимо, и потому имеют некоторые особые аспекты:
  1. Как правило, имеют собственные программы, которые берутся из знакомых нам "прошивок". Если Вы пользователь Linux, то познавательно взглянуть в папку /lib/firmware/. На настольном линуксе у меня там сотни файлов, а на Nokia N900 целых 8!
  2. Эти прошивки отнюдь не являются частью Linux, и чаще всего бывают проприетарными. От этого, до недавнего времени, страдал проект OpenMoko, в котором, кажется, единственной закрытой частью была именно GSM-прошивка. Однако проект osmocomBB, вероятно, закроет эту проблему.
  3. Взаимодействие CPU с этими модулями осуществляется через электрические протоколы низкого уровня (гораздо ниже, чем, например, PCI), к примеру I²C и 1-wire, через GPIO-контакты SoC. В некоторых случаях это взаимодействие на уровне Serial line, как с GSM и GPS.
В целом, наличие этих модулей, с одной стороны, увеличивает цену конечного продукта, а с другой — увеличивает его привлекательность для потребителя. К примеру, кодек H.264 разгружает центральный процессор и проделывает ту же работу, например, по декодированию видео, потратив значительно меньше энергии. По этому поводу у Apple и Adobe был даже небольшой скандал.
Поддержка функциональности этих модулей в Linux часто отстаёт: как правило, гораздо легче "завести" процессор и экран, чем всю периферию.

Манжеты не хватило бы, чтобы вместить весь этот текст. Так что "закругляюсь".

среда, 6 июня 2012 г.

о пользе netcat &Co

Внезапно понадобилось получить сетевое соединение по X11 от коммерческого юникса. Однако, из соображений безопасности TCP-порт X-server-а закрыт. Как быть?
Первый порыв — "где там эта опция включается"? Но это не очень-то практично: чтобы получить возможность на 5 минут, придётся выходить и входить в сеанс.
Но есть такой чудо инструмент: netcat. Это то же, что cat, но работает не с файлами, а вернее, не только с файлами, но и с сетевыми сокетами. socat — это его "внучек". С ним решение простое и элегантное:
socat UNIX:/tmp/.X11-unix/X0 TCP-LISTEN:x11
Рекомендую!

понедельник, 23 апреля 2012 г.

голова отдельно, туловище отдельно

Как бы это курьёзно ни выглядело, но в встроенном Линуксе встречаются ситуации, когда прошивка операционной системы берётся из одного источника, а ядро — из другого. Одна из предпосылок для подобных ситуаций: коммерческий (как правило) поставщик прошивки, у которого (очень часто) встречаются недоработки, которые решаются (благодаря ОперСорсу) отдельно собранным ядром Линукс.
К чему я веду? а к тому, что задача портирования Линукса распадается на две "почти ортогональные": ядро и "userspace". И получается, что, в общем-то, можно выбирать upstream ядра и всего остального по-отдельности!
Как то: собирать ядро из Openembedded, а всё остальное брать из полюбившегося дистрибутива (а хоть бы  из того же ALT, как это уже сделал один АЛьТовец)!

вторник, 17 апреля 2012 г.

Intex: demand MORE!

Уже год, как приобрёл Intex IT-HDP252SA.
  + медиа-плеер по цене USB-SATA mobile rack.
  - китайский.

Честно говоря, это не тот случай, чтобы сказать "не гонялся бы ты, поп, за дешевизной". Поскольку, как USB-SATA он работает "на ура".
А вот как медиа-плеер — м-ну....
  + выходы: композит и VGA
  + поддержка кодеков MPEG4.
  - переключение между звуковыми дорожками только на MPEG2 (aka DVD)
  - субтитры: угадайте, в какой кодировке? Конечно же, не в кириллической!
  - через некоторое время работы (особенно, если видео "тяжёлое"), от перегрева выключается. В планах поставить радиатор.

И, наконец, по сути: разобрав устройство, выяснилось, что внутри чип ESS ES6430FAA. Пойду рыскать в инете, на что он способен. (А хорошо бы его, вообще, разогнать, чтобы не тормозил на "тяжёлом" видео).

вторник, 10 апреля 2012 г.

migrate custom GNOME3 keybindings from GConf to dconf

Quite natural need but was not implemented by GNOME team. Ok, can do it on our own!
1. Get em' from GConf:
cd `mktemp -d`
gconftool-2 --dump /desktop/gnome/keybindings | sed -n '/<key>custom/,/<key>[^c]/ p' > 1
2. Next, cut off xml garbage:
cat 1 | grep '<string' | sed 's|^.*<string>||;s|</string.*$||; s|&quot;|"|g; s|&lt;|<|g;s|&gt;|>|g' > 2
3. Now take these command/binding/name triplets into the dconf-compatible form:
i=0 ; while read v; do echo "[org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom$i]" ; echo command=\'$v\' ; read v ; echo binding=\'$v\' ; read v ; echo name=\'$v\' ; i=$(($i+1)); echo ; done < 2 > 3
4. Yau! Get it into the dconf!
dconf load / < 3
5. Now fix the custom-keybindings key in org/gnome/settings-daemon/plugins/media-keys
dconf write /org/gnome/settings-daemon/plugins/media-keys/custom-keybindings `egrep '^\[' 3 | sed "s|\[|'/|;s|\]|/'|" | tr '\n' , | sed 's|^|[|;s|,$|]|'`
That's it!

среда, 14 марта 2012 г.

ad-hoc wifi на Android

Как это водится в любом не-опенсорс продукте, в Андроиде есть вещи, которые невозможно понять и объяснить логически. Один из самых раздражающих примеров: отсутствие поддержки ad-hoc wifi (например, у меня дома для доступа в интернет через Wi-Fi используется ноутбук, подключённый к Beeline).
Впрочем, в таких случаях народ не сидит на месте, а пытается решить проблему своими силами. Гугль даст вам немало рецептов на эту тему, но ИМХО самым действенным и безопасным методом является правка конфигурационного файла wpa_supplicant.conf:
  1. скачиваем файл к себе на компьютер:
    adb pull /data/misc/wifi/wpa_supplicant.conf
  2. Правим файл: добавляем такие строки:
    eapol_version=2
    ap_scan=2

    network={
        ssid="ADHOCnet"
        scan_ssid=1
        key_mgmt=NONE
        priority=1
        mode=1
    # использовать, если установлен WEP-пароль
        wep_key0="use this param if needed"
    }
  3. сгружаем файл назад:
    adb push wpa_supplicant.conf /data/misc/wifi/
  4. поправляем права:
    adb shell chmod 666 /data/misc/wifi/wpa_supplicant.conf
(Трёх шестёрок бояться не нужно. Это всего лишь восьмеричное число.)
Ну а если Ваш кунг-фу как никогда силён, можете зайти на андроид и сделать всё прямо там, например, редактором vi.

Добавлено Чт дек 27 11:49:13 ALMT 2012:
Действительно, практика показала, что этот рецепт работает не всегда. Кроме диверсии с неподдержкой Ad-hoc в пользовательском интерфейсе (что обходится приведённым выше рецептом), бывает ещё "вырезанние" поддержки Ad-hoc из бинарника wpa_supplicant.

Конечно, если обойдётся только правкой wpa_supplicant.conf, это можно считать везением. Мне повезло дважды: на Samsung i5500 и RoverPad 3WT70 (на прошивке 2.3beta).
Cлучай с дефектным wpa_supplicant тяжёлый, и тут надо либо
  1. искать исправленные бинари wpa_supplicant в форумах
  2. брать патчи, и перекомпилировать самому
по пункту первому могу дать некоторые рекомендации (НЕКОТОРЫЕ ИЗ НИХ ОЧЕНЬ ОПАСНЫЕ!):
  1. Конечно, идеально взять файл, который сделан или проверен для Вашего гаджета и именно той прошивки, которая у Вас стоит. Вот очень правильный, "наш" ресурс.
  2. Если "готовенького" нет, то можно попробовать подобрать из того, что найдёт для Вас Google (типа такого запроса)
  3. перед установкой можно проверить:
    adb push wpa_supplicant /data/local
    adb shell chmod 755 /data/local/wpa_supplicant
    adb shell /data/local/wpa_supplicant -v
  4. И, таки, установить (примерно так, но если не знаете точно, что делают эти команды, НЕ ДЕЛАЙТЕ ТАК!):
    adb remount
    adb shell
    cd /system/bin
    cp wpa_supplicant wpa_supplicant.ORIG
    cat /data/local/wpa_supplicant > wpa_supplicant
удачи!

Добавлено Пт дек 28 17:15:34 ALMT 2012:
И, наконец, решение OVERKILL, если ничего больше не помогает, а Ad-hoc нужен любыми средствами, то можно обойти этого гадкого wpa_supplicant-а:
  1. добавить точку доступа в wpa_supplicant.conf, как написано выше
  2. adb shell iwconfig wlan0 mode Ad-hoc key "s:use this param if needed" essid "ADHOCnet"
Чуть погодя dhcp должен сам получить адрес и всё заработает!

вторник, 6 марта 2012 г.

h3970

(... ну что ж, манжеты заскучали без работы, и пора бы их использовать)

Есть у меня гаджет, один из любимых, т.к. мы провели с ним много приятных часов. Это iPaq H3970. К нему мне подарил один знакомый "пиджачок" с слотом PCMCIA и доп. батареей. В общем, он, конечно, морально устарел, но вполне боеспособен (64М RAM) и приятен в работе.
Родной для него WinCE продержался на нём не больше недели, после чего главной ОС для наладонника стал Familiar Linux, ныне почивший.
На нынешний момент главной проблемой этого наладонника является неполный порт последней серии ядер (2.6 и 3.0). То есть 2.4 на нём неплохо живёт, а в 2.6+ не хватает драйверов. Собственно этой проблемой я и хотел позаниматься в меру свободного времени, ещё начиная с отпуска прошлым летом. За прошедшее время я делал несколько подходов к нему. И всё полезное надо бы зафиксировать ... тут.

четверг, 1 марта 2012 г.

видео-кодек для Nokia N900

Путём экспериментирования установлено, что для видео-просмотра на n900 лучший результат даёт vcodec libx264 pre baseline.
На языке свежего ffmpeg это выглядит примерно так:
avconv -i in.mkv -c:a copy -c:v libx264 -pre baseline out.avi
best codec for n900

среда, 22 февраля 2012 г.

"ушная радость"

"... мои бедные ушки!"
(Кролик из "Алисы в Стране чудес" Л.Кэррола)
Совершенно неожиданно для себя купил новые наушники типа "капельки" (aka "тычки"). При том, что KOSS Sporta PRO у меня пережили очередной ремонт, и вполне живы!
Обычно этот тип наушников выдаёт настолько плохой звук, что долгое время я даже не надеялся встретить что-нибудь стоящее. Но друзья посоветовали и дали послушать Sony MDR-EX10LP, и они меня несказанно удивили!
На следующий день я уже приобрёл экземпляр белого цвета за 2390 тенге (это ещё один повод удивляться), частоты 8-22k Hz. Cool!
--- bottom line ---
Отличные наушники "капельки" за 2390 тенге, ношу каждый день, а Koss пока отложил на полочку.


Добавлено Чт дек 27 11:45:06 ALMT 2012:
на морозе начало трещать левое ухо: проблема контакта в левом наушнике. "Повторим?!", сказал я себе, и купил точно такие же, только другого цвета. ))