今天编译成功了内核,有点兴奋,编译花了一个多小时,过程中出现了几个警告,每出现一个,我就紧张,怕出错中止咯!
不过最后还是过了!
装载简单的hello.ko时,出现了"Invaild module format"的错,查看/var/log/message,说是内核版本不一致,就是因为我下载的kernel.org上面的标准版的,可是我安的系统是redhat enterprise linux release 5,它的内核是改过的,虽然都是2.6.18.8的,再上网
查,发现说可以
1.修改内核版本来解决(有点麻烦)
2.不使用insmod命令,而是使用modprobe命令强制加载
我选择了第二种,即在命令行里输了
$modprobe ./hello.ko
报错,上网上看了看应该用这种格式 $mobprobe hello
可是,没指定路径,它怎么找到啊,输入命令后果然找不到hello模块,其实不用想也知道,再上网查
有人说要把*.ko拷到/lib/modules/'uname -r'/kernel中去,再使用depmod命令,然后再装载,好吧,试下吧
$cp ./hello.ko /lib/modules/linux-2.6.18-8.el5xen/kernel
$depmod
$modprobe hello
没有报错,呵呵
$lsmod |grep hello
发现hello.ko模块已经装进去了,唉,终于成功了!
咦,怎么没输出啊??
应该装载成功时输出"Hello,world!"的,找了一下/var/log/messages里面,果然有!
卸载下吧:
$rmmod hello
$lsmod | grep hello
hello *****
$cat /var/log/messages |grep Goodbye
***** Goodbye, cruel world
好了,都可以了!
今天还有个小收获,就是看懂了一个命令awk,微不足道啊!
还有就是发现http://j2me-mwt.sourceforge.net/上的这个mwt好好玩啊,呵呵,虽然有点老了,可是还是有价值的,可以学学的创意,还有实现方式!