Установка Gentoo Linux на Asus Eee PC

Материал из Belgorod Linux User Group - Белгород

Перейти к: навигация, поиск

Статья рассказывает о том, как правильнее и проще поставить Gentoo Linux на sub-sub ноут Asus Eee PC. А проще это сделать - собирая Gentoo на другой, более мощной машине, под Asus Eee PC с последующей заливкой на бук.


Asus-eee-gentoo-003.png

Содержание

Дано

Дано:

  • Asus Eee PC - 1 штука (а можно и больше :) )
  • SD/MMC флешлка (для переноса на Asus) на 2Гб - 1 штука, или 2 штуки по 700Мб
  • Дистрибутив Gentoo - 1 штука
  • Большой брат в виде старшего PC - не важно сколько штук, но желательно с архитектутой Intel, и чем мощнее тем лучше.

Требуется

Требуется поставить Gentoo Linux на Asus Eee PC за минимальное время, с минимальным набором и с максимальным комфортом.

Asus-eee-gentoo-001.png

Установка

Установка будет происходить на "большом" компьютере, чтобы не тратить ни вычислительные ресурсы суб-суб ноута, ни его все-таки ограниченные ресурсы твердотельного накопителя (см. Лимит записи SSD-дисков ). Да и быстрее будет все это, особенно если вы подберете (как я) какой-нибудь простаивающий 8-ми CPU-шный Xeon-чик :)

Установка в директорию

Установка Gentoo Linux практически не будет отличаться от обычной установки, за исключением того, что ставиться она будет на большом PC, на котором уже стоит не важно какой дистрибутив. И там мы будем ставить в директорию !!!

Для этого создадим какую-либо директорию. Лучше все делать от root-а, чтобы не потерялись права:

sudo su -
mkdir /root/eee

Следом открываем инструкцию по установке Gentoo Linux, и следуем ей. Рекомендуется статья нашего Wiki: Установка Gentoo Linux По порядку там.

Распаковываем stage 3

Распаковываем заранее подготовленный файл stage3:

cd /root/eee
tar -xjvf stage3-xxxxx.tar.bz2

Порты

Для того чтобы работала система портов, нужны сами порты. Я монтировал их из локальной директории:

с другой (не chroot-нутой) консоли:
mount -o bind /usr/portage /root/eee/usr/portage

В принципе, можно было тут указать и сетевой nfs путь или распаковать из тарбола, или выкачать по emerge --sync.

Заходим в новый Linux

Chroot-имся в новый наш Линукс для Еее:

mount -t proc proc /root/eee/proc
chroot /root/eee /bin/bash
env-update
source /etc/profile

Оптимизация

Подредактировал /etc/make.conf, чтобы он выглядел примерно так:

CFLAGS="-O3 -march=pentium-m -pipe -fomit-frame-pointer -s"
CXXFLAGS="${CFLAGS}"
CHOST="i686-pc-linux-gnu"
ACCEPT_KEYWORDS="~x86"
USE="-kde -gnome -java -qt -qt3 -qt4 -ipv6 -doc -berkdb -readline -selinux 
    X nptl nptlonly unicode gtk2 gtk jpeg png gif mp3 ogg -dvdrw -dvdr sse sse2 opengl syslog vim-syntax truetype type1 pdf exif samba
    fbcon netboot acpi laptop usb dhcp madwifi 
    bash-completion libnotify spell xhtml dbus libxml2 alsa curl ffmpeg mad sndfile vorbis wavpack sse sse2 -ht mmx threads xml idle
    a52 aac encode mmx network oss sdl theora xvid cairo flac wma musepack win32codecs
    djvu tiff flac hal"
VIDEO_CARDS="i810 intel vesa vgs"
ALSA_CARDS="hda-intel intel8x0" 
# n CPU
MAKEOPTS="-j9"
PORTDIR_OVERLAY="/usr/local/portage"
LINGUAS="ru"
FEATURES="-sandbox -unmerge-orphans"

Флаги я не побоялся поставить:

CFLAGS="-O3 -march=pentium-m -pipe -fomit-frame-pointer -s"

Т.е. достаточно сильную оптимизацию, со стрипаньем бинарников. С бОльшими флагами (подобранными к примеру acovea) заморачиваться пока не стал. Если что - пересобиру еще. Забегу вперед, но что примечательно, с этими флагами у меня не заработала эта система на AMD Athlon XP (вылетал все время в кору), а на Eee PC - все летало без единой ошибки! Все таки как различаются архитектуры, и код, собранный под конкретную модель.

В остальном вроде все понятно. Главное указать VIDEO_CARDS, ALSA_CARDS.

Пересборка мира

После выставления флагов оптимизации, я решил сразу пересобрать этот жалкий мирок, собранный под "сферического коня в вакууме".

emerge -e world

Все. Система заточена под наш бук.

Ядро

В ядре >=2.6.28 есть поддержка нужного нам железа. По этому просто ставим

emerge gentoo-sources

конфигурирование

Теперь самый длительный этап - конфигурирование ядра. Тут главное не забыть:

железо:
* Audio: Intel HD Audio. There is some extra effort needed to get this working.
* Framebuffer: Intel 830M/845G/852GM/855GM/865G/915G/945G
* Direct Rendering Manager: Intel 830M, 845G, 852GM, 855GM, 865G (i915 driver)
* Network: Atheros L2 Fast Ethernet 
General setup  --->
 [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
  (/usr/share/v86d/initramfs) Initramfs source file(s) 
Device Drivers ->
<*> Connector - unified userspace <-> kernelspace linker  --->
 Graphics support ->
  [*] Support for frame buffer devices
  <M>   Userspace VESA VGA graphics support  # /!\ Yes, as a module, not built-in
  Console display driver support ->
   [*] Video mode selection support
   <*> Framebuffer Console support

http://en.gentoo-wiki.com/wiki/Asus_Eee_PC_701#Kernel

Для поддержки DRI в xorg:

Device Drivers ->
 Character Devices ->
  <*> /dev/agpgart (AGP Support)
   <M>   Intel 440LX/BX/GX, I8xx and E7x05 chipset support
   <M>   Intel I810
  <M> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
   <M>     i915 driver   


Вот мой конфиг: Медиа:Config-eee.tar.gz‎

Ставим все что надо

Ставим пакет для поддержки красивой frabebuffer консоли, с разрешением 800x480 на нашем буке:

emerge klibc v86d 915resolution

Все, система фактически готова, осталось поставить ПО.

world

У меня выглядело это примерно так:

emerge app-admin/sudo app-admin/sysklogd app-dicts/myspell-en app-dicts/myspell-ru app-dicts/stardict app-editors/gedit app-misc/screen app-portage/gentoolkit app-portage/getdelta app-portage/layman app-shells/zsh app-text/djvu app-text/evince dev-lang/lua dev-lang/python dev-libs/klibc dev-util/valgrind gnome-extra/gcalctool mail-client/mutt mail-filter/procmail mail-mta/postfix media-fonts/terminus-font media-gfx/gimp media-gfx/gqview media-gfx/imagemagick media-gfx/scrot media-gfx/xloadimage media-plugins/alsa-plugins media-sound/alsa-driver media-sound/alsa-tools media-sound/alsa-utils media-sound/audacious media-sound/gmpc media-sound/moc media-sound/mpc media-sound/mpd media-sound/ncmpc media-video/mplayer net-fs/nfs-utils net-fs/samba net-ftp/ftp net-im/gajim net-mail/fetchmail net-misc/ntp net-misc/rdesktop net-misc/telnet-bsd net-misc/vnc net-misc/whois net-p2p/transmission sys-apps/915resolution sys-apps/portage sys-apps/v86d sys-boot/grub sys-devel/gcc sys-fs/avfs sys-fs/lvm2 sys-kernel/eee-sources sys-libs/glibc sys-process/lsof sys-process/vixie-cron www-client/epiphany www-client/epiphany-extensions x11-apps/xset x11-base/xorg-x11 x11-drivers/xf86-input-synaptics x11-drivers/xf86-video-i810 x11-misc/xscreensaver x11-terms/mlterm x11-wm/fluxbox x11-wm/ion3


На самом деле это некий cat из моего /var/portage/world с рабочей машины, с тем ПО, которое я бы хотел видеть на моем Asus Eee PC.

acpi

Убедимся что в ядре не стоит ASUS ACPI вкомпиленным в ядро:

Power management options (ACPI, APM)  --->
 ACPI Support (Advanced Configuration and Power Interface) Support  --->
  < >   ASUS/Medion Laptop Extras 

Ставим новый модуль ядра для ASUS ACPI:

Device Drivers --->
  [*] X86 Platform Specific Device Drivers  --->
     <*>   Asus Laptop Extras (EXPERIMENTAL) 
     < >   ASUS/Medion Laptop Extras 

Ставим acpid

emerge acpid
rc-update add acpid default 

все, теперь будет выключаться по кнопочке power и показывать статусы заряда.


Функциональные клавиши:

Добавляем наши функциональные клавиши в /etc/acpi/default.sh в секцию :

case "$group" in
       hotkey)
               case "$id" in
               00000010)
                       # wifi
                       /etc/init.d/wifi toggle
                       ;;
               00000011)
                       # wifi
                       /etc/init.d/wifi toggle
                       ;;
               00000013)
                       # mute/unmute
                       amixer set Front toggle
                       ;;
               00000014)
                       # down volume
                       amixer set Front 5dB-
                       ;;
               00000015)
                       # up volume
                       amixer set Front 5dB+
                       ;;
               00000030)
                       # LVDS only
                       export DISPLAY=:0.0
                       export XAUTHORITY=/home/107/.Xauthority
                       xrandr --output VGA --off
                       xrandr --output LVDS --mode 800x480
                       logger "LVDS only"
                       ;;
               00000031)
                       # VGA only
                       export DISPLAY=:0.0
                       export XAUTHORITY=/home/107/.Xauthority
                       xrandr --output LVDS --off
                       xrandr --output VGA --mode 800x600
                       logger "VGA only"
                       ;;
               00000032)
                       # VGA and LVDS
                       export DISPLAY=:0.0
                       export XAUTHORITY=/home/107/.Xauthority
                       xrandr --output VGA --mode 800x600
                       xrandr --output LVDS --mode 800x480
                       logger "VGA and LVDS"
                       ;;
               *)      log_unhandled $* ;;
               esac
        ;;

suspend/hibernate

TODO: Этот раздел еще до конца не оттестирован

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

Событие засыпания по закрытии крышки (lid) и нажатия кнопки Zz (sleep):

в файле /etc/acpi/default.sh

прописываем в:
case "$group" in
 button)
  case "$action" in

новые правила:

   lid)
    /root/suspend.sh
    ;;
   sleep)
    /root/suspend.sh
    ;;


  • suspend
emerge suspend

Скрипт засыпания /root/suspend.sh :

#!/bin/bash
/usr/sbin/s2ram -f --vbe_post --vbe_mode
sleep 3
echo -n 1> /sys/devices/platform/eeepc/power/wakeup

включаться будет кнопкой Power

TODO: было замечено, что из консоли иногда просыпается, но не включает экран. Их Х-ов все нормально

wi-fi

Проверяем что в модуле включена поддержка горячего подключения PCI:

cat /usr/src/linux/.config | grep CONFIG_HOTPLUG_PCI

должно показать

CONFIG_HOTPLUG_PCI=m

В ядрах >= 2.6.29 уже идет поддержка wifi

 -*- Networking support  --->
    [*]   Wireless  --->
      <*>   Generic IEEE 802.11 Networking Stack (mac80211)
    -*-   RF switch subsystem support  --->  
      <*>   Input layer to RF switch connector
 Device Drivers  --->
     [*] Network device support  --->
         [*]   Ethernet (10 or 100Mbit)  --->  
               <M>   Atheros L2 Fast Ethernet support

симлинка:

ln -s /etc/init.d/net.lo /etc/init.d/net.wlan0


Пишем скрипт запуска/останова /etc/init.d/wifi:

#!/bin/sh
# The sequence here *may* be important.
# (It seems to fail intermittently if you deviate.) 
unload_modules() {
 rmmod ath5k
 rmmod wlan_scan_sta
 rmmod ath_rate_sample
 sleep 1
 rmmod wlan_ccmp
 rmmod wlan
}
# At least this one's straightforward.
load_modules() {
 modprobe ath5k
} 
wifi_on() {
  # Force PCI Express Hotplug to reinit
  rmmod pciehp
  sleep 1
  # pciehp_force may be unnecessary; Xandros did it.
  modprobe pciehp pciehp_force=1
  sleep 1
  # Switch on the hardware
  echo 1 > /sys/class/rfkill/rfkill0/state
  sleep 1
  load_modules
  /etc/init.d/net.wlan0 start
}
wifi_off() {
  /etc/init.d/net.wlan0 stop
  unload_modules
  echo 0 > /sys/class/rfkill/rfkill0/state
}
case $1 in
  start)
     wifi_on
     ;;
  stop)
     wifi_off
     ;;
  toggle)
     STAT=`cat /sys/class/rfkill/rfkill0/state`
     if [ "$STAT" = "1" ];
        then wifi_off;
        else wifi_on;
     fi
     ;;
esac
chmod 755 /etc/init.d/wifi


Теперь его можно будет использовать с параметрами start, stop и toggle. А в дальнейшем повесить на кнопки.


подробнее см. http://forum.eeeuser.com/viewtopic.php?pid=219868

Если нужна поддержка WPA (вместо WEP) ставим:

emerge net-wireless/wpa_supplicant

Можно поставить клиента dhcp, если wifi роутер раздает IP динамически:

emerge dhcpcd


Настройка

Проверка wifi идет уже на EEE PC:

/etc/init.d/wifi start
lspci | grep Ethernet
 01:00.0 Ethernet controller: Atheros Communications Inc. AR242x 802.11abg Wireless PCI Express Adapter (rev 01)
 03:00.0 Ethernet controller: Attansic Technology Corp. L2 100 Mbit Ethernet Adapter (rev a0)
dmesg | tail
 ath5k 0000:01:00.0: registered as 'phy0'
 wmaster0 (ath5k): not using net_device_ops yet
 phy0: Selected rate control algorithm 'minstrel'
 wlan0 (ath5k): not using net_device_ops yet
 ath5k phy0: Atheros AR2425 chip found (MAC: 0xe2, PHY: 0x70)
ifconfig wlan0 up
iwconfig
 wmaster0  no wireless extensions.
 wlan0     IEEE 802.11bg  ESSID:""  
         Mode:Managed  Frequency:2.412 GHz  Access Point: Not-Associated   

видим: Access Point: Not-Associated, следовательно уже можем регистрироваться на точке:

  • /etc/conf.d/net

в /etc/conf.d/net прописываем:

modules=( "wpa_supplicant" )
wpa_supplicant_wlan0="-D wext"
config_wlan0=("dhcpcd")

если у вас статичный IP, то можно писать так:

config_MYNET=("192.168.0.1 netmask 255.255.255.0")

где MYNET - ESSID вашей точки доступа. Или так:

config_wlan0=("192.168.0.1 netmask 255.255.255.0")


  • Настраиваем wpa_supplicant:

Сканируем доступные сети:

iwlist wlan0 scan
wlan0     Scan completed :
         Cell 01 - Address: 00:12:34:56:78:90
                   ESSID:"MYNET"
                   Mode:Master
                   Channel:1
.....

Увидели сеть MYNET (это имя получено из строки ESSID:"MYNET" при сканировании ).

Прописываем к ключ доступа к сети MYNET:

wpa_passphrase MYNET password > /etc/wpa_supplicant/wpa_supplicant.conf

Редактируем получившийся /etc/wpa_supplicant/wpa_supplicant.conf:

network={
   ssid="MYNET"
   scan_ssid=1
   #psk="password"
   psk=3123432423423bbeeaa4232332423423423be
   proto=RSN
   key_mgmt=WPA-PSK
   pairwise=CCMP
   group=TKIP
}

Советы по настройке wi-fi (режимов авторизации, шифрования и т.п.) см. подробнее к примеру тут http://www.opennet.ru/base/net/linux_wificlient.txt.html

  • Запускаем:
/etc/init.d/net.wlan0 start

* Bringing up interface wlan0
*   Starting wpa_supplicant on wlan0... [ ok ]
*   Starting wpa_cli on wlan0... [ ok ]
*   Backgrounding ......
* WARNING: net.wlan0 has started, but is inactive

Проверяем что подключились к точке доступа:

iwconfig wlan0
wlan0     IEEE 802.11bg  ESSID:"MYNET"  
         Mode:Managed  Frequency:2.412 GHz  Access Point: 00:1C:F0:C0:74:A3   
         Bit Rate=1 Mb/s   Tx-Power=-1 dBm   
         Retry min limit:7   RTS thr:off   Fragment thr=2352 B   
         Encryption key:0247-8A9A-4BD3-D354-5C50-9951-6876 [3]   Security  mode:open
         Power Management:off
         Link Quality=85/100  Signal level:-70 dBm  Noise level=-100 dBm
         Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
         Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Проверяем что получили IP:

ifconfig wlan0

wlan0     Link encap:Ethernet  HWaddr 00:15:af:87:98:62  
         inet addr:192.168.0.19  Bcast:192.168.0.255  Mask:255.255.255.0
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:116 errors:0 dropped:0 overruns:0 frame:0
         TX packets:92 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000 
         RX bytes:11624 (11.3 KiB)  TX bytes:11207 (10.9 KiB)

Проверям путь:

tracepath belgorod.lug.ru
1:  192.168.0.19      1.473ms pmtu 1500
1:  79.140.77...     6.772ms reached

вроде все ок :)

webcam

Проверяем есть ли в ядре флаг CONFIG_VIDEO_DEV

cat /usr/src/linux/.config | grep CONFIG_VIDEO_DEV

В ядрах >= 2.6.29 драйвер видео входит в ядро:

Device Drivers  --->
    Multimedia devices  --->
     <M> Video For Linux
     [*] Video capture adapters (NEW)  --->
       [*]   V4L USB devices  --->   
         <M>   USB Video Class (UVC)
          [*]     UVC input events device support (NEW)


ставим ПО:

emerge -v luvcview

Пишем скрипт запуска камеры /etc/init.d/webcam:

#!/bin/bash
webcam_on () {
modprobe uvcvideo
echo 1 > /sys/devices/platform/eeepc/camera 
}
webcam_off () {
echo 0 > /sys/devices/platform/eeepc/camera 
rmmod uvcvideo
}
case $1 in
 start)
  webcam_on
  ;;
 stop)
  webcam_off
  ;;
esac

Запускать веб-камеру будем этим скриптом с параметрами on или off

Проверяем:

echo 1 > /sys/devices/platform/eeepc/camera 
dmesg | tail
 usb 1-8: new high speed USB device using ehci_hcd and address 3
 usb 1-8: configuration #1 chosen from 1 choice
 uvcvideo: Found UVC 1.00 device <unnamed> (eb1a:2761)
 input: UVC Camera (eb1a:2761) as /class/input/input7
lsusb -d eb1a:2761
 Bus 001 Device 003: ID eb1a:2761 eMPIA Technology, Inc. 
ls -la /dev/video*
 crw-rw---- 1 root video 81, 0 Апр  2 10:53 /dev/video0

Запускаем программу для просмотра камеры:

luvcview -f yuv

Grub

Только конфигурируем, потому как ставить будем уже на месте. Мой конфиг примерно такой:

cat /boot/grub/menu.lst

timeout 3
default 0
title Gentoo Linux
root (hd0,2)
kernel /boot/vmlinuz root=/dev/sda3
title Windows XP
rootnoverify (hd0,1)
makeactive
chainloader (hd0,1)+1

fstab

Мой примерно такой:

/dev/sda3               /               ext2            noatime         0 1
/dev/vg/home            /home           ext2            noatime         0 1
/dev/vg/usr             /usr            ext2            noatime         0 1
/dev/vg/var             /var            ext2            noatime         0 1
/dev/ram0               /tmp            tmpfs           size=20m        0 0

Как видно, я хочу вынести корень на etx2 отдельный раздел (128М), а остальные разделы - на LVM. Именно LVM потому как позволяет очень хорошо расширять и гибко управлять системой. Особенно если я винду пока не сносил, но собираюсь снести, и ее место добавить потом на Linux. Подробнее тут: LVM


Так же я перенес /tmp на ramdrive (в память). И еще советую перенести другие "временные" директории туда же:

rm -fr /var/lock/
rm -fr /var/log/
rm -fr /var/run/
rm -fr /var/tmp 
ln -s /tmp /var/lock/
ln -s /tmp /var/log/
ln -s /tmp /var/run/
ln -s /tmp /var/tmp/

Подробнее см. тут: http://eee-pc.ru/forum/viewtopic.php?id=44

Локализация

Настраиваем конфиги, примерно как сказано тут: Локализация

В связи с переходом на OpenRC, у меня не работала клавиатура в консоли, вылечил симлинками:

ln -s /usr/bin/setfont /bin/setfont
ln -s /usr/bin/loadkeys /bin/loadkeys

Настройка

Устанавливаем пароль, добавляем пользователя и т.п.

passwd
useradd ......

Для консоли, в файле

/etc/conf.d/915resolution

меняем строку на:

replace="'5c 800 480 32'"

И создаем файл:

/etc/init.d/uvesafb

с содержимым:

#!/sbin/runscript
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
Exp $
depend()  {
       after 915resolution
       before xdm
       before consolefont 
}
start() {
       ebegin "800x480-32@60"
       modprobe uvesafb mode=800x480-32@60 || retval=$?
       eend ${retval}  
}

Затем chmod +x /etc/init.d/uvesafb.

Еще я дописывал в файл

/etc/init.d/915resolution

строку с зависимостью от localmount (т.к. оно пытается писать логи)

depend() {
 use localmount
 before xdm
}

Записываем сервисы в автозагрузку:

rc-update add 915resolution boot
rc-update add uvesafb boot
rc-update add net.lo default

Обязательно не забудте добавить net.lo (петлю localhost) в автозагрузку, а то при загрузке ваш Asus Eee PC будет очень долго висеть и ждать после local.start.

Дополнительно

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

Автологин

Если хотим, чтобы система автоматически запускала shell без ввода пароля, то :

ставим mingetty

emerge mingetty

и изменяем строку в /etc/inittab

#c1:12345:respawn:/sbin/agetty 38400 tty1 linux
c1:12345:respawn:/sbin/mingetty --autologin user tty1

где user - ваш пользователь

Авто Запуск Х

  • для авто запуска Х из консоли:

в ~/.zshrc или ~/.bash_rc добавить строки:

if  -z "$DISPLAY"  &&  $(tty) = /dev/tty1 ; then
 startx
 logout
fi
  • для запуска из rc:
cat > /usr/bin/xdm <<"EOF"
#!/bin/bash
/bin/su user -l -c "/bin/bash --login -c startx >/dev/null 2>&1 &"
EOF
chmod +x /usr/bin/xdm
rc-update add xdm default

где user - ваш пользователь

Установка на Asus

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

umount /usr/portage
exit

Осталось запаковать директорию и перенести ее на Asus.

Live SD/MMC

Я сделал загрузочную флешку как было описано тут:

http://www.pendrivelinux.com/2007/09/21/usb-gentoo-20070-install/

Там по сути надо скачать их скрпит и натравить его на livecd-gentoo-2007.0.iso В результате получится диретория gentoo, которую надо будет скопировать на чистую флешку, и запустить скрипт, который сделает её загрузочной.

Tarball

Перед тем как перенести наш Линукс - желательно его почистить. Я это делал так:

cd /usr/src/linux
make clean
rm -fr /usr/share/docs/
rm -fr /usr/share/gtk-docs/

Теперь переносим наш новый линукс на Flash. Можно на тот же, с LiveCD, либо если мало там места - на другую. У меня Live CD занимал порядка 700Мб, и архив с Linux - примерно 400 Мб.

cd /root
tar -czf eee-gentoo.tar.gz ./eee/
mkdir -p /mnt/flash
mount /dev/sda1 /mnt/flash
cp eee-gentoo.tar.gz /mnt/flash
sync
umount /mnt/flash

Загружаемся с Live SD/MMC

Предварительно от винды я отрезал 2Gb. Вставляем флешку и вначале загрузки зажимаем Esc, пока не появится выбор для загрузки с флеш.

Внимание! После загрузки с флешки, во всяком случаи у меня, номера дисков меняются. Т.е. у меня флешка стала /dev/sda, а мой SSD стал /dev/hdc (почему-то). Потом, как будем грузиться уже с винта в наш линукс - все вернется, как /dev/sda и /dev/sdb

Форматирование

Как я уже говорил, предварительно от винды я отрезал 2Gb, по этому после загрузки я сразу выбрал cfdisk и отредактировал все как хотел: 1 раздел под корень, и 1 под LVM. В дальнейшем я и место, которое занимаем винда, собираюсь подключить к LVM, расширев место для Linux-а. Подробнее все в том же руководстве Установка Gentoo Linux

Распаковка

Монтируем уже новые разделы, и распаковываем туда наш stage4 ;)

mkdir /mnt/eee
mount /dev/hdc3 /mnt/eee
mount /dev/vg/home /mnt/eee/home
mount /dev/vg/usr /mnt/eee/usr
mount /dev/vg/var /mnt/eee/var
tar -xvzpf /mnt/cdrom/eee-gentoo.tar.gz -C /mnt

Конфигурирование

Все, система развернута на наш Asus. Осталось ее подконфигурить:

grub

grub
> root (hd0,2)
> setup (hd0)
> quit

Xorg

xorg-config

генерируем xorg.conf, и исправляем там:

   Load        "type1"
   Load        "freetype"
   Load       "glx"
   Load       "dri"
Section "Monitor"
       Identifier   "Monitor0"
       VendorName   "Monitor Vendor"
       ModelName    "Monitor Model"
       Modeline     "800x480"  29.58  800 816 896 992  480 481 484 497  -HSync +Vsync
EndSection
Section "InputDevice"
   Identifier  "Mouse1"
   Driver      "synaptics"
   Option "CorePointer"
   Option "SendCoreEvents" "true"
   Option "Protocol"    "auto-dev"     # Auto detect
   Option "Device"      "/dev/input/mice"
   Option "HorizEdgeScroll" "1"
   Option "ZAxisMapping"   "4 5 6 7"
EndSection
Section "DRI"
   Mode 0666
EndSection


Если вы используете hal, то вот еще файл конфигурации для клавиатуры в xorg:

cat /etc/hal/fdi/policy/10-x11-input.fdi 

<?xml version="1.0" encoding="utf-8"?>
<deviceinfo version="0.2">
 <device>
  <match key="info.capabilities" contains="input.keyboard">
   <merge key="input.x11_driver" type="string">evdev</merge>
   <merge key="input.x11_options.XkbModel" type="string">pc105</merge>
   <merge key="input.x11_options.XkbModel" type="string">evdev</merge>
   <merge key="input.x11_options.XkbLayout" type="string">us,ru</merge>
   <merge key="input.x11_options.XkbVariant" type="string">winkeys</merge>
   <merge key="input.x11_options.XkbOptions" type="strlist">grp:ctrl_shift_toggle</merge>
   <append key="input.x11_options.XkbOptions" type="strlist">grp:switch</append>
   <append key="input.x11_options.XkbOptions" type="strlist">grp_led:scroll</append>
   <append key="input.x11_options.XkbOptions" type="strlist">compose:ralt</append>
  </match>
 </device>
</deviceinfo>
rc-update add hald default

Alsa

alsaconf
alsamixer
/etc/init.d/alsasound save
rc-update add alsasound default

Перезагрузка

Пожелай себе удачи!

Синхронизация

В дальнейшем собирать новые пакеты так же можно на большой машине, и затем сливать их rsync-ом. К тому же rsync полезен и как бекап. Двух зайцев одним выстрелом.

Вот скрипты, которые я использую для синхронизации Eee <-> PC

cat eee-eee2pc.sh
 EEEHOST="root@172.22.244.106"
 SYNCDIR="/home/l07/eee"
 rsync -avz --delete --exclude "/dev/*" --exclude "/proc/*" --exclude "/sys/*" --exclude "/usr/portage/*" --exclude "/usr/local/portage/*" --exclude "/mnt/*" --exclude "/tmp/*" -e ssh $EEEHOST:/ $SYNCDIR/

cat eee-pc2eee.sh
 EEEHOST="root@172.22.244.106"
 SYNCDIR="/home/l07/eee"
 rsync -avz --delete --exclude "/dev/*" --exclude "/proc/*" --exclude "/sys/*" --exclude "/usr/portage/*" --exclude "/usr/local/portage/*" --exclude "/mnt/*"  --exclude "/tmp/*" -e ssh $SYNCDIR/ $EEEHOST:/

Собственно говоря меняется только место назначения - от куда и куда. Рекомендуется так же тут настроить тут SSH авторизация по ключу


Ссылки

Обязательно рекомендуется ознакомиться с:

Личные инструменты