admin管理员组文章数量:1652208
目录
- 一、开发环境搭建
- 0.准备工作
- 1.交叉编译工具链安装
- 2. u-boot移植
- 3. kernel 移植
- 4 rootfs移植
- 一、 格式化TF卡
- 1. linux命令行格式化
- 1.1 找到U盘位置(已挂载)
- 1.2 格式化U盘
- 二、 将uboot写入到sd卡到8k偏移处
- 三、 新建分区
- 1 新建BOOT分区,存放linux kernel
- 2 新建rootfs分区 存放根文件系统
- 3 将下列三个文件拷贝到BOOT分区
- 4 将rootfs.tar解压到rootfs
- 买了一张512M的卡,一键下载镜像后提示card did not respond to voltage select ,unsupported boot device
- 三、应用编译
- 四、工具安装
- 1.串口传输工具Lrzsz
- 五、问题记录
- 2.第一次进入linux,命令号只显示#号
- 3.慎用空格、TAB
- 5. VIM非正常退出
- 6 快捷方式目录
一、开发环境搭建
0.准备工作
安装vim:
sudo apt-get install vim
安装git工具
sudo apt-get install git
1.交叉编译工具链安装
对于F1C200S,使用的交叉工具链必须高于,使用的交叉工具链必须高于6.0。
本文选择7.2.1进行u-boot和kernel的编译。
官网下载链接:https://releases.linaro/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
或右键提取
在/usr/local目录下新建arm-linux-gcc目录
sudo mkdir /usr/local/arm-linux-gcc
进入解压目录下:
cd gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi/
将该目录下 的所有文件复制到新建的目录下:
sudo cp -rd * /usr/local/arm-linux-gcc/
最后需要添加该工具链的环境变量使其可以在任何目录下执行,打开/etc/profile文件
sudo vim /etc/profile
在文件末尾 添加以下内容
PATH=$PATH:/usr/local/arm-linux-gcc/bin
添加完毕,使路径生效
source /etc/profile
验证:
arm-linux-gnueabi-gcc -v
安装32位动态链接库
为了后续移植Linux系统中出现库缺失问题,这里可以一次系统中出现库缺失问题,这里可以一次性将可能需要的库全部安装,执行如下命令即。
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev gcc-multilib x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev g++-multilib tofrodos python-markdown libxml2-utils libssl-dev swig python-dev
2. u-boot移植
这里采用licheePI nano的u-boot来进行移植。在终端输入如下命令克隆u-boot:
git clone https://github/Lichee-Pi/u-boot.git -b nano-v2018.01
克隆完毕文件会保存在当前目录 下,进入该目录
cd u-boot
在该文件夹下有很多分支,我们可以查看所使用如命令:
git branch -a
现在我们使用的是nano开发板,所以将当前分支切换到nano分支,命令如下:
git checkout nano-v2018.01
或者直接下载切换到分支下载zip
u-boot默认的没有指定交叉工具链和架构,因此在编译之前需要芯片默认的没有指定交叉工具链和架构,因此在编译之前需要芯片u-boot的交叉编译器在u-boot的根目录下中Makefile文件中定义了。打开文件中定义了。打开Makefile文件。
将# set default to nothing for native builds下面改为
ARCH=arm
CROSS_COMPILE=arm-linux-gnueabi-
config文件夹中有
licheepi_nano_defconfig和licheepi_nano_spiflash_defconfig配置文件
前者表示为,前者表示为TF卡启动,后者表卡启动,后者表示从SPI设备启动,这里使用前者。
下一步:
cd ..
make licheepi_nano_defconfig
配置完成后就可以进入图形界面行了,执make menuconfig命令:
make menuconfig
更改bootcmd
load mmc 0:1 0x80008000 zImage;
load mmc 0:1 0x80c08000 suniv-f1c100s-licheepi-nano.dtb;
bootz 0x80008000 - 0x80c08000;
传参bootarg
Y 选中 Enable boot arguments
下面一行Enter输入参数
console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p2 earlyprintk rw
编译u-boot
make -j2
编译生成
u-boot-sunxi-with-spl.bin
3. kernel 移植
下载kernel
https://mirrors.edge.kernel/pub/linux/kernel/v5.x/linux-5.7.1.tar.gz
修改主目录Makefile
ARCH ?=arm
CROSS_COMPILE ?=arm-linux-gnueabi-
下载licheepi_nano的配置文件
linux-licheepi_nano_defconfig文件;链接:
http://dl.sipeed/LICHEE/Nano/SDK/config
然后将其放到arch/arm/configs/目录下
回到主目录,
make linux-licheepi_nano_defconfig
编译
make -j2
编译完毕后在就会生成zImage文件和dtb文件,zImage在arch/arm/boot目录下,dtb在arch/arm/boot/dts目录下目录下。
4 rootfs移植
安装buildroot2018.2.11版本 https://buildroot/downloads/
make clean
make menuconfig
进入Target options
图框中指定了编译时使用的库类型,我们这里选择(both static and shared)选项,即同时使用静态库和动库。剩下的我们使用默认即可,将光标移动到上,然后按Enter保存。
保存后,回到上一级配置界面然进入第三个Toolchain选项,配置如图选项,配置如图:
黄色框中的选项尽可能勾,因为后面移植QT5的时候需要用到C++相关库,如果这里没有勾选QT5选型将无法勾选。
第四个 System configuration配置如图:
更改启动密码。
编译完毕后可以在output/images目录下找到rootfs.tar。
一、 格式化TF卡
1. linux命令行格式化
1.1 找到U盘位置(已挂载)
sudo fdisk -l
如图,我的在/dev/sdb
1.2 格式化U盘
sudo mkfs -t vfat /dev/sdb
-t 后面是格式化为哪种文件系统格式,vfat就是fat32格式,最后加U盘位置
有时候被占用了无法格式化,需要先卸载u盘,挂载u盘后会在/media/user 下找到
使用umount 卸载
2 gparted格式化 删除分区
安装 gparted
sudo apt-get install gparted
右键 卸载 删除 再确认
二、 将uboot写入到sd卡到8k偏移处
sudo dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8
三、 新建分区
1 新建BOOT分区,存放linux kernel
2 新建rootfs分区 存放根文件系统
3 将下列三个文件拷贝到BOOT分区
1 boot.scr //看了几个教程都没有提及到这个问题 要搞清楚 荔枝派自带
2 zimage 目录 arch/arm/boot
3 suniv-f1c100s-licheepi-nano.dtb 目录 arch/arm/boot/dts
//命令
sudo cp boot.scr suniv-f1c100s-licheepi-nano.dtb zImage /media/wd/BOOT -rf
4 将rootfs.tar解压到rootfs
sudo tar -xvf rootfs.tar -C /media/wd/rootfs
买了一张512M的卡,一键下载镜像后提示card did not respond to voltage select ,unsupported boot device
感觉是卡不行 不知道为啥
有人重新插拔一下就行我的不可以
三、应用编译
驱动开发过程中有时候需要编写简单的应用测试程序,由于编译根文件用的buildroot,所以在编译应用程序也用同样的交叉工具链。
进入buildroot主目录,进入output/host/,
在 usr/local 目录下新建一个 arm-gcc-app 目录:
sudo mkdir /usr/local/arm-gcc-app
然后将 output/host/目录下的文件全部拷贝到/usr/local/arm-gcc-app/目录下:
sudo cp -a ./* /usr/local/arm-gcc-app/
接下来我们添加环境变量,打开/etc/profile 文件,在末尾添加路径:
注意: 加export是环境变量,在/etc/profile加载后别处可以引用。不加就是普通变量了,只能文件内用。
验证:在终端中输入 arm-linux-,然后双击 Tab 按键,此时会出
现如下内容:
测试:
四、工具安装
1.串口传输工具Lrzsz
感谢万能的坑友,我搜索了一下,buildroot中确实有这个功能,不需要下载;,找到了它位于这个目录中:
Target packages —>
Networking applications —>
[v] lrzsz
勾选之后,编译,根文件系统中就有这个工具了。
五、问题记录
2.第一次进入linux,命令号只显示#号
解决 修改/etc/profile
在末尾处 输入
export PS1='[\u\@\h: \w\a]$'
重启板子即可
3.慎用空格、TAB
在编写一个Makefile工具时,出现Makefile:7: *** missing separator (did you mean TAB instead of 8 spaces?). Stop.这个问题,
将空格用TAB键代替
用vim编辑makefile 错误的会现红色
5. VIM非正常退出
参考链接:https://blog.csdn/sunsi_10/article/details/78232207
交换文件 “~/.add.py.swp” 已存在! 以只读方式打开([O]), 直接编辑((E)), 恢复(®), 删除交换文件((D)), 退出((Q)),中止((A)):
产生原因:文件的非正常关闭。
解决办法:删除add.py.swp文件,该文件是隐藏文件所以使用la查看,使用语句rm -r add.py.swp删除该文件,再次打开文件不会产生该问题。
6 快捷方式目录
进入 /usr/share/applicatoions,找到所需的软件的快捷方式,拷贝到桌面就可以了。
参考:https://blog.csdn/weixin_45881223/article/details/126145992
版权声明:本文标题:linux(全志F1C100SF1C200S)系列01:初始环境搭建 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1729581067a1207452.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论