在raspberry pi2上装Gentoo for ARM
Oct 7, 2015
这显然是个挑战,不过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!
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.