User:Hiciu
From Openmoko
(→Synchronizing your repo) |
(Added Progress part) |
||
Line 103: | Line 103: | ||
hiciu's repository browser: http://hiciu.rootnode.net/arch-arm/ | hiciu's repository browser: http://hiciu.rootnode.net/arch-arm/ | ||
+ | |||
+ | == Progress == | ||
+ | *Part I: Make packages from base and base-devel groups with scratchbox: 101 / 171 | ||
+ | **install them on qemu-arm machine: 0 / 1 | ||
+ | *Part II: rebuild all packages from "core" repository using Arch on qemu-arm machine 0 / 171 | ||
+ | *Part III: make qemu image with Arch on armv4t (for compiling, packaging, etc.), install Arch on GTA02: 0 / 2 |
Revision as of 17:07, 16 March 2009
Contents |
Archlinux on ARM:
Preparations
You need:
- sbox2
- toolchain
- qemu
- optional: melas (http://melas.ossproject.org/) if you want to build toolchain on you own
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/
Progress
- Part I: Make packages from base and base-devel groups with scratchbox: 101 / 171
- install them on qemu-arm machine: 0 / 1
- Part II: rebuild all packages from "core" repository using Arch on qemu-arm machine 0 / 171
- Part III: make qemu image with Arch on armv4t (for compiling, packaging, etc.), install Arch on GTA02: 0 / 2