前言
我打算用树莓派为平台做一个linux驱动与应用开发的系列分享,这里先从制作内核和文件系统开始吧!
后面每个知识点我尽量单独拿出来分享,方便搜索
环境
主机:Ubuntu20.04
平台:树莓派zero w
正文开始
1获取buildroot包
获取的方式很多,我下面列举了三种,嗯~都没验证过,不过我这不马上验证嘛。
1.wget https://buildroot.uclibc.org/downloads/buildroot-2016.11.2.tar.gz
2.官网下载buildroot:https://buildroot.org/download.html
3.git clone https://github.com/buildroot/buildroot.git
我是比较倾向使用git方式的,下面就以这种方式举例吧,为了保证这篇分享万无一失,我准备了一个纯白的Ubuntu20.04.
首先需要下载git
先看一下我这里是提示没有git的,那么就安装
sudo apt-get install git
安装完成,直接开始装buildroot吧,如果安装失败,重新装,这种概率太小以至于我从来没遇到过
我创建了一个Linux目录
获取buildroot
mkdir linux
cd linux/
git clone https://github.com/buildroot/buildroot.git
获取可能有点慢,如果你没有*的话!哈哈哈
安装完成后进入buildroot目录
cd buildroot/
这里树莓派的一些基础配置在buildroot里面已经保存好了配置文件,我们直接去取就行了
进入配置文件的目录
cd configs/
用这个命令可以看到,和树莓派相关的配置,我们要使用的zerow也在其中
ls raspberrypi*
复制我们需要的配置文件名raspberrypi0w_defconfig一会儿要用
现在退回到buildroot目录输入以下命令然后回车
make raspberrypi0w_defconfig
这就是纯白系统了,可以让我尽量说的详细一些,它提示没有的东西我们都安装一下就行了
安装它们,是的提示就是安装命令哈哈
sudo apt install make
sudo apt install make-guile
/bin/bash: gcc: command not found
又有提示说没有gcc,那就装
与上相同,在安装各种工具时提示是否安装都回车就行,按默认值行事,顺便把g++也装了,万一以后要用c++哇!
sudo apt install gcc
sudo apt install g++
安装完这些,再执行make raspberrypi0w_defconfig出现以下结果,即表示咱配置成功了
用以下命令可以查看我们刚刚载入的默认配置都有些啥
make menuconfig
然后好像还需要个东西
*** Install ncurses (ncurses-devel or libncurses-dev
好办安装呗
sudo apt-get install libncurses-dev
安装完再执行make menuconfig就可以看到我们刚载入的那些配置了,这个终端窗口托大一点,不然会报错,太小的话它卡腰!
配置我们先不要动,先用基础配置编译,万一通过了,再添加各种自己的小东西也不迟,那么咱就按照这个默认的配置来,编译一个能用的镜像文件再说
使用以下命令
sudo make -j8
这里的-j8是我的虚拟机分配了8个核心,你看你分了多少核心,自己看着办,分的越多编译越快,执行到这一步也就差不多到了这篇博客的尾声了。后面我再做客制化配置的更多内容哈!懒癌。。。。
编译完成之后先不管其他的,哥们儿如果和我一样是虚拟机的话先来个sftp吧!要不然文件没法和win互相传输
以下命令走起
sudo apt-get install vsftpd
安装好后打开配置文件
sudo vi /etc/vsftpd.conf
将以下内容使能
local_enable=YES
write_enable=YES
完成修改后保存退出,重新启动sftp
sudo /etc/init.d/vsftpd restart
到这里就可以使用FileZilla链接虚拟机的文件系统了,到时候我们会从这里将编译好的镜像文件拿出来
通过树莓派提供的烧写工具烧写到sd卡
以上提到的两个软件的地址
FileZilla
https://filezilla-project.org/download.php?type=client#close
树莓派烧录工具
https://www.raspberrypi.com/software/
等了很持久呀!终于好了 ,可以看到sdcard.img已经出来了,我们到时候就用这个!
这个文件在buildroot/output/images$
可以看到文件系统设备树都在这里,只不过sdcard.img是包含了所有内容的一个镜像而已,我们把它
拿出来
直接拖到你想要的位置就行,然后就是烧录;打开树莓派的软件
选择烧写自己的镜像
找到刚刚刚拿到的镜像文件
第二个选择项可以选择你插入电脑的SD卡,选择后点击第三个选项烧写即可
好到此也就差不多了,拜拜.