Archlinux系统移植

1.何为Archlinux?
Archlinux 是一个精简的通用linux系统发行版,定义:keep it simple, stupid. 有以下特点:

  • 简洁:避免不必要的添加、修改、复杂增加。安装软件包后,不能自动启动;不支持图形化配置界面,只用命令行/文件编辑器;
  • 现代:滚动升级策略,使得安装后持续升级,总保持最新稳定版本。用System初始化系统,现代文件系统、最新的内核等;
  • 使用:官方软件仓库中包含大量的软件包和编译脚本,可按需自行选择;
  • 通用:官方软件仓库—软件包选择,搭建自己的系统;包管理系统pacman 便于系统同步升级;以及arch user repository用户库,自定义。

Archlinux系统移植_第1张图片
2.官方参考文档
https://archlinuxarm.org/platforms/armv7/xilinx/zedboard
3.SD卡制备

  • SD 卡分区与文件系统挂载

    SD卡挂载在/dev/sdX下 (X 据具体情况而定) ;将SD卡分2个区:


sdX1 存放boot启动相关的文件{boot.bin、devicetree.dtb、uImage}
sdX2 存放Archlinux官网获取的文件系统目录


【说明】:该方式只需将相关文件放在规定的分区即可,启动文件有boot.bin引导加载程序、devicetree.dtb设备树、uImage内核文件。

第一步:用指令 fdisk -l #查看硬盘挂载情况,判断X是b 、c 还是d;
第二步:第1分区起始位置一定为8192,大小不小于40M即可;
第2分区存放文件系统,将占用剩下的全部空间;
【选用】分区小工具:apt-get install gparted #预留4M的空白分区
第四步:获取ArchLinuxarm内核和文件系统的压缩包,可以省略下载时间,直接用附件中的压缩包;
通过挂载的形式,将对应文件放入对应区间,如图所示。
Archlinux系统移植_第2张图片

  • U-boot配置启动项
    设置环境变量;设置boot的连接方式,及用户;指明SD启动打印及取址信息;保存环境变量设置
setenv sdboot_orig $sdboot
setenv bootargs 'console=ttyPS0,115200 root=/dev/mmcblk0p2 rw rootwait'
setenv sdboot 'echo Copying Linux from SD to RAM... && mmcinfo && fatload mmc 0 0x3000000 ${kernel_image} && fatload mmc 0 0x2A00000 ${devicetree_image} && bootm 0x3000000 - 0x2A00000'
saveenv     

4.SD卡复制
SD卡复制只需要两步:SD卡分区+文件复制。
a)用gparted工具进行分区操作,其原理同上。
b)将已经制作好文件系统的SD1卡挂载到一个文件夹,如/home/fs下,并将文件复制到/home/mnt ;然后退出SD1卡。

mount /dev/sdb2 /home/fs
cp -r /home/fs/* /home/mnt
umount /home/fs

c) 将待制备的SD2挂载到/home/fs , 用同步指令将/home/mnt 下的文件复制到/home/fs

cd /home                    //实际路径自己定
mount /dev/sdc2 fs
mount /dev/sdc1 boot
rsync -a mnt/ fs                //将文件系统同步到fs文件夹
cp mnt/boot boot
umount fs
umount boot
sync

d) 将SD2插入zedboard板,设置环境参数启动即可。


自此,完成Archlinux系统的简易移植工作。

你可能感兴趣的:(嵌入式Linux学习)