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)解析實現。
配置
執行下面三條語句
命令qemu-system-riscv64 --version能正確顯示安裝的QEMU版本則表示安裝成功。
如果出問題可以卸載
源碼編譯安裝的qemu需要手動卸載:
可執行文件默認放在/usr/local/bin
庫文件默認存放在/usr/local/libexec
配置文件默認存放在/usr/local/etc
共享文件默認存放在/usr/local/share
在刪除解壓包即可
運行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学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 签约啦
- 下一篇: 缺氧游戏 游戏泉修改_自己用的