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

Original author: NexusOneHacks.net
  • Translation
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.
Ads
AdBlock has stolen the banner, but banners are not teeth — they will be back

More

Comments 36

    +2
    хо-хо… попробую поставить на майлстоун.
      –1
      Шикарно, качаю. Еще бы образ без GUI, много места он занимает без толку.
        +2
        А сколько их в серверную стойку влезет?
          +6
          Можно сделать серверную стойку прямо из упаковки ) По аналогии с:
            +1
            Нормуль. Остается еще сделать ящичек для яйца Yota и отверстия для проводов питания. И пусть чекисты ищут серваки по чердакам.
          +1
          Генту бы собрать на нем =)
            +4
            Так и знал, что кто-нибудь про генту скажет :)
              +4
              Устареет телефончик к завершению установки…
                0
                Ну можно с помощью distcc на ПК скомпилить)
                  0
                  Не интересно :)
              0
              вопрос для тех, кто запускал: скорость работы как?) или это так, ради того, чтоб было?
                +1
                Судя по видео, с иксами тормозит оно. Хотя если сделать разрешение поменьше, то может тормозить будет тоже меньше…
                  0
                  без гуи как-то уныло) разве что под сервак юзать или под торрентокачалку) но это уже на грани бреда)))
                    0
                    Еще можно как компилятор использовать ;)
                    А если серьезно, то такая система идеально подойдет в том случае, если сломались все компьютеры в доме, а надо срочно чего-нибудь этакое сделать, для чего нужна десктопная ось. Например, страничку сверстать. Долго, неудобно, с матами, но можно :) Хотя, если умудриться еще и клавиатуру подцепить…
                      0
                      блютус как-то наверно возможно)
                0
                Под mielstone не подходит стартовый скрипт bootubuntu.
                Медитирую на mknod /dev/loop2 b 7 0
                Никогда не пользовался этой командой)
                  0
                  А что пишет?
                    0
                    1. system подмонтировано на /dev/block/mtdblock6
                    Лечится 2-м набиранием su.
                      0
                      Буфер глючит(

                      # mknod /dev/loop2 b 7 0
                      mknod /dev/loop2 b 7 0
                      mknod: /dev/loop2: Permission denied
                      # su
                      su
                      # mknod /dev/loop2 b 7 0
                      mknod /dev/loop2 b 7 0
                      # mount -o loop,noatime -t ext2 /sdcard/ubuntu/ubuntu.img /data/local/mnt
                      mount -o loop,noatime -t ext2 /sdcard/ubuntu/ubuntu.img /data/local/mnt
                      mount: No such device
                      # mknod /dev/loop2 b 7 0
                      mknod /dev/loop2 b 7 0
                      mknod: /dev/loop2: File exists
                      # mount -o loop,noatime -t ext2 /sdcard/ubuntu/ubuntu.img /data/local/mnt
                      mount -o loop,noatime -t ext2 /sdcard/ubuntu/ubuntu.img /data/local/mnt
                      ioctl LOOP_SET_FD failed: Device or resource busy

                      Остановился на этом.
                        0
                        через busybox
                        # alias _=busybox

                        # _ mount -o loop,noatime -t ext2 /sdcard/ubuntu/ubuntu.img /data/local/mnt
                        _ mount -o loop,noatime -t ext2 /sdcard/ubuntu/ubuntu.img /data/local/mnt
                        mount: can't setup loop device: No such file or directory

                        # ls /dev | grep loo
                        ls /dev | grep loo
                        loop2
                          0
                          А /sdcard/ubuntu/ubuntu.img и /data/local/mnt есть?
                            0
                            # cd /sdcard/ubuntu
                            cd /sdcard/ubuntu
                            # ls -l
                            ls -l
                            ----rwxr-x system sdcard_rw 1008 2010-07-08 21:12 bootubuntu
                            ----rwxr-x system sdcard_rw 102 2009-01-09 17:11 fsrw
                            ----rwxr-x system sdcard_rw 866 2009-03-13 15:09 mountonly
                            ----rwxr-x system sdcard_rw -2147483648 2010-07-06 04:37 ubuntu.img
                            ----rwxr-x system sdcard_rw 881 2010-07-05 23:52 ubuntu.sh
                            ----rwxr-x system sdcard_rw 420 2009-01-09 15:51 unionfs
                            # cd /data/local/mnt
                            cd /data/local/mnt
                            # pwd
                            pwd
                            /data/local/mnt
                              0
                              Эм… Тогда не знаю :(
                • UFO just landed and posted this here
                    +1
                    Это невозможно объяснить… :)
                    • UFO just landed and posted this here
                      0
                      Я думаю, что от менее тяжёлых систем типа puppy linux было бы намного больше толку.
                      • UFO just landed and posted this here
                        • UFO just landed and posted this here
                            –1
                            Вот так, с помощью нехитрых приспособлений, буханку белого (или черного) ХЛЕБА можно превратить в троллейбус… НО ЗАЧЕМ!?
                              0
                              Получить троллейбус из буханки гораздо выгоднее, чем получить какой-то бутерброд же!
                              0
                              Специально поставил на Desire рутованную прошивку, чтобы установить Ubuntu, а оказалось, что HTC сделали защиту, и не представляется возможным скопировать bootubuntu, fsrw, mountonly и unionfs в /system/bin.
                                0
                                Пидарасы Редиски! :)
                                0
                                Установил. И даже заработало ) Только пришлось поправить скрипты как на busybox, так и на install.sh. Только самая главная проблемма. Я не могу сделать apt-get install и иже с ними. У меня андроид-планшетка без 3g. Кто нибудь сталкивался?
                                  0
                                  Я правильно понимаю, вся убунта находится в loop файле с fs и вся работа идет в нем на флешке? А то у меня 18 мбайт свободных осталось на телефоне.
                                    0
                                    Да, так и есть. Плюс расходуется память телефона (под VNC сервер и запущенные программы).

                                  Only users with full accounts can post comments. Log in, please.