本文來源電子發燒友社區,作者: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
+關注
關注
46文章
2513瀏覽量
48402 -
賽昉科技
+關注
關注
3文章
165瀏覽量
14807
發布評論請先 登錄
相關推薦
熱點推薦
共建生態,賦能應用 | 賽昉科技精彩亮相中國RISC-V生態大會
2025中國RISC-V生態大會于近日在北京圓滿落幕。大會以“共建生態,共享未來”為主題,匯聚了中外產學研界各方代表,共同探討RISC-V的最新發展趨勢和產業機遇。作為中國RISC-V軟硬件生態

賽昉科技RISC-V家庭云解決方案:NAS存儲性能升級,隱私安全雙保障
(VisionFive2)單板計算機,推出全新RISC-V家庭云(NAS)解決方案,為用戶提供高性能、高安全性的私有云存儲服務,滿足家庭及輕量級企業場景需求。方案亮點01高性能硬件支持

首屆RISC-V產業發展大會成功舉辦,賽昉攜手產業伙伴共繪RISC-V新藍圖
12月28日,由中國電子工業標準化技術協會RISC-V工作委員會(以下簡稱“RISC-V工作委員會”)主辦的首屆“RISC-V產業發展大會”在北京成功舉辦。作為推動RISC-V生態發展

賽昉科技將亮相RISC-V產業發展大會,帶來應用、軟件、人才三大核心主題分享
“RISC-V產業發展大會”將于12月28日在北京亦莊通明湖會展中心舉辦。作為推動RISC-V生態發展的重要力量,賽昉科技將受邀出席此次盛會,帶來應用、軟件和人才

賽昉科技亮相ICCAD-Expo 2024,共探RISC-V技術最新發展
與會觀眾共探RISC-V技術的最新發展和行業應用。RISC-V架構的開放性和靈活性使其成為中國芯片行業的重要機遇。賽昉科技資深銷售總監周杰在“IP與IC設計服務”專

賽昉科技發布全新RISC-V處理器內核Dubhe-83
RISC-V軟硬件生態企業賽昉科技近日宣布,正式推出其全新RISC-V處理器內核——Dubhe-83(昉?天樞-83),該內核專為AI應用與
預售啟動!昉·星光 2 AI套件正式發布,基于RISC-V構建AI算力
10月24日,昉·星光2(VisionFive2)AI套件正式開啟預售。該套件由中國RISC-V軟硬件生態領導者賽昉科技攜手邊緣人工智能(A

賽昉科技產品亮相RISC-V開源創新中心,雙方達成戰略合作
RISC-V開源創新中心:“我們非常高興能與賽昉科技公司建立戰略合作伙伴關系。賽昉科技的技術創新,結合中心的教育資源,將為雙方帶來巨大的協同效應。”

賽昉科技與上海交通大學國家集成電路人才培養基地達成課程合作,推動高校RISC-V人才培育
2024RISC-V中國峰會期間,賽昉科技與上海交通大學國家集成電路人才培養基地的課程合作簽約儀式在杭州隆重舉辦。當前,RISC-V技術蓬勃發展,R

如何讓RISC-V企業賺錢?賽昉科技展現全場景RISC-V解決方案
今年的RISC-V中國峰會,圓桌論壇的主題格外引人注目——如何讓RISC-V企業賺錢?賽昉科技給出的答案是“應用”。如果把RISC-V浪潮比

賽昉科技RVspace生態社區雙周報(8月刊)
持續與各方伙伴攜手共建RISC-V生態社區,為RISC-V生態建設貢獻力量。rvspace.orgRVspace社區動態01將VisionFive2單板計算機改造為

昉·星光 2 高性能RISC-V單板計算機體驗】Homeassistant
Homeassistant簡介
Home Assistant 使用 Python3 開發的,是一個完整的 UI 管理的家庭自動化生態系統,它運行 Home Assistant Core、Home
發表于 07-14 20:40
Pine64 發布 Oz64 單板計算機:Arm、RISC-V任你切換
Pine64公司最新推出Oz64單板計算機(SBC),其最大的亮點采用SopghoSG2000雙架構芯片,可切換支持Arm和RISC-V。IT之家附上SopghoSG2000雙架構芯片相關信息如下

評論