我目前使用的 x86 linux 是 debian 9 amd64,所以以下內容將以此為基準,使用 debian based 的發行套件應該都能直接套用,其他發行套件可能要做些修改。
安裝 cross tools
編譯環境不該使用 root,所以請用一般 user 登入,把 toolchain 放在 home
aimwang@debian:~$ mkdir rpi
aimwang$debian:~$ cd rpi
aimwang@debian:~/rpi$ git clone https://github.com/raspberrypi/tools.git
aimwang$debian:~$ cd rpi
aimwang@debian:~/rpi$ git clone https://github.com/raspberrypi/tools.git
安裝並設定 nfs server
aimwang@debian:~$ sudo apt-get install nfs-kernel-server nfs-common
aimwang@debian:~$ sudo mkdir /srv/nfs
aimwang@debian:~$ sudo chmod 777 /srv/nfs
aimwang@debian:~$ sudo mkdir /srv/nfs
aimwang@debian:~$ sudo chmod 777 /srv/nfs
/etc/exports 最後增加 (IP 根據自己的環境改)
/srv/nfs 192.168.22.*(rw,sync,no_subtree_check,no_root_squash)
重新啟動 nfs server
aimwang@debian:~$ sudo /etc/init.d/nfs-kernel-server restart
準備編譯 hello world 等一下要透過 nfs 餵給 raspberry pi 執行
Makefile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ROOT_PATH := $(PWD) RPI_BASE := $(HOME)/rpi NFS_PATH := /srv/nfs CROSS := $(RPI_BASE)/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- CC := $(CROSS)gcc all: hello nfs nfs: @cp -f hello $(NFS_PATH)/. hello: @$(CC) $(CFLAGS) -o hello hello.c clean: @rm -f hello |
1 2 3 4 5 6 7 8 | #include <stdio.h> #include <stdlib.h> void main (void) { printf ("Hello world!\n"); exit (0); } |
編譯啦
aimwang@debian:~/project/rpi/hello$ make
Raspberry Pi mount nfs 及執行
pi@raspberrypi:~ $ sudo mount -t nfs 192.168.22.200:/srv/nfs /mnt/nfs
pi@raspberrypi:~ $ /mnt/nfs/gpio
Hello world!
pi@raspberrypi:~ $ /mnt/nfs/gpio
Hello world!
完成
沒有留言:
張貼留言