User:Hiciu

From Openmoko

Revision as of 23:05, 11 March 2009 by Hiciu (Talk | contribs)

Jump to: navigation, search

Contents

Archlinux on ARM:

Preparations

You need:

sbox2

homepage: http://freedesktop.org/wiki/Software/sbox2

"Scratchbox 2 is a cross-compilation engine".

wget http://people.freedesktop.org/~lle/sbox2-releases/sbox2-1.99.0.23.tar.bz2
tar xjf sbox2-1.99.0.23.tar.bz2
cd sbox2-1.99.0.23
./autogen.sh
./configure && make && sudo make install

(optional) melas

todo: make PKGBUILD for toolchain && remove this section homepage: http://melas.ossproject.org/

"Melas is an uncomplicated build and packaging tool", something similar to Arch Build System. This will be used to build toolchain and qemu with eabi patch.

mkdir ~/melas
cd ~/melas
svn co http://svn.ossproject.org/melas/trunk melas-trunk
cd melas-trunk
./bin/mls release
#(and install)
sudo tar xzf melas_0.12.1_all.tgz -C /

toolchain

todo: make PKGBUILD

precompiled package: http://hiciu.rootnode.net/download/igelle/gcc-armv4t-unknown-linux-gnueabi_4.3.2_i386.tar.gz (download it and extract to /).

(optional) How to build:

mkdir ~/gcc-cross
cd ~/gcc-cross
mls --import=gcc-cross --set-GCCARCHTUPLE=armv4t-unknown-linux-gnueabi rebuild
#and install - this will make a *.deb package :P
ar x gcc-*.deb
sudo tar xzf data.tar.gz -C /

This will install itself in /usr/gcc-armv4t-unknown-linux-gnueabi

qemu

pacman -Sy qemu

(should be 0.10, for 0.9 read this: http://qemu-arm-eabi.wiki.sourceforge.net/)

Setting up Scratchbox buildroot

sudo cp -R /usr/gcc-armv4t-unknown-linux-gnueabi/sysroot-armv4t-unknown-linux-gnueabi/ ~/arch-arm-buildroot
sudo chown -R $USERNAME\:users ~/arch-arm-buildroot
cd ~/arch-arm-buildroot
sb2-init -c "/usr/bin/qemu-arm" armv4t /usr/gcc-armv4t-unknown-linux-gnueabi/bin/armv4t-unknown-linux-gnueabi-gcc

Preparing Arch Build System

follow http://wiki.archlinux.org/index.php/ABS_-_The_Arch_Build_System

After all copy build tree to buildroot:

cp -R /var/abs/ ~/arch-arm-buildroot

Now customize your makepkg.conf:

cp /etc/makepkg.conf ~/.makepkg.conf

Edit file ~/.makepkg.conf, change:

CARCH="armv4t"
CHOST="armv4t-unknown-linux-gnueabi"
CFLAGS="-march=armv4t -mtune=arm920t -O2 -pipe"
CXXFLAGS="-march=armv4t -mtune=arm920t -O2 -pipe"
PACKAGER="me <me@email.com>"

read more here: http://wiki.archlinux.org/index.php/Install_Arch_i586

Compiling packages

All packages in repository:

cd ~/arch-arm-buildroot
mkdir pkgs
sb2
makeworld --clean --ignorearch --syncdeps --rmdeps --noconfirm pkgs/core abs/core/

One package, from PKGBUILD:

cd ~/arch-arm-buildroot
sb2
cd mypackage
makepkg -A

(where "-A" means ignore architecture)

Installing missing dependencies

(well.. You have to build them first :P).

cd ~/arch-arm-buildroot
tar xzf pkgs/$REPO/$PACKAGE
#maybe pacman --root=~/arch-arm-buildroot -U pkgs/$REPO/$PACKAGE or something..

Synchronizing your repo

todo: How we will share? rsync / svn / git / some kind of web gui? What is better for big binary files? hiciu's repository browser: http://hiciu.rootnode.net/arch-arm/

Personal tools

Archlinux on ARM:

Preparations

You need:

sbox2

homepage: http://freedesktop.org/wiki/Software/sbox2

"Scratchbox 2 is a cross-compilation engine".

wget http://people.freedesktop.org/~lle/sbox2-releases/sbox2-1.99.0.23.tar.bz2
tar xjf sbox2-1.99.0.23.tar.bz2
cd sbox2-1.99.0.23
./autogen.sh
./configure && make && sudo make install

(optional) melas

todo: make PKGBUILD for toolchain && remove this section homepage: http://melas.ossproject.org/

"Melas is an uncomplicated build and packaging tool", something similar to Arch Build System. This will be used to build toolchain and qemu with eabi patch.

mkdir ~/melas
cd ~/melas
svn co http://svn.ossproject.org/melas/trunk melas-trunk
cd melas-trunk
./bin/mls release
#(and install)
sudo tar xzf melas_0.12.1_all.tgz -C /

toolchain

todo: make PKGBUILD

precompiled package: http://hiciu.rootnode.net/download/igelle/gcc-armv4t-unknown-linux-gnueabi_4.3.2_i386.tar.gz (download it and extract to /).

(optional) How to build:

mkdir ~/gcc-cross
cd ~/gcc-cross
mls --import=gcc-cross --set-GCCARCHTUPLE=armv4t-unknown-linux-gnueabi rebuild
#and install - this will make a *.deb package :P
ar x gcc-*.deb
sudo tar xzf data.tar.gz -C /

This will install itself in /usr/gcc-armv4t-unknown-linux-gnueabi

qemu

pacman -Sy qemu

(should be 0.10, for 0.9 read this: http://qemu-arm-eabi.wiki.sourceforge.net/)

Setting up Scratchbox buildroot

sudo cp -R /usr/gcc-armv4t-unknown-linux-gnueabi/sysroot-armv4t-unknown-linux-gnueabi/ ~/arch-arm-buildroot
sudo chown -R $USERNAME\:users ~/arch-arm-buildroot
cd ~/arch-arm-buildroot
sb2-init -c "/usr/bin/qemu-arm" armv4t /usr/gcc-armv4t-unknown-linux-gnueabi/bin/armv4t-unknown-linux-gnueabi-gcc

Preparing Arch Build System

follow http://wiki.archlinux.org/index.php/ABS_-_The_Arch_Build_System

After all copy build tree to buildroot:

cp -R /var/abs/ ~/arch-arm-buildroot

Now customize your makepkg.conf:

cp /etc/makepkg.conf ~/.makepkg.conf

Edit file ~/.makepkg.conf, change:

CARCH="armv4t"
CHOST="armv4t-unknown-linux-gnueabi"
CFLAGS="-march=armv4t -mtune=arm920t -O2 -pipe"
CXXFLAGS="-march=armv4t -mtune=arm920t -O2 -pipe"
PACKAGER="me <me@email.com>"

read more here: http://wiki.archlinux.org/index.php/Install_Arch_i586

Compiling packages

All packages in repository:

cd ~/arch-arm-buildroot
mkdir pkgs
sb2
makeworld --clean --ignorearch --syncdeps --rmdeps --noconfirm pkgs/core abs/core/

One package, from PKGBUILD:

cd ~/arch-arm-buildroot
sb2
cd mypackage
makepkg -A

(where "-A" means ignore architecture)

Installing missing dependencies

(well.. You have to build them first :P).

cd ~/arch-arm-buildroot
tar xzf pkgs/$REPO/$PACKAGE
#maybe pacman --root=~/arch-arm-buildroot -U pkgs/$REPO/$PACKAGE or something..

Synchronizing your repo

todo: How we will share? rsync / svn / git / some kind of web gui? What is better for big binary files? hiciu's repository browser: http://hiciu.rootnode.net/arch-arm/