Linux系统移植#ARM
一、准备工作
-
0、下载文件
链接:https://pan.baidu.com/s/1owUsxrPukrHSVDe7_PZspA
提取码:6hsp -
1、复制etc.tar.gz等四个文件到系统中,利用命令进行解压:
tar zxf etc.tar.gz
其余压缩文件的解压同上,只不过更换为相对应的文件名,解压完成后会得到四个不同的目录
-
2.编译u-boot,进入到解压生成的uboot_ok6410目录中执行make
将当前目录下的tools目录下mkimage复制到/usr/bin中
sudo cp ./tools/mkimage /usr/bin/
二、文件系统创建
-
1、创建目录rootfs
mkdir rootfs
-
2、进入rootfs目录,创建以下目录:
cd rootfs
mkdir bin dev etc lib proc sbin sys usr mnt tmp var
mkdir usr/bin usr/lib usr/sbin lib/modules
- 3、创建设备文件
cd dev
sudo mknod -m 666 console c 5 1
sudo mknod -m 666 null c 1 3
-
4、加入配置文件
将第一步解压得到的etc目录下的所有文件复制到rootfs/etc中(若rootfs同解压得到的目录在同一目录下,且目前位于rootfs中)
cp -r ../etc/* etc/
用ls etc检查是否复制成功,若有以下四个文件则复制成功
-
5、添加内核模块
进入到解压得到的linux-ok6410目录中
make modules ARCH=arm CROSS_COMPILE=arm-linux-
安装内核模块到文件系统中
make modules_install ARCH=arm INSTALL_MOD_PATH=你的rootfs的实际路径
-
6、编译安装busybox
安装依赖
sudo yum install ncurses-devel
进入到解压得到的busybox目录中执行
make menuconfig
(将分辨率调整为约1920*1200),得到界面
进入Busybox Settings
进入Build Options
按y选中 以下项(选中后前面的【】中标记为*)
移动到最后一项,然后回车
在输入框中输入交叉编译工具链前缀
设置完成后退回到上一层,然后选择Install Options(同Build Options位于同一层菜单)
选中第一项
然后移动到最后一项,回车进入修改
在输入框中输入rootfs的路径,如下图
之后连续选择Exit退出
最后保存
退出之后进行编译,在命令行输入make
make
编译完成后,安装
make install
进入到rootfs目录中检查安装结果 执行命令 ls bin,若看到以下很多文件,则安装成功
设置使用initramfs
在rootfs目录中执行以下命令:
ln -s ./bin/busybox init
完成以上步骤之后,在rootfs目录中创建一个以你学号为名称的文件,例如
touch 123456
至此,根文件系统制作完成。
三、编译内核
进入到内核源代码目录中,即linux-ok6410目录中
执行
make menucofig ARCH=arm
进入General setup,找到以下项目,确认处于选中状态
移动到Initramfs source file(s)修改路径
将路径修改为你的rootfs的路径(下图为我的路径,不一定与你的相同)
之后退出并保存,然后执行以下命令:
make uImage ARCH=arm CROSS_COMPILE=arm-linux-
完成之后检查当前目录下的arch/arm/boot目录下是否存在uImage文件
ls arch/arm/boot