四、荔枝派Nano烧录镜像生成 Linux篇

33 篇文章 1 订阅
12 篇文章 11 订阅

一、下载Lichee官方指定Linux仓库及分支

git clone --depth=1 -b f1c100s-480272lcd-test https://github.com/Icenowy/linux.git

  二、配置Linux

1、下载 .config 文件,放入源码主目录进行替换 (若下载时文件名有变,请重命名回 .config );
https://fdvad021asfd8q.oss-cn-hangzhou.aliyuncs.com/migrate/.config

2、make ARCH=arm menuconfig

 如图所示

SPI-Flash的支持

进入 Device Drivers -> SPI support,将 Allwinner A10 SoCs SPI controller取消勾选,然后勾上下面的Allwinner A31 SPI Controller。这是为了修正配置文件中SPI驱动不正确的问题。

勾上并进入 Device Drivers -> Memory Technology Device (MTD) support,选上下面两项:

  • Command line partitioning table parsing #为了解析内核参数传过来的分区信息,如果用设备树应该可以不选
  • Caching block device access to MTD devices  #为了生成/dev/mtdblock*设备,不选会在启动的时候卡在 watiting for device /dev/mtdblock*

 

File systems > Miscellaneous filesystems

添加对JFFS2文件系统的支持

 如下图

 保存并退出

打开drivers/mtd/spi-nor/spi-nor.c,检查自己的flash型号的参数是否含有SECT_4K,如果有则改为0

如下图

最后修改设备树文件中的分区信息,可以参考前面官方教程里面的dts修改章节。


&spi0 {
    pinctrl-names = "default";
    pinctrl-0 = <&spi0_pins_a>;
    status = "okay";
    spi-max-frequency = <50000000>;
    flash: w25q128@0 {
        #address-cells = <1>;
        #size-cells = <1>;
        compatible = "winbond,w25q128", "jedec,spi-nor";
        reg = <0>;
        spi-max-frequency = <50000000>;
        partitions {
            compatible = "fixed-partitions";
            #address-cells = <1>;
            #size-cells = <1>;

            partition@0 {
                label = "u-boot";
                reg = <0x000000 0x100000>;
                read-only;
            };

            partition@100000 {
                label = "dtb";
                reg = <0x100000 0x10000>;
                read-only;
            };

            partition@110000 {
                label = "kernel";
                reg = <0x110000 0x400000>;
                read-only;
            };

            partition@510000 {
                label = "rootfs";
                reg = <0x510000 0xAF0000>;
            };
        };
    };
};

四、编译

执行编译命令

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8

经过编译

在linux/arch/arm/boot/zImage的目录生成 kernel镜像

在linux//arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dtb生成设备树编译文件

至此,Linux编译完成

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值