30块钱的树莓派跑unix系统,源码全部开源,香
来自公众号:嵌入式Linux
▌ 1、前言
树莓派最新推出的单片机Pico,这是一款便捷灵活、方便上手的开源电子原型平台,许多大佬都玩得飞起来了,手痒自己玩了下,觉得这个东西确实很香,比一般的Linux开发板都好。
这个开发板可以玩很多东西
1 、运行pico-sdk
2、玩micropython
3、跑这个Fuzix系统
我这个文章只说Fuzix系统相关的,因为这个系统很小,喜欢的同学都可以自尝试学习。
▌ 2、硬件准备
一个树莓派pico 开发板 一个micro usb 线,用来给树莓派供电的,如果跑mcropython的话,还可以用来作为调试串口。 一根usb线,跑Fuzix的时候,作为系统的登录终端。
▌ 3、软件准备
一个可以编译的ubuntu系统,可以装在vm上
▌3.1、SDK代码下载
▌3.1.1 pico-sdk下载
git clone git@github.com:raspberrypi/pico-sdk.git
▌3.1.2 tinyusb源码下载
下载这个之后,还需要下载tinyusb源代码,这个源代码默认在pico-sdk源码中,只不过上面的命令不能触发tinyusb 的源码下载。
tinyusb源代码:
git submodule update --init --recursive lib/tinyusb
上面的命令会比较慢,可以单独下载这个源码库,使用下面的命令:
git clone git@github.com:raspberrypi/tinyusb.git
▌3.1.2 Fuzix源码下载
git clone https://github.com/davidgiven/FUZIX.git
▌3.2、编译工具准备
▌3.2.1、cmake 安装
因为对cmake版本有要求,不能使用sudo apt install cmake
安装。、
从网站
http://distfiles.macports.org/cmake/
下载一个 3.13
的版本,然后传到ubuntu系统上,解压
$ tar -zxvf cmake-3.12.4.tar.gz$ cd cmake-3.12.4$ ./configure$ make$ sudo make install
▌3.2.2、gcc-arm-none-eabi安装
sudo apt-get install gcc-arm-none-eabi
▌3.3.3、其他需要的工具安装
sudo apt-get update -qsudo apt-get install -y byaccsudo apt-get install -y byacc automake # FUZIX build depssudo apt-get install -y lwtools gcc6809sudo apt-get install -y sdccsudo apt-get install -y cc65sudo apt-get install -y m68k-uclinux-binutils m68k-uclinux-elf2flt m68k-uclinux-gcc
▌4、编译
先切换到树莓派分支
git checkout rpipico
编译之前,需要修改Makefile
diff --git a/Kernel/platform-rpipico/Makefile b/Kernel/platform-rpipico/Makefileindex 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
目录中去执行命令
make world -j
./update-flash.sh
如果编译顺利,就会看到下面相关的文件
▌5、烧录
树莓派的烧录我觉得体验很好,如果再能加上一个复位
按键就能更加完美了。
按下BOOTSET
键开机,然后就会弹出一个盘符,往盘符里面放入我刚才说的那两个文件,设备会自动重启,这时候就完成烧录了。
▌6、系统体验
链接串口,链接串口可以有很多种方式,我用的是MobaXterm
工具。波特率是 115200
。
开机日志:
FUZIX version 0.4pre1Copyright (c) 1988-2002 by H.F.Bower, D.Braun, S.Nitschke, H.PerazaCopyright (c) 1997-2001 by Arcady Schekochikhin, Adriano C. R. da CunhaCopyright (c) 2013-2015 Will Sowerbutts <will@sowerbutts.com>Copyright (c) 2014-2020 Alan Cox <alan@etchedpixels.co.uk>Devboot264kB 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 foundMounting root fs (root_dev=0, ro): warning: mounting dirty file system, forcing r/o.OKStarting /initinit version 0.9.0ac#1Cannot open fileCurrent date is Thu 2021-03-11Enter new date:
开机后需要你填写当时时间,才会继续下一步
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.#
显示当前时间:
# date
Thu Mar 11 15:07:15 GMT 2021
#
小🐏说话:
# cd usr# lsgameslibman# cd games# lsadventcowsaylib# ./cowsay Fuzix _______< Fuzix > ------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || ||#
在 /bin 下面还有很多其他命令。
▌7、其他
还可以加一个SDCARD文件系统,具体实现可以看这篇文章
https://shumeipai.nxez.com/2021/03/03/how-to-get-started-with-fuzix-on-raspberry-pi-pico.html