安装Debian压缩Pogoplug v3 / Oxnas清洁
免责声明
本教程中提供的所有数据和信息仅供参考。 作者对本教程中任何信息的准确性,完整性,现况,适用性或有效性不作任何声明,对本信息中的任何错误,遗漏或延误或其所产生的任何损失,伤害或损害概不负责。显示或使用。 所有信息均按原样提供。
在任何情况下,作者我们不对任何损失或损害负责,包括但不限于间接或后果性的损失或损害,或由于使用本产品而导致或与之相关的数据或利润损失导致的任何损失或损害教程。
动机
ArchLinux ARM(“ALARM”)于2013年6月正式退出对PogoPlug v3 / Oxnas的支持。实际上,由于ArchLinux的尖端理念,Oxnas端口已经崩溃,并引起用户的许多麻烦,尽管它在2012年。
各种用户已经尝试将Debian的稳定版本移植到Pogoplug v3 / Oxnas,并记录了他们在各种论坛帖子中的尝试(参见参考文献)。 我已经尝试了他们的指示,虽然我从中学到了很多东西(实际上我没有能够安装这个教程 - 谢谢你们!)我已经走过了几个缺点:
- 他们不仅建立了一个网络基础系统。
- 它们依赖于复杂的脚本,破坏,跳过警告并需要维护。
- 他们从2012年12月起不能使用最新的ALARM版本。
- 他们没有提供关于如何设置rootfs的足够的说明。 一些用户(varkey,shv)提供自己的rootfs,但缺少文档实际构建方式。
- 其中一些rootf没有从头开始构建,而是从其他rootfs(如doozan的kirkwood平台的rootfs)中采用,并且对于v3 / Oxnas的适当操作(即kirkwood内核或二进制文件)并不是必需的东西从原来的Pogoplug分配。
- 一些rootfs托管在不太可靠的下载平台上。
本教程的主要目的是提供如何在Pogoplug v3 / Oxnas上从头开始构建和安装Debian rootfs的说明,仅使用Debian和ALARM的官方二进制文件。
要求和假设
本教程假设您具有以下先决条件(其他版本/发行版也可能会有效,但可能需要其他或其他软件包):
- 通过DHCP连接到网络的Pogoplug v3 / Oxnas机器(显然!)
- ALARM根据官方教程安装在您的Pogoplug v3 / Oxnas上。
- ALARM附带的最新默认内核(Warhead SE的2.6.31.6_SMP_820)
- 另一台机器正在运行Ubuntu的实时环境(在Ubuntu 13.04 32位,8GB内存上测试)。
- 一个工作的互联网连接
准备(活)环境
在本教程中,我们不会Touch现有的ALARM安装,而是创建一个新的Debian rootfs,可以引导而不是ALARM系统。 我们在运行现有Ubuntu环境的机器上执行所有步骤。
设置路径
在我们开始之前,我们要设置一些shell变量,以便它们反映目录,这些目录将保存ALARM和Debian rootfs的内容:
export arch=/home/ubuntu/alarm
export pogodebian=/home/ubuntu/pogodebian-rootfs
现在,我们来创建这些目录:
mkdir $pogodebian
mkdir $arch
获取和提取ALARM rootfs
我们需要最新的ALARM rootfs。 您应该已经在您的ALARM棒上,因此请将其复制并执行以下操作,只有当您丢失或您的ALARM棒损坏:
wget http://os.archlinuxarm.org/os/oxnas/ArchLinuxARM-2012.12-oxnas.tar.gz
现在,解压ALARM rootfs:
sudo tar xzvpf ArchLinuxARM-2012.12-oxnas.tar.gz -C alarm
获取构建Debian rootfs所需的软件
本教程依赖于debootstrap和qemu。 在我们可以安装所需的软件包之前,我们需要在现场环境中更新软件包列表:
sudo apt-get update
现在我们可以安装所有需要的软件包:
sudo apt-get install qemu-user-static debootstrap
构建rootfs
本节介绍实际工作 - 从头开始构建完整的rootfs。
Debootstrapping stage1和stage2
Debootstrap第一阶段:
sudo debootstrap --verbose --arch armel --foreign squeeze $pogodebian/ http://ftp.de.debian.org/debian
(你可能想用你附近的镜子替换ftp.de.debian.org
)
将qemu复制到debootstrapped系统中:
sudo cp /usr/bin/qemu-arm-static $pogodebian/usr/bin/
为chroot安装各种文件系统:
sudo mount --rbind /dev $pogodebian/dev
sudo mount -t proc none $pogodebian/proc
sudo mount -o bind /sys $pogodebian/sys
现在我们可以进入新的系统:
sudo chroot $pogodebian
并开始第二阶段debootstrap过程
debootstrap/debootstrap --second-stage
一旦完成,我们想离开chroot:
exit
复制来自ALARM的pogo特定的东西
从ALARM复制内核模块:
sudo cp -a $arch/lib/modules/2.6.31.6_SMP_820 $pogodebian/lib/modules/
为gmac固件创建目录(对应于内核):
sudo mkdir $pogodebian/lib/firmware/2.6.31.6_SMP_820
复制gmac固件:
sudo cp -a $arch/lib/modules/gmac_copro_firmware $pogodebian/lib/firmware/2.6.31.6_SMP_820
复制LED支持二进制文件:
sudo cp -a $arch/sbin/proled $pogodebian/sbin/
sudo cp -a $arch/sbin/devmem2 $pogodebian/sbin/
应用各种修复:
修复所有复制的文件的所有者:
sudo chown -R root:root $pogodebian/lib/modules/2.6.31.6_SMP_820
sudo chown root:root $pogodebian/lib/firmware/2.6.31.6_SMP_820
sudo chown root:root $pogodebian/sbin/proled
sudo chown root:root $pogodebian/sbin/devmem2
Gunzip所有内核模块(debian挤压/ wheezy不能处理gzip的)
sudo gunzip -r $pogodebian/lib/modules/2.6.31.6_SMP_820/
(注意:输出两次“太多级别的符号链接”,忽略)
配置基本系统:
首先,回到我们的根目录:
sudo chroot $pogodebian
为了使启动成功后不断引发的LED,我们需要编辑/etc/rc.local
并添加以下行:
# turn on LED /sbin/proled green
当然,在关机时应该关闭LED。 因此,我们需要将以下内容放在/etc/rc0.d/K081halt
之前停止
动作(包含在本节中):
log_action_msg "Will now halt" /sbin/proled off halt -d -f $netdown $poweroff $hddown
我们还想在引导时加载pogo特定的内核模块,因此我们需要将这些行添加到/ etc / modules中
:
mii gmac oxnas-led
我们还希望shell并发,没有硬件锁定,因此我们需要将这些行添加到/ etc / default / rcS中
:
HWCLOCKACCESS=no CONCURRENCY=shell
更新模块依赖关系,因为系统将找不到解压缩的模块,否则(对应于内核):
depmod -a 2.6.31.6_SMP_820
接下来,我们需要通过将这一行放入/etc/apt/sources.list
来填充包源:
deb http://ftp.de.debian.org/debian squeeze main
现在,我们可以刷新包列表:
apt-get update
完成此操作后,我们将安装一些基本软件包(主要用于联网和远程访问)
apt-get install locales openssh-server usbutils psmisc dhcp3-client
我们通过首先在/etc/locale.gen
中注释
我们的区域设置来修复语言环境:
en_US.UTF-8 UTF-8
并重新生成它们:
locale-gen
当然,设置root密码是个好主意:
passwd
接下来,我们通过编辑/ etc / hostname
来设置主机名
,并用我们自己的方式替换从现场环境派生的东西:
yourhostname
现在我们填充/ etc / fstab
,所以我们的rootfs将在下次启动时正确安装:
/dev/root / ext3 noatime,errors=remount-ro 0 1 tmpfs /tmp tmpfs defaults 0 0
并通过编辑/ etc / network / interfaces>配置网络:
auto lo eth0 iface lo inet loopback iface eth0 inet dhcp hwaddress ether xx:xx:xx:xx:xx:xx
将您的pogo的真正Mac地址替换为xx:xx:xx:xx:xx:xx!
现在再次退出chroot:
exit
就这样,我们现在可以将rootfs复制到我们的USB媒体。
复制和定稿
插入要用于Debian Pogoplug安装的USB介质。在下文中,我们假设您的媒体已被识别为/ dev / sdb
,并且您想要对其进行新格式化,丢失之前存储的所有数据。
要小心! 使用错误的设备可能会擦除计算机上的数据!
接下来,我们擦拭分区表:
sudo dd if=/dev/zero of=/dev/sdb bs=512 count=1024
并使用fdisk创建一个新的:
sudo fdisk /dev/sdb你应该得到这样的东西:
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0x274aa42c. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
现在,使用如下命令在整个USB驱动器上创建一个新的主分区:
Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-7813119, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-7813119, default 7813119): Using default value 7813119
将更改写入磁盘并使用w
命令退出fdisk:
Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
现在我们有磁盘分区,我们可以使用ext3文件系统进行格式化:
sudo mkfs.ext3 -m00 /dev/sdb1
接下来我们在live系统上创建一个挂载点:
sudo mkdir /mnt/pogostick
并安装磁盘:
sudo mount /dev/sdb1 /mnt/pogostick
几乎完成了 我们去chroot,将所有的东西复制到U盘上,并将其重新安装:
cd $pogodebian
sudo cp -a . /mnt/pogostick/
sudo umount /mnt/pogostick
最后,我们拔出USB棒,把它放在v3 / Oxnas Pogoplug里面,然后启动它! 如果一切都顺利,LED应该首先闪烁绿色,然后走我们几秒钟,最后变成绿色。 我们现在应该可以ping系统和ssh,并开始玩它。
注意事项,注意事项和缺点
- 二进制mkfs.ext3并不总是你可能认为的。 实际上它是一个符号链接到mkfs.ext2,并且根据你的/etc/mke2fs.conf文件,它可能不会创建ext3文件系统,但ext4或ext2没有警告。 Pogoplug v3 / Oxnas内核只支持ext3,所以仔细检查一下,你真的得到了正确的文件系统创建!
- 本教程不适用于Debian Wheezy,无需进一步修改。 它启动到LED关闭的位置,似乎挂起。 如果您知道缺少的要点,请与我联系!
- Pogoplug Pro的Wifi驱动程序的安装不在此处,因此,在不执行其他步骤的情况下,生成的rootfs不支持WiFi。
参考文献
- http://archlinuxarm.org/platforms/armv6/pogoplug-v3oxnasend-life
- http://forum.doozan.com/read.php?3,6336,page=1
- https://github.com/ingmar-k/Pogoplug_V3_Emdebian
- http://forum.doozan.com/read.php?2,5986,page=1
- http://raspberrypi.stackexchange.com/questions/855/is-it-possible-to-update-upgrade-and-install-software-before-flashing-an-image
- https://wiki.ubuntu.com/ARM/RootfsFromScratch/QemuDebootstrap