本帖最后由 @allen 于 2018-11-9 11:17 编辑
1.下载iso
http://mirrors.huaweicloud.com/centos-altarch/7.5.1804/isos/aarch64/
我下载的是 CentOS-7-aarch64-Minimal-1804.iso 方便做实验。
2. 提取roofs
我先拿一张SD卡,分成两个分区,都格式成ext4 ,第一个分区分几十兆,第二分区分剩下的全部分区,方便可以安装系统。
按照网址 https://blog.csdn.net/feixiang3839/article/details/80857138 ,我也是参考这个成功的。
将rootfs文件系统提取到卡的第二分区。如图
记得在centos 的rootfs /etc/fstab 添加
# <file system> <dir> <type> <options> <dump> <pass>
tmpfs /tmp tmpfs nodev,nosuid 0 0
/dev/mmcblk1p2 / ext4 defaults,noatime 0 1
不然系统启动后会变成只读系统。
3. 提取板子中的模块
手头有块CubieBoard7 或是CubieAIO-S700 ,emmc有官方的debian系统,debian系统启动后,插卡,挂载卡到/mnt,拷贝模块
cp/lib/firmware/ /mnt/usr/lib/ -rf cp /lib/modules/3.10.52/ /mnt/usr/lib/modules/ -rf
centos的路径跟debian不同,模块要放在/usr/lib
4. 启动centos rootfs
卡插还在板子上,断电,重新上电。在串口(有串口线调试方便)打印的Starting kernel ... 开始进入内核的时候,按住ADFU,让内核识别不到emmc,识别到卡为mmcblk0。因为系统默认挂载是/dev/mmcblk0p2,系统会自动挂载卡里面的rootfs 。
5.系统运行
启动后,输入root 账号就能进入系统,dhclient eth0 也能上网。lsmod 能看到加载了一些模块,证明之前拷贝的模块文件可以用。
记得按照网站说的,将安装文件放到系统的 根路径再安装:
确定能启动centos后,启动debian系统,将第一分区中的
uenv.txt中改成参数成root=/dev/mmcblk1p2,就不用每次centos启动按着ADFU,不过会导致debian启动不了。
理论上其他的发行版也是通过上面的方法跑起来。
后话:等系统调试差不多了,可以打包rootfs ,用官方的SDK,制作emmc固件。
|