Архив за July, 2008

Връзване на OpenMoko FreeRunner с Ubuntu

Днес ще ви предоставя цитат от блога на Себастиан Бъргман, който споделя как е свързал своя нов Neo FreeRunner телефон (OpenMoko / FreeRunner).

Ето как е успял да нагласи USB мрежата между FreeRunner-а и неговия лаптоп (разбира се работещ под Ubuntu Linux):sudo aptitude install dnsmasq
sudo iptables -F

sudo ifconfig usb0 192.168.0.200 netmask 255.255.255.0

sudo route add 192.168.0.202 usb0

sudo iptables -I INPUT 1 -s 192.168.0.202 -j ACCEPT

sudo iptables -I OUTPUT 1 -s 192.168.0.200 -j ACCEPT

sudo iptables -A POSTROUTING -t nat -j MASQUERADE -s 192.168.0.0/24

sudo echo 1 > /proc/sys/net/ipv4/ip_forward

От тук нататък може да се логнете в телефона посредством SSH чрез ssh root@192.168.0.202, а самият FreeRunner има мрежа през  USB връзката с лаптоп-а.

Пресъбиране на пакети в Убунту (Дебиан)

Практически всички разбират преимуществата на пакетните мениджъри пред инсталирането с помощта на:

./configure && make && make install.

На пример неотдавна появилия се патч за Pidgin ще покажем как да се пресъберат пакети в deb-based дистрибутиви.

Подготовка.
Ще ни трябват следните пакети: devscripts build-essential fakeroot

sudo apt-get install devscripts build-essential fakeroot

Сваляме сорсовете.
За това трябва да са включени съответните репозитории.
Трябва ни libpurple0, т.к. патча се отнася към тази библиотека.
На практика libpurple, pidgin и pidgin-data имат общ сорс, така че можем да напишем както

apt-get source libpurple0

така и

apt-get source pidgin

Обърнете внимание, че apt-get source не се пуска под sudo.
Сорсовете се свалят в текущата директория.

Патчваме.

wget http://launchpadlibrarian.net/15741199/pidgin-2.4.2-icq.patch

cd pidgin-2.4.1

patch -p0

Намаляване времето за начално стартиране

1. Намаляване на таймаута в grub,

vi /boot/grub/menu.lst
timeout=0

или чрез GUI System -> Administration -> StartUp-Manager

2. Изключване на ненужните услуги:
Меню System -> Preferences -> Sessions (Сеансы)

Например, може да се изключат:
Bluetooth Manager (Мениджър на устройства Bluetooth)
Check for new hardware drivers
Evolution Alarm Notifier
Print Queue Applet (Апплет на опашката за печат)
Tracker (служба за търсене и индексиране)

Меню System -> Administration -> Services (Служби)
или чрез конзолната програма sysv-rc-conf
Може да се изключат рядко исползвани услуги, например, RPC, NFS, avahi-daemon, cupsys, apport, ssh.

3. Оптимизация на монтирането на файловите системи:
в /etc/fstab добавяме опциите “noatime,nodiratime”,

4. Намаление на интензивността на работа със swap
в /etc/sysctl.conf добавяме vm.swappiness=10

5. Включване возможност за паралелен старт на услугите на етапа на стартиране:
в /etc/init.d/rc сменяме CONCURRENCY=none на CONCURRENCY=shell

6. Кеширане на програмите и библиотеките исползвани в инициализационния етап.

Еднократно зареждаме Ubuntu с предаване на ядрото параметъра profile, на етапа на работа на grub, който включва режим на профилиране. Зареждането с този флаг ще бъде видимо по-бавно, но при това в Ubuntu се активира услугата readahead, която обновява информацията за всички исползвани на етап зареждане библиотеки и програми във файла /etc/readahead/boot, а в /etc/readahead/desktop - информацята за зареждане на десктопа.
При следващо зареждане услугата readahead, при помощ на програмата /sbin/readahead-list, ще зареди библиотеките и програмите, упоменати в индекса, в page cache, което малко ще намали времето на зареждане.

7. Изключваме IPv6
в /etc/modprobe.d/aliases заменяме реда “alias net-pf-10 ipv6″ на “alias net-pf-10 off #ipv6″.

7. Инсталираме preload

sudo apt-get install preload

инсталирането на prelink не е нужно, тъй като в Ubuntu е задействан алтернативен механизъм на линковка DT_GNU_HASH (http://lwn.net/Articles/192624/), поддержан в Glibc 2.5.