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

你可能感兴趣的:(Linux系统移植#ARM)