内核和根文件系统的制作

1、什么是内核

内核是一个抽象的东西,是一个运行的程序,管理整个操作系统的程序,好比操作系统的大脑!

2、内核的五大功能

管理进程、管理内存、管理文件、管理设备、管理网络

3、Linux的内核的重要文件夹

* arch 架构

        arm

    * block 块--内存/存储

    * net   网络相关文件夹

    * Documentation 说明文档

    * drivers:

        内核带的驱动有一大堆!

        带的驱动90%不是你用的

    * fs

        内核支持文件系统文件夹

    * include

        头文件

    * tiny4412_android_defconfig

      tiny4412_linux_defconfig

      tiny4412_ubuntu_defconfig

4、移植配置编译开发板提供的内核

由于内核不仅仅支持某一款开发板,所以想要移植使用内核首先需要配置内核

内核源码很大无法去通过源码修改配置,内核继承了一个配置界面,通过图形化界面配置,此配置界面必须安装一个插件

1.apt-cache search ncurses

2.apt-get install libncurses5-dev

配置界面进入的方法为:

make menuconfig

5、配置内核

1、make meanconfig 生成 .config

2、将友善之臂配置好的tiny4412_linux_defconfig内核复制到.config里面

3、友善之臂有内核安全保护机制,需要去掉

System Type  --->

            [ ] Support TrustZone-enabled Trusted Execution Environment

4、把 kernel/timeconst.pl的第373行的defined 去掉开始编译

5、完成内核配置

6、根文件系统的制作

根文件系统就是Linux的文件管理系统,主要在系统中存储和管理文件,依赖内核而存在。

根文件系统分为以下部分:

        *系统命令可执行二进制文件

        *系统头文件

        *各种依赖库

        *系统内部的一些关键性文件

        *其它

7、嵌入式中制作根文件系统的两种方法

1.Busybox

2.Buildroot

 8、busybox配置的步骤

Busybox是一个专门的根文件系统生成的软件,针对于常用的指令集合、一些标准的头文件、常用的Linux自带库。

1: 解压 busybox-1.21.1

    tar -xvf busybox压缩包

2: 进入解压目录

3: 进入 make menuconfig

        图形配置界面

    3.1: 设置共享库

        Busybox Settings --->

            Build Options --->

                [*] Build shared libbusybox

    3.2:设置交叉编译工具

        Busybox Settings --->

            Build Options --->

                (arm-linux-) Cross Compiler prefix

    3.3:设置busybox安装路径

        Busybox Settings --->

        Installation Options ("make install" behavior) --->

            (/root/206code) BusyBox installation prefix

    3.4:添加后续驱动专用命令

        à Linux Module Utilities

                [ ] Simplified modutils

                [*]   insmod

                [*]   insmod

                [*]   rmmod

                [*]   lsmod

                [*]     Pretty output

                [*]   modprobe

                [*]     Blacklist support

                [*]   depmod   

4:编译配置好的busybox

    make -j4 && make install -j4

Busybox生成文件分析

        三个文件夹  bin sbin usr

        里面全是二进制ARM可执行文件

9、完善根文件系统

1: 复制交叉编译工具的动态库

     cp /opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/lib/ ./ -rap

2: 添加其他的空 文件夹

    mkdir dev etc/init.d home proc sys root opt tmp var -p

3: 完善 dev 设备文件夹

    *该文件存放的是 设备文件!

    *有两个设备文件需要你手动创建

     垃圾桶文件 -- null

     控制台文件 -- console

     mknod dev/console c 5 1

     mknod dev/null c 1 3

4:完善etc下的文件(最容易犯错的地方)

    4.1:完善 fstab 文件

        gedit fstab

        往里面写入以下内容:

        # device mount-point type options dump fsck order

        proc /proc proc defaults 0 0

        tmpfs /tmp tmpfs defaults 0 0

        sysfs /sys sysfs defaults 0 0

        tmpfs /dev tmpfs defaults 0 0  

    4.2:完善 inittab

        gedit inittab

        往里面写入以下内容:

        ::sysinit:/etc/init.d/rcS

        console::askfirst:-/bin/sh

        ::ctrlaltdel:/sbin/reboot

        ::shutdown:/bin/umount -a -r

    4.3:完善 init.d/rcS

        gedit ./init.d/rcS

        写入以下内容

        #!/bin/sh

        mount -a

        mkdir /dev/pts

        mount -t devpts devpts /dev/pts

        echo /sbin/mdev > /proc/sys/kernel/hotplug

        mdev -s

        /bin/hostname FW    

        给文件执行权限

        chmod +x ./init.d/rcS

    4.4profile 完善

        gedit profile

        填入以下内容

        USER="`id -un`"

        LOGNAME=$USER

        PS1='[\u@\h \W]# '

        PATH=$PATH

        HOSTNAME=`/bin/hostname`

        export USER LOGNAME PS1 PATH

    4.5: 添加 group 和 passwd

        cp /etc/group /etc/passwd ./

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Andy.w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值