Автор Тема: Промяна на архитектурата в Джентуу  (Прочетена 2313 пъти)

metal

  • Напреднали
  • *****
  • Публикации: 414
    • Профил
Имам една к6-2-ка на 500MHz, която само събира пепела в нас, а в същото време моя комп работи доста време само за да рутира нета към компа на дъщеря ми. Реших да го направя на рутер - речено-сторено. Тъй като не ми се иска да работи само заради това, ще го направя на файлов сървър и телевизор, но се притеснявам от по-ниската производителност (поне на теория) поради по-старата архитектура, за която е компилиран stage3 (а и всички пакети след това). В българското огледало (http://mirrors.ludost.net/gentoo/) има stage3 само за i686 и x86. Изтеглих втория, но като го разархивирах и отворих make.conf се оказа, че е за 486 ( януари месец реших да си правя експерименти с този същия комп и тогава x86 беше за i586 (или е имало отделен стейдж за 586) не си спомням, но беше за тази архитектура и (чисто субективно - съдейки по времето на стартиране) беше по-бърз от сега. Въпроса ми е как сега да сменя профила на компилатора (eselect gcc list казва, че има наличен профил само за 486)? Промяна на стойността на CHOST не помага (навсякъде пише "не променяйте, ако не знаете какво правите, защото може да разруши системата ви!". Аз обаче я промених и пуснах emerge -e world и на 9-тия (от 84) пакет (busybox) прекъсна със съобщението, че не може да намери i586-pc-linux-gnu. Как да добавя нов профил на gcc (586), за да прекомпилирам всичко (system и world)?

Edit: Знаех си, че първо трябва да прекомпилирам binutils, gcc и glibc, но ме хвана шубето и реших да пробвам с нещо не толкова критично... И в документацията и във вики-то има статии за това - остав да се преборя с калпавия си англииски '<img'>



Активен

Gentoo 2007.0 - 2.6.23-r3
Debian testing - 2.6.22-3

Kalin

  • Напреднали
  • *****
  • Публикации: 1642
  • insider
    • Профил
Промяна на архитектурата в Джентуу
« Отговор #1 -: Aug 25, 2007, 01:04 »
Поел си по сложен път, вероятно ще изникнат и още проблеми. Чупил съм така инсталация, не е приятно.

Допускам си следвал това ръководство до тук. Чудя се обаче, дали няма да е по-лесно за теб да архивираш важните неща + настройките от /home и да направиш една чиста инсталация, като следваш Gentoo Handbook. Нещата са обяснени толкова добре, че се изискват минимални познания по английски за да се справиш, при това отлично. За всеки случай, прегледай и статията на SRG, където се е постарал да преведе всичко на български.

Ако все пак си решил, за спорта, да бориш сегашната инсталация, препоръчвам *строго* да се придържаш към първото ръководство. С каквото мога, ще помагам по пътя  '<img'>

EDIT: Случайно попаднах на тази тема, в която има съвет за изход от сегашната ситуация + мнение на gentoo site admin:
Цитат
20:38 <@rac> amne: the definitive answer to changing the CHOST setting is "if you're going to do it, you had better be about to (re)compile everything on your box"
20:38 <@rac> so that means either "at the start of an install" or "planning to emerge -e world"

Успех  ':ok:'
Активен

Като станем милиони ще видиш тогава кой е луд...
If you don't stand for nothing, chances are you will fall for anything.

triplek

  • Напреднали
  • *****
  • Публикации: 564
    • Профил
Промяна на архитектурата в Джентуу
« Отговор #2 -: Aug 25, 2007, 10:49 »
Практиката ми с дженту е малка но аз виждам нещата така: Гледаш си  процесора тука. После характерното за това дистро четене за всяко нещо във вики виждаш как се сменя cflag. Освен промяната му в make.conf се правят и други въртележки мисля. И накрая едно:

emerge -DuNav(Дунав като реката '<img'>) world

трябва да оправи нещата.

Може и да греша де. Нека джентувците набият едно рамо. '<img'>
Активен

Debian Lenny/sid

metal

  • Напреднали
  • *****
  • Публикации: 414
    • Профил
Промяна на архитектурата в Джентуу
« Отговор #3 -: Aug 25, 2007, 11:41 »
triplek, това, което предлагаш вече го пробвах (и е описано в първия ми пост). Няма как да прекомпилираш за новата архитектура като нямаш профил в gcc-то за нея, т.е, трябва първо да прекомпилираш gcc, binutils и glibc, след това програмните езици (perl, python...) и чак тогава emerge -e system и world.  като след всеки етап си обновяваш параметрите на системата - env-update && source /etc/profile. Снощи към 21 часа го почнах и до този момент се е компилирал само binutils. Сега се мъчи с gcc и до утре сутринта (предполагам) ще е свърши с glibc-а (к6-2/500 - к'во да се прави). Като изпълня всички стъпки до край, ще пиша резултата.
Калине, Благодаря ти за отзивчивостта! Във вики-то има статия, в която се твърди, че е по-сигурна от тази в документацията (и на мен така ми се струва), но този пасаж не мога да разбера какво да направя:
5. Fix libtool files

# fix_libtool_files.sh (on any older versions of gcc)
# fix_libtool_files.sh (same again with --oldarch {your_old_arch})
# fix_libtool_files.sh (on current version of gcc)
# fix_libtool_files.sh (on current version with --oldarch {your_old_arch})


Колкото до преинсталацията - това е най-малкия проблем ( от началото на годината съм правил 5 инсталации (на 4 компа) и вече не ми трябват никакви помагала, но проблема е, че няма готови стейджове за 586, иначе на този комп освен stage3 и portage-latest има само един скрипт с iptables правила, така че проблема е никакъв. Ако можеш да ми разясниш посочения от мен пасаж ще съм ти много благодарен!!! Естествено това се отнася за всички, а не само за Калин '<img'>


Edit: gcc току що свърши '<img'>



Активен

Gentoo 2007.0 - 2.6.23-r3
Debian testing - 2.6.22-3

Kalin

  • Напреднали
  • *****
  • Публикации: 1642
  • insider
    • Профил
Промяна на архитектурата в Джентуу
« Отговор #4 -: Aug 25, 2007, 20:46 »
'<img'> взе, че ми стана интересно... Попаднах на интересна тема във форумите на gentoo за 586 и поддръжката. Като цяло, тенденцията е да отпадне. Виж сам темата. Също така, намерих stage3 586 само че за 2006.0 ето тук. Въпросния CFLAG наистина е този, който искаш (цък), но се чудя какво може да се направи...
Oпа, намерих и за 2006.1 (цък). За 2007.0 няма, очевидно ще трябва да ползваш и външно огледало.
Активен

Като станем милиони ще видиш тогава кой е луд...
If you don't stand for nothing, chances are you will fall for anything.

metal

  • Напреднали
  • *****
  • Публикации: 414
    • Профил
Промяна на архитектурата в Джентуу
« Отговор #5 -: Aug 25, 2007, 23:09 »
Да, за 2006.1 наистина го имаше (както писах , януари (2007) съм го инсталирал), но вече го няма. Както и да е, вече съм тръгнал по-трудния път и ще карам докрай - в 21:47 е приключил с компилацията на glibc (а 21:45 на предния ден съм започнал с binutils - за 24 часа binutils, gcc и glibc), така че продължавам... Стискайте палци '<img'>
Активен

Gentoo 2007.0 - 2.6.23-r3
Debian testing - 2.6.22-3

ivo1204

  • Напреднали
  • *****
  • Публикации: 987
    • Профил
Промяна на архитектурата в Джентуу
« Отговор #6 -: Aug 25, 2007, 23:20 »
Начи ,ако Gentoo се провали , не е лошо да хвърлиш едно око на BUILDROOT :
http://buildroot.uclibc.org/
http://buildroot.uclibc.org/subversion.html
Прави крос компилиране , т.е. можеш да компилираш на друг компютър , има оптимизация ,каквато си поискаш .За лека версия е много добро  .
Ползва по подразбиране uClibc .( Начи не съм го ползвал може би няколко месеца ,та не знам как е в момента ...)

П.П.
Изглежда лесно , ама си е играчка ...



Активен

halturata

  • Напреднали
  • *****
  • Публикации: 20
    • Профил
Промяна на архитектурата в Джентуу
« Отговор #7 -: Aug 28, 2007, 17:32 »
Сори за офтопика, но и аз в момента се занимавам с "компилация на компилатор", само че при мен таргета е PowerPC. Имам вече крос-компилатора, сега почвам да ги боря нещата в реда, който @metal е дал - gcc (4.2.1), binutils, glibc и т.н. Въпроса ми е за това emerge system и emerge world - каква точно функция изпълняват или са gentoo-specific? При мене хоста е Scientific Linux а на таргета върви RedHat-ско (2.6.15) ядро.
И още нещо - има ли значение какви версии се опитвам да "скова" наедно, смисъл за дадена версия на ядрото да се препоръчват точно определени версии на gcc, които пък от своя страна работят добре с точно определени версии на glibc, неща в този дух...
Активен

metal

  • Напреднали
  • *****
  • Публикации: 414
    • Профил
Промяна на архитектурата в Джентуу
« Отговор #8 -: Aug 29, 2007, 02:07 »
Цитат (halturata @ Авг. 28 2007,17:32)
Сори за офтопика, но и аз в момента се занимавам с "компилация на компилатор", само че при мен таргета е PowerPC. Имам вече крос-компилатора, сега почвам да ги боря нещата в реда, който @metal е дал - gcc (4.2.1), binutils, glibc и т.н. Въпроса ми е за това emerge system и emerge world - каква точно функция изпълняват или са gentoo-specific? При мене хоста е Scientific Linux а на таргета върви RedHat-ско (2.6.15) ядро.
И още нещо - има ли значение какви версии се опитвам да "скова" наедно, смисъл за дадена версия на ядрото да се препоръчват точно определени версии на gcc, които пък от своя страна работят добре с точно определени версии на glibc, неща в този дух...

emerge system и emerge world - emerge - команда за работа с пакети (инсталиране, деинсталиране, ъпдеитване...) system и world са 2 списъка съдържащи инсталираните (чрез portage) на системата пакети (самосиндикалните компилации (configure, make, make install) както и компилираните чрез emerge --oneshot ... ne se zapiswat w tezi spisyci). Опс-с-с-с-с-с. Както личи от имената им, в system се записват само важните за системата, а в world - всички, т.е. system е подмножество на world, а не самостоятелно такова, както бях писал по-горе. Сори за заблудата. Дали са специфични - ми това е пакетната система на Джентуу (и базираните) и е точно това, което е apt-get за .deb и urpmi за .rpm-базираните.
"И още нещо - има ли значение какви версии се опитвам да "скова" наедно..." - към ядрото не - освен ако не искаш да слагаш gcc-4.2 на 2.2 ядро. Колкото до gcc-glibc - тясна зависимост няма, но не можеш да варираш много-много



Активен

Gentoo 2007.0 - 2.6.23-r3
Debian testing - 2.6.22-3

ivo1204

  • Напреднали
  • *****
  • Публикации: 987
    • Профил
Промяна на архитектурата в Джентуу
« Отговор #9 -: Aug 29, 2007, 03:30 »
@halturata
Компилирането на „кроскомпилатор „ е недостатъчно. На теб ти трябва така наречения „toolchain“.Най-добрия вариант е да си намериш готов такъв.
Явно знаеш за какво става дума , но нека повторя:
„host“ -a ,с твоята линукс дистрибуция , е средата ,в която ти можеш да компилираш програми за твоята архитектура. Обаче ти искаш да компилираш за друга архитектура:
В общия случай , програмите , компилирани за твоята „target“  архитектура няма да са изпълними при теб , но ще са на другия процесор ( който ,да кажем  има напълно различни инструкции , регистри ,организация).
Какво значи това? Значи ,че крос компилатора , който ще го ползваш е компилиран за твоята  архитектура , ще ползва обаче „binutils“ ,който ще работи на твоята архитектура ,но ще прави код за „target“.И когато компилатора ще компилира някаква програма за „target“ , той ползва „binutils“ да асемблира ,свързва и т.н. НО СЛАГА ДИРЕКТНО  код от  
„С“ библиотеките ,компилирани за „target“-a.
Оттук следва ,че първото нещо ,което трябва да компилираш за „targer“ -а ,
са „binutils“ ( configure  --targer=.... ). След него са gcc-то ( на него му трябва крос компилиращите  binutils“) , и накрая „С“ библиотеките ,компилирани веч с крос компилатора.
Тук има много още неща да се кажат , за чистотата на средата и т.н. Правят се специални хватки.  Например виж в „LFS“.
http://www.linuxfromscratch.org/lfs....es.html
Затова най – лесно е да си вземеш компилиран  „toolcain“.



Активен

NaDa

  • Напреднали
  • *****
  • Публикации: 94
    • Профил
Промяна на архитектурата в Джентуу
« Отговор #10 -: Aug 29, 2007, 11:46 »
Инсталация като GRP пакет и после компилиране за съответната архитектура не става ли?
Активен

metal

  • Напреднали
  • *****
  • Публикации: 414
    • Профил
Промяна на архитектурата в Джентуу
« Отговор #11 -: Aug 29, 2007, 13:10 »
Цитат (NaDa @ Авг. 29 2007,11:46)
Инсталация като GRP пакет и после компилиране за съответната архитектура не става ли?

Кого питаш? Ако е мен - нямам никаква представа какво е това GRP пакет '<img'>
Активен

Gentoo 2007.0 - 2.6.23-r3
Debian testing - 2.6.22-3

halturata

  • Напреднали
  • *****
  • Публикации: 20
    • Профил
Промяна на архитектурата в Джентуу
« Отговор #12 -: Aug 29, 2007, 14:17 »
Първо, благодаря за отговорите! '<img'>

Забравих да спомена, крос-компилатора който имам е точно pre-built toolchain, не съм се занимавал аз да го правя. Но въпреки това ще трябва да компилирам всичко за таргета наново. Найстина май LFS е мястото за информация. Колкото до чистотата на средата, всички крос-туулс ги има като environment variables (CC, AS, AR, RANLIB и т.н.). За тези GRP пакети и аз не съм чувал, но това е идея все пак, мога с RPM да пробвам, ако успея да намеря gcc което да тръгне на таргета.
Така, да повторя за яснота - компилирам на х86 с крос-компилатор за PowerPC, т.е. изпозлвам:
Примерен код
--build=i686-pc-linux-gnu
--host=powerpc-unknown-linux-gnu
--target=powerpc-unknown-linux-gnu

като пускам ./configure скрипта, или с други думи на build се компилира програма, която ще върви на host и ще произвежда код за target. Намерих това за Canadian Cross в нета.

Само не съм сигурен дали да ползвам --build опцията, все пак крос-копилатора вече е налице.

Отново мерси за съдействието. '<img'>



Активен