It didn’t show me anything like that. It worked well. Here is what I have - note that I changed couple of things in printk statement but that shouldn’t affect your errors:
__________________________________________________ Program - lx.c #include <linux/module.h> // for printk() #include <linux/mm.h> // for struct page #include <asm/page.h> // for struct page #include <asm/pgtable.h> // for ZERO_PAGE static int __init init_hello( void ) { int i; struct page * zero_page; printk(KERN_ALERT "\n Kello, the first! \n\n" ); i = 0x100; zero_page = ZERO_PAGE(&i); printk(KERN_ALERT " the ZERO address is %p", zero_page); return 0; } static void __exit exit_hello( void ) { printk(KERN_ALERT "\n Goodbye now... \n\n" ); } MODULE_LICENSE("GPL"); module_init(init_hello); module_exit(exit_hello); Makefile obj-m :=lx.o KDIR= /lib/modules/$(shell uname -r)/build all: $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules clean: rm -rf $(wildcard *.o *.ko mo* Mo* *.mod.c) ____________________________________________________ Running make gives me(I’m in a Virtual Machine so the page addresses may be messed up): sunny@ubuntu: make make -C /lib/modules/3.11.0-12-generic/build SUBDIRS=/home/sunny/Documents/ modules make[1]: Entering directory `/usr/src/linux-headers-3.11.0-12-generic' Building modules, stage 2. MODPOST 1 modules make[1]: Leaving directory `/usr/src/linux-headers-3.11.0-12-generic' sunny@ubuntu: sudo insmod lx.ko sunny@ubuntu: sudo rmmod lx sunny@ubuntu: sudo dmesg | tail -6 [48391.359434] Kello, the first! [48391.359434] [48320.368773] the ZERO address is ffffea0000079b40 [48391.359439] the ZERO address is ffffea0000079b40<1>[48411.409906] [48411.409906] Goodbye now... [48411.409906] Hope this helps! Don’t forget to ‘reply all’ so that others in the mailing list could also see your/my problem/solution. - Sunny On Feb 24, 2014, at 7:32 PM, lx <lxlenovos...@gmail.com> wrote: > hi : > If i command the "insmod zero.ko"; the wrong messages is: > ############## > insmod: error inserting 'zero.ko': -1 Unknown symbol in module > ############## > > > 2014-02-25 2:33 GMT+08:00 Sunny <sunda...@gwu.edu>: > Hi, > > I’m not sure about the “pays_base” warning, but your code runs fine in my > machine. What happens if you ignore the warning and load the module anyway? > > - Sunny > > On Feb 24, 2014, at 9:04 AM, lx <lxlenovos...@gmail.com> wrote: > >> hi all: >> the codes is: >> ######################################### >> #include <linux/module.h> // for printk() >> #include <linux/mm.h> // for struct page >> #include <asm/page.h> // for struct page >> #include <asm/pgtable.h> // for ZERO_PAGE >> >> static int __init init_hello( void ) >> { >> int i; >> struct page * zero_page; >> printk( "\n Kello, the first! \n\n" ); >> i = 0x100; >> zero_page = ZERO_PAGE(&i); >> printk(" the ZERO address is %p", zero_page); >> return 0; >> } >> >> static void __exit exit_hello( void ) >> { >> printk( "\n Goodbye now... \n\n" ); >> } >> >> MODULE_LICENSE("GPL"); >> module_init(init_hello); >> module_exit(exit_hello); >> ######################################### >> >> I complier it. by: >> ######################################### >> make -C /lib/modules/`uname -r`/build M=`pwd` >> ######################################### >> >> the results is: >> ######################################### >> [root@localhost kernel_test]# make -C /lib/modules/`uname -r`/build M=`pwd` >> make: Entering directory `/usr/src/kernels/2.6.18-308.el5-x86_64' >> CC [M] /opt/lx/kernel/kernel_test/zero.o >> Building modules, stage 2. >> MODPOST >> WARNING: "phys_base" [/opt/lx/kernel/kernel_test/zero.ko] undefined! >> LD [M] /opt/lx/kernel/kernel_test/zero.ko >> make: Leaving directory `/usr/src/kernels/2.6.18-308.el5-x86_64' >> ######################################### >> >> I try to find the file which defined the "phys_base", for examples; >> phys_base >> >> Defined as a variable in: >> arch/sparc/mm/init.c, line 40 >> arch/sparc64/kernel/sparc64_ksyms.c, line 110 >> arch/sparc64/mm/init.c, line 47 >> include/asm-sparc/page.h, line 160 >> include/asm-sparc/pgtable.h, line 122 >> include/asm-sparc64/pgtable.h, line 227 >> >> But I can't find the file of init.c in my computer. Please tell me some ways >> to solve it, thank you. >> >> _______________________________________________ >> Kernelnewbies mailing list >> Kernelnewbies@kernelnewbies.org >> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies > >
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies