Недавно выяснилось, что при загрузке спомощью chroot скорость увеличивается в 2-3 раза по сравнению с загрузкой из бутлоадера, при этом все сервисы и библиотеки остаются на месте, что делает систему почти такой же как и maemo(в скорости, аппаратной функциональности и энергосбережении), вот некоторые преимущества:
Предостаточно :) Поэтому все всеми руками, ногами, хвостами, ушами за запуск через chroot.
Сначала нам нужно установить rootfs Mer'а по этой инструкции, если вы это уже сделали - смело продолжайте
После установки Mer'a вам нужно загрузиться в него и завершить начальную установку. Когда спросят имя пользователя, обязательно введите user !!
Всегда отслеживаете, в какой оси вы работаете! Иначе снесёте половину maemo…
Теперь подоготовим Maemo к запуску убунты
Расправляемся с правами
echo "Defaults env_check+=\"HOME DISPLAY\"" > /etc/sudoers.d/01sudo echo "Defaults env_keep+=\"HOME DISPLAY\"" >> /etc/sudoers.d/01sudo echo "Defaults env_reset" >> /etc/sudoers.d/01sudo echo "user ALL = NOPASSWD: ALL" >> /etc/sudoers.d/01sudo update-sudoers
Подключаем модули
insmod /mnt/initfs/lib/modules/2.6.21-omap1/mbcache.ko insmod /mnt/initfs/lib/modules/2.6.21-omap1/ext2.ko insmod /mnt/initfs/lib/modules/2.6.21-omap1/jbd.ko insmod /mnt/initfs/lib/modules/2.6.21-omap1/ext3.ko
Чистим мусор и создаём каталоги:
umount /mnt/mer rmdir /mnt/mer mkdir /mnt/ubu mkdir /home/user/Ubuntu mount /dev/mmcblk1p2 /mnt/ubu mkdir /mnt/ubu/home/user/Maemo mkdir /mnt/ubu/mnt/maemo mkdir /mnt/ubu/media/mmc1 mkdir /mnt/ubu/media/mmc2 rm /mnt/ubu/mer-armel-n8x0*
Замените mmcblk1p2 на свою партицию с Mer, обратите внимание что пользователь должен быть user, иначе решайте свои проблемы сами :)
Устанавливаем специальный пакет:
wget http://linux.kynpu.ru/ubu/easy_ubuntu.tar wget http://linux.kynpu.ru/ubu/9menu.tar tar xvf 9menu.tar -C / tar xvf easy_ubuntu.tar -C / rm easy_ubuntu.tar 9menu.tar
Что в нём содержится:
и другие полезные утилиты
После его установки нужно отредактировать конфиг /home/user/.chroot, измените mmcblk1p2 на вашу партицию с Mer.
Теперь делаем chroot, пока без иксов:
ubu su
Если выдало критическую ошибку - значит что-то вы упустили или неправильно сделали. Проверьте всё ещё раз, если ошибка останется - напишите на форум или мне лично
Все последующие пункты должны уже выполняться под chroot.
Во избежание путаницы:
rm -r /root ln -s /home/user /root passwd passwd user apt-get remove docpurge
докпург - зло.
Фан-арт:
wget http://linux.kynpu.ru/ubu/gio_bg.png mv gio_bg.png /usr/share/backgrounds/
Пока русского языка в системе нет, сбросим стандартную локаль
export LC_ALL=C export LANGUAGE=C export LANG=C
Отредактируем /etc/apt/sources.list (командой vi), он должен выглядеть вот так:
deb http://ports.ubuntu.com jaunty main restricted universe multiverse deb-src http://ports.ubuntu.com jaunty main restricted universe multiverse deb http://b-man.xceleo.org/repo/ubuntu-n8x0/ alpha contrib main non-free deb-src http://b-man.xceleo.org/repo/ubuntu-n8x0/ alpha contrib main non-free deb http://packages.tspre.org/ sid main contrib non-free deb-src http://packages.tspre.org/ sid main contrib non-free
Установим GPG-ключ от tspre.org:
wget http://packages.tspre.org/repo.key apt-key add repo.key
Готово!
apt-get update apt-get upgrade
Если потребуются пакеты из maemo - добавляйте репы из maemo, не стесняйтесь :)
Перед тем как генерировать локаль, надо установить девайс в R&D mod(это даже полезно) по этой инструкции: R&D mod
locale-gen ru_RU.UTF-8 en_US.UTF-8
после чего в файле /etc/locale.alias меняем ISO-8859-5 и ISO-8859-1 на UTF-8, сделать это можно командами
sed -i 's/ISO-8859-1/UTF-8/g' /etc/locale.alias sed -i 's/ISO-8859-5/UTF-8/g' /etc/locale.alias
И, наконец,
apt-get install language-pack-ru
Теперь нужно перезайти
exit closechroot ubu su
Если команда locale не выдаёт ошибок и везде стоит ru_RU.utf8 то значит пункт выполнили
Лучше не делать, если не знаете чес кончится
Первая волна:
apt-get remove hildon* matchbox-keyboard
Вторая волна:
apt-get autoremove
Возвращаем то что смыло:
apt-get install clipboard-manager daemon hald-addon-bme rcrefresh waitdbus
Чистим кеш:
apt-get autoclean
После всех шагов система должна весить около 300мб, не считая /var Проверить можно командой
du -csh /*
Установим графическую оболочку и кучу полезных пакетов:
apt-get install lxde lxlauncher human-netbook-theme human-icon-theme roxterm aptitude gnome-alsamixer libgtkstylus xsession-gtkstylus moc tablet-backlight alltray midori # google-gadgets-qt bubblefishymon tea vim abiword pidgin epiphany-browser
Всё что после # - мой выбор(моё предпочтение), удалите этот символ и скопируйте всю строку если не придумали ничего получше :) Вкратце объясню что каждый пакет делает:
~/.bashrc исполняется при запуске командной оболочки bash, profile используется только для интерактивных шеллов, но нам пофиг. В этих файлах мы экспортируем нужные нам переменные окружения и, в качестве примера, алиасы к некоторым командам
Во избежание «weird things» удалим /etc/profile, /home/user/.profile и /home/user/.bashrc
Вот мой /etc/profile:
#!/bin/sh
cd ~
#не логируем повторяющиеся команды в .bash_history
export HISTCONTROL=ignoredups
shopt -s checkwinsize
[ -x /usr/bin/lesspipe ] && eval "$(lesspipe)"
#Заголовок
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'
export PROMPT_COMMAND
# Закомментируйте, если у вашего терминала светлый фон
BRIGHT=";1"
PS1="\[\033[0${BRIGHT}m\][\[\033[34m\]\u\[\033[0${BRIGHT}m\]|\[\033[36m\]\w\[\033[0${BRIGHT}m\]]\[\033[0m\] "
PS2="\[\033[0${BRIGHT}m\]>\[\033[0m\] "
export PS1 PS2
alias pic="gpicview $1"
alias ed="leafpad $1"
alias pl="mplayer $1"
alias ai="apt-get install $1"
alias as="apt-cache search $1"
alias ar="apt-get remove $1"
alias au="apt-get update"
alias ac="apt-get autoclean"
export PATH="$PATH:/usr/local/bin/:/usr/local/games:/usr/games"
[ "x$DISPLAY" != x ] || export DISPLAY=:0.0
export LC_ALL=ru_RU.utf8
export LANG=ru_RU.utf8
export LANGUAGE=ru_RU.utf8
export GTK_MODULES=libgtkstylus.so
export SAL_USE_VCLPLUGIN="gtk"
export OOO_FORCE_DESKTOP="gnome"
export SAL_NOOPENGL="true"
export OOO_DISABLE_RECOVERY="true"
export SAL_DISABLE_SYNCHRONOUS_PRINTER_DETECTION="true"
После чего делаем
ln -s /etc/profile /home/user/.bashrc
И чтобы нас не доставали, снимаем пароль с sudo:
rm -r /etc/sudoers.d/* echo "user ALL = (ALL) NOPASSWD: ALL" > /etc/sudoers.d/01sudo update-sudoers
Теперь, для получения рут прав используйте
sudo su
Или из под Maemo
ubu sudo su
Перезаходим:
exit closechroot ubu sudo su
Заметили? Пароль не требуется и приглашение цветное! :)
Проделайте инструкции http://n8xx.com/subject-3445-matchbox-keyboard-xbindkeys.html
в убунте и подправьте скрипт /usr/bin/ubu-switch в Maemo:
.... ubu "/etc/init.d/xbindkeys start; ubu /etc/init.d/matchbox-keyboard start" ubu startlxde ubu "/etc/init.d/matchbox-keyboard stop; ubu /etc/init.d/xbindkeys stop" ....
Раскладки клавиатур хранятся в /usr/share/matchbox-keyboard/ и удобны для редактирования
Клавиатура показывается/скрывается командой /bin/mkt. Это можно прописать в .xbindkeysrc (как показано ниже), например на клавишу минус.
Для правильного запуска приложений Maemo из убунты воспользуемся тем же методом :)
Делаем в убунте
wget http://linux.kynpu.ru/ubu/mmo.tar tar xvf mmo.tar -C / rm mmo.tar
Всё. Знакомые qmount, qumount, closechroot, qchroot и mmo вместо ubu. Всё делается так же.
mmo sudo su
это рутовый шелл
mmo osso-xterm
это сами знаете что
Эта часть - личное дело каждого, но мне хотелось бы выложить свои конфиги :) Дальше небольшой списочек - он должен помочь вам в настройке. Где-то я даже прилеплю архивы со своими конфигами.
Openbox - «движок» lxde. У него большой конфиг, в котором прописаны все настройки, сочетания клавиш, обработки событий
Конфиг: /home/user/.config/openbox/lxde-rc.xml
Возможен глюк при включении апплета volume.
Если запороли lxpanel - отредактируйте файл /user/home/.config/lxpanel/LXDE/*
Он же pcmanfm в режиме демона. Ни в коем случае не ставим галку «Show Debian menu»
Отличный плеер. Конфиг:
wget http://linux.kynpu.ru/ubu/moc.tar tar xvf moc.tar -C / rm moc.tar
Конфиг хранится в /home/user/.moc/
Куча полезной инфы, дефолтный конфиг и список действий клавиш хранятся в /usr/share/doc/moc/
Впрочем, без этого пункта всёравно всё работает :) Но если мы хотим добиться максимального удобства, придётся прибегнуть к хитрости.
Предпологается, что у вас есть свой конфиг xkb клавы(вы же редактировали хоть раз файл nokia_vndr/rx-44?) и вы не используете Nokia SU-8W.
Делать надо в Maemo!
cd /usr/share/X11/xkb/symbols/nokia_vndr/ rm su-8w cp rx-44 su-8w sed -i 's/su-8w/rx-44/g' /usr/share/X11/xkb/symbols/nokia_vndr/su-8w
Затем редактируем su-8w:
modifier_map mod1 { Alt_R }; сами найдёте кудаделаете любые удобные изменения. Если ничего не ясно, вот мой конфиг:
http://linux.kynpu.ru/ubu/su-8w.tar
разумеется все клавиши в нём подстроены под меня
Когда закончите, сохраните и выполните
setxkbmap -model nokiasu8w -layout us -keycodes evdev
Проверим:
ubu xev
Всё ок? Возвращаем обратно:
setxkbmap -model nokiarx44 -layout us -keycodes evdev
Зачем всё это нужно? Вот зачем: при старте убунты скрипт выполняет команду setxkbmap и переключает раскладку клавиатуры. После завершения работы в убунте - возвращает раскладку обратно.
Окна можно таскать с зажатым Alt_L :) Вместо F6 роль клавиши фуллскрина играет F11
Одна из самых полезных штук, позволяет назначить действие на любую клавишу или сочетание клавиш
По сути у вас уже стоит xbindkeys, он поставляется комплектом с matchbox клавиатурой
Вот к примеру мой /home/user/.xbindkeysrc:
########################### # xbindkeys configuration # ########################### # # Version: 0.1.3 # # If you edit this, do not forget to uncomment any lines that you change. # The pound(#) symbol may be used anywhere for comments. # # A list of keys is in /usr/include/X11/keysym.h and in # /usr/include/X11/keysymdef.h # The XK_ is not needed. # # List of modifier (on my keyboard): # Control, Shift, Mod1 (Alt), Mod2 (NumLock), # Mod3 (CapsLock), Mod4, Mod5 (Scroll). # # Another way to specifie a key is to use 'xev' and set the # keycode with c:nnn or the modifier with m:nnn where nnn is # the keycode or the state returned by xev # # This file is created by xbindkey_config # The structure is : # # Remark # "command" # m:xxx + c:xxx # Shift+... #keystate_numlock = enable #keystate_scrollock = enable #keystate_capslock = enable #ToggleKBD "/usr/bin/mkt" F8 #XKill "/usr/bin/xkill" Control+F7 #XTray "/usr/bin/alltray" Control+F8 #Mixer "/usr/bin/gnome-alsamixer" Control+F11 #Maemo_menu "mmo 9menu -geometry +30+240 -label 'Maemo' -file /home/user/.maemo-menu &" Control+Menu # # End of xbindkeys configuration
Просто меню с простым конфигом. Запускается из маемо и запускает заданные приложения.
Пример конфига поставляется вместе с easy-ubuntu. Лежит тут: /home/user/.maemo-menu в маемо
Запускается сочетанием клавиш Control+Menu или командой
mmo 9menu -geometry +30+240 -label 'Maemo' -file /home/user/.maemo-menu &
В официальных репах отсутствует, придётся брать из маемо(может оно и к лучшему):
mv /etc/apt/sources.list /etc/apt/source2 echo "http://repository.maemo.org/extras-devel/ diablo free non-free" > /etc/apt/sources.list apt-get update && apt-get install mplayer echo "http://mirror.yandex.ru/debian sid main non-free contrib" > /etc/apt/sources.list apt-get update && apt-get install smplayer rm /etc/apt/source2 /etc/apt/sources.list && apt-get update
Всё. Рабочий mplayer и красивенький qt'шный smplayer :)
less /var/lib/dpkg/info/<имя_пакета>.list/var/lib/dpkg/info/<имя_второго_пакета>.list и он будет заменён
©Xlab
По всем вопросам писать на форум или мне :)
P.S. Мнимый брэнд GinkOs - флешмоб, взявший начало отсюда (само название возникло вне форума, в личной переписке, первое публичное заявление - http://4pda.ru/forum/index.php?s=&showtopic=110438&view=findpost&p=2451031) знатный холиварчег тогда устроили ;)