licheepi系统的移植笔记

这是一篇licheepi系统的移植笔记

ubuntu18.04 + TF卡(4G) + licheepi-nano(f1c100s)

目录

1.对TF卡进行划分

2.下载与编译

2.1下载

2.2编译

2.2.1编译U-boot:

2.2.2主线linux编译

2.2.3编译根文件系统

3.烧写


下面开始移植:

1.对TF卡进行划分

使用gparted对磁盘进行划分,使用以下命令安装该程序:

sudo apt-get install gparted

安装好程序后,是下面红框内的图标,tf卡插上读卡器,连接电脑,点击打开Gparted

这种情况,一般是分区表坏了,点击Device->Create partition table, 类型选择msdos,apply。

修复后,感叹号就没了。

 下面开始分区

 选中unallocated, 新建,new size设为33, 文件系统设为fat32,add

 这个分区用来存放zImage和设备树文件,下面新建第二个分区

选中unallocated, 新建,new size为默认值, 文件系统设为ext4,add

 这一步将TF卡剩余的空间全部分给了第二个区域,该区域用来存放根文件系统。点击绿勾,完成分区。

注意,其实现在这块磁盘被分为了3个区:0m~1m, 1m~33m, 33m~end,因为分第一个区的时候,默认从1M开始往后分,所以0~1的区域是没有文件系统的。这个区域就是存放U-boot的区域。

此时,在命令行输入

 ls /dev/sd*

可以看到:

 说明分区成功。如果没看到,读卡器多拔插几次,一般就能看到了。

到此,TF卡分区结束

2.下载与编译

2.1下载

一共需要下载四个东西:

 gcc是我们的编译工具链。

下载u-boot:

git clone https://gitee.com/LicheePiNano/u-boot.git

下载Linux:

git clone --depth=1 -b master https://gitee.com/LicheePiNano/Linux.git

下载buildroot并解压:

wget https://buildroot.org/downloads/buildroot-2021.02.4.tar.gz
tar xvf buildroot-2021.02.4.tar.gz

下载gcc并解压

wget http://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/arm-linux-gnueabi/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi.tar.xz
tar -vxJf gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi.tar.xz

2.2编译

下面进入编译环节:

安装依赖:

sudo apt-get install gcc make cmake rsync wget unzip build-essential git bc swig libncurses-dev libpython3-dev libssl-dev python3-distutils android-tools-mkbootimg -y
sudo apt install vim python python-dev

安装交叉编译工具链

sudo cp -r ./gcc-linaro-7.2.1-201711-x86_64_arm-linux-gnueabi /opt/
sudo vim /etc/bash.bashrc

添加环境变量

PATH="$PATH:/opt/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi/bin"

 使路径生效

source /etc/bash.bashrc

可使用arm-linux-gnueabi-gcc -v检验工具链是否安装成功。

2.2.1编译U-boot:

进入uboot目录

git branch -a
git checkout nano-lcd800480
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- f1c100s_nano_defconfig
make ARCH=arm menuconfig

修改menuconfig 中的 boot args:

console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p2 rw vt.global_cursor_default=0

打开uboot/include/suniv.h,将原有宏定义注释,并添加

#define CONFIG_BOOTCOMMAND   "setenv bootm_boot_mode sec; "                           \
                     "load mmc 0:1 0x80C00000 suniv-f1c100s-licheepi-nano.dtb; "  \
                     "load mmc 0:1 0x80008000 zImage; " \
                     "bootz 0x80008000 - 0x80C00000;"

开始编译

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

编译成功,生成在uboot目录下的u-boot-sunxi-with-spl.bin,这就是我们之后要烧写的uboot文件

2.2.2主线linux编译

进入Linux目录

make ARCH=arm f1c100s_nano_linux_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8 INSTALL_MOD_PATH=out modules
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8 INSTALL_MOD_PATH=out modules_install

 编译生成设备树

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

内核img文件:./arch/arm/boot/zImage


设备树dtb文件:./arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dtb

 

如果这一步dtb设备树文件没有生成,也可以百度一下其他设备树编译方案,毕竟dts一定是有的。 

2.2.3编译根文件系统

进入buildroot目录

make menuconfig

进行配置

- Target options
  - Target Architecture (ARM (little endian))
  - Target Variant arm926t
- Toolchain
  - C library (musl) # 使用musl减小最终体积
- System configuraton
  - Use syslinks to /usr .... # 启用/bin, /sbin, /lib的链接
  - Enable root login # 启用root登录
  - Run a getty after boot # 启用登录密码输入窗口
  - (licheepi) Root password # 默认账户为root 密码为licheepi
- Target packages
  - Networking applications
    -[*]lrzsz # 启用rz,sz命令

参考了这篇blog

荔枝派Nano TF卡运行Linux全流程_Lesg的博客-CSDN博客

在.config文件生成后,可将其中软件包换源,亲测可以提高速度(国内):

BR2_BACKUP_SITE="http://sources.buildroot.net"
BR2_KERNEL_MIRROR="https://mirror.bjtu.edu.cn/kernel/"
BR2_GNU_MIRROR="http://mirrors.nju.edu.cn/gnu/"
BR2_LUAROCKS_MIRROR="https://luarocks.cn"
BR2_CPAN_MIRROR="http://mirrors.nju.edu.cn/CPAN/"

然后

make

编译完成之后,在buildroot-2021.02.4/output/images路径下生成rootfs.tar

 这就之后要烧录的根文件系统。

到此,下载与编译部分完成。

3.烧写

下面进入烧写部分

先烧写uboot,烧写到sdb中

sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8

再烧写zImage 和 dtb设备树文件

将两个文件复制到/dev/sdb1中:

cd  cd arch/arm/boot/
sudo cp ./dts/suniv-f1c100s-licheepi-nano.dtb /media/book/9A69-41C8
sudo cp zImage /media/book/9A69-41C8

注意, /media/book/9A69-41C8是你自己相应硬盘分区的挂载位置,可以使用df命令查询。

最后烧写根文件系统,将rootfs.tar解压到/dev/sdb2中

sudo tar xvf rootfs.tar -C /media/book/9f7517b2-33c5-45ac-bd97-0b0a7ac9564f
sync

烧写部分结束

最后上电启动

linux移植成功。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值