这显然是个挑战,不过RPI2的CPU编译速度还是可以的,配合ccache还是可以用的.
需要环境:Linux电脑+Raspberry pi2一块+网线+带有dhcp服务器的东西+RPI2的电源线 可选:TTL线.

首先和在电脑上安装一样,在http://gentoo.osuosl.org/releases/arm/autobuilds/current-stage3-armv7a_hardfp/这里下载stage3,然后把你的sdcard插到电脑上.
首先是分区:

cfdisk /dev/mmcblk0

我们分3个区,513M的/boot(mmcblk0p1) 4G的SWAP(mmcblk0p2) 还有剩余空间都分到/ (mmcblk0p3)
格式化:

mkfs.ext4 /dev/mmcblk0p3
mkfs.vfat /dev/mmcblk0p1
mkswap /dev/mmcblk0p2

接下来挂载分区.

mkdir /mnt/gentoo
mount /dev/mmcblk0p3 /mnt/gentoo
mkdir /mnt/gentoo/boot
mount /dev/mmcblk0p1 /mnt/gentoo/boot

然后把stage3解压进去.

cp ~/stage3-*.tar.bz2 /mnt/gentoo
cd /mnt/gentoo
tar xvjpf stage3-*.tar.bz2 --xattrs

接下来就是下载portage,http://gentoo.osuosl.org/snapshots/portage-latest.tar.xz
然后把它解压到/usr/portage里

cp portage-latest.tar.xz /mnt/gentoo/usr/
tar xpf portage-latest.tar.xz

然后就是配置kernel和firmware

cd ~
git clone --depth 1 git://github.com/raspberrypi/firmware/
cd firmware/boot
cp * /mnt/gentoo/boot/
cp -r ../modules /mnt/gentoo/lib/

然后是fstab

nano -w /mnt/gentoo/etc/fstab

这是我的fstab.

/dev/mmcblk0p1      /boot       vfat        noauto,noatime  1 2
/dev/mmcblk0p3      /           ext4        noatime         0 1
/dev/mmcblk0p2      none        swap        sw              0 0

然后是调整cmdline,因为rpi2没有grub这种东西…

nano -w /mnt/gentoo/boot/cmdline.txt

我的cmdline:

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p3 rootfstype=ext4 elevator=deadline rootwait

配置时区:

ls /mnt/gentoo/usr/share/zoneinfo //查看时区
cp /mnt/gentoo/usr/share/zoneinfo/America/Chicago /mnt/gentoo/etc/localtime  //中国的话是Asia/Shanghai
echo "America/Chicago" > /mnt/gentoo/etc/timezone  //同理

然后我们把root密码重置为空:

nano -w /mnt/gentoo/etc/shadow

root那里修改为:

root::10770:0:::::

添加开机启动:

ln -s /mnt/gentoo/etc/init.d/sshd /mnt/gentoo/etc/runlevel/default/sshd
cp /mnt/gentoo/etc/init.d/net.lo /mnt/gentoo/etc/init.d/net.eth0
ln -s /mnt/gentoo/etc/init.d/net.eth0 /mnt/gentoo/etc/runlevel/boot/net.eth0

卸载分区,把你的sdcard插入rpi2:

umount /mnt/gentoo/boot
umount /mnt/gentoo

等你的rpi2开机后,首先调整make.conf

nano -w /etc/portage/make.conf

添加MAKEOPTS:

MAKEOPTS="-j5"

然后同步你的系统

echo 'nameserver 8.8.4.4' >> /etc/resolv.conf
emerge-websync
emerge --sync
rc-update --update
nano /etc/rc.conf    //去掉rc_sys=""前的注释

设置profile:

eselect profile list
eselect profile set 28

设置Locale:

nano -w /etc/locale.gen //加入你想要的locale
locale-gen
eselect locale list
eselect locale set   //选择你要的

启用软件时钟:

rc-update add swclock boot
rc-update del hwclock boot

然后就是安装必要软件:

emerge -a ntp ccache

同步时间:

ntpdate pool.ntp.org

启用ccache:

nano -w /etc/portage/make.conf

加入:

FEATURES="ccache"
CCACHE_SIZE="2G"

更新系统:

emerge -avND @world

OK!Enjoy!


Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.