本文来源电子发烧友社区,作者:cszzlsw, 帖子地址:https://bbs.elecfans.com/jishu_2286481_1_1.html
一.前言
书接上文:fedara系统启动及homeassistant安装体验,这次终于把homeassistant跑起来的,这其中到底发生了些什么故事呢,且听我慢慢道来.
二.环境准备
上篇说了,跑homeassitant需要从头编译系统,所以先搭建编译环境吧,官方的git仓库在这:https://github.com/starfive-tech/freelight-u-sdk,啥也不说了,先down下来,提一下,官方说推荐编译环境是Ubuntu16.04或Ubuntu18.04,我这里用的是Ubuntu20.04,实际体验一点问题没有,所以朋友们放心大胆的玩吧.
因为里面包含了其他仓库,所以必须加--recursive,完整的方式如下:
三.系统配置和编译把代码下完之后cd到仓库目录.然后还需要用下面这些指令配置一些东西$ cd buildroot && git checkout JH7100_VisionFive_devel && cd ..$ cd HiFive_U-Boot && git checkout JH7100_VisionFive_devel && cd ..$ cd linux && git checkout --track origin/visionfive-5.15.y-devel && cd ..$ cd opensbi && git checkout master && cd ..
然后就可以启动编译了:make HWBOARD=visionfive或者make visionfive
再次温馨提示:这步操作完就可以挂机去睡觉了,等明儿再弄吧
如果没有ERROR这样的字样就代表编译成功了,有ERROR的话就去查错吧.
再再温馨提示:请先预留20G+的磁盘空间
四,烧录固件
我这里采用的是sd卡方式,readme里面有NFS方式,无奈水平太菜没弄成功,把固件烧录到sd卡之前还需要这么一个步骤:
$ make HWBOARD=xxx -jx$ make HWBOARD=xxx buildroot_rootfs -jx$ make HWBOARD=xxx vpudriver-build-rootfs$ rm -rf work/buildroot_rootfs/images/rootfs.ext*$ make HWBOARD=xxx buildroot_rootfs -jx这里面的HWBOARD=xxx指的是前面的板子类型,其实这里可以省略掉完成这些之后,先找一张sd卡,推荐至少16G,完事将卡用读卡器接到电脑USB或者如果你电脑自带tf卡插槽的话直接怼里就行这里需要提前将sd卡格式化一下,参考这篇链接:https://wiki.rvspace.org/en/Prod ... r_Quick_Start_Guide等把卡格式话完成之后,执行这两条指令:umount /dev/sdb3umount /dev/sdb1
然后再用这条指令将固件烧录到卡里:
make HWBOARD=visionfive DISK=/dev/sdb format-nvdla-rootfs && sync
之后就是漫长的等待,我这边是10分钟以上吧,可以去冲杯咖啡先.
看到这样的信息就代表烧录成功了:
五.系统启动
系统成功烧录到卡之后就可以上电了,等上电完成之后可以看到熟悉的输入用户名和密码,这里输入root回车然后starfive回车,顺利的话就可以进入系统了,完事的话可以执行一些简单的指令,证明系统是好的
有朋友问了,这个用户名和密码太长了想改怎么办:用这条指令进入buildroot的配置界面:
make buildroot_rootfs-menuconfig
找到如下地方,可以选择把密码去掉或者改简单点,比如我改成了123456,
六,重新编译python,pip等
python其实系统中已经带了,默认3.9.0,其实够用,这里暂时不用改,需要在python的核心包里添加sqlite和xml等支持,
还是刚刚的menuconfig指令,在此界面配置即可,步骤截图如下:
然后重新编译python,重新编译python的方式如下:
先进入work下面的buildroot_rootfs目录:
在目录下面执行 make python3-dirclean && make python3_rebuild,等待片刻后即可编译成功
这里附上buildroot的文档地址:http://buildroot.uclibc.org/downloads/manual/manual.html
这些都完成之后,可以添加pip指令,如下图:
做完这些之后可以尝试先编一个系统看看生效没有:
回到sdk目录,执行以上那四条指令:
$ make HWBOARD=xxx buildroot_rootfs -jx$ make HWBOARD=xxx vpudriver-build-rootfs$ rm -rf work/buildroot_rootfs/images/rootfs.ext*$ make HWBOARD=xxx buildroot_rootfs -jx事实证明,只执行rm -rf work/buildroot_rootfs/images/rootfs.ext*和make HWBOARD=xxx vpudriver-build-rootfs这两条指令也够
之后就是添加homeassistant系统了
七.homeassistant系统编译
要编译homeassistant首先要在package里面配置homeassistant的包,我们在这个文件夹下添加python-homeassistant这个文件夹,然后添加3个文件:
做完这些步骤之后又回到work下面的buildroot_rootfs目录,执行指令:make python-homeassistant-rebuild指令,等待编译完成,编译完成之后可以在target/usr/bin下面看到一个文件叫hass,到这里homeassistant就编译完成了
八.编译homeassistant的依赖
到上面的步骤你以为homeassistant编译成功了吗,太天真了,由于homeassistant是python写的,
python有个最大的特点就是属于动态语言,很多包都是在运行的时候加载的,
所以homeassistant运行所需要的所有包都需要提前编译好,
查看homeassistant的requirements文件,发
到这里就要解释一下requiremtnets.txt文件了,我们到pypi网站上去找到homeassistant包,这里我选择一个历史版本,homeasssistant 2.21.8.8版本,
下载过来,打开压缩包,可以看到一个文件叫做requiremtnets.txt,这里面记载了所有的依赖,
那么这么多的依赖要如何处理呢,有两个方法,
方法一就是在buildroot下面有一个utils文件夹,里面有一个scanpypi的工具,使用这个工具可以很方便的集成一些包进来,但是这个工具经常会不好使,研究这个工具还专门花了好几个小时,最后发现机制有问题(最主要的是python依赖包的方式经常不一样)
方法二,这个方法比较简单,但是很繁琐,需要一个包一个包的处理,最后会在buildroot的packages目录下生成一大堆的python-xxx包,具体的过程文字描述比较费劲这里就不多讲了,给大家看一下我的构建history,
等把这些包全都弄完,快的话也得需要1天,这中间还会出现各种各样的错误,所以其中的辛酸曲折大家能体会了.
把这些都弄完之后又回到sdk的目录下面指令构建的那两条指令,完事之后就烧到sd卡
九,启动homeassistant
如果一切顺利的话,等系统启动成功之后,输入hass指令,就能看到hass可以启动了,第一次启动会花费不少时间,这是因为虽然我们已经构建了很多包,但是都是大包,有很多小的包还是需要他在运行的时候自己下载安装,等这些都ok了之后,打开你的浏览器,输入你的开发板ip后跟端口8123,比如我的开发板用网线连接,系统启动之后自动获得ip是:192.168.1.7,那我在浏览器输入:192.168.1.7:8123,顺利的话就能看到homeassistant的主界面了,这里截图一下,
在浏览器里面设置你的用户名,密码等等,然后还有些其他的设置,就能进到homeassistant了,到这里,homeassistant就做完了.
十.总结
编译整个homeassistant的过程是痛苦的,期间有好几次想放弃,因为实在是太耽误时间了,而且因为对开发板的编译构建方式不熟悉,仅tf卡烧录这些步骤就花了很多时间,但就像有一句话说的,得不到的永远在骚动,从小的教育告诉我做事情不能轻言放弃,这么多年的工作经历告诉我,有时候成功就差再努力那么一下,再想到赛昉对我的信任(由于错过第一波的申请,到我申请的时候就剩3个名额了,但是依然申请到了),带着这一份承诺和执着,终于还是做成功了,结果不光是学到了技术,感觉更是对自己心志的一次磨炼.再次感谢赛昉,感谢发烧友平台.
一.前言
书接上文:fedara系统启动及homeassistant安装体验,这次终于把homeassistant跑起来的,这其中到底发生了些什么故事呢,且听我慢慢道来.
二.环境准备
上篇说了,跑homeassitant需要从头编译系统,所以先搭建编译环境吧,官方的git仓库在这:https://github.com/starfive-tech/freelight-u-sdk,啥也不说了,先down下来,提一下,官方说推荐编译环境是Ubuntu16.04或Ubuntu18.04,我这里用的是Ubuntu20.04,实际体验一点问题没有,所以朋友们放心大胆的玩吧.
因为里面包含了其他仓库,所以必须加--recursive,完整的方式如下:
git clone --recursivehttps://github.com/starfive-tech/freelight-u-sdk.git
温馨提示:输入完之后就可以去洗澡冲凉或者做饭去了
然后就是装一堆的依赖:sudo apt-get install autoconf automake autotools-dev bc bison xxd
build-essential curl flex gawk gdisk git gperf libgmp-dev libmpc-dev libmpfr-dev libncurses-dev libssl-dev libtool patchutils python screen texinfo unzip zlib1g-dev device-tree-compiler libyaml-dev把这些完成咱们就可以到下一步了:三.系统配置和编译把代码下完之后cd到仓库目录.然后还需要用下面这些指令配置一些东西$ cd buildroot && git checkout JH7100_VisionFive_devel && cd ..$ cd HiFive_U-Boot && git checkout JH7100_VisionFive_devel && cd ..$ cd linux && git checkout --track origin/visionfive-5.15.y-devel && cd ..$ cd opensbi && git checkout master && cd ..
然后就可以启动编译了:make HWBOARD=visionfive或者make visionfive
再次温馨提示:这步操作完就可以挂机去睡觉了,等明儿再弄吧
如果没有ERROR这样的字样就代表编译成功了,有ERROR的话就去查错吧.
再再温馨提示:请先预留20G+的磁盘空间
四,烧录固件
我这里采用的是sd卡方式,readme里面有NFS方式,无奈水平太菜没弄成功,把固件烧录到sd卡之前还需要这么一个步骤:
$ make HWBOARD=xxx -jx$ make HWBOARD=xxx buildroot_rootfs -jx$ make HWBOARD=xxx vpudriver-build-rootfs$ rm -rf work/buildroot_rootfs/images/rootfs.ext*$ make HWBOARD=xxx buildroot_rootfs -jx这里面的HWBOARD=xxx指的是前面的板子类型,其实这里可以省略掉完成这些之后,先找一张sd卡,推荐至少16G,完事将卡用读卡器接到电脑USB或者如果你电脑自带tf卡插槽的话直接怼里就行这里需要提前将sd卡格式化一下,参考这篇链接:https://wiki.rvspace.org/en/Prod ... r_Quick_Start_Guide等把卡格式话完成之后,执行这两条指令:umount /dev/sdb3umount /dev/sdb1
然后再用这条指令将固件烧录到卡里:
make HWBOARD=visionfive DISK=/dev/sdb format-nvdla-rootfs && sync
之后就是漫长的等待,我这边是10分钟以上吧,可以去冲杯咖啡先.
看到这样的信息就代表烧录成功了:
五.系统启动
系统成功烧录到卡之后就可以上电了,等上电完成之后可以看到熟悉的输入用户名和密码,这里输入root回车然后starfive回车,顺利的话就可以进入系统了,完事的话可以执行一些简单的指令,证明系统是好的
有朋友问了,这个用户名和密码太长了想改怎么办:用这条指令进入buildroot的配置界面:
make buildroot_rootfs-menuconfig
找到如下地方,可以选择把密码去掉或者改简单点,比如我改成了123456,
六,重新编译python,pip等
python其实系统中已经带了,默认3.9.0,其实够用,这里暂时不用改,需要在python的核心包里添加sqlite和xml等支持,
还是刚刚的menuconfig指令,在此界面配置即可,步骤截图如下:
然后重新编译python,重新编译python的方式如下:
先进入work下面的buildroot_rootfs目录:
在目录下面执行 make python3-dirclean && make python3_rebuild,等待片刻后即可编译成功
这里附上buildroot的文档地址:http://buildroot.uclibc.org/downloads/manual/manual.html
这些都完成之后,可以添加pip指令,如下图:
做完这些之后可以尝试先编一个系统看看生效没有:
回到sdk目录,执行以上那四条指令:
$ make HWBOARD=xxx buildroot_rootfs -jx$ make HWBOARD=xxx vpudriver-build-rootfs$ rm -rf work/buildroot_rootfs/images/rootfs.ext*$ make HWBOARD=xxx buildroot_rootfs -jx事实证明,只执行rm -rf work/buildroot_rootfs/images/rootfs.ext*和make HWBOARD=xxx vpudriver-build-rootfs这两条指令也够
之后就是添加homeassistant系统了
七.homeassistant系统编译
要编译homeassistant首先要在package里面配置homeassistant的包,我们在这个文件夹下添加python-homeassistant这个文件夹,然后添加3个文件:
做完这些步骤之后又回到work下面的buildroot_rootfs目录,执行指令:make python-homeassistant-rebuild指令,等待编译完成,编译完成之后可以在target/usr/bin下面看到一个文件叫hass,到这里homeassistant就编译完成了
八.编译homeassistant的依赖
到上面的步骤你以为homeassistant编译成功了吗,太天真了,由于homeassistant是python写的,
python有个最大的特点就是属于动态语言,很多包都是在运行的时候加载的,
所以homeassistant运行所需要的所有包都需要提前编译好,
查看homeassistant的requirements文件,发
到这里就要解释一下requiremtnets.txt文件了,我们到pypi网站上去找到homeassistant包,这里我选择一个历史版本,homeasssistant 2.21.8.8版本,
下载过来,打开压缩包,可以看到一个文件叫做requiremtnets.txt,这里面记载了所有的依赖,
那么这么多的依赖要如何处理呢,有两个方法,
方法一就是在buildroot下面有一个utils文件夹,里面有一个scanpypi的工具,使用这个工具可以很方便的集成一些包进来,但是这个工具经常会不好使,研究这个工具还专门花了好几个小时,最后发现机制有问题(最主要的是python依赖包的方式经常不一样)
方法二,这个方法比较简单,但是很繁琐,需要一个包一个包的处理,最后会在buildroot的packages目录下生成一大堆的python-xxx包,具体的过程文字描述比较费劲这里就不多讲了,给大家看一下我的构建history,
等把这些包全都弄完,快的话也得需要1天,这中间还会出现各种各样的错误,所以其中的辛酸曲折大家能体会了.
把这些都弄完之后又回到sdk的目录下面指令构建的那两条指令,完事之后就烧到sd卡
九,启动homeassistant
如果一切顺利的话,等系统启动成功之后,输入hass指令,就能看到hass可以启动了,第一次启动会花费不少时间,这是因为虽然我们已经构建了很多包,但是都是大包,有很多小的包还是需要他在运行的时候自己下载安装,等这些都ok了之后,打开你的浏览器,输入你的开发板ip后跟端口8123,比如我的开发板用网线连接,系统启动之后自动获得ip是:192.168.1.7,那我在浏览器输入:192.168.1.7:8123,顺利的话就能看到homeassistant的主界面了,这里截图一下,
在浏览器里面设置你的用户名,密码等等,然后还有些其他的设置,就能进到homeassistant了,到这里,homeassistant就做完了.
十.总结
编译整个homeassistant的过程是痛苦的,期间有好几次想放弃,因为实在是太耽误时间了,而且因为对开发板的编译构建方式不熟悉,仅tf卡烧录这些步骤就花了很多时间,但就像有一句话说的,得不到的永远在骚动,从小的教育告诉我做事情不能轻言放弃,这么多年的工作经历告诉我,有时候成功就差再努力那么一下,再想到赛昉对我的信任(由于错过第一波的申请,到我申请的时候就剩3个名额了,但是依然申请到了),带着这一份承诺和执着,终于还是做成功了,结果不光是学到了技术,感觉更是对自己心志的一次磨炼.再次感谢赛昉,感谢发烧友平台.
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
RISC-V
+关注
关注
49文章
2948浏览量
53544 -
赛昉科技
+关注
关注
3文章
183浏览量
15598
发布评论请先 登录
相关推荐
热点推荐
昉·星光开发板使用基础和GPIO点灯
台电脑连接到昉·星光开发板进行操作和编程。昉·星光开发板也支持通过HDMI连接到显示器进行操作,但本课程的内容,主要为通过电脑进行远程操作。
三、了解
发表于 03-26 07:51
RISC-V实现数据中心应用突破,赛昉科技BMC芯片重磅亮相
电子发烧友原创 章鹰 近期,在珠海举办的RISC-V产业大会上,赛昉科技展示了面向数据中心、边缘计算及智能终端的全栈产品与成熟应用,其中一款
2025 RISC-V产业发展大会 | 赛昉科技全景展示规模化商用成果
2025年11月24日,RISC-V产业发展大会在珠海开幕。赛昉科技以“推动RISC-V规模化商用”为核心主题,重点展示了面向数据中心、边缘计算
【作品合集】赛昉科技VisionFive 2单板计算机开发板测评
赛昉科技VisionFive 2单板计算机开发板测评作品合集
产品介绍:
昉·星光 2是全球首款集成了3D GPU的高性能量产
发表于 09-04 09:08
5 款 RISC-V 单板计算机测试:性能、基准测试、特性及见解
倘若计算的未来并非被专有架构所垄断,那会怎样?想象一下这样一个世界:开发者和业余爱好者都能利用开源硬件的力量自由地构建、创新和实验。现在,让我们走进RISC-V
赛昉科技入驻RuyiSDK开发者社区,双平台协同推进RISC-V生态
赛昉科技(StarFive)正式入驻RuyiSDK开发者社区,携手推动RISC-V技术创新。后续,赛昉科技的技术突破与生态进展将同步在RVs
赛昉科技徐滔:以精准场景牵引,RISC-V抢滩数据中心百万颗市场
7月16-19日,第五届RISC-V中国峰会在上海张江科学会堂成功举办。国内领先的RISC-V厂商赛昉科技携多款重磅产品亮相,集中展示自研创新技术和成果。峰会期间,
赛昉科技联合合见工软实现国产一致性NoC IP与RISC-V核在大规模网络中的适配
的一致性片上网络(NoC)IP——昉·星路-700(StarNoC-700)已成功适配赛昉科技昉·天枢(Dubhe)系列
“核心技术突破+关键应用支撑”,赛昉加速RISC-V生态突围
核心技术护城河1.首款适配RISC-V核的国产一致性NoCIP——StarNoC-700在高性能计算分论坛上,赛昉科技IP产品线总经理周杰宣
【VisionFive 2单板计算机试用体验】VisionFive 2一个霸气的游戏机
单板计算机,搭载昉·惊鸿-7110(型号:JH-7110)RISC-V应用处理器,拥有极强的计算能力和图形处理能力。开源的昉·
发表于 07-13 20:41
【VisionFive 2单板计算机试用体验】RISC-V架构卡片计算机初体验
2h........无奈)
参考文献:
全球首款集成3D GPU的高性能量产RISC-V 单板计算机,昉·星光 2 开发实践![全球首款集成3D GPU的高性能量产
发表于 07-06 23:28
权威评测:Orange Pi RV2等5 款 RISC-V 单板计算机测试-性能、基准测试、功能和见解
如果计算的未来不是被锁定在专有架构上,那会怎样?想象一下,在这个世界上,开发人员和业余爱好者都可以利用开源硬件的强大功能自由构建、创新和实验。进入RISC-V单板计算机(SBC)领域—
【VisionFive 2单板计算机试用体验】 + 开箱体验
在x86与ARM架构主导的单板计算机市场,中国团队打造的VisionFive 2(防星光2)如同一颗新星,凭借开源开放的RISC-V架构和成熟的桌面体验,为开发者与极客提供了全新的选择
发表于 06-27 09:06
【赛昉科技昉·星光RISC-V单板计算机试用体验】跑起来HomeAssistant是一种什么样的体验?
评论