среда, 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