User:Hiciu

From Openmoko

(Difference between revisions)
Jump to: navigation, search
m (Setting up Scratchbox buildroot: sudo is no longer needed with new toolchain)
Line 52: Line 52:
 
If you changed the paths from toolchain configuration, you need to change these commands too
 
If you changed the paths from toolchain configuration, you need to change these commands too
  
  sudo cp -R ~/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sys-root/ ~/arch-arm-buildroot
+
  cp -R ~/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sys-root/ ~/arch-arm-buildroot
sudo chown -R $USERNAME\:users ~/arch-arm-buildroot
+
 
  cd ~/arch-arm-buildroot
 
  cd ~/arch-arm-buildroot
  sb2-init -c "/usr/bin/qemu-arm" armv4t ~/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-gcc
+
  sb2-init -c "/usr/bin/qemu-arm" arm ~/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-gcc
  
 
==== Preparing Arch Build System ====
 
==== Preparing Arch Build System ====
Line 76: Line 75:
  
 
read more here: http://wiki.archlinux.org/index.php/Install_Arch_i586
 
read more here: http://wiki.archlinux.org/index.php/Install_Arch_i586
+
 
 
=== Compiling packages ===
 
=== Compiling packages ===
 
==== All packages in repository: ====
 
==== All packages in repository: ====

Revision as of 09:29, 9 April 2009

Contents

Archlinux on ARM:

Preparations

Needed packages:

  • sbox2
  • qemu
  • crosstool-ng (for building the toolchain)

Toolchain for cross-compiling

yaourt -S crosstool-ng-svn
  • Make a directory for building the toolchain
mkdir ~/toolchain-build
cd ~/toolchain-build
  • Copy the configuration for Arch Cross Toolchain
wget http://shelli.fi/~bane/.config
  • Now you can change the settings with command
ct-ng menuconfig
  • And build it with
ct-ng build

If you used default settings, you should now have the toolchain in the directory "arm-unknown-linux-gnueabi" in your home directory

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

qemu

pacman -Sy qemu

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

Setting up Scratchbox buildroot

If you changed the paths from toolchain configuration, you need to change these commands too

cp -R ~/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sys-root/ ~/arch-arm-buildroot
cd ~/arch-arm-buildroot
sb2-init -c "/usr/bin/qemu-arm" arm ~/arm-unknown-linux-gnueabi/bin/arm-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="arm-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

People

Who's involved?

  • YourNameHere!
  • hiciu - responsible for making qemu image with Arch on arm
  • Beini - Most likely helping with PKGBUILDs, installer script, etc. whatever I'm capable of doing ;)

Ideas

  • Installer script could be just `pacman -Sy base --root /media/card --dbpath /media/card/... --config arm.conf`
Personal tools

Archlinux on ARM:

Preparations

Needed packages:

  • sbox2
  • qemu
  • crosstool-ng (for building the toolchain)

Toolchain for cross-compiling

yaourt -S crosstool-ng-svn
  • Make a directory for building the toolchain
mkdir ~/toolchain-build
cd ~/toolchain-build
  • Copy the configuration for Arch Cross Toolchain
wget http://shelli.fi/~bane/.config
  • Now you can change the settings with command
ct-ng menuconfig
  • And build it with
ct-ng build

If you used default settings, you should now have the toolchain in the directory "arm-unknown-linux-gnueabi" in your home directory

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

qemu

pacman -Sy qemu

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

Setting up Scratchbox buildroot

If you changed the paths from toolchain configuration, you need to change these commands too

cp -R ~/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sys-root/ ~/arch-arm-buildroot
cd ~/arch-arm-buildroot
sb2-init -c "/usr/bin/qemu-arm" arm ~/arm-unknown-linux-gnueabi/bin/arm-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="arm-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

People

Who's involved?

  • YourNameHere!
  • hiciu - responsible for making qemu image with Arch on arm
  • Beini - Most likely helping with PKGBUILDs, installer script, etc. whatever I'm capable of doing ;)

Ideas

  • Installer script could be just `pacman -Sy base --root /media/card --dbpath /media/card/... --config arm.conf`