最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Zeal8bit操作系統(tǒng)Build & Run In Emulator (基于macOS)

2023-06-24 21:54 作者:timfang1990  | 我要投稿

0. 前言

基于macOS?build Zeal8bit操作系統(tǒng) OS,并在Web Emulator上成功運(yùn)行,依然踩了不少坑,給想動(dòng)手嘗試一下的同學(xué)們分享下~?

書接上文:Zeal8bit操作系統(tǒng)Build & Run In Emulator (基于Ubuntu)

沒想到這么快就來(lái)填坑了~

為什么已經(jīng)在Ubuntu上成功build了Zeal8bit OS了還需要在macOS上再重復(fù)一遍呢?因?yàn)槭诸^有一臺(tái)MacBook作為個(gè)人學(xué)習(xí)的主力平臺(tái),Z80的各種資料都準(zhǔn)備好了,不在macOS上把build flow建立起來(lái)說(shuō)不過(guò)去吧?

Build flow已經(jīng)成功在macOS跑通了,還是踩了不少坑。相比于Ubuntu上主要的坑集中在build z88dk-z80asm的bin文件上,在macOS的坑集中shell命令和Ubuntu的差異上。由于Zeal8bit大佬的Makefile是在Linux上構(gòu)建和使用的,也許他壓根沒有想到會(huì)有人把這個(gè)flow運(yùn)行在macOS上。

話不多說(shuō),開始咱們今天的build細(xì)節(jié)分享~

1. 環(huán)境及所需工具

  • macOS (本機(jī)版本:Monterery 版本12.6.6);

  • Python 3及PIP3 Mac版

  • z88dk-osx-2.2.zip

2. 工具安裝

Python3及pip3安裝

MacOS下安裝python3和pip3的教程比較普遍,我這邊也不再贅述。安裝成功后,在terminal中用which命令展示的效果:

Python3及pip3安裝后的效果

z88dk-asm安裝

從https://kgithub.com//z88dk/z88dk/releases目錄下載z88dk-osx-2.2.zip壓縮包:

z88dk-osx-2.2.zip壓縮包下載選擇

需要注意的是,macOS默認(rèn)會(huì)阻止不受信任的軟件來(lái)源下載導(dǎo)致下載失敗。因此下載前先修改下系統(tǒng)設(shè)置,讓macOS能夠接受來(lái)自非App Store的軟件下載,做法如下:

首先在terminal中輸入:sudo spctl --master-disable,輸入密碼點(diǎn)擊Enter確認(rèn)即可;

輸入terminal命令放寬軟件下載管制

然后打開“系統(tǒng)偏好設(shè)置”,在彈出的界面上點(diǎn)擊“安全性和隱私”,接著點(diǎn)擊左下角的鎖解鎖后,就可以在本界面的“允許從以下位置下載的App”中選擇“任何來(lái)源”了。

系統(tǒng)偏好設(shè)置允許任何來(lái)源軟件下載

這樣設(shè)置以后,系統(tǒng)就不會(huì)阻止不受信任的軟件下載了。

我這邊就默認(rèn)放在Download目錄下了, 使用unzip命令解壓壓縮包即可獲得z88dk-z80asm的bin文件了,無(wú)需自己build(隔壁Ubuntu默默留下嫉妒的淚水,并點(diǎn)了個(gè)贊)

解壓即得z88dk-z80asm的bin文件

同時(shí)記得在z88dk目錄下修改一下set_environment.sh的內(nèi)容如下,防止z88dk/bin的目錄重復(fù)設(shè)置到$PATH中:

防止重復(fù)設(shè)置$PATH

最后source set_environment.sh把z88dk-z80asm編譯工具的路徑添加到系統(tǒng)變量$PATH中,方便后面的步驟直接使用z88dk-z80asm命令。

添加系統(tǒng)path變量

3. Image Build

老規(guī)矩,先從github上把OS代碼先clone下來(lái):git clone?https://kgithub.com/Zeal8bit/Zeal-8-bit-OS.git,獲得Zeal-8-bit-OS目錄,進(jìn)入該目錄下。

Step 1. 下載安裝menuconfig及Makefile預(yù)處理

根據(jù)之前在Ubuntu下的操作經(jīng)驗(yàn),先用pip3 install kconfiglib,然后找到menuconfig文件的目錄,比如我的menuconfig目錄就在python3的bin目錄下:

安裝menuconfig

如果像我一樣在Python3 user base目錄下沒有安裝menuconfig的話,那就這樣修改Makefile目錄下的menuconfig target下的內(nèi)容:

修改Makefile能夠正確配置menuconfig

根據(jù)已知的Makefile執(zhí)行在macOS和Linux上的差異(實(shí)際是踩坑加測(cè)試總結(jié)出來(lái)的),在macOS下的Makefile中,define后面不能接“=”,否則define不生效。因此需要把Makefile中任何define行中的“=”去除掉(Makefile中有3處,記得都去除下),如下圖所示:

刪除define行中的“=”

Step 2. Execute ‘make menuconfig’

如Zeal8bit大佬視頻中所說(shuō),直接默認(rèn)參數(shù)保存即可。命令執(zhí)行完成后,確保include目錄下生成了osconfig.asm.

make menuconfig

Step 3. Execute?'make'

執(zhí)行make命令,不出意外,你會(huì)遇到如下錯(cuò)誤:

Build Error 1:build/build/init_TEXT.bin: No such file or directory

在Ubuntu上build就遇到的老問(wèn)題了,小case,將target/zeal8bit/romdisk/Makefile的第25行和第29行修改成如下的內(nèi)容:

解決init_TEXT.bin文件找不到問(wèn)題

Pass,下一個(gè)~

Build Error 2:stat: illegal option -- c

macOS上遇到的新問(wèn)題,上網(wǎng)搜索下,發(fā)現(xiàn)macOS并不支持stat -c命令。

首先解釋下stat -c命令的含義:'stat -c [-option] file_name' 可以指定格式輸出file的某些狀態(tài)信息,比如本Makefile中使用的 'stat -c %s target//zeal8bit//romdisk/disk.img'就是以字節(jié)數(shù)獲取disk.img的文件大小。

顯然,macOS并不支持stat -c命令:

macOS并不支持stat -c命令

既然知道錯(cuò)誤原因以及這個(gè)命令的目的就是獲取文件的占用字節(jié)數(shù),而且macOS看起來(lái)是支持stat -x選項(xiàng)的,那我們就可以用其他命令平替。

修改target/zeal8bit/unit.mk的第30行為:

修改SIZE獲取命令以適配macOS

Build Error 3:du: invalid option -- b

繼續(xù)執(zhí)行make,發(fā)現(xiàn)在執(zhí)行到“post commands”的時(shí)候還有錯(cuò)。仔細(xì)看target/zeal8bit/unit.mk的POSTCMD我們可以發(fā)現(xiàn),這邊使用了du -b選項(xiàng)用來(lái)以字節(jié)數(shù)方式獲取文件大小,而du -b選項(xiàng)在macOS中還是不支持:

du -b在macOS中不支持

不過(guò)仔細(xì)看POSTCMD,我們發(fā)現(xiàn)使用du命令只是為了打印文件大小信息,并沒有其他用途,因此我們用-h或者-k選項(xiàng)大概表示一下文件大小就行了,修改target/zeal8bit/unit.mk第42, 44和48行,把-b選項(xiàng)修改為-h:


修改du的-b選項(xiàng)為-h

再次執(zhí)行make,大功告成~

build成功后生成的文件

4. Run OS in Web Emulator

按照上篇文章中運(yùn)行OS img的步驟,加載os_with_romdisk.img后運(yùn)行結(jié)果:

Zeal8bit OS在Web Emulator上運(yùn)行成功


5. 總結(jié)

在macOS上把build flow又試了一遍,遇到新坑,填新坑。

只有在不斷地折騰中,才能讓自己的知識(shí)不斷豐富起來(lái)。

好了,從現(xiàn)在開始正式嘗試學(xué)習(xí)Zeal8bit OS的代碼了,等哪一天我把OS在我的RISC-V上運(yùn)行起來(lái)了,興許可以發(fā)個(gè)視頻~


Zeal8bit操作系統(tǒng)Build & Run In Emulator (基于macOS)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
金溪县| 郸城县| 泉州市| 青田县| 抚顺市| 溧阳市| 高淳县| 元朗区| 库车县| 清涧县| 仪陇县| 南平市| 华容县| 道孚县| 民县| 仙游县| 泰州市| 青冈县| 金平| 大城县| 宜阳县| 敦煌市| 遵化市| 辽源市| 银川市| 兴隆县| 中超| 阳高县| 龙陵县| 分宜县| 龙江县| 固镇县| 金秀| 历史| 平潭县| 广州市| 奇台县| 博客| 益阳市| 河南省| 深圳市|