Итак, что на скринах:
- 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 и т.д.
Использованная литература:
- Очень важная информация: запуск приложений на устройствах без прав суперпользователя
- Beyond Linux From Scratch
- Gifsicle
- dwm
- Помогло решить одну проблему при сборке
- Помогло решить некоторые проблемы при сборке с помощью Android NDK, но в дальнейшем не понадобилось
>>> Просмотр (1280x1601, 1009 Kb)