实验0:OK6410开发之Linux环境搭建
一、 实验环境:
Ubuntu20.04,VMware16.2
二、 实验过程:
1.Ubuntu的安装:
打开VMware,点击主页新建虚拟机,找到自己下载好的镜像文件点击确定,后面默认即可。以下是Ubuntu下载官网和VMware下载官网
Ubuntu官网下载地址
VMware官网下载地址
2.Ubuntu换源:
因为Ubuntu的官方源在国外网站需要FQ所以每次更新下载会非常慢,所以最好换成国内的源进行更新。具体操作如下:
Ctrl+Alt+T打开终端。
删除里面的源添加以下的内容:
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
这里是阿里的源,其他的源可以自行查找下
更新完如下:
3.Ubuntu切换root账户
这里参考https://cloud.tencent.com/developer/article/1726565博主写的文章
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 文件
在终端输入命令:
前面加 # 注释掉第三行的 auth required pam_succeed_if.so user != root quiet_success
3.4. 第四步
修改 gdm-password 文件
在终端输入命令:
前面加 # 注释掉第三行的 *auth required pam_succeed_if.so user != root quiet_success
3.5. 第五步
修改 /root/.profile 文件
在终端输入命令:
将文件末尾的 mesg n 2> /dev/null || true 这一行注释掉加上 tty -s&&mesg n || true
3.6. 最后一步
赶紧注销重新登录试一下吧
选择 未列出(Not listed)? 然后输入root以及你之前设置的密码,即可成功登录
这样就变成root账户了。
4.交叉编译器 arm-linux-gcc安装
/*
后面具体要用到的文件在这
链接:https://pan.baidu.com/s/1gitMZZLJ6WK5RH50XvaYsg 提取码: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
保存,退出。
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、编译:
如果编译成功,将在 ‘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.1filesystemYaffs2 文件系统制作工具 中有两个制作工具:
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的环境文件就全部配置好了。