测试环境
kernel version 4.4.49
开始
首先将网口和u盘的驱动都编译成模块,这里省略。
作为U盘
加载模块顺序,注意不按顺序加载模块会出现依赖问题
insmod configfs.ko
insmod libcomposite.ko
insmod usb_f_mass_storage.ko
insmod g_mass_storage.ko file=./test.img stall=n
其中test.img的制作
dd if=/dev/zero of=./test.img bs=1M count=50
加载后在pc段
sudo fdisk -l
找到对应的sdx,将其格式化后,即可作为u盘使用了。
mkfs.ext4 /dev/sdx
卸载模块顺序,注意不按顺序卸载模块会出现依赖问题
rmmod g_mass_storage.ko
rmmod usb_f_mass_storage.ko
rmmod libcomposite.ko
rmmod configfs.ko
作为USB网口
加载模块顺序,注意不按顺序加载模块会出现依赖问题
insmod configfs.ko
insmod libcomposite.ko
insmod u_ether.ko
insmod usb_f_rndis.ko
insmod usb_f_ecm.ko
insmod usb_f_ecm_subset.ko
insmod g_ether.ko
ping
ifconfig usb0 192.168.9.69 up
ping 192.168.9.x (PC usb0 ip)
卸载模块顺序,注意不按顺序卸载模块会出现依赖问题
rmmod g_ether.ko
rmmod usb_f_ecm_subset.ko
rmmod usb_f_rndis.ko
rmmod usb_f_ecm.ko
rmmod u_ether.ko
rmmod libcomposite.ko
rmmod configfs.ko
切换时,因先卸载当前模块,再加载新的模块。