本文來源電子發(fā)燒友社區(qū),作者:cszzlsw, 帖子地址:https://bbs.elecfans.com/jishu_2286481_1_1.html
一.前言
書接上文:fedara系統(tǒng)啟動(dòng)及homeassistant安裝體驗(yàn),這次終于把homeassistant跑起來的,這其中到底發(fā)生了些什么故事呢,且聽我慢慢道來.
二.環(huán)境準(zhǔn)備
上篇說了,跑homeassitant需要從頭編譯系統(tǒng),所以先搭建編譯環(huán)境吧,官方的git倉庫在這:https://github.com/starfive-tech/freelight-u-sdk,啥也不說了,先down下來,提一下,官方說推薦編譯環(huán)境是Ubuntu16.04或Ubuntu18.04,我這里用的是Ubuntu20.04,實(shí)際體驗(yàn)一點(diǎn)問題沒有,所以朋友們放心大膽的玩吧.
因?yàn)槔锩姘似渌麄}庫,所以必須加--recursive,完整的方式如下:
三.系統(tǒng)配置和編譯把代碼下完之后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 ..
然后就可以啟動(dòng)編譯了:make HWBOARD=visionfive或者make visionfive
再次溫馨提示:這步操作完就可以掛機(jī)去睡覺了,等明兒再弄吧
如果沒有ERROR這樣的字樣就代表編譯成功了,有ERROR的話就去查錯(cuò)吧.
再再溫馨提示:請先預(yù)留20G+的磁盤空間
四,燒錄固件
我這里采用的是sd卡方式,readme里面有NFS方式,無奈水平太菜沒弄成功,把固件燒錄到sd卡之前還需要這么一個(gè)步驟:
$ 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指的是前面的板子類型,其實(shí)這里可以省略掉完成這些之后,先找一張sd卡,推薦至少16G,完事將卡用讀卡器接到電腦USB或者如果你電腦自帶tf卡插槽的話直接懟里就行這里需要提前將sd卡格式化一下,參考這篇鏈接:https://wiki.rvspace.org/en/Prod ... r_Quick_Start_Guide等把卡格式話完成之后,執(zhí)行這兩條指令:umount /dev/sdb3umount /dev/sdb1
然后再用這條指令將固件燒錄到卡里:
make HWBOARD=visionfive DISK=/dev/sdb format-nvdla-rootfs && sync
之后就是漫長的等待,我這邊是10分鐘以上吧,可以去沖杯咖啡先.
看到這樣的信息就代表燒錄成功了:
五.系統(tǒng)啟動(dòng)
系統(tǒng)成功燒錄到卡之后就可以上電了,等上電完成之后可以看到熟悉的輸入用戶名和密碼,這里輸入root回車然后starfive回車,順利的話就可以進(jìn)入系統(tǒng)了,完事的話可以執(zhí)行一些簡單的指令,證明系統(tǒng)是好的
有朋友問了,這個(gè)用戶名和密碼太長了想改怎么辦:用這條指令進(jìn)入buildroot的配置界面:
make buildroot_rootfs-menuconfig
找到如下地方,可以選擇把密碼去掉或者改簡單點(diǎn),比如我改成了123456,
六,重新編譯python,pip等
python其實(shí)系統(tǒng)中已經(jīng)帶了,默認(rèn)3.9.0,其實(shí)夠用,這里暫時(shí)不用改,需要在python的核心包里添加sqlite和xml等支持,
還是剛剛的menuconfig指令,在此界面配置即可,步驟截圖如下:
然后重新編譯python,重新編譯python的方式如下:
先進(jìn)入work下面的buildroot_rootfs目錄:
在目錄下面執(zhí)行 make python3-dirclean && make python3_rebuild,等待片刻后即可編譯成功
這里附上buildroot的文檔地址:http://buildroot.uclibc.org/downloads/manual/manual.html
這些都完成之后,可以添加pip指令,如下圖:
做完這些之后可以嘗試先編一個(gè)系統(tǒng)看看生效沒有:
回到sdk目錄,執(zhí)行以上那四條指令:
$ 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事實(shí)證明,只執(zhí)行rm -rf work/buildroot_rootfs/images/rootfs.ext*和make HWBOARD=xxx vpudriver-build-rootfs這兩條指令也夠
之后就是添加homeassistant系統(tǒng)了
七.homeassistant系統(tǒng)編譯
要編譯homeassistant首先要在package里面配置homeassistant的包,我們在這個(gè)文件夾下添加python-homeassistant這個(gè)文件夾,然后添加3個(gè)文件:
做完這些步驟之后又回到work下面的buildroot_rootfs目錄,執(zhí)行指令:make python-homeassistant-rebuild指令,等待編譯完成,編譯完成之后可以在target/usr/bin下面看到一個(gè)文件叫hass,到這里homeassistant就編譯完成了
八.編譯homeassistant的依賴
到上面的步驟你以為homeassistant編譯成功了嗎,太天真了,由于homeassistant是python寫的,
python有個(gè)最大的特點(diǎn)就是屬于動(dòng)態(tài)語言,很多包都是在運(yùn)行的時(shí)候加載的,
所以homeassistant運(yùn)行所需要的所有包都需要提前編譯好,
查看homeassistant的requirements文件,發(fā)
到這里就要解釋一下requiremtnets.txt文件了,我們到pypi網(wǎng)站上去找到homeassistant包,這里我選擇一個(gè)歷史版本,homeasssistant 2.21.8.8版本,
下載過來,打開壓縮包,可以看到一個(gè)文件叫做requiremtnets.txt,這里面記載了所有的依賴,
那么這么多的依賴要如何處理呢,有兩個(gè)方法,
方法一就是在buildroot下面有一個(gè)utils文件夾,里面有一個(gè)scanpypi的工具,使用這個(gè)工具可以很方便的集成一些包進(jìn)來,但是這個(gè)工具經(jīng)常會不好使,研究這個(gè)工具還專門花了好幾個(gè)小時(shí),最后發(fā)現(xiàn)機(jī)制有問題(最主要的是python依賴包的方式經(jīng)常不一樣)
方法二,這個(gè)方法比較簡單,但是很繁瑣,需要一個(gè)包一個(gè)包的處理,最后會在buildroot的packages目錄下生成一大堆的python-xxx包,具體的過程文字描述比較費(fèi)勁這里就不多講了,給大家看一下我的構(gòu)建history,
等把這些包全都弄完,快的話也得需要1天,這中間還會出現(xiàn)各種各樣的錯(cuò)誤,所以其中的辛酸曲折大家能體會了.
把這些都弄完之后又回到sdk的目錄下面指令構(gòu)建的那兩條指令,完事之后就燒到sd卡
九,啟動(dòng)homeassistant
如果一切順利的話,等系統(tǒng)啟動(dòng)成功之后,輸入hass指令,就能看到hass可以啟動(dòng)了,第一次啟動(dòng)會花費(fèi)不少時(shí)間,這是因?yàn)殡m然我們已經(jīng)構(gòu)建了很多包,但是都是大包,有很多小的包還是需要他在運(yùn)行的時(shí)候自己下載安裝,等這些都o(jì)k了之后,打開你的瀏覽器,輸入你的開發(fā)板ip后跟端口8123,比如我的開發(fā)板用網(wǎng)線連接,系統(tǒng)啟動(dòng)之后自動(dòng)獲得ip是:192.168.1.7,那我在瀏覽器輸入:192.168.1.7:8123,順利的話就能看到homeassistant的主界面了,這里截圖一下,
在瀏覽器里面設(shè)置你的用戶名,密碼等等,然后還有些其他的設(shè)置,就能進(jìn)到homeassistant了,到這里,homeassistant就做完了.
十.總結(jié)
編譯整個(gè)homeassistant的過程是痛苦的,期間有好幾次想放棄,因?yàn)閷?shí)在是太耽誤時(shí)間了,而且因?yàn)閷﹂_發(fā)板的編譯構(gòu)建方式不熟悉,僅tf卡燒錄這些步驟就花了很多時(shí)間,但就像有一句話說的,得不到的永遠(yuǎn)在騷動(dòng),從小的教育告訴我做事情不能輕言放棄,這么多年的工作經(jīng)歷告訴我,有時(shí)候成功就差再努力那么一下,再想到賽昉對我的信任(由于錯(cuò)過第一波的申請,到我申請的時(shí)候就剩3個(gè)名額了,但是依然申請到了),帶著這一份承諾和執(zhí)著,終于還是做成功了,結(jié)果不光是學(xué)到了技術(shù),感覺更是對自己心志的一次磨煉.再次感謝賽昉,感謝發(fā)燒友平臺.
一.前言
書接上文:fedara系統(tǒng)啟動(dòng)及homeassistant安裝體驗(yàn),這次終于把homeassistant跑起來的,這其中到底發(fā)生了些什么故事呢,且聽我慢慢道來.
二.環(huán)境準(zhǔn)備
上篇說了,跑homeassitant需要從頭編譯系統(tǒng),所以先搭建編譯環(huán)境吧,官方的git倉庫在這:https://github.com/starfive-tech/freelight-u-sdk,啥也不說了,先down下來,提一下,官方說推薦編譯環(huán)境是Ubuntu16.04或Ubuntu18.04,我這里用的是Ubuntu20.04,實(shí)際體驗(yàn)一點(diǎn)問題沒有,所以朋友們放心大膽的玩吧.
因?yàn)槔锩姘似渌麄}庫,所以必須加--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把這些完成咱們就可以到下一步了:三.系統(tǒng)配置和編譯把代碼下完之后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 ..
然后就可以啟動(dòng)編譯了:make HWBOARD=visionfive或者make visionfive
再次溫馨提示:這步操作完就可以掛機(jī)去睡覺了,等明兒再弄吧
如果沒有ERROR這樣的字樣就代表編譯成功了,有ERROR的話就去查錯(cuò)吧.
再再溫馨提示:請先預(yù)留20G+的磁盤空間
四,燒錄固件
我這里采用的是sd卡方式,readme里面有NFS方式,無奈水平太菜沒弄成功,把固件燒錄到sd卡之前還需要這么一個(gè)步驟:
$ 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指的是前面的板子類型,其實(shí)這里可以省略掉完成這些之后,先找一張sd卡,推薦至少16G,完事將卡用讀卡器接到電腦USB或者如果你電腦自帶tf卡插槽的話直接懟里就行這里需要提前將sd卡格式化一下,參考這篇鏈接:https://wiki.rvspace.org/en/Prod ... r_Quick_Start_Guide等把卡格式話完成之后,執(zhí)行這兩條指令:umount /dev/sdb3umount /dev/sdb1
然后再用這條指令將固件燒錄到卡里:
make HWBOARD=visionfive DISK=/dev/sdb format-nvdla-rootfs && sync
之后就是漫長的等待,我這邊是10分鐘以上吧,可以去沖杯咖啡先.
看到這樣的信息就代表燒錄成功了:
五.系統(tǒng)啟動(dòng)
系統(tǒng)成功燒錄到卡之后就可以上電了,等上電完成之后可以看到熟悉的輸入用戶名和密碼,這里輸入root回車然后starfive回車,順利的話就可以進(jìn)入系統(tǒng)了,完事的話可以執(zhí)行一些簡單的指令,證明系統(tǒng)是好的
有朋友問了,這個(gè)用戶名和密碼太長了想改怎么辦:用這條指令進(jìn)入buildroot的配置界面:
make buildroot_rootfs-menuconfig
找到如下地方,可以選擇把密碼去掉或者改簡單點(diǎn),比如我改成了123456,
六,重新編譯python,pip等
python其實(shí)系統(tǒng)中已經(jīng)帶了,默認(rèn)3.9.0,其實(shí)夠用,這里暫時(shí)不用改,需要在python的核心包里添加sqlite和xml等支持,
還是剛剛的menuconfig指令,在此界面配置即可,步驟截圖如下:
然后重新編譯python,重新編譯python的方式如下:
先進(jìn)入work下面的buildroot_rootfs目錄:
在目錄下面執(zhí)行 make python3-dirclean && make python3_rebuild,等待片刻后即可編譯成功
這里附上buildroot的文檔地址:http://buildroot.uclibc.org/downloads/manual/manual.html
這些都完成之后,可以添加pip指令,如下圖:
做完這些之后可以嘗試先編一個(gè)系統(tǒng)看看生效沒有:
回到sdk目錄,執(zhí)行以上那四條指令:
$ 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事實(shí)證明,只執(zhí)行rm -rf work/buildroot_rootfs/images/rootfs.ext*和make HWBOARD=xxx vpudriver-build-rootfs這兩條指令也夠
之后就是添加homeassistant系統(tǒng)了
七.homeassistant系統(tǒng)編譯
要編譯homeassistant首先要在package里面配置homeassistant的包,我們在這個(gè)文件夾下添加python-homeassistant這個(gè)文件夾,然后添加3個(gè)文件:
做完這些步驟之后又回到work下面的buildroot_rootfs目錄,執(zhí)行指令:make python-homeassistant-rebuild指令,等待編譯完成,編譯完成之后可以在target/usr/bin下面看到一個(gè)文件叫hass,到這里homeassistant就編譯完成了
八.編譯homeassistant的依賴
到上面的步驟你以為homeassistant編譯成功了嗎,太天真了,由于homeassistant是python寫的,
python有個(gè)最大的特點(diǎn)就是屬于動(dòng)態(tài)語言,很多包都是在運(yùn)行的時(shí)候加載的,
所以homeassistant運(yùn)行所需要的所有包都需要提前編譯好,
查看homeassistant的requirements文件,發(fā)
到這里就要解釋一下requiremtnets.txt文件了,我們到pypi網(wǎng)站上去找到homeassistant包,這里我選擇一個(gè)歷史版本,homeasssistant 2.21.8.8版本,
下載過來,打開壓縮包,可以看到一個(gè)文件叫做requiremtnets.txt,這里面記載了所有的依賴,
那么這么多的依賴要如何處理呢,有兩個(gè)方法,
方法一就是在buildroot下面有一個(gè)utils文件夾,里面有一個(gè)scanpypi的工具,使用這個(gè)工具可以很方便的集成一些包進(jìn)來,但是這個(gè)工具經(jīng)常會不好使,研究這個(gè)工具還專門花了好幾個(gè)小時(shí),最后發(fā)現(xiàn)機(jī)制有問題(最主要的是python依賴包的方式經(jīng)常不一樣)
方法二,這個(gè)方法比較簡單,但是很繁瑣,需要一個(gè)包一個(gè)包的處理,最后會在buildroot的packages目錄下生成一大堆的python-xxx包,具體的過程文字描述比較費(fèi)勁這里就不多講了,給大家看一下我的構(gòu)建history,
等把這些包全都弄完,快的話也得需要1天,這中間還會出現(xiàn)各種各樣的錯(cuò)誤,所以其中的辛酸曲折大家能體會了.
把這些都弄完之后又回到sdk的目錄下面指令構(gòu)建的那兩條指令,完事之后就燒到sd卡
九,啟動(dòng)homeassistant
如果一切順利的話,等系統(tǒng)啟動(dòng)成功之后,輸入hass指令,就能看到hass可以啟動(dòng)了,第一次啟動(dòng)會花費(fèi)不少時(shí)間,這是因?yàn)殡m然我們已經(jīng)構(gòu)建了很多包,但是都是大包,有很多小的包還是需要他在運(yùn)行的時(shí)候自己下載安裝,等這些都o(jì)k了之后,打開你的瀏覽器,輸入你的開發(fā)板ip后跟端口8123,比如我的開發(fā)板用網(wǎng)線連接,系統(tǒng)啟動(dòng)之后自動(dòng)獲得ip是:192.168.1.7,那我在瀏覽器輸入:192.168.1.7:8123,順利的話就能看到homeassistant的主界面了,這里截圖一下,
在瀏覽器里面設(shè)置你的用戶名,密碼等等,然后還有些其他的設(shè)置,就能進(jìn)到homeassistant了,到這里,homeassistant就做完了.
十.總結(jié)
編譯整個(gè)homeassistant的過程是痛苦的,期間有好幾次想放棄,因?yàn)閷?shí)在是太耽誤時(shí)間了,而且因?yàn)閷﹂_發(fā)板的編譯構(gòu)建方式不熟悉,僅tf卡燒錄這些步驟就花了很多時(shí)間,但就像有一句話說的,得不到的永遠(yuǎn)在騷動(dòng),從小的教育告訴我做事情不能輕言放棄,這么多年的工作經(jīng)歷告訴我,有時(shí)候成功就差再努力那么一下,再想到賽昉對我的信任(由于錯(cuò)過第一波的申請,到我申請的時(shí)候就剩3個(gè)名額了,但是依然申請到了),帶著這一份承諾和執(zhí)著,終于還是做成功了,結(jié)果不光是學(xué)到了技術(shù),感覺更是對自己心志的一次磨煉.再次感謝賽昉,感謝發(fā)燒友平臺.
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報(bào)投訴
-
RISC-V
+關(guān)注
關(guān)注
44文章
2216瀏覽量
45968 -
賽昉科技
+關(guān)注
關(guān)注
3文章
145瀏覽量
14246
發(fā)布評論請先 登錄
相關(guān)推薦
Ubuntu現(xiàn)已適配RISC-V單板計(jì)算機(jī)Milk-V Mars
近期,Canonical宣布優(yōu)化的Ubuntu24.04鏡像已可用于RISC-V單板計(jì)算機(jī)Milk-VMars。Milk-VMars由深圳市群芯閃耀科技有限公司(Milk-V)設(shè)計(jì)并推出,搭載
信用卡大小的 RISC-V 單板計(jì)算機(jī)介紹
信用卡大小的 RISC-V 單板計(jì)算機(jī) —— Mars
Mars 由深圳市群芯閃耀科技有限公司(Milk-V)設(shè)計(jì)并推出,搭載賽昉科技
發(fā)表于 04-12 16:39
賽昉科技VisionFive 2生態(tài)進(jìn)展雙周報(bào)(2.1-2.29)
Image for VisionFive 2)
社區(qū)開發(fā)者發(fā)布4篇【昉·星光 2高性能RISC-V單板計(jì)算機(jī)體驗(yàn)】系列文章,內(nèi)容包括:為Ubuntu安裝Docker及常用軟件;以容器
發(fā)表于 02-29 15:45
RISC-V智能化網(wǎng)絡(luò)解決方案|賽昉科技昉·星光 2成功運(yùn)行OpenWrt
。近期,賽昉科技在昉·星光2(VisionFive2)RISC-V單板計(jì)算機(jī)上成功運(yùn)行OpenW
【昉·星光 2 高性能RISC-V單板計(jì)算機(jī)體驗(yàn)】以容器的方式安裝 HomeAssistant
【昉·星光 2 高性能RISC-V單板計(jì)算機(jī)體驗(yàn)】以容器的方式安裝 HomeAssistant
下載并啟動(dòng)容器
HomeAssisatant
發(fā)表于 02-21 18:07
【昉·星光 2 高性能RISC-V單板計(jì)算機(jī)體驗(yàn)】為 Ubuntu 安裝 Docker 及常用軟件
【昉·星光 2 高性能RISC-V單板計(jì)算機(jī)體驗(yàn)】為 Ubuntu 安裝 Docker 及常用軟件
目的
為了更好的利用星光2,決定使用容器
發(fā)表于 02-21 17:54
【昉·星光 2 高性能RISC-V單板計(jì)算機(jī)體驗(yàn)】VisionFive2開箱+安裝Ubuntu
【昉·星光 2 高性能RISC-V單板計(jì)算機(jī)體驗(yàn)】VisionFive2開箱+安裝Ubuntu
前言
很感謝賽
發(fā)表于 02-21 17:49
昉·星光2 RISC-V單板計(jì)算機(jī)體驗(yàn)(三) - SSH連接
昉·星光2 RISC-V單板計(jì)算機(jī)體驗(yàn)(三) - SSH連接 一、官方資料 RISC-V官網(wǎng):
昉·星光2 RISC-V單板計(jì)算機(jī)體驗(yàn)(二) - 系統(tǒng)環(huán)境
昉·星光2 RISC-V單板計(jì)算機(jī)體驗(yàn)(二) - 系統(tǒng)環(huán)境 一、官方資料 RISC-V官網(wǎng): [
【昉·星光 2 高性能RISC-V單板計(jì)算機(jī)試用體驗(yàn)】開箱及裝載Debian系統(tǒng)
上周收到了昉·星光 2高性能RISC-V單板計(jì)算機(jī)開發(fā)板,在此非常感謝賽昉科技提供的
發(fā)表于 01-24 00:32
256核!賽昉發(fā)布全新RISC-V眾核子系統(tǒng)IP平臺
11月23日,中國RISC-V軟硬件生態(tài)領(lǐng)導(dǎo)者賽昉科技正式發(fā)布自主研發(fā)的片上一致性互聯(lián)IP——昉·星鏈-700(StarLink-700),
發(fā)表于 11-29 13:37
賽昉科技重磅亮相RISC-V Summit 2023
近日,賽昉科技重磅亮相RISC-VSummit2023(2023年RISC-V北美峰會),并連續(xù)三年發(fā)表主題演講,展現(xiàn)賽
【昉·星光 2 高性能RISC-V單板計(jì)算機(jī)體驗(yàn)】在昉·星光2上安裝配置新編譯的OpenWRT
本文是《【昉·星光 2 高性能RISC-V單板計(jì)算機(jī)體驗(yàn)】在昉·星光2上編譯OpenWRT》的下
發(fā)表于 11-18 11:22
評論