一、思路
上一节我们通过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-08 10:16
设计资源 培训 开发板 精华推荐
- STC8G扩展版_温湿度扩展模块
- LTM8032EV 演示板、超低噪声 36V、2A DC/DC 模块稳压器
- nokia_5110驱动板
- AD8604DRUZ 低侧运算放大器电流监视器的典型应用
- THCV215/216-8LANE,基于 THCV215 和 THCV216 的 SerDes 发送器和接收器评估板
- 使用 Nuvoton Technology Corporation 的 ISD1740 的参考设计
- LT6656AIDC-2.048、2.048V 升压型输出电流电压基准的典型应用
- 用于 MCU 系统负载感应的 NCP301LSN45T1 4.5V 电压检测器的典型应用
- NRF24L01无线模块(程序+原理图+芯片资料)
- 4463C-915-PDK,用于 Si4463 915-MHz 射频收发器的 EZRadio-PRO 无线开发套件
- 直击富士通在线展会,答题赢好礼
- 2021 STM32全国巡回研讨会!
- 有奖直播|多款MSP430™片上Sigma-Delta ADC助力高精度信号检测应用 报名中
- 了解泰克新品P7700探头,答题赢好礼!
- 有奖技术直播:Keysight量子计算测量方案线上研讨会
- 答题有好礼 | 是德科技《优化物联网设备电池续航时间的4个技巧》
- 读故事写评语喽~ 踩过坑的你是否期待更贴心智能的客户支持,KeysightCare邀您抢楼赢礼!
- 免费申请评测:1.3元起的国产USB和Touchkey单片机CH554评估板
- TI 嵌入式处理主题直播月|报名观看直播赢好礼【低功耗WiFi MCU、Sitara AM57X平台、机器学习】
- 雅特力AT32WB415系列蓝牙BLE 5.0 MCU,免费抢鲜体验!