minicom 是pc上操作uart设备的一个软件工具.
minicom会捕捉用户的键盘输入,并把输入的内容通过uart接口发出去。但不显示发出的内容.
minicom只显示通过uart接口接收到的内容.
为什么接板子后,按键盘会有相应的显示?
1). 板上的uart通过usb线接到pc上. 板子可以通过uart口接收到pc端的uart口发出内容(pc端也可接收到板上发的内容).
2). 板上的uboot对uart数据的处理. uboot会接收uart数据,并会把接收到的内容转发回去(回显).
3). 板上uboot通过uart接收命令, 并把执行命令的结果通过uart口发出去.
///
linux内核的作用: 统一管理软硬件的资源. 而且也统一硬件设备的驱动的接口及应用程序调用的的接口.
//
板子没有有线网卡, 但有提供otg接口, 可以让我们的板子作个虚拟网卡通过usb线接到pc, 在pc上就会多产生一个网络设备。然后pc就可以通过产生的网络设备与板子通信了, 板子也可以通过网络挂载pc上的共享目录.
1). 配置内核,让内核支持此功能.
在原内核配置上,多配的内容:
在内核源码根目录下:
make menuconfig ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
File systems --->
[*] Network File Systems --->
[*] NFS client support for NFS version 3
[*] NFS client support for NFS version 4
Device Drivers --->
[*] USB support --->
<*> USB Gadget Support --->
<M> USB Gadget Drivers //修改成'M',原来是'*'
<M> Ethernet Gadget (with CDC Ethernet support)
修改好后,退出保存。再编译内核(注意不用"make clean")
make uImage ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
再编译驱动模块(也就是选'M'项)
make modules ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
2). 更新内核镜像及文件系统
把板上的SD卡用读卡器接PC上后, 正常情况下会自动把分区挂载到一个目录(如没有则手动挂载)
我的挂载状况:
/dev/sdb1 on /run/media/root/104A-F304
/dev/sdb2 on /run/media/root/linux
cp arch/arm/boot/uImage /run/media/root/104A-F304 //更新内核镜像
make modules_install ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=/run/media/root/linux/ //把编译生成的模块驱动.ko文件放到文件系统的分区里
make modules_install ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=/disk3/h3fs/ //也给PC上的板子文件系统更新,以防SD卡系统挂掉后可以恢复
以上操作完成后, 反挂载后把SD卡接回板子上启动系统.
3).
板子系统启动进入文件系统后, 我们要用的驱动文件就是"/lib/modules/3.4.112/kernel/drivers/usb/gadget/g_ether.ko"
板子端的操作:
modprobe g_ether //加载刚才的ko驱动文件
echo 2 > /sys/devices/platform/sunxi_usb_udc/otg_role //让板子的otg接口作设备用.
//上两步操作完成后, 板子端会多usb0网络设备
接入usb线后,pc端也会多一个网络设备(名字不确定的,我的是enp0s29f7u1)
最后把两端的网络设备设好IP,即可网络通信:
ifconfig usb0 192.168.11.10 //设置板子端的IP
ifconfig enp0s29f7u1 192.168.11.20 //设置PC端的IP
设好即可ping通,也就可以在板子上挂载pc的nfs共享目录.如我pc上nfs共享目录"/disk3/share",则在板子上:
mount 192.168.11.20:/disk3/share /mnt -o nolock