网站建设服务范围,优化方案电子版,多个网站能否统一做等保,南京网站建设服务【实验目的】
掌握 Linux 内核配置的基本方法#xff0c;完成对网卡驱动、NFS 等相关功能的配置
【实验环境】
ubuntu 14.04 发行版FS4412 实验平台交叉编译工具#xff1a;arm-none-linux-gnueabi-
【注意事项】
实验步骤中以“$”开头的命令表示在 ubuntu 环境下执行完成对网卡驱动、NFS 等相关功能的配置
【实验环境】
ubuntu 14.04 发行版FS4412 实验平台交叉编译工具arm-none-linux-gnueabi-
【注意事项】
实验步骤中以“$”开头的命令表示在 ubuntu 环境下执行以“#”开头的命令表 示在开发板下执行
【实验步骤】 在内核源码的顶层目录下执行如下命令修改内核配置 $ make menuconfig给内核选配 DM9000 网卡驱动然后选择“Save”保存 Device Drivers ---[*] Network device support ---[*] Ethernet driver support ---* DM9000 support因为内核要使用 NFS 去挂载根文件系统而 NFS 是基于 TCP 协议实现的所以这里需 要选配 TCP 相关的网络协议部分功能默认已经选配然后选择“Save”保存 [*] Networking support ---Networking options ---* Packet socket* Unix domain sockets[*] TCP/IP networking[*] IP: kernel level autoconfiguration因为内核要使用 NFS 去挂载根文件系统所以需要给内核选配 NFS 客户端及相关功能 File systems ---[*] Network File Systems ---* NFS client support* NFS client support for NFS version 3 (NEW)[*] NFS client support for the NFSv3 ACL protocol extension[*] Root file system on NFS设置完成后通过方向键选择‘Save’保存即可然后选择‘Exit’退出该配置界面 在设备树中添加网卡的硬件信息 $ vi arch/arm/boot/dts/exynos4412-fs4412.dts在文件的末尾最后一个花括号前添加如下内容即要写在根节点之内 srom-cs15000000 {compatible simple-bus;#address-cells 1;#size-cells 1;reg 0x5000000 0x1000000;ranges;ethernet5000000 {compatible davicom,dm9000;reg 0x5000000 0x2 0x5000004 0x2;interrupt-parent gpx0;interrupts 6 4;davicom,no-eeprom;mac-address [00 0a 2d a6 55 a2];};};修改时钟相关配置忽略无用的时钟 $ vi drivers/clk/clk.c将 static bool clk_ignore_unused;修改为以下内容然后保存退出 static bool clk_ignore_unusedtrue;修改 EMMC 相关配置 $ vi drivers/mmc/core/mmc.c将 if (card-ext_csd.rev 7) {pr_err(%s: unrecognised EXT_CSD revision %d\n, mmc_hostname(card-host), card-ext_csd.rev);err -EINVAL;goto out;}修改为以下内容然后保存退出 #if 0if (card-ext_csd.rev 7) {#elseif (card-ext_csd.rev 8) {#endifpr_err(%s: unrecognised EXT_CSD revision %d\n, mmc_hostname(card-host), card-ext_csd.rev);err -EINVAL;goto out;}编译内核和设备树 $ make uImage$ make dtbs测试内核和设备树 将编译生成的内核和设备树拷贝到 tftp 的工作目录 $ sudo cp arch/arm/boot/uImage /tftpboot$ sudo cp arch/arm/boot/dts/exynos4412-fs4412.dtb /tftpboot/$ sudo chmod 777 /tftpboot/* 重启 tftp 和 nfs 服务器 $ sudo service tftpd-hpa restart$ sudo service nfs-kernel-server restart重启开发板查看现象如图所示此时 Linux 内核已经能通过 NFS 去挂载根文件系统 在终端下执行‘ls’命令我们就能看到根文件系统中的内容