User:Hiciu
From Openmoko
m (→Setting up Scratchbox buildroot: sudo is no longer needed with new toolchain) |
|||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
== Archlinux on ARM: == | == Archlinux on ARM: == | ||
+ | We moved here: http://hiciu.rootnode.net/arch/<span style="color:red"><sup>'''(DEAD LINK)'''</sup></span>. This page is probably outdated. | ||
=== Preparations === | === Preparations === | ||
Line 21: | Line 22: | ||
*Copy the configuration for Arch Cross Toolchain | *Copy the configuration for Arch Cross Toolchain | ||
− | wget http://shelli.fi/~bane/.config | + | wget http://shelli.fi/~bane/.config<span style="color:red"><sup>'''(DEAD LINK)'''</sup></span> |
*Now you can change the settings with command | *Now you can change the settings with command |
Latest revision as of 23:17, 14 July 2012
Contents |
[edit] Archlinux on ARM:
We moved here: http://hiciu.rootnode.net/arch/(DEAD LINK). This page is probably outdated.
[edit] Preparations
Needed packages:
- sbox2
- qemu
- crosstool-ng (for building the toolchain)
[edit] Toolchain for cross-compiling
- Install crosstool-ng-svn from AUR (http://aur.archlinux.org/packages.php?ID=25122)
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(DEAD LINK)
- 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
[edit] 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
[edit] qemu
pacman -Sy qemu
(should be 0.10, for 0.9 read this: http://qemu-arm-eabi.wiki.sourceforge.net/)
[edit] 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
[edit] 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
[edit] Compiling packages
[edit] All packages in repository:
cd ~/arch-arm-buildroot mkdir pkgs sb2 makeworld --clean --ignorearch --syncdeps --rmdeps --noconfirm pkgs/core abs/core/
[edit] One package, from PKGBUILD:
cd ~/arch-arm-buildroot sb2 cd mypackage makepkg -A
(where "-A" means ignore architecture)
[edit] 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..
[edit] 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/
[edit] 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
[edit] 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 ;)
[edit] Ideas
- Installer script could be just `pacman -Sy base --root /media/card --dbpath /media/card/... --config arm.conf`