Разрабы пакета 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 как обычный раздел, копировать, удалять и т.д.
Личные находки при настройке Linux Slackware и др. Глюки, баги и их устранение (решение). То, что не смог на момент написания найти в сети. Короче, это записная книжка, которая может пригодится не только мне, но и моим коллегам.
воскресенье, 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