1 (04.09.2011 22:16:54 отредактировано Blayder)

Тема: Что я наделал со своим зверьком...

За последню неделю много чего делал со своим N900. Не блага ради или быстроты, а просто ради интереса и любопытства. Конечно есть какой-то и положительный эффект, но все это далось не легко и не просто...Опишу все, что я наделал со совим зверьком!
Поскольку вендой я совсем не пользуюсь, все манипуляции производились разумеется на GNU/Linux, а конкретне - ArchLinux...

1. Ext4 на встроенном eMMC.

Сперва первым шагом было избавление от vfat раздела и создание на флэшке только swap раздела и все остальное в ext3 под /home. Самый просто способ я нашел, используя миговское ядро для восстановления и загрузка его в рам тела с помощью флэшера.. Ибо на тот момент у меня еще небыло backupmenu и я даж не знал, что в нем можно тоже выдать компу весь eMMC и это было бы в разы проще и не потребовался бы flasher big_smile. Эта операция прошла очень просто. Через GParted снес имеющиеся разделы, создал большущий раздел для /home и обычные 768мб swap. Создал ext3 на большом разделе, скинул назад все папки и после этого телефон сразу и безболезненно загрузился.Был правда один нюанс со встроенным файловым менеджером, но об этом позже.

В общем пришла пора мигрировать на ext4. Однако тут есть пара неприятных нюансов:
1) ext4 поддерживается только в kernel-power и никак не в заводском ядре... что накладывает некоторые проблемы...
2) Требуется переписывать загрузочные скрипты и менять все упоминания ext3 на ext4 для раздела /home
3) журнал надо обязательно выключать, дабы сэкономить жизнь флэшки, но это несет риск потери незаписанных данных при спонтанном выключени устройства.

"Волков бояться - в лес не ходить!" (с) русская народная пословица. вроде... tongue

С редактированием скриптов возник у меня один нюанс - я никак не мог понять решения нокии генерировать fstab через еще один скрипт (genfstab.awk). В общем я сделал так - из скрипта rcS-late вырезал весь код, использующий genfstab.awk и заменил его обычными echo с нужными мне строками fstab. Стало проще изменять его структуру и маневрировать разделами...
Скрипт rcS-late был изменен так, что fstab создавался прям в нем, так же все упоминания ext3 были заменены на ext4. Дальше выключение, загрузка backupmenu (на тот момент я его уже поставил - и не зря, просто мощнейшая штуковина!), доступ к eMMC и на линухе уже переформатируем раздел в ext4. Тут из-за пару статей, о том, как вырубить журнал - я нарвался на очень большую проблему, после которой тело находилось в постоянном ребуте, но решение которой оказалось элементарным и простым:
журнал вырубается так:

tune2fs -o journal_data_writeback /dev/sdd1

Это выставляет "пометку" для ОС, что монтировать ФС надо без журнала..
/dev/sdd1 - это так  у меня в линухе появляется emmc раздел для /home.
А дальше уже на самом теле в опциях монтирования в fstab указвыается data=writeback.
И вуаля - /home теперь в ext4. В качестве бонуса - лучше скорость чтения/записи, нежели у ext3, но с добавленным риском утери незаписанных данных при спонтанном выключении девайса...
Хотя ext3 монтируется с точно таким же араметром и сомневаюсь, что у него дела в этом плане обстоят лучше tongue

Проблема, всплывающая при отсутствии примонтированного отела MyDocs - в файловом менеджере да и почти во всех далогах открытия файла - будет видна только карта памяти...
Цивильным путем я решить эту проблему не смог, поэтому сделал оч простой костыль...
1) Создал файлик на 512кб в корне (/n900) командочкой

dd if=/dev/zero of=/n900 bs=1k count=512

Дальше его надо примонтировать, как диск, дя этого сперва делаем так:

losetup /dev/loop0 /n900

теперь нужно создать файловую систему на нашем новом "диске".
Я выбрал ext2 - чтоб можно было создать симлинк на домашний каталог

mkfs.ext2 /dev/loop0

и все - теперь монтируем:

mount /dev/loop0 /mnt

Теперь можно в этом диске создать симлинк на домашний каталог и добавить все это дело в rcS-late, чтобы автоматически создавался loop0 и монтировался в нужный нам каталог. Лично я монтирую его в /media/n900 и теперь в файловом менеджере будет карта памяти и эта примонтированная папка.(последний скрин в конце поста)

2. cgroups и волшебный патч.

Может многие, кто увлекается линуксом, читали про вошебный 200 строчный патч, повышающий отзывчивость системы при нагрузках. А так же про его альтернативу в 4 строчки с использованием cgroups. Так вот, бродя по просторам вселенной, а точнее talk.maemo.org - там же нашел вариант для нашей N900 с его применением. Судить пока об улучшении сложно. Так-то патч работает, вроде местами становится лучше, но нифига не ясно. Может просто это эффект плацебо...

3. stripe swap 768+768

Вроде вся фишка в использовании одновременно двух swap разделов. Дело вовсе не в увеличенном обьеме,,а именно в том, что используется одновременно 2 swap раздела, что немного повышает скорость скидывания в него ненужной памяти, а так же наоборот - при чтении из него обратно в память. Информация по этой теме была найдена, разумеется, на talk.maemo.org в данной теме И само собой, для того, чтобы все это работало при каждой загрузке - надо все эти изменения занести в rcS-late.

4. BASH вместо busybox для user и root.

Следующим шагом было осущствление давней затеи - использовать bash как дэфолтный шэл вместо busybox. Само собой для этого надо было установить собственно сам bash и gnu утилиты для пущей радости! Дальше танцы, пляски с бубном и в итоге сладкий бонус, который нам дают bash и утилиты GNU - красивое приветствие терминала big_smile, цветной вывод ls и прочие пряности и сладости.

Для установки BASH требует установить таковой из репозиториев - там их несколько - bash, bash3, bash4
я ставил просто bash:
Все операции выполняются с правами root! Будьте внимательны - ошибки и можно получить кирпич, вместо телефона!

apt-get install bash
apt-get install coreutils-gnu

Перед тем, как продолжать, рекомендую в терминале проверить работоспособность баш вводом команды:

/bin/bash

Если все впоряде, вы должны увидеть приветсвие баша, тогда пишем exit и продолжаем!
дальше следовательно надо изменть наш дефолтный шелл:

usermod -s /bin/bash user
usermod -s /bin/bash root

сохраняемся и можно перезапустить терминал.

В конфиг /etc/bashrc следует добавить новую переменную пути, чтоб использовать по умолчанию утилиты GNU

export PATH="/usr/bin/gnu:/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/bin/X11"

Конфиг для баша создается в /etc/bashrc, а дальше для пользователя и рута делается симлинк

ln -s /etc/bashrc /home/user/.bashrc
ln -s /etc/bashrc /root/.bashrc

А в конец файла /etc/profile добавить строку

source /etc/bashrc

и желательно перезагрузиться.

После этого всего последовало написание .bashrc с красивым приветствием.

+ открыть спойлер

https://lh6.googleusercontent.com/-FItwSiqJ7ck/Th18wJw8PZI/AAAAAAAAAUw/VrZ6cORWycQ/s800/n900.png

И вуаля - bash по дэфолту, утилиты gnu и просто красотище!(смотрите ниже bashrc)

Делается так, ибо PS1 для обоих одинаков. Если хотите совсем разные, то для каждого надо делать свой в домашнем каталоге, либо же есть и другие варианты, но это уже каждый для себя найдет сам.


5. Как бы получить права root через sudo без сторонних утилит.

Дальше мне захотелось использовать встроенный sudo по прямому назначению, а не всякие rootsh и sudser  Покопавшись по файлику sudoers понял - что некий скрипт update-sudoers порти весь шоколад и пишет в /etc/sudoers кучу ереси. Методом проб и ошибок нашел вырный способ это похабство прекратить:
внести в файл /etc/sudoers 2 красивых строчки с правами для root и user на выполение всего и вся без пароя, а так же очистить скрипт update-sudoers, ибо ели его нету - некоторые скрипты установки/удаления программ начинают матюкаться и не хотят работать.. а так он есть, исполняем, но пуст. и теперь работает стандартный вариант debian/ubuntu для получения прав рута:
1) либо просто - sudo <programm>
2) либо для перехода под root - sudo -i или sudo su
- Говорят sudo -i правильней...

Распишу этот пункт поподробней, ибо смотрю некоторым стало интересно.

- - - - - - - - - - -!!!!!!!!!!     ОПАСНО     !!!!!!!!!!- - - - - - - - - - -

ЕСЛИ ВЫ ГДЕ-ТО ОШИБЕТЕСЬ!!!!! БЕЗ БЭКАПА ROOTFS ВЫ УЖЕ НИКОГДА НЕ ПОЛУЧИТЕ ПРАВА РУТА И ПРИДЕТСЯ ПЕРЕПРОШИВАТЬСЯ!!!!! ФУНКЦИОНИРОВАНИЕ С BUSYBOX НЕ ПРОВЕРЕНО!!!!! ЛУЧШЕ НЕ ПРОБУЙТЕ, ЕСЛИ У ВАС НЕТУ BACKUPMENU и НЕТУ СВЕЖЕНЬКОГО БЭКАПА ROOTFS!!!!!!

Для того, чтоб это провернуть - изначально всеравно надо rootsh, чтоб изменить файл sudoers и update-sudoers. Значится делаем так с правами рут, иначе не выйдет:

echo "" > /usr/sbin/update-sudoers
echo "root ALL = (ALL) NOPASSWD: ALL" > /etc/sudoers
echo "user ALL = (ALL) NOPASSWD: ALL" >> /etc/sudoers
chmod 0440 /etc/sudoers
chown root:root /etc/sudoers

Далее требуется ребут и можно спокойно удалять rootsh и sudser.

- - - - - - - - - - -!!!!!!!!!!     ОПАСНО     !!!!!!!!!!- - - - - - - - - - -

но вроде должно быть окей...

6. Подправленная раскладка клавиатуры

Подправил клавиатурную раскладку, добавив на неё <, >, |, {, }, [, ], Page Up, Page down, Home, End. В русском варианте на стрелочках буквы и стрелки работают с нажатым Ctrl.
В аттачменте 2 файлика, которые пришлось изменить:
/usr/share/X11/xkb/types/nokia - В нем пришлость скостылить вариант для стрелочек с биндом через Ctrl, ибо по стандарту для них есть только 2 уровня, дабы оставить рабочим выделение с зажатым шифтом, и добавить еще 6 уровней, ибо иначе по ctrl+space не переключается  на 5й уровень
/usr/share/X11/xkb/symbols/nokia_vndr/rx-51 - собсна сам конфиг раскладки.

П.С.Ниже в спойлерах измененный rcS-late, bashrc, nokia, rx-51 и несколько скринов.
Выкладываю свой измененный /etc/event.d/rcS-late скрипт

+ /etc/event.d/rcS-late
description "late rcS actions"

start on started hal
stop on stopping hal

console none

script
    #mount /home; fix ext4 and retry mounting if 1st attempt fails
    mount_home ()
    {
    /bin/mount /home && grep -q "/home ext4 rw" /proc/mounts
    if [ $? -eq 0 ]
    then
      return 0
    else
      grep -q "/home ext4 ro" /proc/mounts
      if [ $? -eq 0 ]
      then
        umount /home
      fi
      HOME_DEV=`grep "/home ext4" /etc/fstab | cut -d' ' -f1`
      fsck.ext4 -y $HOME_DEV >> /var/lib/fsck_ext4_home.log 2>&1
      sync
      /bin/mount /home && grep -q "/home ext4 rw" /proc/mounts
      return $?
    fi
    }

    ACT_DEAD=0
    HOME_MOUNTED=0
    
    #check act_dead
    if [ -e /tmp/ACT_DEAD ]; then
      ACT_DEAD=1
    fi

    # Generate fstab and mount /home
    . /etc/default/mount-opts

    fstab=/etc/fstab
    tmp_fstab=/tmp/fstab

#echo "Defaults env_check+=\"HOME DISPLAY\""
#echo "Defaults env_keep+=\"HOME DISPLAY\""   
#echo "root ALL = (ALL) NOPASSWD: ALL" > /etc/sudoers
#echo "user ALL = (ALL) NOPASSWD: ALL" >> /etc/sudoers
#chmod 0440 /etc/sudoers
#chown root:root /etc/sudoers

losetup /dev/loop0 /n900
echo "rootfs / rootfs defaults,errors=remount-ro,noatime 0 0" > $tmp_fstab
echo "/dev/mmcblk0p1 /home ext4 rw,noatime,nodiratime,errors=continue,commit=1,data=writeback 0 0" >> $tmp_fstab
echo "/home/opt /opt none bind" >> $tmp_fstab
echo "/dev/mmcblk0p2 none swap sw 0 0" >> $tmp_fstab
echo "/dev/mmcblk1p1 /media/mmc1 vfat noauto,nodev,noexec,nosuid,noatime,nodiratime,utf8,uid=29999,shortname=mixed,dmask=000,fmask=0133,rodir 0 0" >> $tmp_fstab
echo "/dev/loop0 /media/N900 ext2 rw,noatime,nodiratime" >> $tmp_fstab

#    sfdisk -l /dev/mmcblk0 | /bin/busybox awk \
#        -v home_opts="$home_opts" -v fat_opts="$fat_opts" \
#    -f /usr/lib/genfstab.awk > $tmp_fstab
    cmp -s $tmp_fstab $fstab || cp $tmp_fstab $fstab
    rm -f $tmp_fstab

    if [ $ACT_DEAD -eq 0 ]; then
      /usr/sbin/swapon -p 1 /dev/mmcblk0p2 || echo "Failed to enable paging partition."
      /usr/sbin/swapon -p 1 /dev/mmcblk1p3 || echo "Failed to enable paging partition"
      # Setup lowmem module
      echo 32768  > /proc/sys/vm/lowmem_deny_watermark_pages
      echo 98304  > /proc/sys/vm/lowmem_notify_high_pages
      echo 131072 > /proc/sys/vm/lowmem_notify_low_pages
      echo 1024   > /proc/sys/vm/lowmem_nr_decay_pages
      # Exclude some UIDs from memory allocation denial.
      # 30000 is messagebus, 30001 could be used by Matchbox
      echo "30000 30001 30002 30003" > /proc/sys/vm/lowmem_allowed_uids
    fi

    mount_home && HOME_MOUNTED=1
    # If failed to mount /home and system has been already optified - reboot
    if [ $HOME_MOUNTED -eq 0 ]
    then
      if [ -e /var/lib/maemo-optify-firstboot-do-not-clean-home-opt ]; then
        telinit 6
      fi
    else
      [ ! -d /home/opt ] && mkdir /home/opt
      [ ! -d /opt ] && mkdir /opt
    fi   
 
    if [ $ACT_DEAD -eq 0 ]
    then
      if [ $HOME_MOUNTED -eq 1 ]
      then
        if [ -x /usr/sbin/maemo-optify-firstboot.sh ]; then
            . /usr/sbin/maemo-optify-firstboot.sh
        fi
      fi
    fi    
    
    /bin/mount /opt || echo "Failed to mount(bind) /opt."
    /bin/mount /media/N900 || echo "Failed to mount N900."
    /bin/mount /media/mmc1 || echo "Failed to mount mmc1."
  
    if [ $ACT_DEAD -eq 0 ]
    then
      if [ $HOME_MOUNTED -eq 1 ]
      then
        if [ -x /usr/sbin/maemo-optify-auto-opt.sh ]; then
            . /usr/sbin/maemo-optify-auto-opt.sh
        fi
      fi
      
      if [ -d /home/preinstalled -a -d /home/user ]
      then 
        rm -rf /home/user
      fi     
    
      if [ ! -d /home/user ]
      then
        if [ -d /home/preinstalled ]
        then
          mv /home/preinstalled /home/user
        else
          mkdir /home/user
        fi
        cd /etc/skel
        cp -a . /home/user
        chown -R user:users /home/user
        sync
      fi
    fi

    if [ ! -d /home/user ]
    then
      mkdir /home/user
      chown user:users /home/user
      sync
    fi

    # We can safely continue booting now.
    initctl emit MOUNTS_OK

    # Adjust flushing of memory card buffers
    echo 40 > /proc/sys/vm/dirty_ratio
    echo 10 > /proc/sys/vm/dirty_background_ratio

    # Initialize PRNG pool with the HW RNG. Slow, but that's ok.
    URANDOM_POOLSZ=512
    if [ -e /dev/hwrng ]; then
      echo "Seeding entropy pool"
      dd if=/dev/hwrng of=/dev/urandom bs=$URANDOM_POOLSZ count=1
    fi

    # Data for the panic info driver
    mount -t debugfs nodev /sys/kernel/debug
    modprobe panic_info_buff
    sleep 1
    osso-product-info > /sys/kernel/debug/panic_info_buff
end script

normal exit 0
+ /etc/bashrc
umask 022
export EDITOR="/usr/bin/nano -w"
# Color Codes
col_bold="\033[1m"
col_red="\033[1;31m"
col_green="\033[1;32m"
col_yellow="\033[1;33m"
col_blue="\033[1;34m"
col_purple="\033[1;35m"
col_cyan="\033[1;36m"
col_normal="\033[0;39m"

function advice
{
    adv=/etc/advices
    /usr/bin/gnu/shuf -n 1 $adv
}
PS1="\e[0;31m\]?[\[ \e[0;32m\]\u\e[0;31m\]]+[\e[0;32m\]N900\e[0;31m\]]+[\e[0;32m\]$('advice')\e[0;31m\]]\[\e[0;31m\]\n\\[\017\]\e[0;31m\]?[\[\[\e[0;32m\]\w\[\e[0;31m\]]--> \[\e[0m\]"
alias ls='ls --color=auto'
alias lsc='ls --color=never'
alias df='df -h'
alias psg='ps -e | grep'
alias recal='history | grep'
alias nano='/usr/bin/nano -w'
LS_COLORS='di=01;34:ln=01;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:su=37;41:sg=30;43:tw=01;42:ow=01;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.zip=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.cpio=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.avi=01;35:*.flv=01;35:*.pdf=00;32:*.ps=00;32:*.txt=00;32:*.patch=00;32:*.diff=00;32:*.log=00;32:*.tex=00;32:*.doc=00;32:*.mid=00;36:*.midi=00;36:*.mp3=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36'
export LS_COLORS
export PATH="/usr/bin/gnu:/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/bin/X11"
+ /usr/share/X11/xkb/types/nokia
// $Xorg: pc,v 1.3 2000/08/17 19:54:48 cpqbld Exp $
// 

partial default xkb_types "default" {

    // Some types that are used by Nokia devices and keyboard.
    virtual_modifiers LevelThree;
    virtual_modifiers RControl;
    virtual_modifiers LControl;
    
    type "PC_FN_LEVEL2" {
    modifiers = LevelThree;
    map[None] = Level1;
    map[LevelThree] = Level2;
    level_name[Level1] = "Base";
    level_name[Level2] = "Fn";
    };
    
  type "PC_FN_LEVEL4" {
      modifiers = Control+LevelThree+LevelFive;
      map[None] = Level1;
      map[Control] = Level2;
      map[LevelThree] = Level3;
      map[Control+LevelThree] = Level4;
      map[LevelFive] = Level5;
      map[Control+LevelFive] = Level6;
      map[LevelThree+LevelFive] = Level7;
      map[Control+LevelThree+LevelFive] = Level8;
      level_name[Level1] = "Base";
      level_name[Level2] = "Control";
      level_name[Level3] = "Alt Base";  
      level_name[Level4] = "Control Alt";  
      level_name[Level5] = "X";
      level_name[Level6] = "X Control";
      level_name[Level7] = "X Alt Base";
      level_name[Level8] = "X Control Alt";
    };

};
+ /usr/share/X11/xkb/symbols/nokia_vndr/rx-51
default partial alphanumeric_keys
xkb_symbols "common" {
    include "nokia_vndr/rx-51(common_keys)"
    include "nokia_vndr/rx-51(modifiers)"

    // This section should not be included by any other section.
    // It's referenced only once by rule file to allow multiple layout configurations.

    // More than one layout at the same time could be set for instance as follows:
    // setxkbmap -rules evdev \
    //           -model nokiarx51 \
    //           -option grp:ctrl_shift_toggle \
    //           -layout us,cz \
    //           -variant ",qwerty"

    // Notice the similarity:
    //   "pc+us+cz(qwerty):2+grp:XYZ" vs.
    //   "nokia_vndr/rx-51(common)+nokia_vndr/rx-51(us)+nokia_vndr/rx-51(cz_qwerty):2+grp:XYZ"
    // where XYZ is one of xkb_symbols section usually located in file symbols/group.

    // Bear in mind that option XYZ could replace current keys configuration!!!

    // For instance using symbols/group(ctrl_shift_toggle) redefines LCTL and LFSH keys
    // which may disallow opening of virtual symbol table (Multi_key).
    // Fortunately the Multi_key is defined in 3rd and 4th level a ctrl_shift_toggle
    // redefines first two levels only. But RX-51 has not right Ctrl nor Shift therefore
    // pressing Ctrl+Shift will switch to previous layout, not to the next one.

    // For RX-51 device there is a lot of restrictions if more than one layout is
    // is configured at the same time because some modifiers and special cases are
    // handled by hildon layer (especially with eight-level layout):
    //  - settings may be done from terminal only (GUI doesn't and won't support it)
    //  - virtual symbol table is not updated according to current layout
    //  - for unknown reasons the eight-level layout (nordic,ru) works properly
    //    only if it's configured as first layout (e.g. "ru,us,cz" not "us,cz,ru")
    //    otherwise it's not possible to access levels 5-8
    //  - Ctrl+Space related problems:
    //     - If eight-level layout is used as first layout one of eight-level layouts has to
    //       be also chosen in GUI - otherwise the Ctrl+Space "switch" is disabled
    //     - Ctrl+Space has no effect if only four-level layouts are chosen
    //       (don't forget the layout configured in GUI - despite of it's not reachable)
    //     - a few keys in 2nd layer could be mixed with other layouts when Ctrl+Space is "turned on" (why?)
    //       in case eight- and four-level layouts are configured simultaneously
    //     - Ctrl+Space is "turned on" by default and has to be "turned off" for four-level layouts
    //       in case eight- and four-level layouts are configured simultaneously
    //     - four-level layout on first place doesn't work at all when Ctrl+Space is "turned on"
    //       in case the 2nd, 3rd or 4th layout is eight-level layout
};

////////////////////////////////////////////////////////////////////////////////

partial alphanumeric_keys
xkb_symbols "us" {
    include "nokia_vndr/rx-51(english_base)"
    include "nokia_vndr/rx-51(arrows_4btns)"

    name[Group1] = "U.S. English";
};



partial alphanumeric_keys
xkb_symbols "pl" {
    include "nokia_vndr/rx-51(english_base)"
    include "nokia_vndr/rx-51(arrows_4btns)"

    name[Group1] = "Polish";
};



partial alphanumeric_keys
xkb_symbols "fise" {
    include "nokia_vndr/rx-51(nordic_base)"
    include "nokia_vndr/rx-51(arrows_2btns)"

    name[Group1] = "Finnish/Swedish";

    // 2. row
    key <AB09>    { [    odiaeresis,    Odiaeresis,    exclam,        exclam        ] };
    key <UP>    { [    adiaeresis,    Adiaeresis,    question,    question    ] };
};



partial alphanumeric_keys
xkb_symbols "dano" {
    include "nokia_vndr/rx-51(nordic_base)"
    include "nokia_vndr/rx-51(arrows_2btns)"

    name[Group1] = "Danish/Norwegian";

    // 2. row
    key <AB09>    { [    oslash,        Oslash,        exclam,        exclam        ] };
    key <UP>    { [    ae,        AE,        question,    question    ] };
};



partial alphanumeric_keys
xkb_symbols "nordic" {
    include "nokia_vndr/rx-51(nordic_base)"
    include "nokia_vndr/rx-51(arrows_2btns)"

    name[Group1] = "Danish/Finnish/Norwegian/Swedish";

    key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC";

    // 2. row
    key <AB09>    { [    odiaeresis,    Odiaeresis,    exclam,        exclam,        oslash,        Oslash,        exclam,        exclam        ] };
    key <UP>    { [    adiaeresis,    Adiaeresis,    question,    question,    ae,        AE,        question,    question    ] };
};



partial alphanumeric_keys
xkb_symbols "ptes" {
    include "nokia_vndr/rx-51(english_base)"
    include "nokia_vndr/rx-51(arrows_2btns)"

    name[Group1] = "Portuguese/Spanish";

    // 1. row
    key <AB08>    { [    dead_acute,    dead_acute,    dead_grave,    dead_grave    ] };

    // 2. row
    key <AC05>    { [    g,        G,        exclamdown,    exclamdown    ] };
    key <AC06>    { [    h,        H,        exclam,        exclam        ] };
    key <AC07>    { [    j,        J,        questiondown,    questiondown    ] };
    key <AC08>    { [    k,        K,        question,    question    ] };
    key <AC09>    { [    l,        L,        dead_diaeresis,    dead_diaeresis    ] };
    key <AB09>    { [    ntilde,        Ntilde,        dead_tilde,    dead_tilde    ] };
    key <UP>    { [    ccedilla,    Ccedilla,    dead_circumflex,dead_circumflex    ] };

    // 3. row
    key <AB01>    { [    z,        Z,        parenleft,    parenleft    ] };
    key <AB02>    { [    x,        X,        parenright,    parenright     ] };
    key <AB03>    { [    c,        C,        slash,        slash        ] };
    key <AB04>    { [    v,        V,        quotedbl,    quotedbl    ] };
    key <AB05>    { [    b,        B,        apostrophe,    apostrophe    ] };
    key <AB06>    { [    n,        N,        colon,        colon        ] };
    key <AB07>    { [    m,        M,        semicolon,    semicolon    ] };
    key <LEFT>    { [    period,        comma,        comma,        comma        ] };
};



partial alphanumeric_keys
xkb_symbols "fr" {
    include "nokia_vndr/rx-51(english_base)"
    include "nokia_vndr/rx-51(arrows_2btns)"

    name[Group1] = "French";

    // 1. row
    key <AD01>    { [    a,        A,        1,        1        ] };
    key <AD02>    { [    z,        Z,        2,        2        ] };
    key <AB08>    { [    agrave,        Agrave,        ccedilla,    Ccedilla    ] };

    // 2. row
    key <AC01>    { [    q,        Q,        asterisk,    asterisk    ] };
    key <AC02>    { [    s,        S,        plus,        plus        ] };
    key <AC03>    { [    d,        D,        numbersign,    numbersign    ] };
    key <AC04>    { [    f,        F,        minus,      minus        ] };
    key <AC05>    { [    g,        G,        underscore,    underscore    ] };
    key <AC06>    { [    h,        H,        exclam,        exclam        ] };
    key <AC07>    { [    j,        J,        question,    question    ] };
    key <AC08>    { [    k,        K,        colon,        colon        ] };
    key <AC09>    { [    l,        L,        dead_circumflex,dead_circumflex    ] };
    key <AB09>    { [    m,        M,        ugrave,        Ugrave        ] };
    key <UP>    { [    eacute,        Eacute,        egrave,        Egrave        ] };

    // 3. row
    key <AB01>    { [    w,        W,        EuroSign,       EuroSign    ] };
    key <AB03>    { [    c,        C,        parenleft,    parenleft    ] };
    key <AB04>    { [    v,        V,        parenright,    parenright    ] };
    key <AB05>    { [    b,        B,        slash,        slash        ] };
    key <AB07>    { [    comma,        comma,        apostrophe,    apostrophe    ] };
    key <LEFT>    { [    semicolon,    period,        period,        period        ] };
};



partial alphanumeric_keys
xkb_symbols "de" {
    include "nokia_vndr/rx-51(english_base)"
    include "nokia_vndr/rx-51(arrows_2btns)"

    name[Group1] = "German";

    // 1. row
    key <AD06>    { [    z,        Z,        6,        6        ] };
    key <AB08>    { [    udiaeresis,    Udiaeresis,    ssharp,        ssharp        ] };

    // 2. row
    key <AC08>    { [    k,        K,        semicolon,    semicolon    ] };
    key <AC09>    { [    l,        L,        colon,        colon        ] };
    key <AB09>    { [    odiaeresis,    Odiaeresis,    exclam,        exclam        ] };
    key <UP>    { [    adiaeresis,    Adiaeresis,    question,    question    ] };

    // 3. row
    key <AB01>    { [    y,        Y,        EuroSign,    EuroSign    ] };
    key <AB03>    { [    c,        C,        equal,        equal        ] };
    key <LEFT>    { [    period,        comma,        comma,        comma        ] };
};



partial alphanumeric_keys
xkb_symbols "ch" {
    include "nokia_vndr/rx-51(english_base)"
    include "nokia_vndr/rx-51(arrows_2btns)"

    name[Group1] = "Swiss";

    // 1. row
    key <AD06>    { [    z,        Z,        6,        6        ] };
    key <AB08>    { [    udiaeresis,    Udiaeresis,    egrave,        Egrave        ] };

    // 2. row
    key <AC06>    { [    h,        H,        equal,        equal        ] };
    key <AC07>    { [    j,        J,        parenleft,    parenleft    ] };
    key <AC08>    { [    k,        K,        parenright,    parenright    ] };
    key <AC09>    { [    l,        L,        colon,        colon        ] };
    key <AB09>    { [    odiaeresis,    Odiaeresis,    eacute,        Aacute        ] };
    key <UP>    { [    adiaeresis,    Adiaeresis,    agrave,        Agrave        ] };

    // 3. row
    key <AB01>    { [    y,        Y,        question,    question    ] };
    key <AB02>    { [    x,        X,        exclam,        exclam        ] };
    key <AB03>    { [    c,        C,        ccedilla,    Ccedilla    ] };
    key <LEFT>    { [    period,        comma,        comma,        comma        ] };
};



// Levels 5-8 are Russian, levels 1-4 US English, for shortcut reasons.
partial alphanumeric_keys
xkb_symbols "ru" {
#    include "nokia_vndr/rx-51(english_base)"
    include "nokia_vndr/rx-51(arrows_4btns_m)"

    name[Group1] = "Russian";

    key.type[Group1] = "EIGHT_LEVEL_SEMIALPHABETIC";

    // 1. row
    key <AD01>    { [    q,        Q,        1,            1,            Cyrillic_shorti,    Cyrillic_SHORTI,    1,            1            ] };
    key <AD02>    { [    w,        W,        2,            2,            Cyrillic_tse,        Cyrillic_TSE,        2,            2            ] };
    key <AD03>    { [    e,        E,        3,            3,            Cyrillic_u,        Cyrillic_U,        3,            3            ] };
    key <AD04>    { [    r,        R,        4,            4,            Cyrillic_ka,        Cyrillic_KA,        4,            4            ] };
    key <AD05>    { [    t,        T,        5,            5,            Cyrillic_ie,        Cyrillic_IE,        5,            5            ] };
    key <AD06>    { [    y,        Y,        6,            6,            Cyrillic_en,        Cyrillic_EN,        6,            6            ] };
    key <AD07>    { [    u,        U,        7,            7,            Cyrillic_ghe,        Cyrillic_GHE,        7,            7            ] };
    key <AD08>    { [    i,        I,        8,            8,            Cyrillic_sha,        Cyrillic_SHA,        8,            8            ] };
    key <AD09>    { [    o,        O,        9,            9,            Cyrillic_shcha,        Cyrillic_SHCHA,        9,            9            ] };
    key <AD10>    { [    p,        P,        0,            0,            Cyrillic_ze,        Cyrillic_ZE,        0,            0            ] };
    key <AB08>  { [    comma,        semicolon,    equal,            equal,            Cyrillic_ha,        Cyrillic_HA,        equal,            equal            ] };

    // 2. row
    key <AC01>    { [    a,        A,        asterisk,        asterisk,        Cyrillic_ef,        Cyrillic_EF,        asterisk,        asterisk        ] };
    key <AC02>    { [    s,        S,        plus,            plus,            Cyrillic_yeru,        Cyrillic_YERU,        plus,            plus            ] };
    key <AC03>    { [    d,        D,        numbersign,        numbersign,        Cyrillic_ve,        Cyrillic_VE,        numbersign,        numbersign        ] };
    key <AC04>    { [    f,        F,        minus,            minus,            Cyrillic_a,        Cyrillic_A,        minus,            minus            ] };
    key <AC05>    { [    g,        G,        underscore,        underscore,        Cyrillic_pe,        Cyrillic_PE,        underscore,        underscore        ] };
    key <AC06>    { [    h,        H,        parenleft,        braceleft,        Cyrillic_er,        Cyrillic_ER,        parenleft,        braceleft        ] };
    key <AC07>    { [    j,        J,        parenright,        braceright,        Cyrillic_o,        Cyrillic_O,        parenright,        braceright        ] };
    key <AC08>    { [    k,        K,        ampersand,        ampersand,        Cyrillic_el,        Cyrillic_EL,        ampersand,        ampersand        ] };
    key <AC09>    { [    l,        L,        exclam,            bar,            Cyrillic_de,        Cyrillic_DE,        exclam,            bar            ] };
    key <AB09>    { [    period,        colon,        question,        question,        Cyrillic_zhe,        Cyrillic_ZHE,        question,        question        ] };
#    key <UP>    { [    Up,        Up,        Page_Up,        Page_Up,        Cyrillic_e,        Cyrillic_E,        Up,            Up            ] };

    // 3. row
    key <AB01>    { [    z,        Z,        sterling,        sterling,        Cyrillic_ya,        Cyrillic_YA,        Cyrillic_yu,        Cyrillic_YU        ] };
    key <AB02>    { [    x,        X,        dollar,            dollar,            Cyrillic_che,        Cyrillic_CHE,        dollar,            dollar            ] };
    key <AB03>    { [    c,        C,        EuroSign,        EuroSign,        Cyrillic_es,        Cyrillic_ES,        EuroSign,        EuroSign        ] };
    key <AB04>    { [    v,        V,        slash,            less,            Cyrillic_em,        Cyrillic_EM,        slash,            slash            ] };
    key <AB05>    { [    b,        B,        backslash,        greater,        Cyrillic_i,        Cyrillic_I,        backslash,        backslash        ] };
    key <AB06>    { [    n,        N,        quotedbl,        bracketleft,        Cyrillic_te,        Cyrillic_TE,        quotedbl,        bracketleft        ] };
    key <AB07>    { [    m,        M,        apostrophe,        bracketright,        Cyrillic_softsign,    Cyrillic_hardsign,    apostrophe,        bracketright        ] };
#    key <LEFT>    { [    Left,        Left,        Home,            Home,            Cyrillic_be,        Cyrillic_BE,        Cyrillic_yu,        Cyrillic_YU        ] };
#   key <DOWN>    { [    Down,        Down,        Page_Down,        Page_Down,        Left,            Left,            Down,            Down            ] };
#   key <RGHT>    { [    Right,        Right,        Right,            Right,            Right,            Right,            Up,            Up            ] };
    key <SPCE>    { [    space,        space,        at,            at,            space,            space,            at,            at            ] };
};



partial alphanumeric_keys
xkb_symbols "it" {
    include "nokia_vndr/rx-51(english_base)"
    include "nokia_vndr/rx-51(arrows_2btns)"

    name[Group1] = "Italian";

    // 1. row
    key <AB08>    { [    egrave,        Egrave,        eacute,        Eacute        ] };

    // 2. row
    key <AC06>    { [    h,        H,        semicolon,    semicolon    ] };
    key <AC07>    { [    j,        J,        colon,        colon        ] };
    key <AC08>    { [    k,        K,        exclam,        exclam        ] };
    key <AC09>    { [    l,        L,        question,    question    ] };
    key <AB09>    { [    ograve,        Ograve,        igrave,        Igrave        ] };
    key <UP>    { [    agrave,        Agrave,        ugrave,        Ugrave        ] };

    // 3. row
    key <AB01>    { [    z,        Z,        EuroSign,    EuroSign    ] };
    key <AB02>    { [    x,        X,        parenleft,    parenleft    ] };
    key <AB03>    { [    c,        C,        parenright,    parenright    ] };
    key <LEFT>    { [    period,        comma,        comma,        comma        ] };
};



partial alphanumeric_keys
xkb_symbols "cz" {
    include "nokia_vndr/rx-51(english_base)"
    include "nokia_vndr/rx-51(arrows_2btns)"

    name[Group1] = "Czech";

    // 1. row
    key <AD06>    { [    z,        Z,        6,        6        ] };
    key <AB08>    { [    dead_acute,    dead_acute,    sterling,    sterling    ] };

    // 2. row
    key <AC08>    { [    k,        K,        semicolon,    semicolon    ] };
    key <AC09>    { [    l,        L,        colon,        colon        ] };
    key <AB09>    { [    uring,        Uring,        EuroSign,    EuroSign    ] };
    key <UP>    { [    dead_caron,    dead_caron,    dollar,        dollar        ] };

    // 3. row
    key <AB01>    { [    y,        Y,        equal,        equal        ] };
    key <AB02>    { [    x,        X,        slash,        slash        ] };
    key <AB03>    { [    c,        C,        backslash,    backslash    ] };
    key <AB04>    { [    v,        V,        apostrophe,    apostrophe    ] };
    key <AB05>    { [    b,        B,        quotedbl,    quotedbl    ] };
    key <AB06>    { [    n,        N,        exclam,        exclam        ] };
    key <AB07>    { [    m,        M,        question,    question    ] };
    key <LEFT>    { [    period,        comma,        comma,        comma        ] };
};

partial alphanumeric_keys
xkb_symbols "cz_qwerty" {
    include "nokia_vndr/rx-51(cz)"

    name[Group1] = "Czech - qwerty";

    // Do not use the layout "cz_qwerty" directly if it is the only layout and compat rules enabled.
    // There is one compat rule that converts "cz_qwerty" to "pc+cz(qwerty)" which is not correct for RX-51.
    // Use either the layout "cz(qwerty)" or the general "cz" with variant "qwerty".

    // 1. row
    key <AD06>    { [    y,        Y,        6,        6        ] };

    // 3. row
    key <AB01>    { [    z,        Z,        percent,    percent        ] };
};



////////////////////////////////////////////////////////////////////////////////

partial hidden alphanumeric_keys
xkb_symbols "nordic_base" {
    include "nokia_vndr/rx-51(english_base)"

    // 1. row
    key <AB08>    { [    aring,        Aring,        equal,        equal        ] };

    // 2. row
    key <AC08>    { [    k,        K,        semicolon,    semicolon    ] };
    key <AC09>    { [    l,        L,        colon,        colon        ] };

    // 3. row
    key <AB01>    { [    z,        Z,        EuroSign,    EuroSign    ] };
    key <AB03>    { [    c,        C,        sterling,    sterling    ] };
    key <LEFT>    { [    period,        comma,        comma,        comma        ] };
};

partial hidden alphanumeric_keys
xkb_symbols "english_base" {

    // 1. row
    key <AD01>    { [    q,        Q,        1,        1        ] };
    key <AD02>    { [    w,        W,        2,        2        ] };
    key <AD03>    { [    e,        E,        3,        3        ] };
    key <AD04>    { [    r,        R,        4,        4        ] };
    key <AD05>    { [    t,        T,        5,        5        ] };
    key <AD06>    { [    y,        Y,        6,        6        ] };
    key <AD07>    { [    u,        U,        7,        7        ] };
    key <AD08>    { [    i,        I,        8,        8        ] };
    key <AD09>    { [    o,        O,        9,        9        ] };
    key <AD10>    { [    p,        P,        0,        0        ] };
    key <AB08>    { [    comma,        semicolon,    equal,        equal        ] };

    // 2. row
    key <AC01>    { [    a,        A,        asterisk,    asterisk    ] };
    key <AC02>    { [    s,        S,        plus,        plus        ] };
    key <AC03>    { [    d,        D,        numbersign,    numbersign    ] };
    key <AC04>    { [    f,        F,        minus,        minus        ] };
    key <AC05>    { [    g,        G,        underscore,    underscore    ] };
    key <AC06>    { [    h,        H,        parenleft,    parenleft    ] };
    key <AC07>    { [    j,        J,        parenright,    parenright    ] };
    key <AC08>    { [    k,        K,        ampersand,    ampersand    ] };
    key <AC09>    { [    l,        L,        exclam,        exclam        ] };
    key <AB09>    { [    period,        colon,        question,    question    ] };

    // 3. row
    key <AB01>    { [    z,        Z,        sterling,    sterling    ] };
    key <AB02>    { [    x,        X,        dollar,        dollar        ] };
    key <AB03>    { [    c,        C,        EuroSign,    EuroSign    ] };
    key <AB04>    { [    v,        V,        slash,        slash        ] };
    key <AB05>    { [    b,        B,        backslash,    backslash    ] };
    key <AB06>    { [    n,        N,        quotedbl,    quotedbl    ] };
    key <AB07>    { [    m,        M,        apostrophe,    apostrophe    ] };
    key <SPCE>    { [    space,        space,        at,        at        ] };
};

partial hidden alphanumeric_keys
xkb_symbols "common_keys" {
    // all other common keys

    key <BKSP>    { [    BackSpace,    Delete,    BackSpace,    Delete    ] };
    key <TAB>    { [    Tab        ] };

    // broken UI spec.
    key <RTRN>    { [    KP_Enter    ] };

    key <KPEN>    { [    Return        ] };
    key <ESC>    { [    Escape        ] };

    key <FK01>    { [    F1    ] };
    key <FK02>    { [    F2    ] };
    key <FK03>    { [    F3    ] };
    key <FK04>    { [    F4    ] };
    key <FK05>    { [    F5    ] };
    key <FK06>    { [    F6    ] };

    // Swap +/- keys intentionally. The VOL+/VOL- keys are located physically
    // on left/right and up/down in landscape/portrait orientation. This does
    // not feel natural for the user and therefore we want the VOL+/VOL- keys
    // map to -/+.
    //
    // The only exception is an active call in portrait mode where we want to
    // use the real meanings of the keys. This special case and management of
    // +/- keys in general is handled in maemo-statusmenu-volume.
    key <FK07>    { [    F8    ] };
    key <FK08>    { [    F7    ] };

    key <FK09>    { [    F9    ] };
    key <FK10>    { [    F10    ] };
    key <FK11>    { [    F11    ] };
};

partial hidden alphanumeric_keys modifier_keys
xkb_symbols "modifiers" {
    // Shift switches between current level and level+1
    key <LFSH>    {
    type[Group1] = "ONE_LEVEL",
    symbols[Group1] = [    Shift_L    ]
    };
    modifier_map Shift { Shift_L };

    // Fn+Ctrl virtual symbol table (Multi_key)
    // Ctrl+Space switches between 1st and 5th level (hardcoded in hildon)
    key <LCTL>    {
    type[Group1] = "FOUR_LEVEL",
    symbols[Group1] = [    Control_L,    Control_L,    Multi_key,    Multi_key    ]
    };
    modifier_map Control { Control_L };

    // Fn key (right alt) switches to 3rd level
    include "level3(ralt_switch)"
};

partial hidden alphanumeric_keys
xkb_symbols "arrows_2btns" {
    // rx-51 specific arrows mapping
    // normal 2nd level must not be enumerated to allow text selection with Shift key
    key <DOWN>    { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [    Left,    Up    ] };
    key <RGHT>    { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [    Right,    Down    ] };
};

partial hidden alphanumeric_keys
xkb_symbols "arrows_4btns" {
    // standard arrows mapping
    // normal 2nd level must not be enumerated to allow text selection with Shift key
    key <UP>    { type[Group1] = "ONE_LEVEL", symbols[Group1] = [    Up    ] };
    key <LEFT>    { type[Group1] = "ONE_LEVEL", symbols[Group1] = [    Left    ] };
    key <DOWN>    { type[Group1] = "ONE_LEVEL", symbols[Group1] = [    Down    ] };
    key <RGHT>    { type[Group1] = "ONE_LEVEL", symbols[Group1] = [    Right    ] };
};

partial hidden alphanumeric_keys
xkb_symbols "arrows_4btns_m" {
    key <UP>    { type[Group1] = "PC_FN_LEVEL4", symbols[Group1] = [    Up,    Up,    Page_Up,    Page_Up,    Cyrillic_e,        Cyrillic_E,        Up,        Page_Up ] };
    key <LEFT>    { type[Group1] = "PC_FN_LEVEL4", symbols[Group1] = [    Left,    Left,        Home,        Home,        Cyrillic_be,        Cyrillic_BE,        Left,        Home ] };
    key <DOWN>    { type[Group1] = "PC_FN_LEVEL4", symbols[Group1] = [    Down,    Down,    Page_Down,    Page_Down,    Cyrillic_yu,        Cyrillic_YU,        Down,        Page_Down ] };
    key <RGHT>    { type[Group1] = "PC_FN_LEVEL4", symbols[Group1] = [    Right,    Right,        End,        End,        Cyrillic_hardsign,    Cyrillic_hardsign,    Right,        End ] };
};

В аттаче файлик advices для приветствия bash с некоторыми советами. ложить в /etc

+ открыть спойлер

https://lh5.googleusercontent.com/-UMoIUiSEmvw/Th2W1OuzMGI/AAAAAAAAAVA/SRT9gHoEdek/s800/Screenshot-20110712-192504.png
https://lh5.googleusercontent.com/-VeQqaVONjkg/Th2W2Y3qV7I/AAAAAAAAAVI/iwUMNdgYPUA/s800/Screenshot-20110713-155511.png
https://lh3.googleusercontent.com/-MEnhD3BPZQ0/Th2W3uxbJWI/AAAAAAAAAVQ/UYOZdDm8yAM/s800/Screenshot-20110713-155554.png
https://lh5.googleusercontent.com/-3y62fYrGSWg/Th2W46EMUjI/AAAAAAAAAVY/7oAzTKQ2mUM/s800/Screenshot-20110713-155642.png
https://lh6.googleusercontent.com/-Qmg7smoDHfQ/Th2hi5nV5DI/AAAAAAAAAV0/1Ws8jz4K78o/s800/N900%252520file%252520manager.png

Опять же повторюсь - это все делалось интересу ради и just for fun

Post's attachments

advices 223.99 kb, 26 загрузок с 2011-07-23 

У Вас недостаточно прав для загрузки файлов, прикрепленных к этому сообщению.
[size=2]Nokia N900 - MyDocs 29GB vfat, / @ microSD-Class10 ext4, custom kernel-bfs @ 1.0Ghz,
BASH default shell, root without sudser & rootsh, modded pulseaudio
[/size]

2

Re: Что я наделал со своим зверьком...

Blayder - маньячище... :-)

Поделиться

3

Re: Что я наделал со своим зверьком...

Красота!

Сайт vertyogo

Поделиться

4

Re: Что я наделал со своим зверьком...

Blayder голова. Я так прочитал, на 1 Ггц он у тя работает спокойно?

???????????? - сотри монеткой, чтобы получить пароль от этого аккаунта

Поделиться

5

Re: Что я наделал со своим зверьком...

блин раздел про root надо опробовать:))

N900. Теперь HTC EVO 3D

Поделиться

6 (13.07.2011 19:39:49 отредактировано Blayder)

Re: Что я наделал со своим зверьком...

Если это вызывает такой интерес - могу по пунктам описать все более подробно... Надо?

Badn088 пишет:

Blayder голова. Я так прочитал, на 1 Ггц он у тя работает спокойно?

Да, стабильно. пока никаких чудес не выскочило.
Как выяснилось тэстом nbench - стабильней, нежели на 950мгц.

П.С. Обновил раздел про права рута.
ЭТО ОЧЕНЬ ОПАСНО!!!! НА СВОЙ СТРАХ И РИСК!!!! ОШИБЕТЕСЬ ХОТЬ ГДЕ-ТО НИЧЕГО ИСПРАВИТЬ УЖЕ ПРАВ НЕ БУДЕТ - ДАЖЕ rootsh и sudser НЕ БУДУТ РАБОТАТЬ !!!

!!!!! backupmenu и бэкап rootfs !!!!!
[size=2]Nokia N900 - MyDocs 29GB vfat, / @ microSD-Class10 ext4, custom kernel-bfs @ 1.0Ghz,
BASH default shell, root without sudser & rootsh, modded pulseaudio
[/size]

Поделиться

7

Re: Что я наделал со своим зверьком...

Blayder меня возбуждает надпись ОПАСНО smile

Blayder пишет:

Если это вызывает такой интерес - могу по пунктам описать все более подробно... Надо?

С удовольствием бы почитал и поэксментировал.)

мой твиттер - https://twitter.com/SergeyGrim
мой ютюб канал http://www.youtube.com/MrSergeyGrim

Поделиться

8

Re: Что я наделал со своим зверьком...

Добавил rcS-late и bashrc с немного дополненным описанием. Если что-то не ясно - спрашивайте, Постараюсь уточнить, чтоб было четко и ясно smile

[size=2]Nokia N900 - MyDocs 29GB vfat, / @ microSD-Class10 ext4, custom kernel-bfs @ 1.0Ghz,
BASH default shell, root without sudser & rootsh, modded pulseaudio
[/size]

Поделиться

9

Re: Что я наделал со своим зверьком...

хм, мало что понял, но вопрос возникает практически сразу же: если у тебя нет раздела MyDocs, то куда сваливают свои файлы программы, в которых прописано устанавливать часть себя туда? например Sygic Mobile Maps или MetroMap ???

10

Re: Что я наделал со своим зверьком...

nick_stokes, MyDocs - это папка. А примонтирован к ней отдельный раздел или находится она на том же разделе, что и /home - не суть важно, для программ это прозрачно.

---
Быть мрачным и непонятным очень просто. Охрененно трудно быть добрым и ясным. (с) Стивен Содеберг.

11

Re: Что я наделал со своим зверьком...

nick_stokes пишет:

хм, мало что понял, но вопрос возникает практически сразу же: если у тебя нет раздела MyDocs, то куда сваливают свои файлы программы, в которых прописано устанавливать часть себя туда? например Sygic Mobile Maps или MetroMap ???

divan верно все описал - раздела нет, но папка-то осталась и прогам только всего и надо, чтоб была папка MyDocs
Вернусь домой - буду пробовать достучаться до альсы в обход пульса. Может и выйдет чего интересного еще...

[size=2]Nokia N900 - MyDocs 29GB vfat, / @ microSD-Class10 ext4, custom kernel-bfs @ 1.0Ghz,
BASH default shell, root without sudser & rootsh, modded pulseaudio
[/size]

12 (23.07.2011 23:19:23 отредактировано Blayder)

Re: Что я наделал со своим зверьком...

Добавил пункт про измененную раскладку.
Может пригодится тем, у кого на клавиатуре разметка такая
http://www.nokia.ru/PRODUCT_METADATA_0/Products/Phones/N-series/N900/images/n900_image_techspecs_maemo_283x238.png
как и у меня.
добавил символы, через shift+fn - < > | { } [ ], а так же через Fn на стрелочки Page Up, Page Down, Home, End.

[size=2]Nokia N900 - MyDocs 29GB vfat, / @ microSD-Class10 ext4, custom kernel-bfs @ 1.0Ghz,
BASH default shell, root without sudser & rootsh, modded pulseaudio
[/size]

13 (24.07.2011 15:52:19 отредактировано pol01)

Re: Что я наделал со своим зверьком...

Blayder пишет:

1. Ext4 на встроенном eMMC.

1. Скажи, пожалуйста, а с ext4 (или ext2) на встроенной флешке камера нормально работает?
2. На компьютерах с windows тогда доступ к флешке можно организовать?
3. Расскажи подробней про установку и настройку BASH вместо busybox для user и root.

Поделиться

14

Re: Что я наделал со своим зверьком...

1. Какая разница? Камера сохраняет снимки в каталог, и ей совершенно пофиг, на какой ФС он расположен.
2. ЕМНИП, были какие-то драйвера только для чтения.

A mammal should be able to hunt mice, hibernate, fly, chew its cud, echolocate, invent tools, lay eggs, burrow. Speciation is for insects.

Поделиться

15 (24.07.2011 18:07:49 отредактировано Blayder)

Re: Что я наделал со своим зверьком...

pol01 пишет:
Blayder пишет:

1. Ext4 на встроенном eMMC.

1. Скажи, пожалуйста, а с ext4 (или ext2) на встроенной флешке камера нормально работает?
2. На компьютерах с windows тогда доступ к флешке можно организовать?
3. Расскажи подробней про установку и настройку BASH вместо busybox для user и root.

1) Нынче в настройках камеры присутствует только карта памяти, что странно. С CSSU В настройках камеры есть Internal Storage, но при попытке сохранить снимор камеру заглючило и пришлось менять назад и делать ребут.
2. Для венды когда-то были драйверы для чтения ext2/3, но как оно с ext4 - беспонятия. Думаю даже если и есть, то только read only.
3. Для установки BASH требует установить таковой из репозиториев - там их несколько - bash, bash3, bash4
я ставил просто bash:
Все операции выполняются с правами root! Будьте внимательны - ошибки и можно получить кирпич, вместо телефона!

apt-get install bash
apt-get install coreutils-gnu

Перед тем, как продолжать, рекомендую в терминале проверить работоспособность баш вводом команды:

/bin/bash

Если все впоряде, вы должны увидеть приветсвие баша, тогда пишем exit и продолжаем!
дальше следовательно надо изменть наш дефолтный шелл:

mcedit /etc/passwd

я использовал mcedit, но годится люой редактор, главное, чтобы запустили его с правами рута. И в этом файлике ищем строчки
user .... /bin/sh
root .... /bin/sh
и обоим меняем /bin/sh на /bin/bash
сохраняемся и можно перезапустить терминал.
Что бы использовать утилиты GNU, надо в файл /etc/profile добавить такую строчку

export PATH="/usr/bin/gnu:/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin"

и желательно перезагрузиться.
П.С. Обновил шапку с данными шагами.

[size=2]Nokia N900 - MyDocs 29GB vfat, / @ microSD-Class10 ext4, custom kernel-bfs @ 1.0Ghz,
BASH default shell, root without sudser & rootsh, modded pulseaudio
[/size]

Поделиться