一、思路
上一节我们通过DNW将内核、文件系统、设备树文件烧入到内存中,并使用bootm启动内核:bootm0x40600000 0x41000000 0x42000000。因为此时内核并没有SD卡驱动,和EMMC驱动,我们只能直接将系统拷贝至内存中然后启动。当时我们进入文件系统后,并无法挂载外面的网络文件系统,对开发带来很多不便,所以这一节,我们移植网卡,让系统启动后可以挂接虚拟机中的网络文件系统,或者直接挂载虚拟机中的网络文件系统。
实验参考摩斯电码的博客:http://www.cnblogs.com/pengdonglin137/p/5153794.html
tiny4412网卡跟DM9000差别很大,DM9000是内存接口,移植容易, tiny4412使用的网卡芯片是DM9621,是usb接口的,而且并没有直接连接到exynos4412上,中间通过一个hub芯片usb4640,然后usb4640通过HSIC接口(XhsicSTROBE0和XhsicDATA0)连接到exynos4412上。
DM9621的驱动在Linux4.4中在driver/net/usb/dm9601.c中实现了,我们需要在内核配置中将DM9601的驱动编译进内核。
make menuconfig
Device Drivers --->
Network device support --->
USB Network Adapters --->
Davicom DM96xx based USB 10/100ethernet devices
此外,最关键的是要在设备树中将用到的片内外设使能:如hsi、ehci、ohci、otg等等。执行完这些操作后,板子上的三个usb口(USBH1/USBH2/USBH3)都可以识别了,即可以插入U盘等设备了。
二、内核修改的地方主要如下:
(1)arch/arm/boot/dts/exynos4412-tiny4412.dts
(2)drivers/net/usb/dm9601.c
(3)drivers/usb/misc/Kconfig
(4)drivers/usb/misc/Makefile
(5)drivers/usb/misc/usb4640.c(新建)
(6)include/dt-bindings/usb4640/usb4640.h(新建)
(7)include/Linux/platform_data/usb4640.h(新建)
三、测试
对内核做如上修改后,编译并下载
1、编译
make mrproper
cp tiny4412_defconfig .config
make uImage LOADADDR=0x40008000 -j2
make dtbs
2、下载
下载内核、文件系统、设备树文件
#u-boot:dnw 0x40600000
dnw arch/arm/boot/uImage.
#u-boot:dnw 0x41000000
dnw ramdisk.img
#u-boot:dnw 0x42000000
dnw arch/arm/boot/dts/exynos4412-tiny4412.dtb
启动内核使用bootm启动内核:
bootm 0x40600000 0x41000000 0x42000000
3、测试
ifconfig eth0 192.168.1.125
ping 192.168.1.123
mount -t nfs -o nolock192.168.1.123:/work/nfs/filesystem /mnt
4、从网络文件系统启动
#u-boot:
setenv bootargs 'root=/dev/nfs rw nfsroot=192.168.1.123:/work/nfs/filesystem ethmac=1C:6F:65:34:51:7E ip=192.168.1.125:192.168.1.123:192.168.1.1:255.255.255.0::eth0:off console=ttySAC0,115200 init=/linuxrc'
#u-boot:save
#u-boot:dnw 0x40600000
dnw arch/arm/boot/uImage
#u-boot:dnw 0x42000000
dnw arch/arm/boot/dts/exynos4412-tiny4412.dtb
bootm 0x40600000 - 0x42000000
四、源码下载
Git clone https://github.com/fengyuwuzu0519/linux4_forTiny4412.git
git clone https://github.com/fengyuwuzu0519/rootfs_forTiny4412
文件系统git下了少东西,则创建如下:
(mkdir dev proc sys tmp var mknod dev/console c 5 1)
git clone https://github.com/fengyuwuzu0519/u-boot_forTiny4412
make distclean
make tiny4412_config
make
内核修改的代码下载链接:
http://download.csdn.net/detail/fengyuwuzu0519/9887164
上一篇:分享tiny4412,emmc烧录u-boot, 支持fastboot模式烧写emmc
下一篇:tiny4412学习(四)之移植linux-设备树(1)设备树基础知识及中断
推荐阅读最新更新时间:2024-11-17 16:35
推荐帖子
- 关于光耦点击屏幕遇到的问题
- 自制一个吃鸡神器,模拟人手点击,用一个NE555方波发生器,可调频率,带动光耦,光耦发射极连接铝箔纸,贴到屏幕,集电极可以用手触摸,也可以用5v电源正极代替人手点击。但是遇到个问题,我用手机充电器头做5v电源(5v1a5v2a),电路正常都可工作,但是用3.7v锂电池升压到5v1a,5v电源正极代替人手点击,屏幕无反应,求助个解决办法。关于光耦点击屏幕遇到的问题猜测是你的锂电池以及升压电路对大地的分布电容比较人体对地分布电容要小。可以试试在Vcc端拖根长线,感应空间电磁干扰。
- zg2600 DIY/开源硬件专区
- 电池使用时间计算
- 公式BLT=电池额定容量/负载电流*0.70中,,为什么最后要*0.7电池使用时间计算因为电池在放电过程中是有损耗的,比如标1000mAH,实际在用在电路中的好像只有七八百mAH。这个是经验公式,没有标准规范约束电池的充电时间是由电池容量和充电电流决定的 比如,最早的邮电部行业标准YD/T998-1999规定,0.01C为充电结束电流,不管电池容量多大,国标规定的0.01C有助于充电更饱满。国标规定充电时间不超过8h,即使还没有达到0.01C,8小
- GuthrieLi 模拟电子
- 用C#如何封装函数生成dll文件
- ARM的程序基本写完了,现在要跟上位机通讯,需要封装一个dll文件,供上位机调用,用网口连接的!没做过,不会写啊,请高手赐教!感激不尽!本人QQ:656691002,会的加我,教教我吧!谢谢了!用C#如何封装函数生成dll文件没用过这个C#,顶一下吧。回复楼主amy_shen的帖子在项目-》属性里面,应用程序-输出类型,选择类库回复楼主amy_shen的帖子原帖由qinshi1208于2012-5-1411:01发表在项目-》属性里面,应
- amy_shen 微控制器 MCU
- 一个关于 NIOS II processor 的问题
- while(1) { mask=IORD_ALTERA_AVALON_PIO_DATA(PIO_BUTTON_BASE); switch(mask) { case0x01:led=clBlu;break; case0x02:led=clRed;break; case0x04:led=clGre;break;
- cnic 嵌入式系统
- 现在学习AVR是不上已经过时了?
- 现在学习AVR是不上已经过时了?现在学习AVR是不上已经过时了?课本上的8051是不是早就过时了?能用到就永远不过时不晚。如果是作为学习的话还不错,如果做产品的话要慎重打好基础后,具体用什么芯片只用看看它的手册即可。在学知识时,有管什么芯片,学会就行,一能百通。技术室没有止境的。什么叫过时。就算过时大致原来还是原来那里出来的。对于掌握嵌入式系统开发而言,所有MCU是相通的,自然谈不上什么“过时”的问题。不过,比纯粹的“嵌入式开发”更重要的是基础电路的设计、理解能力,包括基本模拟和数
- stonewxd Microchip MCU
- 转一篇文章:卷积神经网络CNN完全指南。写的蛮好的。
- 转自:https://www.toutiao.com/article/71491300338386048341】导论先来说一写题外话...研究生入学后就被导师逼着学习神经网络,一开始非常盲目,先是在网上搜了一大堆的资料,各种什么一文读懂卷积神经纹网络,叫你三分钟搭建属于自己的神经网络框架,五分钟速读神经网络全解,之类的文章层出不穷。看了太多导致的结果是,学了很久都没能真正意义上地入门。而后自己艰辛摸索才慢慢了解了卷积神经网络的真谛。(好官方啊哈哈哈哈哈哈)
- freebsder 嵌入式系统
设计资源 培训 开发板 精华推荐
- 使用 AD5453、14 位、1 通道电流输出 DAC 系列的可编程增益元件
- VND7E025AJ评估板
- LTC3108EDE-1 演示板、超低电压升压转换器和电源管理器
- Eizz Factory 电吉他法滋效果器
- LT1021CCH-5 精密 DAC 电压基准的典型应用
- MTRCKTSPS5744P: MPC5744P 3相PMSM开发套件
- 具有 PWM 调光功能的 NSI45015WT1G LED 灯串的典型应用
- LTC2908CTS8-A1、12V、5V、3.3V、2.5V、1.8V、1V六电源监视器的典型应用电路
- 【物联网】鸿蒙物联网智能WiFi开关
- LT1121ACS8-5 5V 低压差稳压器的典型应用电路,用于具有关断的电池供电电源
- TI C2000TM的信号链实时性评测和使用教程
- 泰科电子工业事业部邀您云逛展 ——打破时间、空间的限制,TE Connectivity 线上工博会为您带来沉浸式VR观展体验
- 安世半导体&世平集团 Nexperia 在5G基础架构的应用 下载赢好礼!
- 技术直播:TI 60G毫米波传感器概述和应用介绍,种草封装了天线的智能传感器IWR6843
- 【芯币兑换】活动一:用社区芯币兑换51开发板PCB板!
- 2023 Digikey KOL 视频系列第一期
- 直播已结束【ADI 低噪声 Buck 稳压器如何减小电源噪声】
- 有奖直播:ADI 惯性 MEMS 传感器的应用价值与选型
- 下载 Intel白皮书 多重好礼等你拿!