树梅派安装Gentoo

前言

其实Gentoo的arm stage3已经很久没更新了
我曾也想自己维护个stage3,但是精力不够(主要还是因为树梅派上更新Gentoo太慢了)
如果你是Rpi3,请使用这个:gentoo-on-rpi3-64bit(带有桌面)
本教程安装的是32位的Gentoo系统
我这里呢 也只会说最简单粗暴的安装方法(因为我也没折腾交叉编译什么的,太麻烦了)

准备

准备宿主系统

这里其实用什么系统都无所谓,但是要确保是32位的系统(已知Arch全部更新为64位系统)否则不能Chroot

这里就说Raspbian

这个安装最容易

写入镜像后

在TF卡中的Boot分区新建ssh文件

在你电脑的Linux系统中切换到root用户查看shadow文件:cat /etc/shadow复制root:xxxx一行

然后在root用户下编辑TF卡根目录中的etc/shadow文件删掉root一行并粘贴先前的内容

最后确保TF卡根目录中etc/ssd/sshd_confgPermitRootLogin没有被#注释且后面为yesPermitRootLogin yes

安装Gentoo

插卡,上电

找到树梅派的IP:ssh root@IP

登录密码为你电脑系统中的root密码

自行简单配置下系统

用读卡器把另一个TF卡插入到树梅派

创建挂载目录:mkdir /mnt/gentoo

运行fdisk -l查看另一个TF卡的名字,例如/dev/sda

使用你自己喜欢的工具进行分区,例如:

/dev/sda1    100M    /boot
/dev/sda2    512M/1G    swap
/dev/sda3    Free    /

挂载分区:mount /dev/sda3 /mnt/gentoo

下载stage3:wget http://gentoo.osuosl.org/releases/arm/autobuilds/current-stage3-armv7a_hardfp/stage3-armv7a-20161129.tar.bz2 -O /mnt/gentoo/stage3.tar.bz2(请export http_proxy=ip:port设置代理下载,或去镜像站下载)

解压:tar xfpj /mnt/gentoo/stage3.tar.bz2 -C /mnt/gentoo/

挂载boot:mount /dev/sda1 /mnt/gentoo/boot

下载portage:wget http://distfiles.gentoo.org/snapshots/portage-latest.tar.bz2

解压portage:tar xjf portage-latest.tar.bz2 -C /mnt/gentoo/usr

安装内核和模块:

cd /tmp/
git clone --depth 1 https://github.com/raspberrypi/firmware/ #请为git设置代理,例如:git config --global https.proxy 'socks5://127.0.0.1:1080'
cd firmware/boot
cp -r * /mnt/gentoo/boot/
cp -r ../modules /mnt/gentoo/lib/

配置fstab:nano /mnt/gentoo/etc/fstab

修改为:

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

编辑启动参数:nano /mnt/gentoo/boot/cmdline.txt

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

设置时区:
cp /mnt/gentoo/usr/share/zoneinfo/Asia/Shanghai /mnt/gentoo/etc/localtime
echo "Asia/Shanghai" > /mnt/gentoo/etc/timezone

更新配置系统

chroot进入系统:

mount -t proc /proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --make-rslave /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/dev

test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm
chmod 1777 /dev/shm

chroot /mnt/gentoo /bin/bash

设置root密码:passwd

配置make.conf:nano /etc/portage/make.conf

自行加入/修改:


GENTOO_MIRRORS="https://mirrors.ustc.edu.cn/gentoo/"
ACCEPT_LICENSE="*"
ACCEPT_KEYWORDS="~* ~arm"

L10N="en-US zh-CN en zh"
LINGUAS="en_US zh_CN en zh"

EMERGE_DEFAULT_OPTS="--verbose=y --keep-going --with-bdeps=y"
MAKEOPTS="-j1"

配置package.use:nano /etc/portage/package.use

写入:

dev-lang/python sqlite
net-misc/connman iptables
net-wireless/wpa_supplicant dbus

创建gentoo repo配置:

mkdir /etc/portage/repos.conf
nano /etc/portage/repos.conf/gentoo.conf

写入:

[DEFAULT]
main-repo = gentoo

[gentoo]
location = /usr/portage
sync-type = rsync
sync-uri = rsync://rsync.mirrors.ustc.edu.cn/gentoo-portage/
# sync-uri = https://github.com/gentoo/gentoo
auto-sync = yes

选择profile:

eselect profile list
eselect profile set X #选择自己需要的profile

更新系统:

emerge --sync
nohub emerge -auqDN @world > /tmp/emerge.log &

通过tail -f /tmp/emerge.log查看进度

现在你可以随时断开ssh连接

如果看到因为错误退出,运行emerge -auvDN @world进行排错

Raspbian可能会因为自己性能低下直接挂掉。。。这时候需要你重新挂载分区并chroot

(一万年过去之后)

清理旧包:emerge --depclean

安装配置一些必要东西

安装必要软件:emerge connman chronyd

配置服务:

rc-update add swclock boot
rc-update del hwclock boot
rc-update add chronyd default
rc-update add connman default
rc-update add sshd default

配置ssh:nano /etc/ssh/sshd_config,去掉PermitRootLogin前的#注释并修改后面为yesPermitRootLogin yes

结尾

到了这里你就可以关机换上TF卡启动了

找到IP并ssh root@IP:port连接

至于细节的配置我就懒得说了

参考链接:Raspberry Pi/Quick Install Guide

添加新评论