本文來源電子發燒友社區,作者: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
+關注
關注
48文章
2886瀏覽量
53017 -
賽昉科技
+關注
關注
3文章
181瀏覽量
15550
發布評論請先 登錄
相關推薦
熱點推薦
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是一種什么樣的體驗?
評論