Фотогалереи

Помощь при использовании сайта

Сборка Gentoo Linux для Asus Eee PC 1001 PX

Подробно останавливаться на базовой установке Gentoo  я не буду, для этих целей есть рукокнига в которой все расписано от и до. Скачиваем атуальные по дате архивы stage3 и  portage, монтируем заранее подготовленный для этого раздел в /mnt/gentoo и копируем туда наш stage3. Переходим в /mnt/gentoo и распаковываем stage3 командой sudo tar -xvjpf stage3-'date'.tar.bz2. После распаковки stage нам нужно скопировать архив с portage в /mnt/gentoo/usr и перейдя в эту директорию распаковать его аналогичной командой. Будущая система распакована, зайдем в нее:

sudo mount -t proc none /mnt/gentoo/proc
sudo mount -o bind /dev/ /mnt/gentoo/dev
sudo chroot /mnt/gentoo /bin/bash

Если при выполнении последней команды вы получаете ошибки, стоит убедиться, что система из которой вы делаете chroot - 64 битная.
Выполняем

env-update

и

source /etc/profile

Открываем /etc/make.conf в котором пропишем флаги компилятора и другие опции системы portage по вкусу. Путем проб и ошибок были выбраны такие $CFLAGS

CFLAGS="-march=atom -O2 -mssse3 -mcx16 -msahf -g0 --param l1-cache-size=24 
--param l1-cache-line-size=64 --param l2-cache-size=512 -pipe"

Update:
Так как какой либо производительности от Atom'a ждать не приходится, то можно попробовать собирать систему с оптимизацией по размеру. И выходной бинарник получается на 10 - 20% меньше по размеру и довольно часто все эти оптимизации лишь делают код более тормознутым на слабых машинах. К тому же тратится гораздо меньше времени на сборку. Вобщем на данный момент я собираю всю систему GCC 4.6.2 с такими флагами:

CFLAGS="-march=atom -mtune=atom -Os-g0 --param l1-cache-size=24 
--param l1-cache-line-size=64 --param l2-cache-size=512 -pipe"

Замечу что если при сборке в chroot у вас не собираются какие либо пакеты, то стоит добавить флаг -mno-movbe и в дальнейшем когда система уже будет на целевой машине его можно будет убрать. Так же хочу заметить, что для сборки под архитектуру atom вам потребуется >=GCC-4.5. Если вам не хочется пока использовать компилятор не переведенный в стабильную ветку, то для сборки вместо atom нужно указать -march=core2. Теперь выберем профайл который мы будем использовать на нетбуке. Для получения списка доступных выполняем:

eselect profile list   
  [1]   default/linux/amd64/10.0
  [2]   default/linux/amd64/10.0/desktop
  [3]   default/linux/amd64/10.0/desktop/gnome
  [4]   default/linux/amd64/10.0/desktop/kde
  [5]   default/linux/amd64/10.0/developer
  [6]   default/linux/amd64/10.0/no-multilib *
  [7]   default/linux/amd64/10.0/server
  [8]   hardened/linux/amd64
  [9]   hardened/linux/amd64/no-multilib
  [10]  selinux/2007.0/amd64
  [11]  selinux/2007.0/amd64/hardened
  [12]  selinux/v2refpolicy/amd64
  [13]  selinux/v2refpolicy/amd64/desktop
  [14]  selinux/v2refpolicy/amd64/developer
  [15]  selinux/v2refpolicy/amd64/hardened
  [16]  selinux/v2refpolicy/amd64/server

Как вы видите доступно 16 различных профилей. Часть из них selinux*, часть hardened*, но на нетбуке все это нам явно без надобности. Выбираем что нибудь в диапазоне от 1 до 6, в зависимости от того какое графическое окружение, KDE или GNOME вы предполагаете использовать. Я ипользую профиль no-multilib, который дает возможность собрать pure 64bit систему, другими словами без наличия 32 битных библиотек и возможности исполнения 32 битного кода. Наличие 32 битных библиотек требуется разве что WINE и Skype, ни тем ни другим я не пользуюсь поэтому no-multilib.

Теперь перейдем к настройке ядра, пожалуй самая важная часть. Правильно собранное ядро без лишнего, ненужного на конкретном железе кода, собранное под нужный процессор сказывается на скорость работы системы. Ниже я выложу три конфига ядра. Один из них минимальный из которого выброшен Wi - Fi, веб камера. Второй полный где включен весь функционал. Модули DRI, AGP и другие которые как ни крути всегда подгружаются лучше вкомпилить прямо в ядро, а не модулями. Третий аналогичен минимальному, но с Wi-Fi. Четвертый конфиг чисто для энтузиастов. В конфиге убран весь дебаг с помощью expert mode. Этот конфиг с которым я собираю ядро для себя из разряда на "каждый день". Данное ядро собирается под atom, так что если =>GCC - 4.5, следует собирать под core2/Xeon. Также можно добавить при сборке оптимизацию по размеру. (Optimize for size)

Внимание! Во всех конфигах выключена поддержка исполнения 32 битного кода! Для включения включите IA-32 в меню Executable file format
Если Вам требуется SWAP, то его также необходимо включить перед сборкой ядра в General Setup --> Swap

Теперь функциональные клавиши (Fn+F1,F2...)

Так как в ядре есть модуль eeepc_laptop, то с клавишами особых проблем нет. Но надо добавить в строку параметров передаваемых загрузчиком ядру опции

acpi_osi=Linux и acpi_backlight=vendor

Утилитой xev можно посмотреть какие функциональные клавиши нормально определяются и какое имя им присваивается. У меня заработали все, кроме Fn+F7 которая должна отключать дисплей. Для того чтобы заработали все - установим acpid, запустим acpi_listen и нажмем нужную комбинацию. Приведу пример как сделать так чтобы при закрытии крышки нетбука он впадал в спячку (suspend to RAM). Запускаем acpi_listen и закрываем крышку, после открытия смотрим как определяется это событие. У меня закрытие крышки определилось как button/lid LID close.

Теперь создаем файл /etс/acpi/sleep с таким содержанием:

event=button/lid LID close action=/etc/acpi/sleep.sh

Сохраняем этот файл и пишем скрипт /etc/acpi/sleep.sh c таким содержанием:

#!/bin/bash 
sudo sh -c 'echo mem > /sys/power/state'

Сохраняем его, делаем исполняемым с помощью

sudo chmod +x  /etc/acpi/sleep.sh

и теперь при закрытии крышки нетбука он будет уходить в спячку.

Не забываем, что для того чтобы демон acpid загружался при запуске нужно добавить его в автозапуск на уровень boot.

sudo rc-config add acpid boot

Следующий момент касается HDD, точнее частоты парковки головок. Головки паркуются слишком часто, за 5 дней использования судя по показаниям SMART это произошло более 15 тысяч раз. Я понимаю что скорее всего разработчиками предусмотренно такое поведение HDD и гарантированный срок работы он продержится, но лучше свести частоту парковок головок к минимуму или вообще отключить. 

Делается это все с помощью hdparm и уже известной нам acpid. Пишем скрипт который будет при каждой загрузке отключать APM и выставлять нужный AAM. В Gentoo это скрипт /etc/conf.d/local.start. Откроем этот скрипт и пропишем следующее:

#!/bin/bash
hdparm -B 255 /dev/sda
hdparm -M 254 /dev/sda

acpid нам потребуется для того чтобы после выхода из спящего режима настройки которые мы записали выше применялись вновь.

Создаем и открываем для редактирования файл /etc/acpi/events/restore, прописываем

event=button/lid LID open
action=/etc/acpi/restore.sh

закрываем, сохраняем

Создаем скрипт /etc/acpi/restore.sh с таким содержимым:

#!/bin/sh
hdparm -B 255 /dev/sda
hdparm -M 254 /dev/sda

На этом пока все, в дальнейшем статья будет постепенно пополняться

 
ПриложениеРазмер
Config-2.6.39-full.tar.bz211.32 кб
Config-2.6.39-wireless.tar.bz210.89 кб
Config-2.6.39-minimal.tar.bz29.69 кб
xorg.conf3.64 кб
Config-3.0.4-expert.tar.bz210.87 кб
3.272725
11 votes
Ваша оценка: Нет


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".
Аватар пользователя anonymous

и это все надо вручную прописывать???

Аватар пользователя admin

Что именно?
Никто ж не заставляет Gentoo юзать. Поставь Ubuntu и кушай что дали. Linux тем и хорош, что всегда есть выбор собрать самому или пользоваться готовым. Просто ширпотреб (Ubuntu, OpenSUSE...etc) никогда им (качеством) не отличался.

Аватар пользователя anonymous

Ой спасибо, долго искал именно под свой бук.

Аватар пользователя anonymous

Есть два вопроса:
1) наушники+микрофон нормально работают?
2) Express Gate можно на этот бук воткнуть?

Аватар пользователя admin

Наушники да, а вот из за того что разъем микрофона и наушников совмещен и управляется программно (венда) одновременно не работает. Ну я и шкайпом не пользуюсь особо, так что не заморачивался.

Express Gate не пробовал. Если честно только от Вас узнал о существовании этого дистрибутива :)

Аватар пользователя admin

Сегодня завтра обновлю файлы конфигов ядра для Asus Eee PC 1001 PX. Были некоторые доработки.

Аватар пользователя anonymous

Ждём

Аватар пользователя admin

Обновил конфиги ядра. Все на основе ck-sources-2.6.39 и архитектуры x86_64. Можно использовать и для ванильного ядра с архитектурой i386 - menuconfig сам поменяет архитектуру на нужную.
Итак, в полном конфиге (full) как обычно запилено все что нужно и выпилено все что не нужно. Присутствуют драйвера на вебкамеру, Wi-Fi, различные USB модемы, (донглы и для выхода в интернет через телефон с помощью PPP). В minimal нет ничего кроме того что нужно для работы системы. Из сетевых устройств только встроенная сетевуха. В конфиге wireless отсутствует поддержка вебкамеры (ибо не юзаю), но есть все остальное включая 3G USB модемы и PPP.

Аватар пользователя anonymous

Собрал бы образ сразу, чтоб не мучиться, а то компилится ОЧЕНЬ долго, обновление сутки занимает (хотя это может я так выставил флаги).

Аватар пользователя anonymous

Можно статью в своей сети разместить?