linux驱动模块 卸载失败的问题
本意是想通过shell脚本实现u盘自动升级应用程序,
Assembly code
cp /mnt/udisk1/app/* /app/
sync
killall -9 client
killall -9 mginit
rmmod ps2
rmmod ctlio
rmmod mcp251xcan
rmmod spi_ps2
cd /lib/modules/usrmodules/
insmod ctlio.ko
insmod mcp251xcan.ko
insmod spi_ps2.ko
insmod ps2.ko
cd /app
./mginit &
cd ../
两个进程都有使用驱动模块,本想先cp u盘的应用程序到app目录,在kill掉进程后,在rmmod模块,在insomd后,在启动应用程序,
运行这段脚本后,终端会提示以下警告信息:
rmmod: remove 'ps2': Resource temporarily unavailable
rmmod: remove 'ctlio': Resource temporarily unavailable
rmmod: remove 'mcp251xcan': Resource temporarily unavailable
insmod: can't insert 'ctlio.ko': File exists
insmod: can't insert 'mcp251xcan.ko': File exists
insmod: can't insert 'ps2.ko': File exists
但是如果上面脚本的步骤,通过在shell终端中手动一步一步输入,则不会出现任何警告信息?
不知道这两种方式有神马区别,怎样实现从u盘自动更新进程文件呢??
------解决方案--------------------这样rmmod删除得不够彻底,在已挂载的目录下还有相应的驱动名,所以后面是加载不上的
------解决方案--------------------驱动如果在使用中你是删除不掉的,只能强行删进程。