嵌入式課程:實驗0——OK6410開發板Linux環境搭建


 實驗0:OK6410開發之Linux環境搭建

 

一、 實驗環境:

Ubuntu20.04,VMware16.2

二、 實驗過程:

 

1.Ubuntu的安裝:

打開VMware,點擊主頁新建虛擬機,找到自己下載好的鏡像文件點擊確定,后面默認即可。以下是Ubuntu下載官網和VMware下載官網

Ubuntu下載官方地址

VMware下載官網

2.Ubuntu換源:

因為Ubuntu的官方源在國外網站需要FQ所以每次更新下載會非常慢,所以最好換成國內的源進行更新。具體操作如下:

Ctrl+Alt+T打開終端。

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #備份原來的源。
​
sudo gedit /etc/apt/sources.list #打開sources.list #配置文件更換源。

刪除里面的源添加以下的內容:

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 focal

這里是阿里的源,其他的源可以自行查找下

sudo apt-get update #再輸入命令更新源。
​
sudo apt-get upgrade #最后輸入命令更新一下軟件即可。

更新完如下:

img

3.Ubuntu切換root賬戶

這里參考Ubuntu20.04開啟root賬戶的方法步驟

3.1. 第一步

以普通用戶登錄系統,創建root用戶的密碼

在終端輸入命令:

sudo passwd root

然后輸入設置的密碼,輸入兩次,這樣就完成了設置root用戶密碼了(注意Linux系統下密碼是沒有回顯的)

img

3.2. 第二步

修改 50-ubuntu.conf 文件

在終端輸入命令:

sudo gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf

在文件末尾增加如下兩行:

greeter-show-manual-login=true
​
all-guest=false

img

3.3. 第三步

修改 gdm-autologin 文件

在終端輸入命令:

sudo gedit /etc/pam.d/gdm-autologin #打開文件

前面加 # 注釋掉第三行的 auth required pam_succeed_if.so user != root quiet_success

img

3.4. 第四步

修改 gdm-password 文件

在終端輸入命令:

sudo gedit /etc/pam.d/gdm-password #打開文件

前面加 # 注釋掉第三行的 *auth required pam_succeed_if.so user != root quiet_success

img

3.5. 第五步

修改 /root/.profile 文件

在終端輸入命令:

sudo gedit /root/.profile #打開文件

將文件末尾的 mesg n 2> /dev/null || true 這一行注釋掉加上 tty -s&&mesg n || true

img

3.6. 最后一步

趕緊注銷重新登錄試一下吧

選擇 未列出(Not listed)? 然后輸入root以及你之前設置的密碼,即可成功登錄

img

這樣就變成root賬戶了。

4.交叉編譯器 arm-linux-gcc安裝

/*

后面具體要用到的文件在這

鏈接:百度網盤 請輸入提取碼 提取碼:lcbl

*/

打開終端輸入

mkdir forlinx 

來新建forlinx文件

將 arm-linux-gcc-4.3.2.tgz 文件拷貝到 forlinx 目錄下,然后終端打開forlinx

cd forlinx
​
mkdir /usr/local/arm
​
tar zxvf arm-linux-gcc-4.3.2.tgz -C /

編譯器解壓到/usr/local/arm

把交叉編譯器路徑添加到系統環境變量中,以后可以直接在終端窗口中輸入 arm-linx-gcc 命令來編譯程序。

在終端中執行: gedit /etc/profile

添加以下四行到該文件中:

export PATH=/usr/local/arm/4.3.2/bin:$PATH
​
export TOOLCHAIN=/usr/local/arm/4.3.2
​
export TB_CC_PREFIX=arm-linux
​
export PKG_CONFIG_PREFIX=$TOOLCHAIN/arm-none-linux-gnueabi

保存,退出。

reboot #重啟
​
echo $PATH #查看環境變量是否更新

arm-linx-gcc是一個32位的編譯器而Ubuntu20.04是一個64位系統所以需要安裝32位的庫,否則可能出現command not found的情況

安裝32位庫指令:

sudo apt-get install libc6-i386

然后輸入arm-linux-gcc -v檢查安裝

出現下圖就ok說明安裝成功。

img

5. 編譯 UBOOT 和 Linux 內核

5.1安裝make跟gcc,后面編譯需要

sudo apt-get install make
​
sudo apt-get install gcc

5.2 解壓和編譯uboot源碼

將 uboot 源碼壓縮包 ‘uboot1.1.6_FORLINX_6410.tgz’拷貝到 forlinx 目錄下,解壓並編譯,Ubuntu 下操作過程如下所示:

tar zxf uboot1.1.6-V5.50-2014-09-19.tar.gz

編譯 256M(128M) 內存平台 Uboot 方法:

進入 uboot1.1.6 目錄、配置 config、編譯:

cd uboot1.1.6
​
make forlinx_nand_ram256_config  #(配置適用於 256M 內存平台的 config,128M的換成make forlinx_nand_ram128_config)
​
make clean
​
make

如果編譯成功,將在 ‘uboot1.1.6’目錄下產生名為 ‘u-boot.bin’的二進制文件。該文件即我們 需要燒寫到 Nandflash 的 U-boot 映像文件,

img

6.編譯 Linux 系統

將壓縮包 ‘FORLINX_linux-3.0.1.tar.gz’ 拷貝到forlinx文件下,解壓:

tar zxf FORLINX_linux-3.0.1.tar.gz

打開解壓后的linux-3.0.1文件

cd linux-3.0.1

6.1 配置內核

安裝 ‘libncurses5’,以方便后面使用 ‘make menuconfig’ 命令

sudo apt-get install libncurses5-dev

如果失敗sudo apt-get update更新下庫

6.2 編譯內核

make zImage

這里會報一個錯如下,原因是新版本kernel的文檔更新后不允許define這種寫法

img

我們進入錯誤文件進行修改

cd /root/forlinx/linux-3.0.1/kernel
​
gedit timeconst.pl

將373行的if (!defined(@val))改成if(!@val)就可以了

img

保存,退出。

make zImage

編譯一段時間后在forlinx/linux-3.0.1/arch/arm/boot的軟件目錄下生成zImage說明就編譯成功了。

img

img

 

6.3 配置功能

完成編譯后就可以在/forlinx/linux-3.0.1下

make menuconfig

開始配置硬件。

假如使用 wifi 功能的話,需要用 make menuconfig 命令對所使用的 wifi 進行下配置再編譯內 核。配置方法如下: 在命令行輸入 make menuconfig,會出現內核配置圖形界面,然后依次選擇:Device Drivers--->Network device support --->Wireless LAN --->Select rtl wifi,其中 Realtek 8192C USB WiFi 對應 使用 rtl8188 芯片的 usb wifi 模塊,Realtek 8189E SDIO WiFi 對應飛凌的 8189ES 的 SDIO wifi 模塊。選 擇相應的配置然后點 Select,然后一步步點“Exit”退出,最后提示是否保存配置,點“yes”配置完成。

img

7.制作 yaffs2 文件系統映像

將壓縮包 ‘FileSystem-Yaffs2.tar.gz’及文件系統映像制作工具 mkyaffs2image-nand256m 和 mkyaffs2image-nand2g 拷貝到forlinx文件中 解壓縮文件系統源碼包:

tar zxf FileSystem-Yaffs2.tar.gz

在 Linux-3.0.1\filesystem\Yaffs2 文件系統制作工具 中有兩個制作工具:

mkyaffs2image-nand2g 和 mkyaffs2image-nand256m

(1) mkyaffs2image-nand256m 制作出的映像,適用於 256M 的 nandflash 的平台 制作命令:

    ./mkyaffs2image-nand256m FileSystem-Yaffs2 rootfs.yaffs2

(2) mkyaffs2image-nand2g 制作出的映像,適用於 1G,2G 或者 4G 字節 nandflash 的平台 制作命令:

 ./mkyaffs2image-nand2g FileSystem-Yaffs2 rootfs.yaffs2

最后在文件系統源碼包同級目錄下生成 rootfs.yaffs2 文件,此文件即是可以下載到平台 nandflash 中的 yaffs2 文件系統映像。

假如用以上命令制作映像不成功,可能原因是制作工具權限不正確,需先修改下權限,修改權限的 命令:

 chmod 777 mkyaffs2image-nand256m

使用另外一個制作工具,修改權限的命令:

 chmod 777 mkyaffs2image-nand2g

注意:mkyaffs2image 可執行文件是使用 Linux3.0 源代碼目錄 yaffs2 文件夾下 utils 目錄中的 mkyaffs2image.c 文件編譯出來的,如果有興趣可以自己制作適合 256MB NandFlash 和 2G NandFlash 的 Yaffs2 工具。

img

這樣OK6410的Linux的環境文件就全部配置好了。

 

 


免責聲明!

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



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