本文來源電子發燒友社區,作者: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分鐘以上吧,可以去沖杯咖啡先.
看到這樣的信息就代表燒錄成功了:
![pYYBAGKnVtSAGnmoAAH9m05yTgo996.png](https://file.elecfans.com/web2/M00/4B/38/pYYBAGKnVtSAGnmoAAH9m05yTgo996.png)
五.系統啟動
系統成功燒錄到卡之后就可以上電了,等上電完成之后可以看到熟悉的輸入用戶名和密碼,這里輸入root回車然后starfive回車,順利的話就可以進入系統了,完事的話可以執行一些簡單的指令,證明系統是好的
有朋友問了,這個用戶名和密碼太長了想改怎么辦:用這條指令進入buildroot的配置界面:
make buildroot_rootfs-menuconfig
找到如下地方,可以選擇把密碼去掉或者改簡單點,比如我改成了123456,
![poYBAGKnVs-ASM8vAAHx3DtJCRc840.png](https://file.elecfans.com/web2/M00/4A/9C/poYBAGKnVs-ASM8vAAHx3DtJCRc840.png)
六,重新編譯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個文件:
![pYYBAGKnVtqAXu0OAAWKVv-okuw411.png](https://file.elecfans.com/web2/M00/4B/38/pYYBAGKnVtqAXu0OAAWKVv-okuw411.png)
做完這些步驟之后又回到work下面的buildroot_rootfs目錄,執行指令:make python-homeassistant-rebuild指令,等待編譯完成,編譯完成之后可以在target/usr/bin下面看到一個文件叫hass,到這里homeassistant就編譯完成了
![poYBAGKnVtyAAexYAAGmDHDl4E0141.png](https://file.elecfans.com/web2/M00/4A/9C/poYBAGKnVtyAAexYAAGmDHDl4E0141.png)
八.編譯homeassistant的依賴
到上面的步驟你以為homeassistant編譯成功了嗎,太天真了,由于homeassistant是python寫的,
python有個最大的特點就是屬于動態語言,很多包都是在運行的時候加載的,
所以homeassistant運行所需要的所有包都需要提前編譯好,
查看homeassistant的requirements文件,發
![poYBAGKnVt2AOJbkAADptpCYsEE437.png](https://file.elecfans.com/web2/M00/4A/9C/poYBAGKnVt2AOJbkAADptpCYsEE437.png)
到這里就要解釋一下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的主界面了,這里截圖一下,
![pYYBAGKnVuCARMaeAAM6s6WBRV4919.png](https://file.elecfans.com/web2/M00/4B/38/pYYBAGKnVuCARMaeAAM6s6WBRV4919.png)
在瀏覽器里面設置你的用戶名,密碼等等,然后還有些其他的設置,就能進到homeassistant了,到這里,homeassistant就做完了.
![poYBAGKnVuOANI3CAARrBpQhcuU089.png](https://file.elecfans.com/web2/M00/4A/9C/poYBAGKnVuOANI3CAARrBpQhcuU089.png)
![pYYBAGKnVuWAZg-cAADlu9vKVhg569.png](https://file.elecfans.com/web2/M00/4B/38/pYYBAGKnVuWAZg-cAADlu9vKVhg569.png)
十.總結
編譯整個homeassistant的過程是痛苦的,期間有好幾次想放棄,因為實在是太耽誤時間了,而且因為對開發板的編譯構建方式不熟悉,僅tf卡燒錄這些步驟就花了很多時間,但就像有一句話說的,得不到的永遠在騷動,從小的教育告訴我做事情不能輕言放棄,這么多年的工作經歷告訴我,有時候成功就差再努力那么一下,再想到賽昉對我的信任(由于錯過第一波的申請,到我申請的時候就剩3個名額了,但是依然申請到了),帶著這一份承諾和執著,終于還是做成功了,結果不光是學到了技術,感覺更是對自己心志的一次磨煉.再次感謝賽昉,感謝發燒友平臺.
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
RISC-V
+關注
關注
45文章
2339瀏覽量
46773 -
賽昉科技
+關注
關注
3文章
159瀏覽量
14369
發布評論請先 登錄
相關推薦
賽昉科技RISC-V家庭云解決方案:NAS存儲性能升級,隱私安全雙保障
(VisionFive2)單板計算機,推出全新RISC-V家庭云(NAS)解決方案,為用戶提供高性能、高安全性的私有云存儲服務,滿足家庭及輕量級企業場景需求。方案亮點01高性能硬件支持
![<b class='flag-5'>賽</b><b class='flag-5'>昉</b>科技<b class='flag-5'>RISC-V</b>家庭云解決方案:NAS存儲性能升級,隱私安全雙保障](https://file.elecfans.com/web2/M00/1A/02/poYBAGF47iiANcvqAABSphpOXQU436.jpg)
預售啟動!昉·星光 2 AI套件正式發布,基于RISC-V構建AI算力
10月24日,昉·星光2(VisionFive2)AI套件正式開啟預售。該套件由中國RISC-V軟硬件生態領導者賽昉科技攜手邊緣人工智能(A
![預售啟動!<b class='flag-5'>昉</b>·<b class='flag-5'>星光</b> 2 AI套件正式發布,基于<b class='flag-5'>RISC-V</b>構建AI算力](https://file.elecfans.com/web2/M00/1A/02/poYBAGF47iiANcvqAABSphpOXQU436.jpg)
Ubuntu現已適配RISC-V單板計算機Milk-V Mars
近期,Canonical宣布優化的Ubuntu24.04鏡像已可用于RISC-V單板計算機Milk-VMars。Milk-VMars由深圳市群芯閃耀科技有限公司(Milk-V)設計并推出,搭載
![Ubuntu現已適配<b class='flag-5'>RISC-V</b><b class='flag-5'>單板計算機</b>Milk-<b class='flag-5'>V</b> Mars](https://file.elecfans.com/web2/M00/1A/02/poYBAGF47iiANcvqAABSphpOXQU436.jpg)
信用卡大小的 RISC-V 單板計算機介紹
信用卡大小的 RISC-V 單板計算機 —— Mars
Mars 由深圳市群芯閃耀科技有限公司(Milk-V)設計并推出,搭載賽昉科技
發表于 04-12 16:39
賽昉科技VisionFive 2生態進展雙周報(2.1-2.29)
Image for VisionFive 2)
社區開發者發布4篇【昉·星光 2高性能RISC-V單板計算機體驗】系列文章,內容包括:為Ubuntu安裝Docker及常用軟件;以容器
發表于 02-29 15:45
【昉·星光 2 高性能RISC-V單板計算機體驗】以容器的方式安裝 HomeAssistant
【昉·星光 2 高性能RISC-V單板計算機體驗】以容器的方式安裝 HomeAssistant
下載并啟動容器
HomeAssisatant
發表于 02-21 18:07
【昉·星光 2 高性能RISC-V單板計算機體驗】為 Ubuntu 安裝 Docker 及常用軟件
【昉·星光 2 高性能RISC-V單板計算機體驗】為 Ubuntu 安裝 Docker 及常用軟件
目的
為了更好的利用星光2,決定使用容器
發表于 02-21 17:54
【昉·星光 2 高性能RISC-V單板計算機體驗】VisionFive2開箱+安裝Ubuntu
【昉·星光 2 高性能RISC-V單板計算機體驗】VisionFive2開箱+安裝Ubuntu
前言
很感謝賽
發表于 02-21 17:49
評論