Разрабы пакета Bluez опять поменяли формат конфигов. Так что инет полон устаревшей инфы на тему настройки bluetooth адаптеров. Так теперь hcid.conf устарел, и более не нужен. И pin теперь задается посредством bluetooth-agent, а не /etc/bluetooth/pin.
Проверяем, что адаптер вообще работает.
/usr/sbin/hciconfig
hci0: Type: BR/EDR Bus: USB
BD Address: 00:13:65:72:50:E9 ACL MTU: 1021:8 SCO MTU: 48:10
UP RUNNING PSCAN <<-----------
RX bytes:732 acl:0 sco:0 events:28 errors:0
TX bytes:113 acl:0 sco:0 commands:25 errors:0
нас интересует строчка вида "UP RUNNING PSCAN", если адаптер не поднялся будет "DOWN"
Далее сканируем на предмет телефона:
hcitool scan
Scanning ...
5C:5C:A9:6D:8B:3D U8500
Нашли, МАС адрес запомнили.
Иногда адаптеры запускаются в режиме "невидимости" - снова включить "видимость" можно
dbus-send --system --dest=org.bluez /org/bluez/hci0 org.bluez.Adapter.SetMode string:discoverable
или так
hciconfig hci0 piscan
после соединения и пин-кода лучше опять отключить.
hciconfig hci0 noscan
Запрос на соединение и пин код
bluetooth-agent "пин" "МАС"
т.е. что-то вроде
bluetooth-agent 1234 5C:5C:A9:6D:8B:3D
На телефоне тоже выскочит предложение ввести код. Вводим (иногда время ввода ограничено) и устройства с этого момента "спарены"
http://wiki.debian.org/BluetoothUser
Осуществляем проверку надежности передачи пакетов между компьютером и телефоном:
l2ping 00:0F:DE:82:22:87
Просмотр сервисов запущенных на телефоне (зачастую требуется доп. программки вроде Astro и модуля для него bluetooth - который реализует ObexFTP).
sdptool browse
Итак Astro с запущенным модулем bluetooth (с включенной опцией OBEX FTP Server) создал доп. канал:
Service Name: ASTRO_Bluetooth_FTP
Service RecHandle: 0x10007
Service Class ID List:
UUID 128: 00001106-0000-1000-8000-00805f9b34fb
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 16
Монтируем этот канал
obexfs -b "МАС" -B "канал" /media/android
т.е. что-то вроде этого
obexfs -b 5C:5C:A9:7D:8B:3D -B 16 /media/android
и можно теперь использовать /media/android как обычный раздел, копировать, удалять и т.д.
воскресенье, 28 августа 2011 г.
вторник, 23 августа 2011 г.
Debian, Synaptics Touchpad
При старте иксов touchpad гонял курсор как обычная мышка, но отказывался "кликать" коротком нажатии на touchpad.
А всего-то оказалось надо было запустить мышиный драйвер с параметром proto=imps
Для проверки можно из консоли выполнить команды:
modprobe -r psmouse
modprobe psmouse proto=imps
Если все заработало, то можно создать файл touchpad.conf в /etc/modprobe.d/ и поместить в него:
options psmouse proto=imps
Есть правда и другой путь - установить пакет gpointing-device-settings или gsynaptics
Тогда доступны станут прокрутки при касании двумя пальцами (мультитач) и тап в качестве клика.
Для настройки надо запустить gpointing-device-settings и выбирать что приглянется
Про ноут есть немного описания - http://www.fi.muni.cz/~kas/c1020/#touchpad
А всего-то оказалось надо было запустить мышиный драйвер с параметром proto=imps
Для проверки можно из консоли выполнить команды:
modprobe -r psmouse
modprobe psmouse proto=imps
Если все заработало, то можно создать файл touchpad.conf в /etc/modprobe.d/ и поместить в него:
options psmouse proto=imps
Есть правда и другой путь - установить пакет gpointing-device-settings или gsynaptics
Тогда доступны станут прокрутки при касании двумя пальцами (мультитач) и тап в качестве клика.
Для настройки надо запустить gpointing-device-settings и выбирать что приглянется
Про ноут есть немного описания - http://www.fi.muni.cz/~kas/c1020/#touchpad
Debian и список репозиториев
Добавляем в /etc/apt/sources.list
deb ftp://ftp.ru.debian.org/debian/ stable main contrib non-free
deb-src ftp://ftp.ru.debian.org/debian/ stable main contrib non-free
и апдейтим
apt-get update
deb ftp://ftp.ru.debian.org/debian/ stable main contrib non-free
deb-src ftp://ftp.ru.debian.org/debian/ stable main contrib non-free
и апдейтим
apt-get update
понедельник, 22 августа 2011 г.
Debian и MongoDB
добавляем ключ
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
добавляем репозиторий
deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen
sudo apt-get update
sudo apt-get install mongodb-10gen
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
добавляем репозиторий
deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen
sudo apt-get update
sudo apt-get install mongodb-10gen
воскресенье, 21 августа 2011 г.
Оптический привод и ошибка Sense Key : Medium Error [current] and Unhandled sense code
Если при монтировании оптических дисков полезли следующие ошибки
Unhandled sense code
Sense Key : Medium Error [current]
пофиксить можно
sudo hdparm -E 0 /dev/sr[01]
Unhandled sense code
Sense Key : Medium Error [current]
пофиксить можно
sudo hdparm -E 0 /dev/sr[01]
вторник, 16 августа 2011 г.
Git - установка и настройка
ставим git и gitosis
Настройка git-сервера
Выполняем инициализацию gitosis-admin репозитория (на сервере):
$ sudo -H -u gitosis gitosis-init < /путь/к/файлу/id_rsa.pub
где id_rsa.pub - ваш публичный кюч.
В ответ будет выдано что-то вроде:
Initialized empty Git repository in /srv/gitosis/repositories/gitosis-admin.git/
Reinitialized existing Git repository in /srv/gitosis/repositories/gitosis-admin.git/
разрешаем выполнение post-update хука:
$ sudo chmod +x /srv/gitosis/repositories/gitosis-admin.git/hooks/post-update
Клонируем конфиги gitosis на локальный компьютер
$ git clone gitosis@ваш_сервер:gitosis-admin.git
репозиторий в каталоге gitosis-admin, в котором в дирректории keydir лежат публичные ключи людей, которые имеют доступ к данному репозиторию.
В качестве имени файла используется его имя из открытого ключа. Что бы добавить человека нужно, просто, добавить его ключ.
файл gitosis.conf - настройка прав доступа для репозиториев
Добавляем ключи (юзеров) и редактируем конфиг на предмет прав и доступа.
затем коммитим изменения и закидываем их на сервер
$ git commit -am "grant new user ...."
$ git push origin master
Создаем и настраиваем новый репозиторий.
$ git clone gitosis@ваш_сервер:gitosis-admin.git
Редактируем gitosis.conf с добавленным репозиторием test-repo, в конфиг добавляем:
[group test-group]
writable = test-repo
members = логин1 логин2 ...
[repo test-repo]
description = Тестовый репозиторий
owner = имя
после правок делаем коммит:
$ git commit -am "Добавлен репозиторий test-repo"
и записываем изменения:
$ git push origin master
репозиторий готов и можно клонировать:
$ git clone gitosis@git.example.org:test-repo.git
да не забыть добавить хотя бы один файлик, иначе будет ругаться на ошибку.
В некоторых версиях git новые репозитории не создаются автоматически и при попытке клонировать выдается что-то вроде
fatal: 'repositories/имя-репо.git': unable to chdir or not a git archive
fatal: The remote end hung up unexpectedly
В таком случае репозиторий надо создать принудительно. есть два варианта:
1. создавать прямо на удаленном сервере
Создаем нужный каталог и в нем инициируем git
mkdir /srv/gitosis/repositories/test-repo.git
cd /srv/gitosis/repositories/test-repo.git
git init
chown gitosis.gitosis /srv/gitosis/repositories/test-repo.git -R
2. сначала создать локально, а потом залить на сервер.
mkdir test-repo
cd test-repo
git init
git remote add origin gitosis@YOUR_SERVER_HOSTNAME:test-repo.git
добавим какой-нибудь файлик и закомметим его
git push origin master:refs/heads/master
Настройка git-сервера
Выполняем инициализацию gitosis-admin репозитория (на сервере):
$ sudo -H -u gitosis gitosis-init < /путь/к/файлу/id_rsa.pub
где id_rsa.pub - ваш публичный кюч.
В ответ будет выдано что-то вроде:
Initialized empty Git repository in /srv/gitosis/repositories/gitosis-admin.git/
Reinitialized existing Git repository in /srv/gitosis/repositories/gitosis-admin.git/
разрешаем выполнение post-update хука:
$ sudo chmod +x /srv/gitosis/repositories/gitosis-admin.git/hooks/post-update
Клонируем конфиги gitosis на локальный компьютер
$ git clone gitosis@ваш_сервер:gitosis-admin.git
репозиторий в каталоге gitosis-admin, в котором в дирректории keydir лежат публичные ключи людей, которые имеют доступ к данному репозиторию.
В качестве имени файла используется его имя из открытого ключа. Что бы добавить человека нужно, просто, добавить его ключ.
файл gitosis.conf - настройка прав доступа для репозиториев
Добавляем ключи (юзеров) и редактируем конфиг на предмет прав и доступа.
затем коммитим изменения и закидываем их на сервер
$ git commit -am "grant new user ...."
$ git push origin master
Создаем и настраиваем новый репозиторий.
$ git clone gitosis@ваш_сервер:gitosis-admin.git
Редактируем gitosis.conf с добавленным репозиторием test-repo, в конфиг добавляем:
[group test-group]
writable = test-repo
members = логин1 логин2 ...
[repo test-repo]
description = Тестовый репозиторий
owner = имя
после правок делаем коммит:
$ git commit -am "Добавлен репозиторий test-repo"
и записываем изменения:
$ git push origin master
репозиторий готов и можно клонировать:
$ git clone gitosis@git.example.org:test-repo.git
да не забыть добавить хотя бы один файлик, иначе будет ругаться на ошибку.
В некоторых версиях git новые репозитории не создаются автоматически и при попытке клонировать выдается что-то вроде
fatal: 'repositories/имя-репо.git': unable to chdir or not a git archive
fatal: The remote end hung up unexpectedly
В таком случае репозиторий надо создать принудительно. есть два варианта:
1. создавать прямо на удаленном сервере
Создаем нужный каталог и в нем инициируем git
mkdir /srv/gitosis/repositories/test-repo.git
cd /srv/gitosis/repositories/test-repo.git
git init
chown gitosis.gitosis /srv/gitosis/repositories/test-repo.git -R
2. сначала создать локально, а потом залить на сервер.
mkdir test-repo
cd test-repo
git init
git remote add origin gitosis@YOUR_SERVER_HOSTNAME:test-repo.git
добавим какой-нибудь файлик и закомметим его
git push origin master:refs/heads/master
пятница, 12 августа 2011 г.
Android SDK и Eclipse - настройка
** Устанавливаем Java - sun-java6-jre
** Устанавливаем JDK - sun-java6-jdk
** Скачать свежий SDK http://developer.android.com/sdk/index.html
Распаковать его и запусить ./tools/android
** Доустановить утилиты --
Available packages -> Android Repository -> Android SDK Platform-tools
(в нем содержится нужная утилитка adb)
На "64битной" системе утилита adb откзалась запускаться и выдала что-то вроде:
./adb: error while loading shared libraries: libncurses.so.5
для ее запуска понадобились два пакета "32битных" : lib32ncurses5 и lib32stdc++6
** Доустановить нужные SDK под конкретную версию ОС --
Available packages -> Android Repository -> SDK Platform Android x.x (x.x версия)
** Теперь установить ADT плагин в Eclipse. (если нужно донастроить прокси)
Help > Install New Software > кнопка Add > ввести "ADT Plugin" как Name и Location = "https://dl-ssl.google.com/android/eclipse/" > кнопка OK
выбираем "Developer Tools" и жмем Next и видим список компонентов, которые будут скачены - опять Next. Читаем лиценизию и соглашаемся с ней (чекбокс accept) и жмем Finish. В процессе будет что-то на счет "не доверенных" компонентов, доверяем всем.
Рестартим Eclipse.
** Указываем Eclipse путь к установленному SDK
Window->Preferences-> Android ->Browse - указываем путь к SDK.
** Устанавливаем JDK - sun-java6-jdk
** Скачать свежий SDK http://developer.android.com/sdk/index.html
Распаковать его и запусить ./tools/android
** Доустановить утилиты --
Available packages -> Android Repository -> Android SDK Platform-tools
(в нем содержится нужная утилитка adb)
На "64битной" системе утилита adb откзалась запускаться и выдала что-то вроде:
./adb: error while loading shared libraries: libncurses.so.5
для ее запуска понадобились два пакета "32битных" : lib32ncurses5 и lib32stdc++6
** Доустановить нужные SDK под конкретную версию ОС --
Available packages -> Android Repository -> SDK Platform Android x.x (x.x версия)
** Теперь установить ADT плагин в Eclipse. (если нужно донастроить прокси)
Help > Install New Software > кнопка Add > ввести "ADT Plugin" как Name и Location = "https://dl-ssl.google.com/android/eclipse/" > кнопка OK
выбираем "Developer Tools" и жмем Next и видим список компонентов, которые будут скачены - опять Next. Читаем лиценизию и соглашаемся с ней (чекбокс accept) и жмем Finish. В процессе будет что-то на счет "не доверенных" компонентов, доверяем всем.
Рестартим Eclipse.
** Указываем Eclipse путь к установленному SDK
Window->Preferences-> Android ->Browse - указываем путь к SDK.
Android 2.2 и bluetooth клавиатура.
Есть платная программа Blueinput от teksoft - если не жалко 10 евро она возможно поможет.
Если жалко:
статья на английском http://i-miss-erin.blogspot.com/2009/09/connect-bluetooth-keyboard-in-android.html
** Девайсы необходимо "спарить"
Settings->Wireless&networks->Bluetooth settigs
Включаем Bluetooth и клавиатуру (иногда на ней надо нажать еще хитрую кнопочку с обратной стороны, что бы она начала вещать на все окрестности о себе - как правило всего несколько минуть, затем если не успели - повторить нажатие)
На смарте жмем Scan for device - клавиатура должна появиться в списке Bluetooth devices
Жмем на строчку с названием клавиатуры (Bluetooth Keyboard) и вводим код - любой, к примеру 1234
ОК. Теперь этот же код набираем на клавиатуре и на жмем enter.
Состояние строки под Bluetooth Keyboard измениться на Paired but not connected
Версия для смарта, без применения компьютера
* нужен root на девайс - z4root
* нужен установленный - busybox
* нужен установленный - GScript
Качаем файлы в папку на флэшке - gscript (/mnt/sdcard/gscript)
hciconfig
hcitool
hidd
cp_blueutils.sh
В моем Huaway U8500 уже был в системе hcitool и при замене предложенным, сканирование устройств перестало корректно работать. Поэтому на всякий случай выкладываю и его.
hcitool.orgin_u8500
Если качается стандартным гугл.браузером, то все падает на флэшку в папку download, но программам к имени добавляется суффикс .bin, т.е. было hidd, скачалось hidd.bin. Т.е. надо переименовыват (отрывать у имени .bin) и копировать в нужный каталог.
Opera такими проблемами не страдает, она позволяет сразу выбрать - куда скачивать (выбираем папку gscript) и сохраняет с нормальными именами.
Затем запускаем GScript. В меню выбираем "Add script". Жмем "Load file" и выбираем cp_blueutils.sh
Проверяем, есть ли галка на "Needs SU?" - она нам нужна для рута и жмем "Save". В списке скриптов появиться cp_blueutils. Запускаем его на выполнение. На экране должны быть строки о выполнении, типа:
"copy 'hidd' to /system/xbin"
В версии Android ниже 2.2 флэшка (sdcard) монтировалась не в /mnt/sdcard, а в /sdcard
В этому случае надо в скрипте cp_blueutils.sh поправить строку вида:
cd /mnt/sdcard/gscript
отредактировать до вида:
cd /sdcard/gscript
Что бы убедиться, что все и правда скопировалось куда нужно можно еще раз запустить скрипт. На этот раз должно быть что-то вроде
"'hidd' already exists in /system/xbin"
Значит все скопировали.
Скачаем еще немного скрптов в папку gscript:
scan.sh
connect.sh
make_bbb.sh (нужен только если хотите в дальнейшем запускать connect из эмулятора терминала)
Затем запускаем GScript. В меню выбираем "Add script". Жмем "Load file" и выбираем scan.sh, затем сохраняем и запускаем его из списка. Если ничего не нашлось, попробуйте активирвоать на клавиатуре магическую кнопочку.
Должно получиться что-то вроде:
Scanning ...
00:22:43:C6:5B:B9 Bluetooth Keyboard
Запоминаем эти хх:хх:хх:хх:хх:хх цифры-буквы, это MAC адрес клавиатуры. Теперь надо в GScript добавить из файла скрипт connect.sh и в нем ИЗМЕНИТЬ строку вида
mac="00:22:43:C6:5B:B9"
на ваши цифры-буквы. Затем сохранить и выполнить.
После этого клавиатура должна заработать.
В дальнейшем запускать только скрипт connect. Остальные в принципе можно удалить, впрочем как и скачанные программы в папке gscript. Если запусить скрипт make_bbb (пердварительно отредактировав в нем MAC адрес, как и в случае со скриптом connect), то в /system/xbin/ появиться файл bbb. Т.е. теперь можно будет из эмулятора терминала набирать su и затем bbb. И клавиатура должна подключиться.
Вторая версия вышеизложенного - работа с компьютера:
--Смарт должен быть рутован (инструкций огромное множество)--
Качаем недостающие программы:
http://androidobex.googlecode.com/files/hciconfig
http://androidobex.googlecode.com/files/hcitool
http://androidobex.googlecode.com/files/hidd
Итак, вся работа будет производиться через утилиту adb которая входит в комплект SDK Android
** Необходимо подключить девайс через usb к компьютеру.
** Так же после этого включить режим отладки: ставим галку в Settings->Aplication->Development->Usb debugging (как это на русском не помню)
** Запускаем adb shell. Сразу оговорюсь, как под виндой это работает не знаю, нет ее у меня, но говорят, что как-то работает.
В ответ на запуск adb shell получаем приглашение $
Вводим "su" и enter для получения root. И вот тут внимательно смотрим на экран, так как при первом запросе su из шела появиться запрос на предоставление рута (10сек) и надо подтвердить.
Если все нормально, $ поменяется на # - root.
** Теперь надо перемонтировать раздел /system для чтения-записи (изначально он монтируется только на чтение)
Частенько разделы /system имеют отличие - system - это всего лишь точка монтирования, а сам раздел выглядит похоже на /dev/block/mtdblockх, где х - номер раздела. Вот этот номер нам и предстоит выяснить. Если бездумно копировать команды инструкций для других моделей, можно смонтировать ошибочно раздел. Ну в общем. я Вас предупредил.
Смотрим, что и куда смонитировано (символ # набирать не надо, он уже отображается на экране):
# mount
в строчках ищем что-то вроде
/dev/block/mtdblock4 /system ... - вот 4 - это и есть наш раздел. У Вас может быть другая цифра!
Перемонтируем раздел:
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock4 /system
# chmod 777 /system/xbin
Выходим из adb shell (или, предположительно, закрываем окно для винды)
# exit
$ exit
** Теперь надо закинуть три скачанных файлика в смарт.
adb push hidd /system/xbin
adb push hcitool /system/xbin
adb push hciconfig /system/xbin
Сделать исполняемыми:
# chmod 755 /system/xbin/hidd
# chmod 755 /system/xbin/hcitool
# chmod 755 /system/xbin/hciconfig
** Теперь пошаманим с программками. Запускаем adb shell
* Получаем root
$ su
#
* Скнируем на предмет наличия клавиатуры и ее MAC адреса (опять же, не забываем, что клавиатура доступна к обнаружению ограниченное время, если не найдется, находим на ней магическую кнопочку и нажимаем). На выходе получим что-то вроде
# hcitool scan
Scanning ...
00:22:43:C6:5B:B9 Bluetooth keyboard
~~~~~~~~~~~~~~~~~
Цифры-буквы и есть MAC адрес
* Пробуем подключить клавиатуру:
# hidd --connect 00:22:43:C6:5B:B9
Должна заработать.
Для удобства можно сделать скрипт вида (вписать свой MAC адрес):
#!/system/bin/sh
hidd --connect 00:22:43:C6:5B:B9
и сохранить в /system/xbin/bbbb
# chmod 755 /system/xbin/bbbb
Теперь открыв на смарте терминал (к примеру Better Terminal Emulator Pro) и в нем
$ su
# bbbb
Должна подключиться клавиатура
Перечитал, и в итоге получился вольный перевод англоязычной статьи. С дополнением про скрипт.
Если жалко:
статья на английском http://i-miss-erin.blogspot.com/2009/09/connect-bluetooth-keyboard-in-android.html
** Девайсы необходимо "спарить"
Settings->Wireless&networks->Bluetooth settigs
Включаем Bluetooth и клавиатуру (иногда на ней надо нажать еще хитрую кнопочку с обратной стороны, что бы она начала вещать на все окрестности о себе - как правило всего несколько минуть, затем если не успели - повторить нажатие)
На смарте жмем Scan for device - клавиатура должна появиться в списке Bluetooth devices
Жмем на строчку с названием клавиатуры (Bluetooth Keyboard) и вводим код - любой, к примеру 1234
ОК. Теперь этот же код набираем на клавиатуре и на жмем enter.
Состояние строки под Bluetooth Keyboard измениться на Paired but not connected
Версия для смарта, без применения компьютера
* нужен root на девайс - z4root
* нужен установленный - busybox
* нужен установленный - GScript
Качаем файлы в папку на флэшке - gscript (/mnt/sdcard/gscript)
hciconfig
hcitool
hidd
cp_blueutils.sh
В моем Huaway U8500 уже был в системе hcitool и при замене предложенным, сканирование устройств перестало корректно работать. Поэтому на всякий случай выкладываю и его.
hcitool.orgin_u8500
Если качается стандартным гугл.браузером, то все падает на флэшку в папку download, но программам к имени добавляется суффикс .bin, т.е. было hidd, скачалось hidd.bin. Т.е. надо переименовыват (отрывать у имени .bin) и копировать в нужный каталог.
Opera такими проблемами не страдает, она позволяет сразу выбрать - куда скачивать (выбираем папку gscript) и сохраняет с нормальными именами.
Затем запускаем GScript. В меню выбираем "Add script". Жмем "Load file" и выбираем cp_blueutils.sh
Проверяем, есть ли галка на "Needs SU?" - она нам нужна для рута и жмем "Save". В списке скриптов появиться cp_blueutils. Запускаем его на выполнение. На экране должны быть строки о выполнении, типа:
"copy 'hidd' to /system/xbin"
В версии Android ниже 2.2 флэшка (sdcard) монтировалась не в /mnt/sdcard, а в /sdcard
В этому случае надо в скрипте cp_blueutils.sh поправить строку вида:
cd /mnt/sdcard/gscript
отредактировать до вида:
cd /sdcard/gscript
Что бы убедиться, что все и правда скопировалось куда нужно можно еще раз запустить скрипт. На этот раз должно быть что-то вроде
"'hidd' already exists in /system/xbin"
Значит все скопировали.
Скачаем еще немного скрптов в папку gscript:
scan.sh
connect.sh
make_bbb.sh (нужен только если хотите в дальнейшем запускать connect из эмулятора терминала)
Затем запускаем GScript. В меню выбираем "Add script". Жмем "Load file" и выбираем scan.sh, затем сохраняем и запускаем его из списка. Если ничего не нашлось, попробуйте активирвоать на клавиатуре магическую кнопочку.
Должно получиться что-то вроде:
Scanning ...
00:22:43:C6:5B:B9 Bluetooth Keyboard
Запоминаем эти хх:хх:хх:хх:хх:хх цифры-буквы, это MAC адрес клавиатуры. Теперь надо в GScript добавить из файла скрипт connect.sh и в нем ИЗМЕНИТЬ строку вида
mac="00:22:43:C6:5B:B9"
на ваши цифры-буквы. Затем сохранить и выполнить.
После этого клавиатура должна заработать.
В дальнейшем запускать только скрипт connect. Остальные в принципе можно удалить, впрочем как и скачанные программы в папке gscript. Если запусить скрипт make_bbb (пердварительно отредактировав в нем MAC адрес, как и в случае со скриптом connect), то в /system/xbin/ появиться файл bbb. Т.е. теперь можно будет из эмулятора терминала набирать su и затем bbb. И клавиатура должна подключиться.
Вторая версия вышеизложенного - работа с компьютера:
--Смарт должен быть рутован (инструкций огромное множество)--
Качаем недостающие программы:
http://androidobex.googlecode.com/files/hciconfig
http://androidobex.googlecode.com/files/hcitool
http://androidobex.googlecode.com/files/hidd
Итак, вся работа будет производиться через утилиту adb которая входит в комплект SDK Android
** Необходимо подключить девайс через usb к компьютеру.
** Так же после этого включить режим отладки: ставим галку в Settings->Aplication->Development->Usb debugging (как это на русском не помню)
** Запускаем adb shell. Сразу оговорюсь, как под виндой это работает не знаю, нет ее у меня, но говорят, что как-то работает.
В ответ на запуск adb shell получаем приглашение $
Вводим "su" и enter для получения root. И вот тут внимательно смотрим на экран, так как при первом запросе su из шела появиться запрос на предоставление рута (10сек) и надо подтвердить.
Если все нормально, $ поменяется на # - root.
** Теперь надо перемонтировать раздел /system для чтения-записи (изначально он монтируется только на чтение)
Частенько разделы /system имеют отличие - system - это всего лишь точка монтирования, а сам раздел выглядит похоже на /dev/block/mtdblockх, где х - номер раздела. Вот этот номер нам и предстоит выяснить. Если бездумно копировать команды инструкций для других моделей, можно смонтировать ошибочно раздел. Ну в общем. я Вас предупредил.
Смотрим, что и куда смонитировано (символ # набирать не надо, он уже отображается на экране):
# mount
в строчках ищем что-то вроде
/dev/block/mtdblock4 /system ... - вот 4 - это и есть наш раздел. У Вас может быть другая цифра!
Перемонтируем раздел:
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock4 /system
# chmod 777 /system/xbin
Выходим из adb shell (или, предположительно, закрываем окно для винды)
# exit
$ exit
** Теперь надо закинуть три скачанных файлика в смарт.
adb push hidd /system/xbin
adb push hcitool /system/xbin
adb push hciconfig /system/xbin
Сделать исполняемыми:
# chmod 755 /system/xbin/hidd
# chmod 755 /system/xbin/hcitool
# chmod 755 /system/xbin/hciconfig
** Теперь пошаманим с программками. Запускаем adb shell
* Получаем root
$ su
#
* Скнируем на предмет наличия клавиатуры и ее MAC адреса (опять же, не забываем, что клавиатура доступна к обнаружению ограниченное время, если не найдется, находим на ней магическую кнопочку и нажимаем). На выходе получим что-то вроде
# hcitool scan
Scanning ...
00:22:43:C6:5B:B9 Bluetooth keyboard
~~~~~~~~~~~~~~~~~
Цифры-буквы и есть MAC адрес
* Пробуем подключить клавиатуру:
# hidd --connect 00:22:43:C6:5B:B9
Должна заработать.
Для удобства можно сделать скрипт вида (вписать свой MAC адрес):
#!/system/bin/sh
hidd --connect 00:22:43:C6:5B:B9
и сохранить в /system/xbin/bbbb
# chmod 755 /system/xbin/bbbb
Теперь открыв на смарте терминал (к примеру Better Terminal Emulator Pro) и в нем
$ su
# bbbb
Должна подключиться клавиатура
Перечитал, и в итоге получился вольный перевод англоязычной статьи. С дополнением про скрипт.
вторник, 9 августа 2011 г.
Debian, Bind и chroot
Подготавливаем окружение chroot
# mkdir -p /var/chroot/bind9/{etc,dev,var/cache/bind,var/run/bind/run,var/log,var/cache/bind/master,var/cache/bind/slave}
# chown -R bind:bind /var/chroot/bind9/var/*
# mknod /var/chroot/bind9/dev/null c 1 3
# mknod /var/chroot/bind9/dev/random c 1 8
# mv /etc/bind /var/chroot/bind9/etc
# ln -s /var/chroot/bind9/etc/bind /etc/bind
# ln -s /var/chroot/bind9/var/log /var/log/named
# ln -s /var/chroot/bind9/var/cache/bind/master /var/chroot/bind9/etc/bind/master
# ln -s /var/chroot/bind9/var/cache/bind/slave /var/chroot/bind9/etc/bind/slave
Создаём файл /etc/rsyslog.d/bind-chroot.conf следующего содержания
# cat /etc/rsyslog.d/bind-chroot.conf
$AddUnixListenSocket /var/chroot/bind9/dev/log
Редактируем /etc/default/bind9
# cat /etc/default/bind9
# run resolvconf?
RESOLVCONF=yes
# startup options for the server
OPTIONS="-u bind -t /var/chroot/bind9"
Для того, чтобы в логах сервера было указано правильное время с учётом часового пояса
# cp /etc/localtime /var/chroot/bind9/etc/
Что бы коректно отрабатывали скрипты запуска-остановки, надо в /etc/bind/named.conf
include "/etc/bind/rndc.key";
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
Проверить можно командой
#rndc status
Без этой доработки получали бы при остановке сервиса что-то вроде:
Stopping domain name service...: bind9rndc: connect failed: 127.0.0.1#953: connection refused
Теперь рестартуем rsyslog и стартуем bind9
# /etc/init.d/rsyslog restart
# /etc/init.d/bind9 start
# mkdir -p /var/chroot/bind9/{etc,dev,var/cache/bind,var/run/bind/run,var/log,var/cache/bind/master,var/cache/bind/slave}
# chown -R bind:bind /var/chroot/bind9/var/*
# mknod /var/chroot/bind9/dev/null c 1 3
# mknod /var/chroot/bind9/dev/random c 1 8
# mv /etc/bind /var/chroot/bind9/etc
# ln -s /var/chroot/bind9/etc/bind /etc/bind
# ln -s /var/chroot/bind9/var/log /var/log/named
# ln -s /var/chroot/bind9/var/cache/bind/master /var/chroot/bind9/etc/bind/master
# ln -s /var/chroot/bind9/var/cache/bind/slave /var/chroot/bind9/etc/bind/slave
Создаём файл /etc/rsyslog.d/bind-chroot.conf следующего содержания
# cat /etc/rsyslog.d/bind-chroot.conf
$AddUnixListenSocket /var/chroot/bind9/dev/log
Редактируем /etc/default/bind9
# cat /etc/default/bind9
# run resolvconf?
RESOLVCONF=yes
# startup options for the server
OPTIONS="-u bind -t /var/chroot/bind9"
Для того, чтобы в логах сервера было указано правильное время с учётом часового пояса
# cp /etc/localtime /var/chroot/bind9/etc/
Что бы коректно отрабатывали скрипты запуска-остановки, надо в /etc/bind/named.conf
include "/etc/bind/rndc.key";
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
Проверить можно командой
#rndc status
Без этой доработки получали бы при остановке сервиса что-то вроде:
Stopping domain name service...: bind9rndc: connect failed: 127.0.0.1#953: connection refused
Теперь рестартуем rsyslog и стартуем bind9
# /etc/init.d/rsyslog restart
# /etc/init.d/bind9 start
Mysql и переезд на новый сервер
Понадобилось скопировать пользователей и их права на новый сервер
не плохо подошла для этого утилитка mk-show-grants из пакета Maatkit
http://www.maatkit.org
mk-show-grants --separate --revoke --ask-pass > users.sql
единственный неприятный момент, требуется пароль, а когда используется > users.sql вывод приглашения перенаправляется, т.е. надо вводит "вслепую" и enter
А потом из users.sql надо удалить первую строку - Enter password:
и на целевом сервере втянуть users.sql в базу
не плохо подошла для этого утилитка mk-show-grants из пакета Maatkit
http://www.maatkit.org
mk-show-grants --separate --revoke --ask-pass > users.sql
единственный неприятный момент, требуется пароль, а когда используется > users.sql вывод приглашения перенаправляется, т.е. надо вводит "вслепую" и enter
А потом из users.sql надо удалить первую строку - Enter password:
и на целевом сервере втянуть users.sql в базу
Debian и bluetooth
apt-get install bluetooth
/etc/init.d/bluetooth start
GUI
apt-get install blueman
запускается через
blueman-manager
/etc/init.d/bluetooth start
GUI
apt-get install blueman
запускается через
blueman-manager
воскресенье, 7 августа 2011 г.
Debian и терминал
Хороший терминал rxvt-unicode
aptitude install rxvt-unicode
так же ставим шрифт
aptitude install xfonts-terminus
В .Xresources настраиваем ресурсы терминала:
URxvt.font: -*-terminus-medium-r-*-*-16-*-*-*-*-*-*-u
URxvt.scrollBar: false
URxvt.saveLines: 65535
URxvt.InternalBorder: 0
URxvt.pointerBlank: true
URxvt.loginShell: true
URxvt.background: black
URxvt.foreground: white
aptitude install rxvt-unicode
так же ставим шрифт
aptitude install xfonts-terminus
В .Xresources настраиваем ресурсы терминала:
URxvt.font: -*-terminus-medium-r-*-*-16-*-*-*-*-*-*-u
URxvt.scrollBar: false
URxvt.saveLines: 65535
URxvt.InternalBorder: 0
URxvt.pointerBlank: true
URxvt.loginShell: true
URxvt.background: black
URxvt.foreground: white
Debian и постустановка.
Поставил в экспертном режиме.
смонтировал dvd
установил иксы с легким десктопом -- aptitude install lxde
отключить загрузку иксов при старте
-- редактируем /etc/inittab в вид:
id:3:initdefault:
(т.е. запуск в runlevel 3)
-- update-rc.d gdm disable 3
Добавляем оф. репозитории в /etc/apt/sources.list
deb ftp://ftp.ru.debian.org/debian/ stable main contrib non-free
deb-src ftp://ftp.ru.debian.org/debian/ stable main contrib non-free
и апдейтим их -- aptitude update
что бы монтировать самбовые шары ставим пакет smbfs
ставим icewm и tango-icon-theme для иконок в pcmanfm (файл-менеджер)
создаем файл .xsession и в него пишем:
icewmbg &
icewm
далее, создаем файл ~/.gtkrc-2.0 и в него пишем:
gtk-icon-theme-name = "Tango"
теперь иконки должны заработать.
xxkb
и настройка
смонтировал dvd
установил иксы с легким десктопом -- aptitude install lxde
отключить загрузку иксов при старте
-- редактируем /etc/inittab в вид:
id:3:initdefault:
(т.е. запуск в runlevel 3)
-- update-rc.d gdm disable 3
Добавляем оф. репозитории в /etc/apt/sources.list
deb ftp://ftp.ru.debian.org/debian/ stable main contrib non-free
deb-src ftp://ftp.ru.debian.org/debian/ stable main contrib non-free
и апдейтим их -- aptitude update
что бы монтировать самбовые шары ставим пакет smbfs
ставим icewm и tango-icon-theme для иконок в pcmanfm (файл-менеджер)
создаем файл .xsession и в него пишем:
icewmbg &
icewm
далее, создаем файл ~/.gtkrc-2.0 и в него пишем:
gtk-icon-theme-name = "Tango"
теперь иконки должны заработать.
xxkb
и настройка
пятница, 5 августа 2011 г.
Debian и сглаживание шрифтов
Установим
aptitude install msttcorefonts
В домашнем каталоге создадим файл .fonts.conf с таким содержанием
aptitude install msttcorefonts
В домашнем каталоге создадим файл .fonts.conf с таким содержанием
<?xml version="1.0"?> <!DOCTYPE fontconfig SYSTEM "fonts.dtd"> <fontconfig> <match target="font" > <edit mode="assign" name="rgba" > <const>none</const> </edit> </match> <match target="font" > <edit mode="assign" name="hinting" > <bool>true</bool> </edit> </match> <match target="font" > <edit mode="assign" name="hintstyle" > <const>hintmedium</const> </edit> </match> <match target="font" > <edit mode="assign" name="antialias" > <bool>true</bool> </edit> </match> <match target="font" > <test compare="more_eq" name="size" qual="any" > <double>0</double> </test> <test compare="less_eq" name="size" qual="any" > <double>15</double> </test> <edit mode="assign" name="antialias" > <bool>false</bool> </edit> </match> <match target="font" > <test compare="more_eq" name="pixelsize" qual="any" > <double>0</double> </test> <test compare="less_eq" name="pixelsize" qual="any" > <double>20</double> </test> <edit mode="assign" name="antialias" > <bool>false</bool> </edit> </match> </fontconfig>
вторник, 2 августа 2011 г.
Debian и отключение иксов
Итак, хотим загружаться в консольном режиме без иксов и графики. Уж не знаю зачем так сделали, но в debian при runlevel 2-5 иксы таки грузятся. Что надо сделать, что бы исправить ситуацию:
1. Редактируем /etc/inittab в вид:
id:3:initdefault:
(т.е. запуск в runlevel 3)
2. Удаляем симлинк /etc/rc3.d/S20gdm или /etc/rc3.d/S20kdm - в зависимости, что в виде DE установлено. цифры в S20gdm могут быть другие.
Хотя правильнее будет
update-rc.d gdm3 disabe 3
1. Редактируем /etc/inittab в вид:
id:3:initdefault:
(т.е. запуск в runlevel 3)
2. Удаляем симлинк /etc/rc3.d/S20gdm или /etc/rc3.d/S20kdm - в зависимости, что в виде DE установлено. цифры в S20gdm могут быть другие.
Хотя правильнее будет
update-rc.d gdm3 disabe 3
Подписаться на:
Сообщения (Atom)