SSD202環境安裝及linux問題解決和總結記錄
一、vim編輯器
啟動Vim編輯器時,您處於正常模式。在這種模式下,您可以使用vim命令並瀏覽文件。
要輸入文字,您需要按i鍵進入insert插入模式。使用此模式,您可以像在常規文本編輯器中一樣插入和刪除字符。
要從其他任何模式返回正常模式,請按Esc鍵
-
VIM編輯文件權限問題:
E45: 'readonly' option is set (add ! to override)
- 解決方案:q! 強制關閉文件后,在命令行里輸入:sudo !! 后回車再次vim打開文件編輯就正常了
-
VIM常用指令
- 保存文件並退出Vim/Vi:
:wq
- 退出Vim/Vi而不保存文件
:q!
- 保存文件並退出Vim/Vi:
-
查找模式
- 在normal模式下按下
/
即可進入查找模式,輸入要查找的字符串並按下回車。 Vim會跳轉到第一個匹配。按下n查找下一個,按下N查找上一個。
- 在normal模式下按下
-
VIM全選
- 全選(高亮顯示)
- 按esc后,然后ggvG或者ggVG
- 全部復制
- 按esc后,然后ggyG
- 全部刪除
- 按esc后,然后dG
gg:是讓光標移到首行,在vim才有效,vi中無效 v : 是進入Visual(可視)模式 G :光標移到最后一行 選中內容以后就可以其他的操作了,比如: d 刪除選中內容 y 復制選中內容到0號寄存器 "+y 復制選中內容到+寄存器,也就是系統的剪貼板,供其他程序用
- 全選(高亮顯示)
二、ubuntu換源
新安裝了Ubuntu默認的apt源是國外的源。國內訪問速度會很慢。所以更改國內源是非常有必要的。
參考鏈接
- 備份源列表文件
cd /etc/apt/ sudo cp sources.list sources.list.bak
- 修改源列表文件
sudo vim sources.list
- 將里面的內容全部刪除,然后替換為阿里雲源
- 阿里雲源 ubuntu20.4
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
- 清華源 ubuntu20.04
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-updates main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-backports main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-security main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-security main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-proposed main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-proposed main restricted universe multiverse
- 阿里雲源 ubuntu20.4
- 修改完軟件源后,更新軟件列表和軟件:
sudo apt-get update sudo apt-get upgrade
三、SSD202編譯工具安裝
推薦使用VMware虛擬機安裝ubuntu開發,絕不推薦使用wsl開發因為有坑。ubuntu可使用官方推薦的16.04版本,但是我使用ubuntu 20.04也可以,下列教程針對ubuntu 20.04。因為不同版本還真有點不一樣。
-
針對 SDK 編譯需要安裝一些 tool,否則會編譯失敗,安裝源要是國內阿里或者清華ubuntu 20.04配合電腦系統版本一致
# sudo apt-get install libc6-dev-i386 # sudo apt-get install lib32z1 lib32ncurses5-dev # sudo apt-get install libuuid1:i386 出錯誤E: Unable to locate package libuuid1:i386 執行以下命令: 1.dpkg --add-architecture i386 2.apt-get update 3.sudo apt-get install libuuid1:i386 # sudo apt-get install cmake # sudo apt-get install libncurses5-dev libncursesw5-dev # sudo apt install bc # sudo apt-get install xz-utils # sudo apt-get install automake # sudo apt-get install libtool # sudo apt-get install libevdev-dev # sudo apt-get install pkg-config
-
如果默認 sh 不是 bash,需要將 sh 改成 bash:(必須切換為bash)
sudo rm /bin/sh
sudo ln –s /bin/bash /bin/sh
設置了后需要重啟當前終端生效 -
安裝toolchain
- 將
gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf.tar.gz
文件復制到虛擬機/opt/
文件夾 - 解壓壓縮包
- 解壓指令
tar -zxvf 壓縮文件名.tar.gz
如tar -zxvf gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf.tar.gz
- 解壓多個相同后綴文件指令
for tar in *.tar.gz; do tar xvf $tar; done
- 解壓多個相同后綴文件到指定文件夾指令
for tar in *.tar.gz; do tar xvf $tar -C /home/; done
- 解壓指令
- 將 toolchain 設置到環境變量中去 交叉編譯工具下載使用傳輸口令:je6lak提取
- 在/etc/profile 添加:
export PATH=/opt/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf/bin:$PATH
- 完成后重新開一個終端時生效
- 在/etc/profile 添加:
- 將
-
安裝samba服務器
-
安裝教程參考鏈接
-
smb.conf內配置文件在文件末尾追加
[work] comment = samba home directory path = /home/beal.wu public = yes browseable = yes public = yes read only = no valid users = user lengzg beal.wu write list = lengzg beal.wu create mask = 0777 directory mask = 0777 force user = nobody force group = nogroup available = yes writable = yes
-
四、編譯流程
要把包放在ubuntu系統里面。解壓TAKOYAKI_DLC00V030版本的SDK包里面的boot、kernel、project、sdk壓縮包后分別得到對應的包文件
1、編譯boot流程
終端進入到boot文件夾目錄下執行以下命令
- 設置環境變量
declare -x ARCH="arm"
- 設置編譯環境變量
declare -x CROSS_COMPILE="arm-linux-gnueabihf-"
- 選擇對應的板載flash類型執行配置指令
- SPInor Flash類型
make infinity2m_defconfig
//spinor,根據板載flash類型執行對應指令 - SPInand Flash類型
make infinity2m_spinand_defconfig
//Spinand,根據板載flash類型執行對應指令
- SPInor Flash類型
- 打開menuconfig,可視化配置,如果沒有要求配置的。跳過該指令即可
make menuconfig
//modify && save - 清除編譯內容
make clean
- 開始編譯
make
2、編譯kernel流程
終端進入到kernel文件夾目錄下執行以下命令
- 設置環境變量(如果和boot在同個終端執行則不需要再執行)
declare -x ARCH="arm"
- 設置編譯環境變量(如果和boot在同個終端執行則不需要再執行)
declare -x CROSS_COMPILE="arm-linux-gnueabihf-"
- 選擇對應的板載flash類型執行配置指令
- SPInor Flash類型
make infinity2m_ssc011a_s01a_minigui_defconfig
//SSD20x spinor - SPInand Flash類型
make infinity2m_spinand_ssc011a_s01a_minigui_defconfig
//SSD20x Spinand
- SPInor Flash類型
- 打開menuconfig,可視化配置,如果沒有要求配置的。跳過該指令即可
make menuconfig
//modify && save - 清除編譯內容
make clean
- 開始編譯
make
3、編譯SDK流程
終端進入到project文件夾目錄下執行以下命令
- 選擇對應的板載flash類型執行配置指令
- SPInor Flash類型
./setup_config.sh ./configs/nvr/i2m/8.2.1/nor.glibc-squashfs.011a.64
//SSD20x Spinor - SPInand Flash類型
./setup_config.sh ./configs/nvr/i2m/8.2.1/spinand.glibc.011a.64
//SSD20x Spinand
- SPInor Flash類型
- 清除編譯內容
make clean
- 開始編譯
make image
4、獲得編譯好的images更新包
編譯完以上文件后,在project/image/output/images
文件夾下面都是我們更新給開發板需要的文件。將整images文件夾內的內容通過tftpd工具更新入SSD202開發板即可。
注意: 如果要更新 uboot、kernel,需要先編譯 project,然后將 uboot 和 kernel 的 bin 拷貝至
/yourpath/xxx/image/output/image 中,kernel 是 uImage.xz -> kernel。或者在編譯SDK時執行make image腳本在編譯后會將boot和kernel編譯好的固件自動復制到對應位置
虛擬機問題
- 網絡連接不上
設置橋接模式,自動,虛擬機里看到已連接但是依舊沒網。- 關掉虛擬機正在運行的系統,進入編輯->虛擬網絡編輯器->啟動設置->將橋接自動選擇為本地window的網卡。詳情參考連接
- 上述步驟還不行的話。使用以下方法。詳情參考連接
- ifconfig指令查詢ip時打印如下結果
xxx@ubuntu:~$ ifconfig lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (本地環回) RX packets 4749 bytes 287841 (287.8 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4749 bytes 287841 (287.8 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
sudo -i
切換為root用戶- 輸入
dhclient -v
,這時候在查ifconfig
發現能出現了ip地址。也能重新上玩了 - 輸出結果如下(實際結果因個人電腦而異)
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.75 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe23::20c:26ff:fe15:12b8 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:1f:12:b8 txqueuelen 1000 (以太網) RX packets 267 bytes 17570 (17.5 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 59 bytes 9188 (9.1 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (本地環回) RX packets 383 bytes 29360 (29.3 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 383 bytes 29360 (29.3 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- ifconfig指令查詢ip時打印如下結果