树莓派4B中级9yocto高级定制RpiOS
上篇文章介绍了通过yocto编译rpios的流程,并没有对其进行定制化修改。这篇介绍下在不修改原有项目菜单的情况下,扩展镜像特性定制OS,本篇的OS有以下特性:U盘从启动;开启UART;开启ssh添加profile工具包添加wifi默认账号密码以及固定IP
环境:ubuntu22。04raspiberry4BU盘64Gyocto4。1。2vmware16。2。4概念介绍
简单介绍下yocto项目组织中几个常用的概念,在本篇也有使用:layer:层,组织文件和目录结构的元数据(软件菜谱、配置文件)集合;recipe:菜谱,构建软件包的元数据,通过指令、描述符可以获取源代码、补丁、构建二进制等;metadata:元数据,包含recipe、conf、class等;class:类,提供逻辑封装和基本继承机制,模板通常定义成class供其他菜谱使用;append:追加文件,用于扩展现有的菜谱,追加文件的变量可以覆盖原有菜谱的变量。定制镜像layer
yocto包含的几个默认层,可以通过bblayer。conf文件查看到,可以直接修改原有的meta数据进行定制化,这样会破坏元数据,并且在定制化多个OS时都会受到影响,新建layer达到解耦的目的:
默认层
通过新建layer作为定制OS的工作目录,通过yocto自带的devtool工具创建layer会自动将该layer追加到bblayer。conf中,也可以通过bitbake创建。cdxxxpokysourceoeinitbuildenvrpibuildcd。。devtoolcreateworkspacemetamylayer在poky根目录下创建metamylayer
metamylayer文件夹默认会生成conf文件夹,用于配置包含了哪些recipe。当通过devtool来扩展和新增recipe时,会自动在该目录下生成appends和recipe文件夹来保存recipe。U盘启动
上篇介绍了烧录镜像后可以通过修改cmdline。txt参数rootdevsda2来从U盘启动,每次烧录都要修改比较麻烦,这里通过扩展recipe修改默认启动盘:
查看metaraspberrypi中bootfiles包含了哪些recipe,路径:metaraspberrypirecipesbspbootfiles:rpibootfiles。bbrpicmdline。bb对应于etccmdline。txtrpiconfiggit。bb对应于etcconfig。txt
查看rpicmdline。bb:
使用devtool工具扩展rpicmdline,会自动在路径metamylayerappends中生成rpicmdline。bbappend,然后修改CMDLINEROOTFS参数:devtoolmodifyxrpicmdline在rpicmdline。bbappend中新增如下代码:CMDLINEROOTFSrootdevsda2{CMDLINEROOTFSTYPE}rootwait重新编译rpicmdline:bitbakerpicmdlineccleansstatebitbakerpicmdline定制wifi开机自启以及静态IP
之前实验中每次刷镜像都要设置wifi名称和密码,而调试环境中的wifi一般不会变化,为了后续效率更搞,这里需要写入默认的wifi配置,并设置开机后自启,需要修改2个recipe:wpasupplicant和initifupdown:wpasupplicant:用于配置wifi用户名和密码。devtoolmodifyxwpasupplicant
修改wpasupplicant。conf,对应的配置文件路径为:vimmetamylayersourceswpasupplicantoelocalfileswpasupplicant。confsane。
注:这里修改的是wpasupplicant。confsane,而非wpasupplicant。conf。在wpasupplicant。bb中可以看到如下命令,即安装的时候会把wpasupplicant。confsane修改成wpasupplicant。conf:
ctrlinterfacevarrunwpasupplicantctrlinterfacegroup0updateconfig1network{keymgmtNONEssidxxxwifi名pskxxx密码}initifupdown:wifi开机自启脚本devtoolmodifyxinitifupdown修改metamylayersourcesinitifupdowninterfaces,添加下面语句:autowlan0
设置静态IP。
IP地址默认是动态分配不是固定的,经常变化导致原有的ssh配置失效,可以通过配置固定IP地址。修改metamylayersourcesinitifupdowninterfaces,添加以下语句:address192。168。xxx。yyynetmask255。255。255。0gateway192。168。xxx。1
注意:yyy不要和已有的IP冲突
重新编译initifupdownbitbakeinitifupdownccleansstatebitbakeinitifupdown定制image菜单
查看yocto自带的镜像菜单,基本都是继承自coreimage(如coreimagebase。bb):
根据上面的语法同样可以自定义image。bb,使用devtool工具创建image。bb:devtooladdcoreimagebaserpi
会在metamylayer目录下自动生成recipescoreimagebaserpicoreimagebaserpi。bb,然后在文件中修改成以下内容,其中FEATURES中打开了ssh并且添加了profile工具包:SUMMARYAcustomrpiimagethatfullysupportsprofileandsshIMAGEFEATURESsplashLICENSEMITinheritcoreimageIMAGEFEATURESdebugtweakssshserveropensshtoolsprofile
整体的目录结构如下:pokymetamylayertreeL2n。appendscoreimagebaserpi。bbappendinitifupdown1。0。bbappendrpicmdline。bbappendrpiconfiggit。bbappendwpasupplicant2。10。bbappendconflayer。confREADMErecipescoreimagebaserpisourcesinitifupdownrpicmdlinerpiconfigwpasupplicant编译及烧录镜像cdxxpokysourceoeinitbuildenvrpibuildbitbakecoreimagebaserpi
在路径rpibuildtmpdeployimagesraspberrypi4会生成镜像文件,烧录可参考上篇。
FAQ烧录不成功
可能是image有问题,也可能是U盘分区或者vmware驱动问题。本人在烧录过程中多次遇到烧录后启动失败现象,可以尝试重启vmware、重新格式化U盘、cleansstate重新编译镜像手段。yocto编译过程失败
一般是由于被墙原因,本人编译时发现部分软件中午下载比较快,晚上较慢。另外可以采用离线的方式,本地下载后复杂到对应的下载目录,网上有教程。修改配置文件后不生效
修改bb后尽量单独要cleansstate后单独bitbake。非不得已不要cleanall,本人实验中曾cleanall,会把下载好的source删除,导致需要重新下载耗时耗力。IMAGEFEATURES和EXTRAIMAGEFEATURES区别
IMAGEFEATURES用于镜像bb文件中的,可以使用操作符进行追加,也可以显示通过IMAGEFEATURES:append方式,而IMAGEFEATURESappend写法适用于老版本,新版本不再适用。EXTRAIMAGEFEATURES是用于local。conf文件来扩展特性。
杜兰特暗讽科比抱大腿夺冠,遭10万球迷网暴,加索尔正式回应杜兰特如今已经是在网络上和球迷的对喷进入了白热化,而目前他依然还在直播间和球迷进行激烈的讨论,这次一位球迷表示自己是科比的球迷,他直接抨击了杜兰特的领导能力,而杜兰特已经杀红了……
樱桃园甜蜜迎客来源:【广安日报广安在线】4月11日,前锋区虎城镇紫龙村漫花趣味农场引进试种的5亩中华大樱桃迎来第一批游客,大家三五成群,在樱桃园里采摘尝鲜。据现场负责人介绍,中华……
20万球迷投票夺冠热门三镇巨大优势领先,人气最高是山东泰山近日,某知名足球平台进行了球迷投票,为新赛季中超做了预测,球迷选择支持的俱乐部,以及预测新赛季中超冠军,20万左右的球迷进行了投票。其中中超球队支持率排行榜,山东泰山14……
宝宝不爱喝水怎么办?试试这几个小妙招不论是成人还是孩童,适当饮用白开水可以促进新陈代谢,维持有氧呼吸,调节体温。那么宝宝该如何养成爱喝水的习惯,每天喝多少水?你知道吗,今天我们就聊聊怎么培养宝宝喝水习惯。1……
许昌市公路养护中心助力文旅周扮靓出游路第十四届三国文化旅游周将于4月26日5月3日在许昌市举办。许昌市公路养护中心提前谋划,将路域环境治理、桥梁养护提升等工作与助力文化旅游周活动有力结合,为广大市民打造畅美洁安的旅……
一顶假发!化妆和不化妆的区别有多大??好用的假发片推荐化妆vs不化妆的区别。救命,新买的假发。我不信能有这么丑!咱们先变个身,我先戴个眼珠子,不然我现在啥也看不清。今天戴这个,一瞬间我就拥有了光明,我也享受一把换……
不想吃饭,分享六道家常下饭菜,开胃解馋,食材和做法都很简单从今天起记录我的2023大家有没有不想吃饭或到饭点了不知道该做什么样的菜才好吃又下饭呢?今天月月给大家分享六道普通家常下饭菜,食材简单,都是平时常见的蔬菜,吃起来营养美味……
热议蒿俊闵讨薪就说吧,中超还能好吗?直播吧2月16日讯蒿俊闵发文讨薪,质问武汉足球俱乐部欠我的工资奖金什么时候给我?非要糊弄我!逼我!苗原:蒿俊闵当时是自由身加盟武汉卓尔,山东泰山对这笔转会是一路绿灯相送,……
MySQL库表主键ID耗尽了,如何处理?大家好,我是后端研究所大白所长!今天和大家聊一个有趣的话题:假如MySQL建表时主键ID是int32且自增的,谁也没想到业务发展这么快,今天忽然发现ID耗尽了,各种……
坦克世界高能约战,施瓦辛格军团等待你的加入说到坦克,相信首先映入脑海的肯定是那威猛的钢铁巨兽的形象,然后就会有一种莫名的压迫感,那你知道坦克是怎么组成的吗?接下来就探讨一下这个问题。坦克通常由武器系统、推进系统、……
命运2将推出全新PvP模式鼓励连续击杀《命运2》即将在运营多年以后首次推出一个全新的PvP模式:这是一种极端的,受冲突启发的模式,名叫Eruption(迸发)。根据Bungie的最新每周更新文章解释,Erup……
投影仪推荐四款最适合在七夕节登场的投影仪转眼间七夕已经来临,在这个天上地上一同撒狗粮的节日里,电影院早已经一票难求,好在许多智慧男女们另辟蹊径,既然我们去不了电影院,那让电影院过来不久好了嘛。于是,很多人开始在……