Как собрать порты для другой архитектуры?
Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
- проходил мимо
- Сообщения: 4
- Зарегистрирован: 2013-08-10 13:14:28
Как собрать порты для другой архитектуры?
Доброго времени суток!
Проконсультируйте плз, не думал, что придётся когда-нибудь на форуме спрашивать.
Имею два компа - шустрый десктоп (Freebsd 9.1 amd64) и тормозной ноутбук на P3-1000 (Freebsd 9.1 i386). Софт ставлю исключительно из портов, соответственно на тормозном ноуте они собираются несколько дней. Раньше я делал так: ставил фрю i386 на отдельный винт, пихал его в шустрый десктоп, собирал порты в пакеты txz, а с ноута по sftp забирал их и ставил c pkg_add. Всё хорошо, но шаманство с винтами надоело. Вопрос - как можно собрать порты для i386 в установленной amd64, а то надоело разбирать комп и перетыкать винты туда-сюда (тем более, что у меня их несколько в gmirror). Пробовал ставить фрю на USB HDD, чтобы хоть попроще стало, но при загрузке с USB не отрабатывает второй загрузчик, похоже, косяк с биосом. Вот и ищу возможность собирать "чужие" порты без танцев с бубнами.
Проконсультируйте плз, не думал, что придётся когда-нибудь на форуме спрашивать.
Имею два компа - шустрый десктоп (Freebsd 9.1 amd64) и тормозной ноутбук на P3-1000 (Freebsd 9.1 i386). Софт ставлю исключительно из портов, соответственно на тормозном ноуте они собираются несколько дней. Раньше я делал так: ставил фрю i386 на отдельный винт, пихал его в шустрый десктоп, собирал порты в пакеты txz, а с ноута по sftp забирал их и ставил c pkg_add. Всё хорошо, но шаманство с винтами надоело. Вопрос - как можно собрать порты для i386 в установленной amd64, а то надоело разбирать комп и перетыкать винты туда-сюда (тем более, что у меня их несколько в gmirror). Пробовал ставить фрю на USB HDD, чтобы хоть попроще стало, но при загрузке с USB не отрабатывает второй загрузчик, похоже, косяк с биосом. Вот и ищу возможность собирать "чужие" порты без танцев с бубнами.
Услуги хостинговой компании Host-Food.ru
Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/
- FreeBSP
- майор
- Сообщения: 2020
- Зарегистрирован: 2009-05-24 20:20:19
- Откуда: Москва
Re: Как собрать порты для другой архитектуры?
http://ray-freebsd.blogspot.ru/2011/09/ ... eebsd.html
Есть смысл собрать клетку на хост-машине под целевую архитектуру, и уже в клетке собирать порты. такой путь мне представляется наиболее правильным, поскольку ./configure будет работать в х86 окружении(хоть и на х64 ядре)
Есть смысл собрать клетку на хост-машине под целевую архитектуру, и уже в клетке собирать порты. такой путь мне представляется наиболее правильным, поскольку ./configure будет работать в х86 окружении(хоть и на х64 ядре)
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!
-
- проходил мимо
- Сообщения: 4
- Зарегистрирован: 2013-08-10 13:14:28
Re: Как собрать порты для другой архитектуры?
Благодарю, попробую копать в этом направлении.
- Neus
- капитан
- Сообщения: 1946
- Зарегистрирован: 2008-09-08 21:59:56
Re: Как собрать порты для другой архитектуры?
Ноуту на пенсию пора :-)
-
- проходил мимо
- Сообщения: 4
- Зарегистрирован: 2013-08-10 13:14:28
Re: Как собрать порты для другой архитектуры?
Не не, мне только ssh, nfs и rs232 порт от него нужны, так что ещё поработает. Да и кина исправно кажет, и в инет ходит.
- FreeBSP
- майор
- Сообщения: 2020
- Зарегистрирован: 2009-05-24 20:20:19
- Откуда: Москва
Re: Как собрать порты для другой архитектуры?
как успехи?
у меня собралось с небольшими правками
чисто из интереса
[0:02]~/# cat cross-compile.sh
[0:03]~/# sh -x cross-compile.sh /usr/ports/audio/beep/
[0:03]~/# file /usr/ports/audio/beep/work/beep/beep
[0:03]~/# uname -mrs
у меня собралось с небольшими правками
чисто из интереса
[0:02]~/# cat cross-compile.sh
Код: Выделить всё
[ -z "$1" ] && exit
echo $1
cd $1
TARGET=i386
TARGET_ARCH=i386
SRC_TREE=/usr/src
#cd ${SRC_TREE}
#make toolchain TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} TARGET_CPUARCH=${TARGET}
cd $1
make clean
make configure
PATH=/usr/obj/${TARGET}/${SRC_TREE}/tmp/usr/bin:/usr/obj/${TARGET}/${SRC_TREE}/tmp/usr/sbin:${PATH} make
Код: Выделить всё
+ [ -z /usr/ports/audio/beep/ ]
+ echo /usr/ports/audio/beep/
/usr/ports/audio/beep/
+ cd /usr/ports/audio/beep/
+ TARGET=i386
+ TARGET_ARCH=i386
+ SRC_TREE=/usr/src
+ cd /usr/ports/audio/beep/
+ make clean
===> Cleaning for beep-1.0
+ make configure
===> Fetching all distfiles required by beep-1.0 for building
===> Extracting for beep-1.0
=> SHA256 Checksum OK for beep-1.0.tar.gz.
===> Patching for beep-1.0
/usr/bin/sed -i.bak 's|machine/speaker\.h|dev/speaker/speaker.h|' /usr/ports/audio/beep/work/beep/beep.c
===> Configuring for beep-1.0
+ PATH=/usr/obj/i386//usr/src/tmp/usr/bin:/usr/obj/i386//usr/src/tmp/usr/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/root/bin make
===> Building for beep-1.0
Warning: Object directory not changed from original /usr/ports/audio/beep/work/beep
cc -O2 -pipe -fno-strict-aliasing -I/usr/local/include -L/usr/local/lib -std=gnu99 -fstack-protector -c beep.c
cc -O2 -pipe -fno-strict-aliasing -I/usr/local/include -L/usr/local/lib -std=gnu99 -fstack-protector -o beep beep.o
gzip -cn beep.1 > beep.1.gz
Код: Выделить всё
/usr/ports/audio/beep/work/beep/beep: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), dynamically linked (uses shared libs), for FreeBSD 8.3 (803500), not stripped
Код: Выделить всё
FreeBSD 8.2-STABLE amd64
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!
-
- проходил мимо
- Сообщения: 4
- Зарегистрирован: 2013-08-10 13:14:28
Re: Как собрать порты для другой архитектуры?
У меня по-простому не получилось, похоже дело в неверной заточке /dev/hands...
Зато получилось методом погеморнее, вот так:
После этого готовые пакетики под i386 забираю NFS'ом из /test/packages/All
Зато получилось методом погеморнее, вот так:
Код: Выделить всё
mkdir /test
cd /usr/src
make buildworld TARGET=i386 TARGET_ARCH=i386
make installworld TARGET=i386 TARGET_ARCH=i386 DESTDIR=/test
cp -R /etc /test
cp -R /usr/ports /test/usr
chroot /test
mount -t devfs devfs /dev
mkdir /packages
setenv PACKAGES /packages
cd /usr/ports/misc/mc
make package-recursive
-
- мл. сержант
- Сообщения: 136
- Зарегистрирован: 2009-12-19 20:54:03
Re: Как собрать порты для другой архитектуры?
ports-mgmt/poudriere в помощь