Pull to refresh

Как установить Ubuntu на ваш Nexus One

Lumber room
Translation
Original author: NexusOneHacks.net
image



Это руководство — для тех, кто хочет установить Ubuntu в качестве подсистемы на свой Nexus One или любое другое устройство с Android (с открытыми правами рута, конечно). Я постарался сделать его как можно более простым, чтобы ни у кого не возникло вопросов.
Как видите, я использовал Nexus One с правами рута. На других устройствах с Android процесс установки может отличаться, но незначительно. В конце концов, не попробуешь — не узнаешь ;)
Также я работаю над запуском Ubuntu на моем HTC Evo 4G и чуть позже опубликую руководство по запуску на сайте HTCEvoHacks.com
Вы можете также попробовать запустить Ubuntu в качестве основной системы на Nexus One или другом Android-устройстве, но это скорее всего будет означать невозможность использования аппарата в качестве телефона, да и камера может перестать работать. Наиболее практично будет запустить Ubuntu поверх Android, что я и покажу.
Установка Ubuntu ни в коей мере не повлияет на Android. Ubuntu будет запущена в фоновом режиме, в виде приложения для Android VNC.
Зачем вообще нужно устанавливать Ubuntu поверх Android? А затем, что можно будет запускать приложения Linux на вашем телефоне! К примеру, это может пригодиться программистам — вряд ли кто-то будет компилировать x86 приложения под Android, а вот под Ubuntu это вполне возможно. Да и при желании телефон можно превратить в компактный веб-сервер.
Да и причин, по которым нужно устанавливать именно Ubuntu именно на Nexus One нет, так что можете поэкспериментировать с другими операционками и устройствами. Только учтите, что в большинстве устройств на Android используются процессоры ARM, а значит, на них системы под платформы x86 или x86-64 запустить нельзя.

Примечание переводчика: я не стал переводить отдельные куски статьи, типа «что такое chroot?». Думаю, это и так всем понятно.

Итак, как же все-таки установить Ubuntu на Android?


Прежде всего, скачайте ubuntu.zip (отсюда или отсюда) и распакуйте его.
1. Вам нужны будут права рута на вашем устройстве. Если вы не знаете, что это такое и как их получить, погуглите немного (для Nexus One это описывается здесь).
2. Надо будет установить последнюю версию Busybox по этому руководству.
3. Вам понадобится Android SDK, который вы можете скачать отсюда.
Скопируйте файлы из архива на карту памяти телефона в папку «ubuntu», после чего отмонтируйте на устройстве карту памяти (Turn off USB storage).
image
4. Убедитесь, что на устройстве включен режим отладки USB (настройки -> приложения -> разработка), а сам зверек подключен к компьютеру по USB.
5. Теперь нам надо будет запустить консоль ADB. Откройте каталог с Android SDK в консоли, перейдите в директорию tools и выполните команду «adb shell» (или «sudo ./adb shell», если у вас Linux). Если вы увидели символ #, то все сделали правильно.
image
6. Введите команду «su» для входа в режим рута. Если оно ругнется и выведет ошибку, то это значит, что вы все-таки не получили права рута на своем устройстве и вам надо погуглить на эту тему.
7. При помощи команды «cd /sdcard/ubuntu» перейдем в нашу папку с Ubuntu и запустим установку командой «sh ./ubuntu.sh».
image
8. Когда программа заверит работу и перед вами предстанет пустая строчка со знаком # в начале, выполните команду «bootubuntu» для запуска Ubuntu.
image
Если вы видите строчку типа «root@localhost:/#», то вы все сделали верно и запустили-таки Ubuntu! А если что-то пошло не так и вам вывело целую кучу ошибок, то не пугайтесь — у меня так было два дня подряд, так что вы не одиноки. Просто попробуйте повторить все действия, начиная с шага 5. Правда, если у вас не Nexus One, то может и не получиться (к примеру, я до сих пор не могу добиться загрузки в Ubuntu на своем HTC Evo 4G).

Как запустить X11


Вообще, я предпочитаю командную строку, потому что GUI жрет слишком много памяти. Но GUI дает возможность использования графических приложений, так что будем его запускать.
9. Первым делом установим Android VNC Viewer (скачать его можно тут). Если вдруг не умеете устанавливать apk приложения, то воспользуйтесь программой Installer из маркета.
10. Для Ubuntu тоже надо установить пару программ (через терминал):
apt-get update
apt-get install tightvncserver lxde

image

image
11. Настроим параметры графического режима Ubuntu (также через терминал):
export USER=root
vncserver -geometry 1024x800

Разрешение экрана можно указать любое другое.
Когда у вас попросят пароль, можете указать какой хотите, он нужен будет только для подключения к рабочему столу Ubuntu.
image
12. Теперь надо просто написать вот это:
cat > /root/.vnc/xstartup
#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
icewm &
lxsession

После чего дважды нажать Ctrl-D и один раз Enter.
image
13. На устройстве откройте приложение Android VNC. В нем напишите ваш пароль (который вы писали в шаге 11) и укажите порт 5901.
14. Тыкните кнопку Connect и вуаля! перед вами рабочий стол Ubuntu :)
15. Чтобы можно было запускать рабочий стол без дополнительных манипуляций с консолью, выполним в терминале вот эти команды:
cat > front
export USER=root
cd /
rm -r -f tmp
mkdir tmp
cd /
vncserver -geometry 1024x800

Разрешение указываем опять любое понравившееся, а после выполнения два раза жмем Ctrl-D и один раз Enter.
image
После этого выполним еще две команды:
cat front /root/.bashrc > temp
cp temp /root/.bashrc

image
Все, теперь подключение к рабочему столу Ubuntu будет доступно всегда, если Ubuntu запущена.

Как запускать Ubuntu в следующий раз


В эмуляторе терминала под Android напишите это:
su
bootubuntu


Если у вас есть проблемы с загрузкой


Если у вас возникли какие-то проблемы с загрузкой Ubuntu, то попробуйте скачать обновленный файл bootubuntu и через консоль ADB выполнить эти команды для его установки:
su
cd /sdcard/ubuntu
sh ./ubuntu.sh

После чего попробуйте запустить Ubuntu.

Спасибы


Спасибо разработчикам с XDA Developers за образ Ubuntu ARM для HTC HD2.
Огромное спасибо AndroidFanatic за объяснение, как запустить X11 через VNC.
И спасибо Saurik (Jay Freeman) за скрипт Debian G1, который помог запустить Ubuntu на Nexus One.
Tags:
Hubs:
Total votes 49: ↑43 and ↓6 +37
Views 8.8K
Comments Comments 36