嵌入式Linux系统移植和裁剪_9_环境搭建和测试(八)

我在前面已经编译好了Linux内核,UBoot,还有根文件系统(根文件系统是直接用现成的),当然这些都是华清远见已经移植好了的,我先用他们移植好的来进行测试,如果没有问题了,后面自己移植的时候相对来说就有个参照,遇到问题或者不会的地方可以看看他们怎么做的。

我这里使用从网络加载Linux内核和挂载根文件系统的方式来测试,因为我们在学习的过程中,会不断的修改代码,编译代码,然后测试运行,如果每次都烧录到SD卡或者EMMC的话,会很麻烦,所以直接从网络上加载是最方便的,等所有代码都没有问题了之后,再固化到板子上去。

这里从网络加载的意思是,UBoot在引导Linux系统的时候,不是从板子上的SD卡,或者EMMC去找内核镜像文件和设备树,而是通过TFTP网络协议,从局域网主机上(也就是我用于开发的Ubuntu)去下载镜像文件(uImage)和设备树文件(exynos4412-fs4412.dtb)。通过NFS网络协议,从局域网主机(也就是我用于开发的Ubuntu)去挂载根文件系统。我们会把uImage,设备树文件和根文件系统提前放到Ubuntu上,然后在uboot里面通过一些命令来设置内核启动的参数,让UBoot能够从局域网主机上加载这些东西到内存里面去运行,也就是通常说的,从网络启动和挂载。

我在以前学习Linux驱动的时候,就已经搭建好了一套网络加载的环境,包括TFTP和NFS这些服务,我的Ubuntu上都已经安装好了,相应的文件夹以及属性那些都已经设置好了,我就不再记录了,需要的可以参考正点原子出的Linux驱动课程。所以,我只需要把uImage,exynos4412-fs4412.dtb复制到TFTP的加载目录下,根文件系统(rootfs.tar.xz)复制到NFS的加载目录里面就可以了。

TFTP目录:/samba/tftpboot


NFS目录:/samba/nfs

注意,rootfs.tar.xz需要进行解压缩。

好了,东西准备好了,接下来就是在UBoot里面配置一些跟网络相关的环境变量,以及设置启动命令了。跟网络相关的环境变量有如下几个:

ipaddr,表示板子的IP地址,需要和Ubuntu主机处于同一个局域网内。

ethaddr,表示板子的网卡地址,也就是MAC地址,随意设置,符合MAC地址格式即可。

gatewayip,网关地址。

netmask,子网掩码,要保证板子和主机处于同一个局域网内。

serverip,服务器的IP地址,这里的服务器就是Ubuntu主机。

我的板子和Ubuntu主机连到了同一个无线路由器(192.168.1.1),Ubuntu的IP是192.168.1.8。我们通过使用 setenv 命令来设置环境变量,首先板子上电,倒计时结束前按下Enter,进入uboot交互控制台,使用如下命令:

setenv ipaddr 192.168.1.100

setenv ethaddr 00:04:9f:04:d2:35

setenv gatewayip 192.168.1.1

setenv netmask 255.255.255.0

setenv serverip 192.168.1.8

最后,使用 saveenv ,保存设置,不然上电后设置会丢失,如下图所示:

设置网络环境变量

我们还可以使用 printenv 命令,查看环境变量的值。

设置好这些变量之后,我们的UBoot就可以通过网络访问到Ubuntu主机了,接下来就需要设置启动命令和启动参数,让UBoot从网络加载内核和设备树,并且从网络挂载根文件系统。启动命令通过变量 bootcmd 来设置,启动参数通过变量 bootargs 来设置,大概像下面这样子。

setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.1.8:/samba/nfs/rootfs ip=192.168.1.100:192.168.1.8:192.168.1.1:255.255.255.0::eth0:off'

setenv bootcmd 'tftp 80800000 zImage; tftp 83000000 imx6ull-alientek-emmc.dtb; bootz 80800000 - 83000000'

这两个命令是我之前使用正点原子的板子的时候使用的,4412这个板子肯定要做一些更改,至于要怎么改,我明天在群里问下老师,然后在下篇文章的时候再贴出来,顺便解释下这两条命令。这个可不能自己摸索,先测试过了再说,反正也是八九不离十。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,001评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,210评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,874评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,001评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,022评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,005评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,929评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,742评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,193评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,427评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,583评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,305评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,911评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,564评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,731评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,581评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,478评论 2 352

推荐阅读更多精彩内容