目錄
一,工欲善其事,必先利其器
1,下載系統
樹莓派官方下載系統地址
https://www.raspberrypi.org/downloads/
注意:
除了下面這三個,其它均為第三方系統。這三個是樹莓派適配的自己的 Linux 系統。
NOOBS 是一個系統安裝器,同時也是一個系統,適合入門的新手,自定義安裝一些東西,不過實在太大了。
別急着下,先看看下一條提示。
2,CPU與系統
上面列舉的樹莓派官方的系統,全是 32 的,注意注意,是 32位 的!就是說無論你的樹莓派 CPU 是 32 還是 64 ,都是 32 位系統!樹莓派3 都出很久了,還不出 64位的系統,原因就不解釋了。
ARM 、 X86,指的是 CPU 指令集(ARM:簡單指令集,X86:復雜指令集),不是指 CPU型號、也不是指 32位/64位。嵌入式領域大部分的芯片是采用 ARM 指令集的。
另外,樹莓派的系統,2018-11-13 出的,是 Stretch,基於Debain 9。Openssl 1.1.1,
而 2016 的版本是 Jessis,基於 Debain 8,Openssl 1.0.0。
舊版系統下載地址 http://blog.lxx1.com/raspberrypi-jingxiang
3,刷系統
Win32DiskImager ,這個應該是流行度最高的了,不過筆者推薦使用 rufus
刷進去后,如果發現分配的存儲空間不足,可以使用 DiskGenius工具擴展存儲。有時候刷入系統,只會使用到幾G的存儲,剩下的存儲空間沒有分配。
fdisk -l #查看系統的存儲空間
4, look 系統信息
uname -a #查看系統版本與Linux內核信息 cat /etc/os-release #查看系統版本代號、官網地址等 getconf LONG_BIT #查看系統是32位還是64位 gcc -v #gcc 版本
二,開機必備
1,賬號密碼
樹莓派默認賬號密碼
pi
raspberry
注意,默認沒有root。
2,加入root
默認沒用 root,所以需要自己加入
sudo passwd root
然后會要求輸入兩次密碼
因為默認不是 root,所以在使用 ssh 遠程登陸時,不能直接使用 root 登陸。要先使用 pi 用戶。
切換 root 用戶
su root
3,開啟遠程 ssh 功能
/etc/init.d/ssh start #如果不是 root 用戶,要 sudo
查看 電腦 IP
ifconfig
4,開機啟動
ssh 可能不是開機自啟,讓軟件開機啟動,其它需要自啟動的軟件也可以放進去。
nano /etc/rc.local
在 exit 0 這一行前,輸入 /etc/init.d/ssh start ,然后
Ctrl + O,回車,Ctrl + X
以上 3 步是保存編輯並退出編輯模式的方法,當然也可以用 vi/vim ,添加后就會開機時自動啟動服務了。
5,更新時間
shell 輸入命令
date #查看系統時間
如果顯示的時間跟你本地時間不一樣,先設置時區(上海)
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
6,使用 wifi
考慮到要使用 wifi,就加上了
如果是 Orange PI 的板子可以使用
nmtui #彈出網絡管理器
#剩下的就是 UI 界面操作了
如果是樹莓派
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf #修改網絡配置文件
在后面加上
network={ ssid="wifi 名稱,注意大小寫呀" psk="wifi 密碼,注意大小寫" }
#注意,等號兩邊不要有空格
重啟網絡
sudo /etc/init.d/networking restart
使用 ifconfig 獲取網絡狀態或者 curl baidu.com 是否有返回,來判斷是否已經連接上wifi。
如果沒有連接上,那就重啟機器
#以下命令都可以重啟,需要 root
reboot
shutdown -h now
三,更新 apt-get 源與軟件搜索
1,更新
apt-get update #更新apt列表
apt-get upgrade #更新系統
上面的命令備用
2,修改 apt 源
備用!一般不需要修改!
nano /etc/apt/sources.list
隨便你用 nano 還是 vi/vim。
如果你的源,是 https:// 開頭的,建議改成 http://
如果你的系統是 Debain
deb http://ftp.debian.org/debian sid main #官方源
Debain、Raspbain 系統的源-官方文檔 https://docs.saltstack.com/en/latest/topics/installation/debian.html
163 開源 Debain 鏡像源(非常齊全,i386、amd64、source 架構) http://mirrors.163.com/.help/debian.html
apt 安裝軟件、更新源、更新系統出錯、無法使用 HTTPS 等問題,請參考筆者的另一篇文章
https://www.cnblogs.com/whuanle/p/10540584.html
四,安裝 .NET Core
筆者是學 dotnet 的~
1,下載 .NET Core
打開 https://dotnet.microsoft.com/download,獲取相應版本的下載地址。
.NET Core ARM 版本的 SDK/Runtime 是 . tar.gz 后綴
在你的 Linux,打開 /var目錄,創建一個 dotnet 的目錄(為了安裝 .NET Core)。其實安裝目錄可以隨意,筆者建議放在 /var 下吧。
注意:有些特殊情況或特殊應用,要把 .NET Core SDK/Runtime 目錄放到 /usr/share/ 下,例如 OpenCvSharp。
mkdir /var/dotnet cd /var/dotnet
下載 軟件包(下面的是 Runtime 2.2.3,根據實際替換下載地址)
wget https://download.visualstudio.microsoft.com/download/pr/280390c7-10ab-46bc-bd62-886751517624/b6b98756380556e39a6a96a920aa4b67/aspnetcore-runtime-2.2.3-linux-arm.tar.gz
PS:如果提示 wget 無法下載 https 鏈接的文件,加上 參數 --no-cookie --no-check-certificate
wget --no-cookie --no-check-certificate https://地址
筆者的另一篇文章: 嵌入式開發板LInux更新系統、安裝軟件、下載資源碰到的問題
https://www.cnblogs.com/whuanle/p/10540584.html
2,“安裝” .NET Core
ARM(開發板) 上,無論是 SDK 還是 Runtime,其實不算真正的安裝。而是把 dotnet 腳本命令放到系統里。 .NET Core 不會駐扎在后台,只有你使用 dotnet 命令時才會出現,平時不會消耗任何資源。
解壓 .NET Core 包
tar -vxf xxxxxx壓縮包的名稱xxxxxx.tar.gz
如果名字太長,可以輸入前面幾個字母,按 Tab 鍵自動補全。小技能:Tab 鍵可以自動補全命令、目錄文件名稱等。
ls #查看目錄文件 #或者使用 ls -lah
你可以看到目錄下有個 dotnet 文件,把此文件鏈接到 /usr/bin 下。
ln -s /var/dotnet/dotnet /usr/bin/dotnet -f #注意養成習慣,有些地方最好填上絕對路徑
測試是否成功
dotnet
dotnet --info
如果失敗的話,檢查是不是路徑有問題,先將創建的軟鏈接刪除,再重新創建試試。
rm /usr/bin/dotnet #刪除創建的鏈接
另一種安裝方法
export DOTNET_ROOT=/var/dotnet/dotnet export PATH=$PATH:/var/dotnet/dotnet #以上命令是創建環境變量
然后試試輸入 dotnet 命令測試。
但是,使用 export 命令創建的變量,只能在當前終端使用,重新連接、關機后、使用別的賬號,都無法使用,只是是臨時的。
這個方法可以自動執行 export 命令
nano ~/.bashrc
#或者
vim ~/.bashrc
在后面加上
export DOTNET_ROOT=/var/dotnet/dotnet
export PATH=$PATH:/var/dotnet/dotnet
這樣,只有當前用戶才能使用 dotnet。
想全局生效、對所有用戶都生效:可以編輯 /etc/bashrc 文件
五,文件傳輸
1,跨屏傳輸文件
安裝 ZMODEM
apt-get update #更新apt列表,要經常更新 apt-get install lrzsz #安裝跨屏傳輸軟件
這個軟件可以在任何 Linux 系統下使用,只要你拖動需要的文件,即可丟到終端里(會存放到你當前在終端的工作目錄),可以拖動多個文件。
那么,如果從 Linux 里獲取文件呢?
sz 文件名
執行命令后,就會提示保存文件了,以下命令可以更方便下載多個文件
sz * #當前目下所有文件 sz *.zip #當前目錄下以.zip結尾的所有文件
是不是很方便呢~快給小編點個贊吧。
六,搜索與安裝軟件
輸入
apt-get search xxx
#例如
apt-get search openssl
即可搜索某個名稱的軟件包。
這樣可能看着不方便。
Debain 官方地址 https://packages.debian.org/index
在里面搜索相關名稱,就可以獲取不同CPU、不同系統、不同版本的軟件包名稱啦,還可以看到軟件介紹~
輸入 apt-get install xxx 即可安裝。
另外,經常會碰到缺少 xxx.so 文件,缺少 xxx 依賴等情況,到這個網站什么搜索,就知道是缺少哪個軟件出的問題了。
有些小伙伴,剛入門,這里提醒一下。Linux 發行版本很多,有 apt、rpm、yum 等安裝軟件的方法,Debain、Ubuntu 等是使用 apt 安裝,Centos 等使用 yum 命令。
有些小伙伴在網上找教程安裝軟件時,試了很多次:找不到 yum 命令。。。
七,常見缺少的 xxx.so
1,Openssl
root@instance:/tmp# ldd /usr/bin/openssl linux-vdso.so.1 => (0x00007ffe94bc0000) libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f62aacf4000) libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f62aa8b0000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f62aa4e6000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f62aa2e2000) /lib64/ld-linux-x86-64.so.2 (0x00007f62aaf5d000)
安裝一些軟件或者編譯一些軟件時,會提示缺少 libssl.so.1.x,libcrypto.so.1.x,
openssl version #查看openssl版本 ldd /usr/bin/opens #查看其動態鏈接庫文件 #有時候安裝了openssl,但還是提示缺少文件,可能時版本不同~使用上面的命令可以檢查一下
查看 openssl 安裝目錄
which openssl
卸載 openssl
使用
apt remove openssl #卸載openssl
rm -rf /etc/ssl #刪除配置文件
或者
apt-get purge openssl #卸載openssl rm -rf /etc/ssl #刪除配置文件
安裝最新的 openssl
apt-get update apt-get-install openssl
安裝特定版本的openssl:
特定版本的 openssl 下載地址 https://oomake.com/download/openssl
下載后放到 Linux 中,隨便放到一個目錄,建議放到一個目錄
#tar zxvf openssl.tar.zip #要修改壓縮包的名稱
cd xxxxx #打開解壓后的目錄
創建 openssl 目錄
mkdir /usr/local/openssl #此目錄用於存放編譯后的openssl文件
配置 openssl 源代碼
這樣會把編譯的文件和生成的動態鏈接庫放到指定的目錄
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl -Wl,-rpath,/usr/local/openssl/lib shared
安裝 openssl
make make install
創建軟鏈接
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
使用 ldd /usr/bin/openssl 來檢查是否正常。出現 libssl.so.1.x 和 libcrypto.so.1.x 說明正常了
八,小技巧與工具
1,ZMODEM
上面第 五 已經說了,這里就不列出來了
2,tree
apt-get install tree
可以已樹形形式列出目錄,試一下輸入 tree 命令
指定只列出幾層的 “樹”
#tree -L N ,N代表層數 tree -L 1
結果:
. ├── aspnetcore-runtime-2.2.3-linux-arm.tar.gz ├── dotnet ├── host ├── LICENSE.txt ├── shared └── ThirdPartyNotices.txt
3,alias
假如說,我做了一個.NET Core 軟件,要啟動這個項目,需要到相應目錄下運行 dotnet xxx.dll
如果我想高逼格、公司品牌需要,可以這樣
alias 命令名稱='dotnet /xxxx.dll'
注意 =號兩邊沒有空格,實例:
alias xfan='dotnet /var/test/ConsoleApp1.dll'
那么,我在終端只輸入 xfan 即可 啟動項目。如果你不明白 alias 的作用。。。有 Linux 的小伙伴可以看懂下面的內容:
alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l='ls -CF' alias la='ls -A' alias ll='ls -alF' alias ls='ls --color=auto'
需要注意的是,alias 是臨時的,只對當前有效,下次登陸就沒用了。
持久化方法:
nano ~/.bashrc
在里面相應位置上,添加你的 alias 命令,例如 alias xfan='dotnet /var/test/ConsoleApp1.dll'
然后,更新文件立即生效
source ~/.bashrc
#或者
. ~/bashrc
注意注意,~ 是當前用戶的目錄路徑,只對某個用戶有效。
想全局生效、對所有用戶都生效:可以編輯 /etc/bashrc 文件
4,arm 開發板更新 gcc/gcc++ | Debain 更新 gcc,無需編譯直接更新 gcc
可以看筆者的另一篇文章 https://www.cnblogs.com/whuanle/p/10546634.html
5,樹莓派引腳分布
6,查看 cpu 、內存等消耗
top
然后就可以看到進程消耗的系統資源
#top -p PID號
#例如
top -p 1236
可以查看特定的進程
按 f 鍵,可以添加或減少顯示的項
- 按 空格 鍵選擇或取消顯示某項
- 按 Esc 返回監控界面
監控界面,按 e 鍵,可以更改顯示單位,k、m、g、t、p。默認單位 k。
7,關機開機重啟、終止命令、后台運行
logout #退出登陸 exit #退出登陸 shutdown -h now #馬上關機 shutdown -r now #馬上重啟 reboot #重啟
Ctrl + C,終止當前命令
Ctrl + Z,使當前命令后台運行(可以后台多個命令)
終端輸入 fg ,可以打開后台運行的命令(前提是這個命令還在運行、沒有結束)
當存在多個后台命令時,輸入 fg n (n表示序號),可以打開某個后台的命令。
8,掛載 U 盤
把 u盤 插到 Linux 設備上,要掛載才能使用。下面得命令針對 fat文件系統的 u盤。
查看 u盤編號,記下 u盤 的“Device”, 如 /dev/sda1
fdisk -l
掛載 U盤 (紅色部分根據實際情況修改)
#mount -t vfat Device字符串 要掛載到的目錄
mount -t vfat /dev/sda1 /mnt/usb
9,生活解壓妙招
rm -rf /*
這條命令一經使用,就會全身放松,減輕疲勞!
rm -rf /* & #加個 & 后台運行,不知不覺
向不會電腦的人裝逼:
#Win下 dir /s #Linux下 find / *
上面的兩個命令是列出電腦的所有文件,只見電腦飛快出現一堆字符串,其實人畜無害。
cd /&& tree
以樹的形式列出所有文件,有得等了~可以裝逼
筆者的筆記本電腦壞了,寄去商家修理,這周就只發這篇了~
- 如何使用樹莓派的引腳?接 Led 燈、傳感器?
- 如何在 vs 2017 上點亮 Led 燈、使用傳感器?
- 如何在 vs 2017上創建項目在樹莓派上調試?
- 如何使用 .NET Core 進行嵌入式開發(小燈)?
歡迎收看下期預告。。。
個人經驗不足,如果出現錯誤,懇請批評指定,筆者馬上修改~
平常還碰到哪些坑,可以聯系小編補上~