精华内容
下载资源
问答
  • 2021-05-10 18:04:16

    嵌入式linux内核移植步骤,五份文档之一

    手把手教你移植linux内核---------OK6410(四)

    OK6410--DM9000网卡驱动移植:

    在linux的内核中已经带有了DM9000的网卡驱动,所以网卡驱动我们不需要再去写或者移植了,只需要添加一个平台信息就可以。

    首先在linux-3.3.5/arch/arm/mach-s3c64xx/mach-ok6410.c里面添加都文件#include

    在linux-3.3.5/arch/arm/mach-s3c64xx/mach-ok6410.c里面添加dm9000的平台信息:

    [cpp]

    1. #define S3C64XX_PA_DM9000 (0x18000000)

    2. #define S3C64XX_SZ_DM9000 SZ_1M

    3. static struct resource ok6410_dm9000_resources[] = {

    4. [0] = {

    5. .start= S3C64XX_PA_DM9000,

    6. .end= S3C64XX_PA_DM9000 + 3,

    7. .flags= IORESOURCE_MEM,

    8. },

    9. [1] = {

    10. .start= S3C64XX_PA_DM9000 + 4,

    11. .end= S3C64XX_PA_DM9000 + S3C64XX_SZ_DM9000 - 1,

    12. .flags= IORESOURCE_MEM,

    13. },

    14. [2] = {

    15. .start= IRQ_EINT(7),

    16. .end= IRQ_EINT(7),

    17. .flags= IORESOURCE_IRQ | IRQF_TRIGGER_HIGH,

    18. },

    19. };

    20.

    21. static struct dm9000_plat_data ok6410_dm9000_platdata = {

    22. .flags= DM9000_PLATF_16BITONLY,

    23. .dev_addr= { 0x08, 0x90, 0x00, 0xa0, 0x90, 0x90 },

    24. };

    25.

    26. static struct platform_device ok6410_device_dm9000 = {

    27. .name= "dm9000",

    28. .id= 0,

    29. .num_resources= ARRAY_SIZE(ok6410_dm9000_resources),

    30. .resource= ok6410_dm9000_resources,

    31. .dev= {

    32. .platform_data = &ok6410_dm9000_platdata,

    33. }

    34. };

    更多相关内容
  • linux内核移植步骤

    2021-01-06 05:10:49
    1.解压内核源码  tar -jxvf linux-xxx.tar.bz2  或者  tar -zxvf linux-xxxx.tar.gz 2.清除之前的配置 clean – 清大部分生成的文件, 但是保留配置文件, 以及可以保证足够编译模块的信息。 mrproper – 清所有...
  • 内核移植步骤

    2021-04-23 11:02:42
    内核移植步骤 相比于uboot移植,内核只关心内存条的情况,所以移植相对uboot简单 **第一步:**网上下载相关的内核文件http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/ **第二步:**配置内核移植的必要环境 ...

    内核移植步骤

    相比于uboot移植,内核只关心内存条的情况,所以移植相对uboot简单

    **第一步:**网上下载相关的内核文件http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/

    **第二步:**配置内核移植的必要环境
    (1)需要支持menuconfig(有了这个方便我们后面选择配置)
    只需要dpkg -i 压缩包就可以
    (2)需要支持mkimage(编译image文件时需要)
    将mkimage工具拷贝到/usr/bin

    **第三步:**选择默认配置
    (1)进入解压后的文件夹找到Makefile文件,修改配置

    ARCH            ?= $(SUBARCH)
    将这条配置命令修改为
    ARCH            ?= arm
    
    CROSS_COMPILE   ?= $(CONFIG_CROSS_COMPILE:"%"=%)
    将这条配置命令修改为
    CROSS_COMPILE   ?= arm-linux-
    

    修改原因:第一条是指定(cpu架构),第二天是指定交叉编译器,如果不修改那么我们在执行命令的时候需要输入完整的指令:
    powershell make ARCH=arm CROSS_COMPILE=arm-linux- uImage

    **第四步:**添加新配置
    (1)执行默认配置make exynos_defconfig
    (2)执行make menuconfig
    在这里插入图片描述
    出现的界面就是我们需要选配的界面,例:
    如果我们需要配置网卡驱动,实现NFS服务,我们需要勾选一下选项:

    [*] Networking support  --->
    	Networking options  --->
    		<*> Packet socket
    		<*>Unix domain sockets 
    		[*] TCP/IP networking
    		[*]   IP: kernel level autoconfiguration
    Device Drivers  --->
    	[*] Network device support  --->
    		[*]   Ethernet driver support (NEW)  --->
    			<*>   DM9000 support
    File systems  --->
    	[*] Network File Systems (NEW)  --->
    		<*>   NFS client support
    		[*]     NFS client support for NFS version 3
    		[*]       NFS client support for the NFSv3 ACL protocol extension
    		[*]   Root file system on NFS
    

    选择按键为shift+s

    按照上面的配置修改完毕,NFS显示还是无法正常运行,原因在于我们只是设置了网卡和NFS服务器的配置,并没有告诉板子应该如何加载网卡,所以我们还需要完成修改设备树的操作:
    $ vim arch/arm/boot/dts/exynos4412-fs4412.dts 添加如下内容:(难点)
    选择在该文件中添加的原因是在dts文件夹中有很多的.dts文件都可以生成设备树,需要找到相对应的型号。

    srom-cs1@5000000 {
    		compatible = "simple-bus";
    		#address-cells = <1>;
    		#size-cells = <1>;
    		reg = <0x5000000 0x1000000>;
    		ranges;
    
    		ethernet@5000000 {
    			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];
    		};
    	};
    

    这段配置需要我们自行通过看设计图来完成,部分参数说明:
    reg:为网卡的起始地址
    interrupt-parent:设置为中断管脚
    interrupts:参数为gpx0_6,下降沿触发
    mac-address:为网卡的物理地址

    到这来为止内核移植算是基本完成,最后再进行编译即可: make uImage
    最后编译设备树:make dtbs,再找到和自己板子相关的设备树文件即可

    在这里插入图片描述

    以上的操作系统可以实现网络功能,那么如果我们需要安装其他的驱动,需要安装步骤,先通过make menuconfig选择配置然后再在设备树文件上面加上相应地代码即可。

    问题追加:
    编译最后出现该问题:
    在这里插入图片描述
    解决方法:
    未指定加载地址,所以需要使用以下语句执行:

    LOADADDR=0x40008000 make uImage (LOADDR地址必须未未使用的地址)
    
    展开全文
  • 这个pdf中有烧写开发版的详细步骤,包括window 和linux 操作系统
  • 本文以将linux移植到ARM920T内核的s3c2410处理器芯片为例,介绍了嵌入式linux内核裁剪以及移植的过程,并对移植中的关键技术和重要步骤给出了详细的说明。
  • linux内核版本 3.14 资料包: 1、将linux-3.14.tar.xz拷贝到ubuntu中下解压并进入Linux-3.14 tar xvf linux-3.14.tar.xz cd linux-3.14 接着修改内核顶层目录下的Makefile vim Makefile 导入默认配置 ...

    环境:ubuntu20.04

    开发板:fs4412

    linux内核版本 3.14

    资料包:

    Linux内核移植,u-boot引导程序,跟文件系统-嵌入式文档类资源-CSDN下载Linux内核移植,u-boot引导程序,跟文件系统更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/daizhichaoaa/84056813

    1、将linux-3.14.tar.xz拷贝到ubuntu中下解压并进入Linux-3.14

    tar  xvf  linux-3.14.tar.xz
    cd  linux-3.14
    

    接着修改内核顶层目录下的Makefile

    vim Makefile

    导入默认配置

    make  exynos_defconfig
    

     配置内核

    make  menuconfig

    注:如果出现问题,先执行安装命令,另外终端窗口也要调大点,不然显示不出也会报错

    sudo apt-get install libncurses5-dev
    

    然后看到

     

    退出,接着编译内核,可能会出现如果编译过程中提示缺少mkimage工具,需将前天编译的uboot源码中的tools/mkimage拷贝到ubuntu/usr/bin目录下

    cp  u-boot-2013.01/tools/mkimage  /usr/bin
    make  uImage

    修改设备树文件生成设备树文件,以参考板origen的设备数文件为参考

    cp arch/arm/boot/dts/exynos4412-origen.dts  arch/arm/boot/dts/exynos4412-fs4412.dts

    添加新文件需修改Makefile才能编译

     vim arch/arm/boot/dts/Makefile

    然后编译树文件

    make dtbs

    拷贝内核和设备树文件到/tftpboot目录下

    cp  arm/arm/boot/uImage  ~/tftpboot
    
    cp  arch/arm/boot/dts/exynos4412-fs4412.dtb  ~/tftpboot/

     修改uboot启动参数(参考tftp那篇文章)

    sudo /etc/init.d/network-manager stop //暂时关闭网络,保留ip
    tftp 41000000 uImage
    tftp 42000000 exynos4412-fs4412.dtb
    pri  //先查看botargs是否已经配置好(ip)
    bootm 41000000 - 42000000

    重启板子查看实验现象

    报错原因:fs4412使用的设备树和origen的不同,网卡设备不同

    展开全文
  • linux内核移植步骤添加dm9000网卡驱动(设备树).docx LINUX内核移植步骤2015年05月13日星期三上午1105往设备树中添加网卡驱动1、选平台,指定交叉编译工具链1、在MAKEFILE中指定源码顶层目录下...COMPILECONFIG_CROSS_...

    41528d3028836879cd698677c3999917.giflinux内核移植步骤添加dm9000网卡驱动(设备树).docx

    LINUX内核移植步骤2015年05月13日星期三上午1105往设备树中添加网卡驱动1、选平台,指定交叉编译工具链1、在MAKEFILE中指定源码顶层目录下MAKEFILEARCHSUBARCHCROSS_COMPILECONFIG_CROSS_COMPILE““改为ARCHARMCROSS_COMPILEARMLINUX2、编译时指定MAKEARCHARMCROSS_COMPILE/OPT/ARMLINUXGCC464/BIN/ARMLINUX2、导出缺省配置(1)、直接把缺省配置文件改成”CONFIG“把“源码/ARCH/ARM/CONFIGS”目录下的“XXXX_DEFCONFIG“(例如”EXYNOS_DEFCONFIG“)配置文件拷贝到源码顶层目录下,并改名为”CONFIG“。(2)、使用MAKE生成缺省配置MAKEEXYNOS_DEFCONFIG执行该命令后系统会在源码顶层目录下自动生成”CONFIG“文件CONFIGURATIONWRITTENTOCONFIG3、往设备树文件中添加DM9000网卡驱动(1)、参考与自己板子最接近的DEMO板的设备树文件生成自己的设备树文件(直接拷贝修改)。设备树文件在”源码目录/ARCH/ARM/BOOT/DTS/EXYNOS4412FS4412DTS“(2)、在设备树文件中添加网卡设备驱动信息(参考网卡厂商提供的范例代码)示例代码在”DOCUMENTATION/DEVICETREE/BINDINGS/NET/DAVICOMDM9000TXT“,如下DAVICOMDM9000FASTETHERNETCONTROLLERREQUIREDPROPERTIESCOMPATIBLE“DAVICOM,DM9000“REGPHYSICALADDRESSESANDSIZESOFREGISTERS,MUSTCONTAIN2ENTRIESFIRSTENTRYADDRESSREGISTER,SECONDENTRYDATAREGISTERINTERRUPTPARENTINTERRUPTCONTROLLERTOWHICHTHEDEVICEISCONNECTEDINTERRUPTSINTERRUPTSPECIFIERSPECIFICTOINTERRUPTCONTROLLEROPTIONALPROPERTIESDAVICOM,NOEEPROMCONFIGURATIONEEPROMISNOTAVAILABLEDAVICOM,EXTPHYUSEEXTERNALPHYEXAMPLEETHERNET18000000{COMPATIBLE“DAVICOM,DM9000“REGINTERRUPTPARENTINTERRUPTSLOCALMACADDRESS0000DEADBEEFDAVICOM,NOEEPROM}修改并添加ETHERNET05000000{COMPATIBLE“DAVICOM,DM9000“REG/0X05000000为4412处理器的SROM片选地址,详见手册/INTERRUPTPARENT/继承父节点/INTERRUPTS/GPX0节点中断中的第6个,4是标志/LOCALMACADDRESS0000DEADBEEF/网卡地址/DAVICOM,NOEEPROMPINCTRL11000000{GPX0GPX0{GPIOCONTROLLERGPIOCELLSINTERRUPTCONTROLLERINTERRUPTPARENTINTERRUPTS,,,,/中断/,,,INTERRUPTCELLS}}4、修改设备树的MAKEFILE文件设备树的MAKEFILE文件在”XXX/LINUX3191/ARCH/ARM/BOOT/DTS“目录下。(1)、直接添加(2)、为了加快编译速度,删除其他多余的设备树文件,仅保留自己的设备树文件5、内核选配(1)、执行MAKEMENUCONFIG命令通过图形界面方式选配(在源码顶层目录下执行)(2)、添加网络协议支持(3)、添加DM9000网卡设备驱动(4)、添加NFS文件系统支持6、保存配置,编译内核在源码顶层目录下执行”MAKE“命令编译内核7,制作内核镜像GCC编译内核VMLINUXELF头去ELF头IMAGE压缩ZIMAGE加UBOOT特定格式头UIMAGEUBOOT源码的TOOLS会编译出一个X86下运行的应用程序”MKIMAGE“打包UIMAGE把ARCH/ARM/BOOT/ZIMAGE文件拷贝到源码根目录下,然后执行如下命令(事先把UBOOT制作好的MKIMAGE工具拷贝到源码根目录下)/MKIMAGEAARMOLINUXTKERNELCNONEA0X41000000E0X41000040N LINUX3191WNAVY DZIMAGEUIMAGE8、TFTP下载内核镜像并通过NFS挂载根文件系统把编译好的内核景象UIMAGE和设备树EXNOS4412FS4412DTB拷贝到TFTP目录下,打开开发版电源启动内核并挂载文件系统。

    展开全文
  • Linux内核移植 获取源码和修改Makefile 先从NXP获取官方源码,添加到自定义的目录下,然后解压 tar -vxjf linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2 修改顶层Makefile,也就是内核根目录下的Makefile。给ARCH和...
  • linux内核启动流程分析及移植步骤(需要Mindjet MindManager软件打开)
  • s3c2440A linux内核移植步骤 s3c2440A linux内核移植步骤 s3c2440A linux内核移植步骤 s3c2440A linux内核移植步骤 s3c2440A linux内核移植步骤
  • 内核移植
  • 本章,我也是通过修改第三方半导体厂商开发板提供的 Linux BSP 包移植到我们自己的平台上。我选择的是nxp厂商官方的evk开发板,使用他们官方的内核修改为自己板卡的内核。 添加开发板默认配置文件 在编译linux内核...
  • Linux 内核移植步骤

    2018-08-03 15:20:42
    Vi Makefile 修改arch, ... 移植linux内核, 首先需要一个基本的配置(哪些模块有, 哪些功能有) 怎么得到基本配置 : arch/arm/configs 目录下有很多arm 处理器的默认配置 Make exynos_defconfig 等同于 ...
  • linux kernel 移植步骤

    2021-05-17 15:48:52
    linux kernel 移植步骤linux kernel 移植步骤1.准备准备:linux-2.6.32 kernel(linux-2.6.32.tar.bz2)2.目录结构认清kernel的目录结构,了解目录的作用。2.1 根目录目录文件解压并查看:$ tar -xvf linux-2.6.32....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 29,990
精华内容 11,996
关键字:

内核移植步骤