SSD202環境安裝及linux問題解決和總結記錄


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!
  • 查找模式

    • 在normal模式下按下/即可進入查找模式,輸入要查找的字符串並按下回車。 Vim會跳轉到第一個匹配。按下n查找下一個,按下N查找上一個。
  • 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
      
  • 修改完軟件源后,更新軟件列表和軟件:
    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.gztar -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
      • 完成后重新開一個終端時生效
  • 安裝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文件夾目錄下執行以下命令

  1. 設置環境變量
    declare -x ARCH="arm"
  2. 設置編譯環境變量
    declare -x CROSS_COMPILE="arm-linux-gnueabihf-"
  3. 選擇對應的板載flash類型執行配置指令
    • SPInor Flash類型
      make infinity2m_defconfig //spinor,根據板載flash類型執行對應指令
    • SPInand Flash類型
      make infinity2m_spinand_defconfig //Spinand,根據板載flash類型執行對應指令
  4. 打開menuconfig,可視化配置,如果沒有要求配置的。跳過該指令即可
    make menuconfig //modify && save
  5. 清除編譯內容
    make clean
  6. 開始編譯
    make

2、編譯kernel流程

終端進入到kernel文件夾目錄下執行以下命令

  1. 設置環境變量(如果和boot在同個終端執行則不需要再執行)
    declare -x ARCH="arm"
  2. 設置編譯環境變量(如果和boot在同個終端執行則不需要再執行)
    declare -x CROSS_COMPILE="arm-linux-gnueabihf-"
  3. 選擇對應的板載flash類型執行配置指令
    • SPInor Flash類型
      make infinity2m_ssc011a_s01a_minigui_defconfig //SSD20x spinor
    • SPInand Flash類型
      make infinity2m_spinand_ssc011a_s01a_minigui_defconfig //SSD20x Spinand
  4. 打開menuconfig,可視化配置,如果沒有要求配置的。跳過該指令即可
    make menuconfig //modify && save
  5. 清除編譯內容
    make clean
  6. 開始編譯
    make

3、編譯SDK流程

終端進入到project文件夾目錄下執行以下命令

  1. 選擇對應的板載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
  2. 清除編譯內容
    make clean
  3. 開始編譯
    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的網卡。詳情參考連接
    • 上述步驟還不行的話。使用以下方法。詳情參考連接
      1. 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
        
      2. sudo -i切換為root用戶
      3. 輸入dhclient -v,這時候在查ifconfig發現能出現了ip地址。也能重新上玩了
      4. 輸出結果如下(實際結果因個人電腦而異)
        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
        
        


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM