[ РЕШЕНО ] Установка системы на Acer Aspire One AOA110
Есть Acer Aspire One AOA110 хочеться поставить систему ( не обязательно Gentoo, но желательно).
Пробывал puppy, но что-то не особо понравился дистр, да и не все завелось...
Хотелось бы собрать маленькую систему, содержащую все необходимое и оптимизированное под Intel Atom.
CD нет, есть большой ком, но система 64-битная, поднимать distcc и компилить не хочеться, в основном из-за того, что сам ноут будет участвовать в сборке ( а это медленно ) и во-вторых тежялой настройке кроскомпилирования + в любом случае надо собирать систему на flash ( чтобы хотя бы gcc совпадал по версиям )...
Вообщем, хочеться собрать систему локально, а потом просто перетащить на ноут.
Подскажите как это лучше всего сделать, а то просто не знаю с чего начать.
-----------------------------------------------------------------------------------------------------------
Вообщем все получилось, пока дошел до xfce4, осталось только настройки, чтобы все работало....
Вкратце, как получилось:
(Опционально) Создаем виртуальный диск
dd if=/dev/zero of=vdisk.img bs=1M count=$((4*1024)) /sbin/mke2fs -m 0 vdisk.img mount vdisk.img /mnt/gentoo32 -o loop
Подготовка
# pushd /mnt/gentoo32 # tar -xvjpf /home/user/stage3-x86-2008.0.tar.bz2 # mount -o bind /dev /mnt/gentoo32/dev # mount -o bind /dev/pts /mnt/gentoo32/dev/pts # mount -o bind /dev/shm /mnt/gentoo32/dev/shm # mount -o bind /proc /mnt/gentoo32/proc # mount -o bind /proc/bus/usb /mnt/gentoo32/proc/bus/usb # mount -o bind /sys /mnt/gentoo32/sys # mkdir -p /mnt/gentoo32/usr/portage/ # mount -o bind /usr/portage /mnt/gentoo32/usr/portage/ # mount -o bind /tmp /mnt/gentoo32/tmp </pre></blockquote>
В дальнейшем написал скриптик, для быстрого монтирования/размонтирования
#!/bin/sh echo "Mounting virtual disk" mount vdisk.img /mnt/gentoo32 -o loop echo "Copy config files" cp -L /etc/resolv.conf /mnt/gentoo32/etc/ cp -L /etc/passwd /mnt/gentoo32/etc/ echo "mount virtual file systems" mount -o bind /dev /mnt/gentoo32/dev mount -o bind /dev/pts /mnt/gentoo32/dev/pts mount -o bind /dev/shm /mnt/gentoo32/dev/shm mount -o bind /proc /mnt/gentoo32/proc mount -o bind /proc/bus/usb /mnt/gentoo32/proc/bus/usb mount -o bind /sys /mnt/gentoo32/sys mount -o bind /usr/portage/ /mnt/gentoo32/usr/portage/ mount -o bind /tmp /mnt/gentoo32/tmp mount -o bind /var/tmp/ /mnt/gentoo32/var/tmp/ echo "This host is " uname -m echo "Change Root system to 32-bit" linux32 chroot /mnt/gentoo32 /bin/bash</pre>
и возвращаем все на место:
#!/bin/sh echo "Unmount virtual file systems" umount /mnt/gentoo32/dev/pts umount /mnt/gentoo32/dev/shm umount /mnt/gentoo32/dev umount /mnt/gentoo32/proc/bus/usb umount /mnt/gentoo32/proc umount /mnt/gentoo32/sys umount /mnt/gentoo32/usr/portage/ umount /mnt/gentoo32/tmp umount /mnt/gentoo32/var/tmp/ echo "UnMounting virtual disk" umount /mnt/gentoo32</pre>
Chroot
linux32 chroot /mnt/gentoo32 /bin/bash
выполняем:
source /etc/portage env-update</pre>
Желательно сразу обновить систему и обновить gcc на 4.4.1, после
Правим /etc/make.conf и устанавливаем как написано в доке
CHOST="i686-pc-linux-gnu" CFLAGS="-O2 -march=core2 -mtune=generic -fomit-frame-pointer -pipe" CXXFLAGS="$CFLAGS"</pre>
выбираем новый gcc через gcc-config
и снова пересобираем gcc
старую версию сносим, с помощью emerge -avP gcc, и далее все по handbook
Конфиг ядра можно взять отсюда:
http://aur.archlinux.org/packages.php?ID=19580
Из известных проблем:
Если не собираеться gettext для perl, perl надо еще раз пересобрать
и пересобрать python, еще разок когда обновлением компилятора будет завершено
Перетаскиваем на flash все через команду:
rsync -av --delete-excluded --exclude usr/src/ --exclude var/db/pkg --exclude var/cache/ /mnt/gentoo32/ /mnt/myflash/
Чтобы загрузиться с usb-flash необходимо указать парамер rootdelay=10, чтобы ядро успело найти файловую систему флешки, а то я долго не мог понять почему ядро корень не находит.
Дальнейшую настройку делаю по статье: http://wiki.archlinux.org/index.php/Acer_Aspire_One
Всем спасибо за подсказки :)
- Для комментирования войдите или зарегистрируйтесь
Вопрос такой: Возможен-ли
Вопрос такой: Возможен-ли chroot из amd64 и x86?
Если да, то я делал так.
создавал большой (~6G) файл, в нем ext3. Монтировал, распаковывал stage3, chroot туда и по хендбуку собирал систему для ноута.
После сборки rsync'ом копировал результат на usb-винт, ставил в его корень grub, загружал с винта ноут, конфигурировал. По окончании тем же rsync с винчестера систему слил на ноут. Образ диска на большом брате сохранил, теперь иногда на нем мир обновляю и по сети опять же rsync обновляю ноут
да возможен, см.
да возможен, см. linux32
большой файл ненужен, достаточно простого chroot'а куданибудь
вот только там нужны какие-то
вот только там нужны какие-то хитрости при сборке некоторых пакетов, у меня, например, mplayer не хотел в 32битном chroot-е собираться и ядро.
статья
Нашел статейюу про chroot 32 в 64-х битной системе.
32Bit Chroot Guide for Gentoo/AMD64
Там действительно используется linux32 (setarch тул), вроде, все понятно выглядит...
Буду пробывать... о результатах напишу :)
Спасибо, за совет :)
Пробовать пробуйте, я забыл
Пробовать пробуйте, я забыл добавить, что /usr/portage я монтировал через -o bind, чтобы не перекачивать файлы заново и потом их на ноут не тащить, у меня там всего 8 гигов памяти )
то что он не нужен я понял
то что он не нужен я понял позже. тут правда 1 нюанс возникает. Если хочется куда-то этот образ системы скинуть или удалить нафиг, то 1 файл обработается заметно быстрее) чем куча мелких
Флаги для Intel Atom N270
В нетбуке стоит процессор Atom N270, начал искать для него флаги наткнулся на статейку:
Safe Cflags/Intel
CHOST="i686-pc-linux-gnu"
CFLAGS="-O2 -march=core2 -mtune=generic -fomit-frame-pointer -pipe"
CXXFLAGS="$CFLAGS"
Самое странное, что указана архитектура core2 (4.4.1 GCC указано -march=core2 Intel Core2 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3 and SSSE3 instruction set support. )
Собственно, он может работать в 64-х битном режиме?
Если да, то не понятно под какую архитектуру компилировать?
да. могут. однажды
да. могут. однажды лажанулся... :)
ставил на Atom Madriv'у с Dual-Arc диска и не посмотрел... в итоге получил 64бит систему, пришлось пересталять :)
P.S.: Linux - это красная таблетка :-) Windows - синяя...
N270 - только 32 бит. В вики
N270 - только 32 бит. В вики по нему ни слова о 64 битах.
330-й действительно 64 бита.
У меня сейчас на двух системах gentoo - на одной c2d на другой atom - а cflags получились одинаковые, что радует, можно просто пакеты бинарные перекдывать для обновления.
+ sse3, судя по
+ sse3, судя по /proc/cpuinfo, он не поддерживает.
PS ставте
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=prescott"
и дальше по вкусу.
PPS atom 270 не такой и медленный, только смонтируйте tmpfs в /var/tmp на момент сборки пакетов (и быстрее, и нерасходуется ресурс ssd)
PPPS держите portage в squashfs + aufs
model name : Intel(R)
model name : Intel(R) Atom(TM) CPU N270 @ 1.60GHz
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe constant_tsc arch_perfmon pebs bts pni dtes64 monitor ds_cpl est tm2 ssse3 xtpr pdcm lahf_lm
model name : Intel(R) Core(TM)2 CPU T5500 @ 1.66GHz
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe lm constant_tsc arch_perfmon pebs bts pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm tpr_shadow
так что в моём случае - оба без sse3 но с ssse3 следовательно -march=core2 с gcc 4.3 и 4.4 работает нормально
следовательно ставте
следовательно ставте -march=prescott и будет Вам счястье.
Незвесно что курил автор, когда пралив wiki,сказал что atom270==core2
кроме sse2 есть больщии
кроме sse2 есть больщии отличия в архитектуре. Просто, если Вы используете gcc-4.3 он не будет генерить код для неправильной архитекруры (например укажите i386, и потом посмотрите листинг)
Поробую для начала core2,
Поробую для начала core2, потом если что-то не так пойдет постараюсь пересобрать :)
Вообще, споров достаточно много, но самый обоснованный ответ, который я нашел, это http://gcc.gnu.org/ml/gcc-help/2009-04/msg00101.html
В любом случае, это только набор инструкций, архитектура все равно 32-х битная ( или я ошибаюсь ?)
Если будет развёрнут chroot
Если будет развёрнут chroot из 32-битного стэйджа то и результат будет 32-х битный.
на samsung nc10 то что собрано с -march=core2 стабильно работает.
надо бы, конечно, производительность сравнить.