30塊錢的樹莓派跑Unix系統(tǒng),源碼全部開源,香
之前活動(dòng)抽獎(jiǎng)獲得的幾個(gè)樹莓派,手癢自己玩了下,覺得這個(gè)東西確實(shí)很香,比一般的Linux開發(fā)板都好。
PICO
這個(gè)開發(fā)板可以玩很多東西
1 、運(yùn)行pico-sdk
2、玩micropython
3、跑這個(gè)Fuzix系統(tǒng)
我這個(gè)文章只說(shuō)Fuzix系統(tǒng)相關(guān)的,因?yàn)檫@個(gè)系統(tǒng)很小,喜歡的同學(xué)都可以自嘗試學(xué)習(xí)。
1、硬件準(zhǔn)備
- 一個(gè)樹莓派pico 開發(fā)板
- 一個(gè)micro usb 線,用來(lái)給樹莓派供電的,如果跑mcropython的話,還可以用來(lái)作為調(diào)試串口。
- 一根usb線,跑Fuzix的時(shí)候,作為系統(tǒng)的登錄終端。
2、軟件準(zhǔn)備
一個(gè)可以編譯的ubuntu系統(tǒng),可以裝在vm上
3.1、SDK代碼下載
3.1.1 pico-sdk下載
- git clone git@github.com:raspberrypi/pico-sdk.git
2.1.2 tinyusb源碼下載
下載這個(gè)之后,還需要下載tinyusb源代碼,這個(gè)源代碼默認(rèn)在pico-sdk源碼中,只不過(guò)上面的命令不能觸發(fā)tinyusb 的源碼下載。
tinyusb源代碼:
- git submodule update --init --recursive lib/tinyusb
上面的命令會(huì)比較慢,可以單獨(dú)下載這個(gè)源碼庫(kù),使用下面的命令:
- git clone git@github.com:raspberrypi/tinyusb.git
2.1.2 Fuzix源碼下載
- git clone https://github.com/davidgiven/FUZIX.git
2.2、編譯工具準(zhǔn)備
2.2.1、cmake 安裝
因?yàn)閷?duì)cmake版本有要求,不能使用sudo apt install cmake 安裝。、
從網(wǎng)站
- http://distfiles.macports.org/cmake/
下載一個(gè) 3.13 的版本,然后傳到ubuntu系統(tǒng)上,解壓
- $ tar -zxvf cmake-3.12.4.tar.gz
- $ cd cmake-3.12.4
- $ ./configure
- $ make
- $ sudo make install
2.2.2、gcc-arm-none-eabi安裝
- sudo apt-get install gcc-arm-none-eabi
2.3.3、其他需要的工具安裝
- sudo apt-get update -q
- sudo apt-get install -y byacc
- sudo apt-get install -y byacc automake # FUZIX build deps
- sudo apt-get install -y lwtools gcc6809
- sudo apt-get install -y sdcc
- sudo apt-get install -y cc65
- sudo apt-get install -y m68k-uclinux-binutils m68k-uclinux-elf2flt m68k-uclinux-gcc
3、編譯
先切換到樹莓派分支
- git checkout rpipico
編譯之前,需要修改Makefile
- diff --git a/Kernel/platform-rpipico/Makefile b/Kernel/platform-rpipico/Makefile
- index 0d5e8a19..8c238770 100644
- --- a/Kernel/platform-rpipico/Makefile
- +++ b/Kernel/platform-rpipico/Makefile
- @@ -1,4 +1,4 @@
- -export PICO_SDK_PATH = /home/dg/src/pico/pico-sdk
- +export PICO_SDK_PATH = /home/book/pico-sdk/
- build/fuzix.elf: ../version.c build/Makefile
- $(MAKE) -C build
然后到 Kernel/platform-rpipico目錄中去執(zhí)行命令
- make world -j
- ./update-flash.sh
如果編譯順利,就會(huì)看到下面相關(guān)的文件
4、燒錄
樹莓派的燒錄我覺得體驗(yàn)很好,如果再能加上一個(gè)復(fù)位按鍵就能更加完美了。
按下BOOTSET鍵開機(jī),然后就會(huì)彈出一個(gè)盤符,往盤符里面放入我剛才說(shuō)的那兩個(gè)文件,設(shè)備會(huì)自動(dòng)重啟,這時(shí)候就完成燒錄了。
5、系統(tǒng)體驗(yàn)
鏈接串口,鏈接串口可以有很多種方式,我用的是MobaXterm工具。波特率是 115200。
開機(jī)日志:
- FUZIX version 0.4pre1
- Copyright (c) 1988-2002 by H.F.Bower, D.Braun, S.Nitschke, H.Peraza
- Copyright (c) 1997-2001 by Arcady Schekochikhin, Adriano C. R. da Cunha
- Copyright (c) 2013-2015 Will Sowerbutts <will@sowerbutts.com>
- Copyright (c) 2014-2020 Alan Cox <alan@etchedpixels.co.uk>
- Devboot
- 264kB total RAM, 160kB available to processes (15 processes max)
- Enabling interrupts ... ok.
- NAND flash, 1952kB physical 1296kB logical at 0x13018000: hda:
- SD drive 0: no card found
- Mounting root fs (root_dev=0, ro): warning: mounting dirty file system, forcing r/o.
- OK
- Starting /init
- init version 0.9.0ac#1
- Cannot open file
- Current date is Thu 2021-03-11
- Enter new date:
開機(jī)后需要你填寫當(dāng)時(shí)時(shí)間,才會(huì)繼續(xù)下一步
- Starting /init
- init version 0.9.0ac#1
- Cannot open file
- Current date is Thu 2021-03-11
- Enter new date: 2021-03-11
- Current time is 11:34:54
- Enter new time: 15:05:00
- ^ ^
- n n Fuzix 0.3.1
- >@<
- Welcome to Fuzix
- m m
- login:
然后填寫用戶名,用戶名是 root,密碼為空
- login: root
- Welcome to FUZIX.
- #
顯示當(dāng)前時(shí)間:
- # date
- Thu Mar 11 15:07:15 GMT 2021
- #
小說(shuō)話:
- # cd usr
- # ls
- games
- lib
- man
- # cd games
- # ls
- advent
- cowsay
- lib
- # ./cowsay Fuzix
- _______
- < Fuzix >
- -------
- \ ^__^
- \ (oo)\_______
- (__)\ )\/\
- ||----w |
- || ||
- #
在 /bin 下面還有很多其他命令。
6、其他
還可以加一個(gè)SDCARD文件系統(tǒng),具體實(shí)現(xiàn)可以看這篇文章
- https://shumeipai.nxez.com/2021/03/03/how-to-get-started-with-fuzix-on-raspberry