在 Soekris net4xxx 上引导 Alpine

来自 Alpine Linux
此材料建议删除...

此页面引用的设备不符合当前任何受支持的 Alpine 版本的最低系统要求(缺少 CMOV 和 SSE 指令将证明是有问题的!)。 (讨论)
在删除之前,请确保没有其他页面链接到这里,并检查页面的历史记录


这是一个关于在 Soekris net4xxx 路由器的 CF 卡上引导最新的(开发)Alpine Linux 的分步指南


我们假设我们的 CF 读卡器在 /dev/sdb,并已加载 512+ MB CF 格式化的卡,并将挂载在 /mnt/flash 上。我们还假设具有 root 权限。

export FLASHDEVICE=/dev/sdb1
export MNT=/mnt/flash

首先,我们下载最新的 usbdrive tarball

wget http://dev.alpinelinux.org/alpine/v1.7/usbdrive/alpine-1.7.5-i386.tar.gz

并将其解压缩到我们的 CF 卡上

mount $FLASHDEVICE $MNT
tar xzf ../alpine-1.7.5-i386.tar.gz -C $MNT

下一步是构建自定义 initrd(为了使串行控制台工作)

mkdir /tmp/alpine
cd /tmp/alpine
zcat $MNT/kernel/generic/hd-ext3.gz > soekris
tar xjf $MNT/base.tar.bz2 ./etc/inittab
sed -i -e 's/^::respawn.*//' -e 's/^tty.*//' -e 's/^#\(ttyS0.*\) 115200 \(.*\)/\1 19200 \2/' etc/inittab
echo etc/inittab | cpio -o -H newc -A -O soekris
gzip -c -9 soekris > $MNT/kernel/generic/soekris.gz

和一个自定义的 syslinux.cfg

cat > $MNT/syslinux.cfg <<EOF
serial 0 19200
timeout 0
default generic-soekris

label generic-soekris
        kernel /kernel/generic/bzImage
        append initrd=/kernel/generic/soekris.gz rw alpine_dev=hda1:vfat root_dev=none:tmpfs alpine_base=base.tar.bz2 pkg_dev=hda1:vfat pkg_subdir=/apks cfg_dev=hda1:vfat modloop=/kernel/generic/modloop.cmg console=ttyS0,19200
EOF

最后,我们使 CF 可引导

syslinux $FLASHDEVICE
umount alpine