實驗0:OK6410開發之Linux環境搭建
一、 實驗環境:
Ubuntu20.04,VMware16.2
二、 實驗過程:
1.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 #最后輸入命令更新一下軟件即可。
更新完如下:
3.Ubuntu切換root賬戶
這里參考
3.1. 第一步
以普通用戶登錄系統,創建root用戶的密碼
在終端輸入命令:
sudo passwd root
然后輸入設置的密碼,輸入兩次,這樣就完成了設置root用戶密碼了(注意Linux系統下密碼是沒有回顯的)
3.2. 第二步
修改 50-ubuntu.conf 文件
在終端輸入命令:
sudo gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf
在文件末尾增加如下兩行:
greeter-show-manual-login=true all-guest=false
3.3. 第三步
修改 gdm-autologin 文件
在終端輸入命令:
sudo gedit /etc/pam.d/gdm-autologin #打開文件
前面加 # 注釋掉第三行的 auth required pam_succeed_if.so user != root quiet_success
3.4. 第四步
修改 gdm-password 文件
在終端輸入命令:
sudo gedit /etc/pam.d/gdm-password #打開文件
前面加 # 注釋掉第三行的 *auth required pam_succeed_if.so user != root quiet_success
3.5. 第五步
修改 /root/.profile 文件
在終端輸入命令:
sudo gedit /root/.profile #打開文件
將文件末尾的 mesg n 2> /dev/null || true 這一行注釋掉加上 tty -s&&mesg n || true
3.6. 最后一步
趕緊注銷重新登錄試一下吧
選擇 未列出(Not listed)? 然后輸入root以及你之前設置的密碼,即可成功登錄
這樣就變成root賬戶了。
4.交叉編譯器 arm-linux-gcc安裝
/*
后面具體要用到的文件在這
鏈接:
*/
打開終端輸入
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說明安裝成功。
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 映像文件,
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這種寫法
我們進入錯誤文件進行修改
cd /root/forlinx/linux-3.0.1/kernel gedit timeconst.pl
將373行的if (!defined(@val))改成if(!@val)就可以了
保存,退出。
make zImage
編譯一段時間后在forlinx/linux-3.0.1/arch/arm/boot的軟件目錄下生成zImage說明就編譯成功了。
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”配置完成。
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 工具。
這樣OK6410的Linux的環境文件就全部配置好了。















