LINUX.ORG.RU

Android & Xserver & dwm

 , ,


1

0

Итак, что на скринах:

  • 1
    • Android 4.1.1
    • dwm 6.1
    • Обоину рисует gifview из gifcicle 1.83
  • 2
    • Android 4.1.1
    • mrxvt
    • gifview

Планшет - PoacketBook SurfPad 2

История
Благодаря очень хорошим людям, мы имеем X'ы на Android'е: вот (я использовал его) и вот. А еще есть превосходный эмулятор терминала для Android'а.

Я решил собрать несколько приложений, которые работали бы нативно на Android'e и спользовали эти самые X'ы. Для кросс-компиляции я выбрал Android NDK, а в качестве первого приложения - оконный менеджер dwm. Но у меня нет прав суперпользователя на планшете (а получать не слишком хочется). Недолгий гуглинг дал ответ: программы надо скопировать в папку с данными терминала (в моем случае, это /data/data/jackpal.androidterm/shared_pref), на которую тот самый терминал имеет все права, а затем оттуда их пускать. Прежде чем собирать dwm, нужно было собрать X'овые библиотеки.
И тут-то началось веселье... Там не собирается, тут не собирается; то здесь, то там вываливается с ошибкой... Xlib'у нужен xproto; а еще xcb; а ему нужно что-то еще...
В результате до меня дошло, что можно использовать Beyond Linux From Scratch. На N'ый раз дело пошло на лад - библиотеки собрались и собрался dwm. На планшете быстро набираю LD_LIBRARY_PATH=lib ./dwm и...
Вываливается с ошибкой unable to locate 'mbtowc'.
Fail. Epic Fail.

Я «психанул», поставил g++-4.7-arm-linux-gnueabi и прочее и решил собрать все это дело статически. На этот раз все прошло идеально гладко. Базовые X'овые библиотеки собраны по Beyond Linux From Scratch и dwm также статично с ними собран. Далее, я догадался использовать Xeyphyr и qemu-arm для тестинга, дабы не перекидывать файлы на планшет, а затем вводить длинные команды. И, о чудо! dwm запустился, но... Вывалился с ошибкой unable to locate color "#444444". Я открыл config.h и выпилил все шестнадцатеричные обозначения цветов, заменив их банальными «black», «blue» и «white».
И, внезапно, все заработало! И в qemu-arm'е с Xephyr'ом и на планшете.
Win. Epic Win.

Далее, я решил собрать несколько приложений, а именно терминал и image viewer. После некоторых поисков остановился на этом (ссылка на вопрос в форуме, в самом конце).

Итог
Вспоминая эту картинку, хочется задать вопрос: зачем это все нужно?
Первая причина: опыт.
А вторая: мне так не хватало многооконности на планшете.

Я заинтересован! Где скачать?

Как установить:

  • Установите Android Terminal Emulator
  • cd /data/data/jackpal.androidterm/shared_pref
  • Скопируйте директорию androidx в текущую директорию
  • Перейдите в нее
  • Запустите X server
  • Введите export DISPLAY=127.0.0.1:0
  • Затем запускайте dwm, mrxvt и т.д.


Использованная литература:

>>> Просмотр (1280x1601, 1009 Kb)



Проверено: JB ()
Последнее исправление: JB (всего исправлений: 4)

Ответ на: комментарий от Deleted

Ну, можно на компьютере сделать

DISPLAY=[IP планшета]:0 [приложение]

и спокойно работать с этим приложением на планшете.
В конкретно этом случае - многооконность.
Но я думаю, что это далеко не единственное применение.

qzxcvbnm
() автор топика
Ответ на: комментарий от frozenix

Ну, хотелось поэкспериментировать.

qzxcvbnm
() автор топика
Ответ на: комментарий от Aceler

Requires root: Yes, because it needs to run debootstrap, create dirs in /, mount/umount, etc.

Да, тут я лопухнулся. Вроде бы он нужен для всех chroot систем. Да и жизнь без рута скучна :)

frozenix ★★★
()
Ответ на: комментарий от Aceler

Если я правильно понял ваш вопрос, то:

u0_a84@android:/ $ ls -l /dev/pts
crw------- root     root     136,   0 2014-05-11 08:47 0
crw------- root     root     136,   1 2014-05-11 08:48 1
crw------- root     root     136,   2 2014-05-11 08:48 2
crw------- u0_a84   u0_a84   136,   3 2014-05-15 23:24 3
crw--w---- u0_a84   u0_a84   136,   4 2014-05-15 20:49 4
crw------- u0_a84   u0_a84   136,   5 2014-05-15 23:24 5
u0_a84@android:/ $
Если открыть еще одну вкладку в Android Terminal Emulator, то появится 6 и т.д. Читать/писать в них можно (в 3,4 и 5 в примере).

qzxcvbnm
() автор топика
Ответ на: комментарий от qzxcvbnm

У меня в чруте из-под lil gdebi не работали.

Aceler ★★★★★
()

mrxvt? Отличный терминал... был, поддержку utf так и не сделали. Локаль в системе не юникодная, что-ли?

TuxR ★★★★
()

мне так не хватало многооконности на планшете.

Google вроде бы идет в сторону адаптации Android под нетбуки. Может и доживем до полноценной «многооконности». Пока есть какие-то костыли в последних Galaxy Tab и Note.

tlx ★★★★★
()

вот почему про такие планшеты я узнаю токо отсюда.

список бы таких игрулек.

eR ★★★★★
()
Ответ на: комментарий от TuxR

Я, к сожалению, затрудняюсь ответить на ваш вопрос. Скажите, пожалуйста, как это можно узнать? Хотя есть некоторая информация:

  • При запуске dwm появляется:warning: no locale support
  • Вывод export:
    ADOBE_FONTS_DIR
    ANDROID_ASSETS
    ANDROID_BOOTLOGO
    ANDROID_DATA
    ANDROID_PROPERTY_WORKSPACE
    ANDROID_ROOT
    ANDROID_SOCKET_zygote
    ASEC_MOUNTPOINT
    BOOTCLASSPATH
    EBOOK_PAGE_VISIBLE_NUMBER
    EXTERNAL_STORAGE
    HOME
    HOSTNAME
    LD_LIBRARY_PATH
    LOOP_MOUNTPOINT
    MKSH
    PATH
    PS1
    RANDOM
    RK_ADEPT_ACTIVATION_FILE
    RK_ADEPT_DEVICE_FILE
    RK_ADEPT_DEVICE_SALT_FILE
    RK_ADEPT_DEVICE_TYPE
    RK_ADOBE_DE_DOC_FOLDER
    RK_ADOBE_DE_MOBILE
    SECOND_VOLUME_STORAGE
    SHELL
    TERM
    THIRD_VOLUME_STORAGE
    USER
    
  • После запуска mrxvt (но, похоже, только при запущенном dwm'е):
    ...
    BadLength
    BadLength
    BadLength
    BadLength
    BadLength
    BadLength
    BadLength
    BadLength
    BadLength
    BadLength
    ...
    
    И в окне терминала некоторые символы не отображаются.
qzxcvbnm
() автор топика
Ответ на: комментарий от tlx

Может и доживем до полноценной «многооконности»

Надеюсь...

qzxcvbnm
() автор топика
Ответ на: комментарий от zorg

Иксы на андроиде это круто.

Согласен, большой плюс портировавшим.

qzxcvbnm
() автор топика
Ответ на: комментарий от tlx

повторюсь в сотый раз xposed + xmultiwindows
хоть на miui запускай

ubuntuawp ★★
()
Ответ на: комментарий от autonomous

я имею ввиду зачем их обрабатывать на андроиде?

А мне тащить в поездку ещё и ноубтук, чтобы иметь возможность обработать свеженащёлканные фотографии? Предпочитаю клавиатурный планшет — и меньше, и легче, и живёт дольше, только андроид закопать.

Aceler ★★★★★
()
Ответ на: комментарий от qzxcvbnm

При запуске dwm появляется:warning: no locale support

И в окне терминала некотрые символы не отображаются

Что выводит команда locale? Чтобы все работало в таком терминале, в системе должно быть например ru_RU.KOI8-R, но это уже лет 5 как несовременно. Поддержки юникода там нет.

TuxR ★★★★
()
Ответ на: комментарий от TuxR

Что выводит команда locale?

u0_a84@android:/ $ locale
/system/bin/sh: locale: not found
u0_a84@android:/ $ busybox locale
locale: applet not found
qzxcvbnm
() автор топика
23 июня 2014 г.

Мсье знает толк, да :)

unfo ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.