日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

openEuler-risc-v学习笔记

發布時間:2024/1/8 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 openEuler-risc-v学习笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

openEuler-risc-v學習筆記

QEMU安裝

參考
https://gitee.com/zxs-un/openEuler-port2riscv64/blob/master/doc/vm-host-no-root-on-ubuntu.md
qemu下載鏈接
https://www.qemu.org/download/

wget https://download.qemu.org/qemu-5.0.0.tar.xz
tar xvJf qemu-5.0.0.tar.xz
cd qemu-5.0.0
./qemu-5.0.0/configure --target-list=riscv64-softmmu,riscv64-linux-user --prefix=/home/username/path
make
make install

注意–prefix=/home/username/path中的username應當被$(whoami)解析實現。
配置
執行下面三條語句

echo 'export PATH=/home/$(whoami)/path/bin:$PATH' >> ~/.bashrc source ~/.bashrc qemu-system-riscv64 --version

命令qemu-system-riscv64 --version能正確顯示安裝的QEMU版本則表示安裝成功。
如果出問題可以卸載
源碼編譯安裝的qemu需要手動卸載:
可執行文件默認放在/usr/local/bin
庫文件默認存放在/usr/local/libexec
配置文件默認存放在/usr/local/etc
共享文件默認存放在/usr/local/share

# rm -rf /usr/local/bin/qemu-* # rm -rf /usr/local/libexec/qemu-bridge-helper # rm -rf /usr/local/etc/qemu # rm -rf /usr/local/share/qemu

在刪除解壓包即可

運行openEuler RISC-V

下載

https://gitee.com/link?target=https%3A%2F%2Frepo.openeuler.org%2FopenEuler-preview%2FRISC-V%2FImage
在此鏈接下下載這兩個文件,如果需要使用docker,第一個文件下載以docker結尾的
fw_payload_oe.elf
openEuler-preview.riscv64.qcow2
在有這兩個文件的文件夾下執行啟動腳本

啟動

qemu-system-riscv64 \-nographic -machine virt \-smp 8 -m 2G \-kernel fw_payload_oe.elf \-drive file=openEuler-preview.riscv64.qcow2,format=qcow2,id=hd0 \-object rng-random,filename=/dev/urandom,id=rng0 \-device virtio-rng-device,rng=rng0 \-device virtio-blk-device,drive=hd0 \-device virtio-net-device,netdev=usernet \-netdev user,id=usernet,hostfwd=tcp::12055-:22 \-append 'root=/dev/vda1 rw console=ttyS0 systemd.default_timeout_start_sec=600 selinux=0 highres=off mem=4096M earlycon'

啟動命令可做成Shell腳本,其中fw_payload_oe.elf與openEuler-preview.riscv64.qcow2需修改為實際下載的文件名, 并注意相對和絕對路徑,如做成啟動腳本則可與腳本放在同一目錄下。 為ssh轉發的12055端口也可改為自己需要的端口號。

配置

密碼

root 默認密碼為 openEuler12#$

為 root 設置密碼
passwd root
Password:
Retype:

用戶

添加用戶euler并設置密碼

adduser -d /home/euler -s /bin/bash euler
passwd euler
Password:
Retype:

su 是 Switch User 的命令,用于切換用戶。

從用戶root切換到用戶euler執行 su euler,連環境變量一并切換到euler的主目錄則執行 su - euler

從用戶euler切換到用戶root執行 su ,連環境變量一并切換到root的主目錄則執行 su -

時間

chrony在oE上暫時不可用,使用timesyncd:

echo “NTP=ntp.aliyun.com” >> /etc/systemd/timesyncd.conf
systemctl restart systemd-timesyncd.service

查看timesyncd運行狀態:

systemctl status systemd-timesyncd.service

如果正確則crtl+c退出

亦可手動設置當前正確的時間,以下時間僅供參考,按實際時間替換
date -s “2020-07-15 23:00:01”
date命令可查看當前系統時間。
作為測試,此時執行 yum update 應當成功。

時間務必正確設置,錯誤的時間會影響諸如https的TLS認證等過程。
配置DNS

/etc/resolv.conf
nameserver 119.29.29.29

配置軟件包源

位于 /etc/yum.repos.d/ 下
vim /etc/yum.repos.d/
增加
[base]
name=base
baseurl=https://isrc.iscas.ac.cn/mirror/openeuler-sig-riscv/oe-RISCV-repo/
enabled=1
gpgcheck=0

[everything]
name=everything
baseurl=https://repo.openeuler.org/openEuler-preview/RISC-V/everything/
enabled=1
gpgcheck=0

按需安裝軟件包
yum update
yum install osc sudo
執行dnf或yum需要root用戶權限

sudo 添加用戶
首先利用whereis 命令查找sudoers配置文件的目錄(默認會在/etc/sudoers)
[root@localhost xiaofei]# whereis sudoers
sudoers: /etc/sudoers /etc/sudoers.bak /usr/share/man/man5/sudoers.5.gz
然后需要切換到root用戶,更改/etc/sudoers的權限
[root@localhost xiaofei]# chmod u+w /etc/sudoers
然后就可以利用vi編輯器來把用戶添加到sudoers之中
[root@localhost xiaofei]# vi /etc/sudoers
然后找到root ALL=(ALL) ALL所在的位置,把所要添加的用戶添加到文件之中,保存退出即可

osc命令工具的安裝與~/.oscrc配置文件

安裝osc

osc 命令工具
通過yum或dnf安裝osc命令工具

sudo yum install osc
缺什么安什么

~/.oscrc配置文件

須在欲使用的OBS上注冊賬號,如https://gitee.com/link?target=https%3A%2F%2Fbuild.openeuler.org

[general]
apiurl = https://build.openeuler.org/
no_verify = 1 # 未配置證書情況下不驗證

[https://build.openeuler.org/]
user=username # 用戶名
pass=password # 明文密碼
trusted_prj=openEuler:selfbuild:function # 此項目為openEuler:Mailine:RISC-V項目的依賴庫

使用 osc build 直接構建 OBS 服務端的內容

執行osc命令的用戶應當為擁有sudo權限但非root的普通用戶。
#切換到某個工作目錄下開始本地構建的操作 cd ~/devel #選定某個項目中需要進行本地的某個包(此處為openEuler:Mainline:RISC-V項目的xz包) osc co openEuler:Mainline:RISC-V/xz#切換到該包的目錄 cd openEuler:Mainline:RISC-V/xz#openEuler的OBS在線服務器根據_service文件中的描述從gitee下載需要的源碼包、補丁和spec文件等,將它們下載到本地 osc up -S#重命名由service下載的文件,使其能被本地 osc build 正確識別 rm -f _service;for file in `ls | grep -v .osc`;do new_file=${file##*:};mv $file $new_file;done#開始進行本地構建 osc build#構建目標倉會自動選擇,一般為standard倉 #若存在多個目標倉,可指定倉名 osc build BaseOS#輸入sudo密碼 Password:#可能需要交互選擇信任網站證書或添加信任依賴倉 #網站證書信任問題可能是系統時間導致的,用`date -s`設置正確的時間#構建成功會顯示產物位置,失敗則會顯示錯誤信息。

對既有項目進行分支修改并本地構建測試

#對不屬于自己的在線公開既有項目的包,分支到自己的工在線程,此處為 zlib osc branch openEuler:Mainline:RISC-V /zlib#切換到某個工作目錄下開始本地構建操作 cd ~/devel #切換下載分支后的包 osc co home:usename:branches:openEuler:Mainline:RISC-V/zlib#切換到該包的目錄 cd home:usename:branches:openEuler:Mainline:RISC-V/zlib#目錄中應只有一個_service文件,描述了從gitee下載的文件 #可fork對應的gitee項目,并在gitee中進行代碼修改 #同時在OBS的WebUI中編輯_service文件,主要修改gitee倉路徑和revision號#亦可在本地編輯_service文件,編輯后提交到OBS服務器 osc ci -m "commit log"#對_service文件修改完成后,將所有內容下載到本地 osc up -S#然后重命名由service下載的文件

實操上手

使用 osc build 直接構建 OBS 服務端的內容

執行osc命令的用戶應當為擁有sudo權限但非root的普通用戶。
#切換到某個工作目錄下開始本地構建的操作 cd ~/devel #選定某個項目中需要進行本地的某個包(此處為openEuler:Mainline:RISC-V項目的xz包) osc co openEuler:Mainline:RISC-V/xz#切換到該包的目錄 cd openEuler:Mainline:RISC-V/xz#openEuler的OBS在線服務器根據_service文件中的描述從gitee下載需要的源碼包、補丁和spec文件等,將它們下載到本地 osc up -S#重命名由service下載的文件,使其能被本地 osc build 正確識別 rm -f _service;for file in `ls | grep -v .osc`;do new_file=${file##*:};mv $file $new_file;done#開始進行本地構建 osc build#構建目標倉會自動選擇,一般為standard倉 #若存在多個目標倉,可指定倉名 osc build BaseOS#輸入sudo密碼 Password:#可能需要交互選擇信任網站證書或添加信任依賴倉 #網站證書信任問題可能是系統時間導致的,用`date -s`設置正確的時間#構建成功會顯示產物位置,失敗則會顯示錯誤信息。

對既有項目進行分支修改并本地構建測試

#對不屬于自己的在線公開既有項目的包,分支到自己的工在線程,此處為 zlib osc branch openEuler:Mainline:RISC-V zlib#切換到某個工作目錄下開始本地構建操作 cd ~/devel #切換下載分支后的包 osc co home:usename:branches:openEuler:Mainline:RISC-V/zlib#切換到該包的目錄 cd home:usename:branches:openEuler:Mainline:RISC-V/zlib#目錄中應只有一個_service文件,描述了從gitee下載的文件 #可fork對應的gitee項目,并在gitee中進行代碼修改 #同時在OBS的WebUI中編輯_service文件,主要修改gitee倉路徑和revision號#亦可在本地編輯_service文件,編輯后提交到OBS服務器 osc ci -m "commit log"#對_service文件修改完成后,將所有內容下載到本地 osc up -S#然后重命名由service下載的文件

后續操作與使用 osc build 直接構建 OBS 服務端的內容相同

開發流程

在騰訊文檔查看沒人認領的package,然后在此處搜索查看package構建狀態
https://build.openeuler.org/project/show/openEuler:Mainline
如果是successful則換一個package,否則開展修復
在這個gitee倉庫查看,是否存在需要的package
https://gitee.com/openeuler/RISC-V
如果沒有,進入configuration修改riscv_fork_list.yaml里的內容,按照格式與排序增加需要修復package的name。進行pr,幾分鐘后,再次搜索,倉庫會出現該package,將需要修復的package進行fork到自己倉庫,即可按照上述流程,在osc開展修復

總結

以上是生活随笔為你收集整理的openEuler-risc-v学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。