学习记录 使用uboot实现linux内核的安装与加载

本文详细介绍了在Exynos4412实验环境中,如何配置Ubuntu的网络环境,包括VM网络连接、tftp服务器和nfs服务器的搭建,以及处理内核加载和根文件系统挂载的问题。特别针对轻薄本无网口的情况提供了两种解决方案。
摘要由CSDN通过智能技术生成

目录

一、ubuntu网络环境配置

1、VM网络连接模式设置

2、ubuntu网络设置

3、连接开发板

二、tftp服务器环境搭建

三、nfs服务器环境搭建

四、tftp加载内核,nfs挂载根文件系统

五、笔者遇到的问题


芯片:Exynos4412
实验流程:通过sd卡启动uboot;通过tftp加载内核,nfs挂载根文件系统

一、ubuntu网络环境配置

1、VM网络连接模式设置

编辑-虚拟网络编辑器(vm以管理员模式打开)

选择桥接模式,桥接到有限网卡

若无法选择桥接模式,则先将 ubuntu 关机,然后关闭VMware,然后再以管理员 身份运行 VMware,然后再打开上述界面,单击左下角的“还原默认设置(R)”,等待完成 还原后即可选择“桥接模式”,然后再打开 ubuntu 即可

一般电脑都有有线网卡和无线网卡,不同电脑网卡名不一样,一般有线网卡的名字中带 有“PCIe”,无线网卡的名字中带有 “Wireless”,根据自己电脑的实际情况进行区分 这里选择网卡的原则是,如果想让 ubuntu 上外网,那么 windows 下使用哪个网卡就桥 接到哪个网卡;如果想让 ubuntu 与开发板连接,直接桥接到有线网卡

虚拟机-设置

设置为桥接模式

2、ubuntu网络设置

使用图形化界面配置,所以先删除配置信息

sudo vi /etc/network/interfaces

保留如下信息,保存退出

选择Edit Connections

add添加新链接,使用默认ethernet,点击create

在弹出的对话框中先为新建的连接填写名字(随意),然后单击“IPv4 settings” 设置 IP 信息,将“Method”栏选为“Manual”,然后单击“Add”填写 IP 信息

ip信息在win下用ipconfig查看

Address 设置成与 windows 下的“IPV4 地址”在同一个网段下的不同地址 。比如 windows 下的 IP 为“192.168.1.102” 则将 ubuntu 下的 IP 设为“192.168.1.100”

Netmask 设置成与 windows 下的“子网掩码”一致

Gateway 设置成与 windows 下的“默认网关”一致

DNS servers 设置成与 windows 下的“默认网关”一致

断开原有连接,然后选择刚刚建立的连接

3、连接开发板

ifconfig查看主机ip

在uboot交互模式下,设置uboot中相关环境变量

serverip 即服务器 IP,设置成与 ubuntu 主机一样的 IP

ipaddr 即自身 IP,设置成与 ubuntu 主机在同一个网段下的不同地址 比如 ubuntu 主机的 IP 为“192.168.1.100” 则将 ipaddr 设置为“192.168.1.200”

命令:

        查看环境变量

                printenv

        设置环境变量

                setenv 环境变量 要修改的值

        保存环境变量

                saveenv

开发板与电脑用网线直连,然后在 uboot 交互模式下使用 ping 命令连接 ubuntu,若 显示“host xxx.xxx.xxx.xxx is alive”则表示网络已连通(轻薄本没有网口使用拓展坞且通过上述步骤开发板还是一直ping不通主机的情况直接跳转到 五、笔者遇到的问题 

二、tftp服务器环境搭建

打开一个命令行终端,执行如下命令查看是否已安装 tftp 服务器

dpkg -s tftpd-hpa

若未安装,执行如下命令安装

sudo apt-get install tftpd-hpa tftp-hpa

修改 tftp 服务器的配置文件

sudo vi /etc/default/tftpd-hpa

修改为如下内容,然后保存退出

注:TFTP_DIRECTORY 是 tftp 服务器的工作目录,即客户端要下载的文件需要放到该目录下

创建服务器工作目录并设置为最高的权限

sudo mkdir /tftpboot

sudo chmod 777 /tftpboot

重启 tftp 服务,使配置生效

sudo service tftpd-hpa restart

本地测试是否安装成功

进入到服务器工作目录 $ cd /tftpboot/

创建一个文件 $ sudo touch test.txt

回到家目录 $ cd

使用 tftp 命令登录本机 $ tftp localhost

获取文件 $ get test.txt

退出 $ q

执行如下命令查看是否获取到 $ ls

当前目录下获取到了 test.txt 文件表示安装成功


三、nfs服务器环境搭建

打开一个命令行终端,执行如下命令查看是已否安装 nfs 服务器

dpkg -s nfs-kernel-server

若未安装,执行如下命令安装(确保 ubuntu 能上网)

sudo apt-get install nfs-kernel-server

修改 nfs 服务器的配置文件,在文件末尾添加如下配置,然后保存退出(/opt/4412/rootfs 是 nfs 服务器的工作目录,即客户端要访问的文件需要放到该目录下)

sudo vi /etc/exports

创建服务器工作目录并设置为最高的权限

sudo mkdir -p /opt/4412/rootfs

sudo chmod -R 777 /opt

重启 nfs 服务,使配置生效

sudo service nfs-kernel-server restart

本地测试是否安装成功

进入到服务器工作目录 $ cd /opt/4412/rootfs/

创建一个文件 $ sudo touch test.txt

回到家目录 $ cd

使用 nfs 挂载工作目录到/mnt $ sudo mount -t nfs localhost:/opt/4412/rootfs /mnt

查看是否挂载成功 $ ls /mnt/

若目录下有了 test.txt 文件表示安装成功

取消挂载 $ sudo umount /mnt

四、tftp加载内核,nfs挂载根文件系统

将内核镜像,设备树拷贝到tftp工作路径下;根文件系统拷贝到nfs工作路径下

设置环境变量

setenv bootargs root=/dev/nfs nfsroot=xxx.xxx.xxx.xxx:/opt/4412/rootfs rw console=ttySAC2,115200 init=/linuxrc ip=***.***.***.***

        root 根文件系统类型(nfs)

        nfsroot 主机IP网络文件系统路径

        rw 网络文件系统的权限

        console 控制台,波特率

        init 开机启动的进程

        ip linux启动后自身的IP

修改 uboot 的启动参数

setenv bootcmd tftp 0x41000000 uImage\;tftp 0x42000000 exynos4412-fs4412.dtb\;bootm 0x41000000 - 0x42000000

设置完成后保存这些参数

电脑每次开机都要重启tftp和nfs

sudo service tftpd-hpa restart

sudo service nfs-kernel-server restart

五、笔者遇到的问题

由于笔者的电脑为轻薄本没有自带网口,使用USB转网口线连接,但通过桥接模式开发板和主机一直无法ping通,解决方案有两个。

一是路由器连接,将主机和板子都连接在一个路由器上,主机还是按照上述步骤设置

二是直接将USB转网口设备连接到虚拟机上,虚拟机的网络设置还是按照上述步骤设置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值