abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 01:00 | Komunita

    Debian dnes slaví 32 let. Ian Murdock oznámil vydání "Debian Linux Release" 16. srpna 1993.

    Ladislav Hagara | Komentářů: 0
    včera 17:44 | IT novinky

    Policisté zadrželi odsouzeného drogového dealera Tomáše Jiřikovského, který daroval ministerstvu spravedlnosti za tehdejšího ministra Pavla Blažka (ODS) bitcoiny v miliardové hodnotě, a zajistili i darovanou kryproměnu. Zadržení Jiřikovského může být podle ministerstva důležité k rozuzlení kauzy, která vypukla koncem května a vedla ke konci Blažka. Zajištění daru podle úřadu potvrzuje závěry dříve publikovaných právních

    … více »
    Ladislav Hagara | Komentářů: 5
    včera 13:44 | IT novinky

    Administrativa amerického prezidenta Donalda Trumpa jedná o možném převzetí podílu ve výrobci čipů Intel. Agentuře Bloomberg to řekly zdroje obeznámené se situací. Akcie Intelu v reakci na tuto zprávu výrazně posílily. Trump minulý týden označil Tana za konfliktní osobu, a to kvůli jeho vazbám na čínské společnosti, čímž vyvolal nejistotu ohledně dlouholetého úsilí Intelu o obrat v hospodaření. Po pondělní schůzce však prezident o šéfovi Intelu hovořil příznivě.

    Ladislav Hagara | Komentářů: 3
    včera 05:44 | IT novinky

    Společnost Purism stojící za linuxovými telefony a počítači Librem má nově v nabídce postkvantový šifrátor Librem PQC Encryptor.

    Ladislav Hagara | Komentářů: 9
    14.8. 18:00 | Nová verze

    VirtualBox, tj. multiplatformní virtualizační software, byl vydán v nové verzi 7.2. Přehled novinek v Changelogu. Vypíchnou lze vylepšené GUI.

    Ladislav Hagara | Komentářů: 0
    14.8. 14:11 | IT novinky

    Eric Migicovsky, zakladatel společnosti Pebble, v lednu oznámil, že má v plánu spustit výrobu nových hodinek Pebble s již open source PebbleOS. V březnu spustil předprodej hodinek Pebble Time 2 (tenkrát ještě pod názvem Core Time 2) za 225 dolarů s dodáním v prosinci. Včera představil jejich konečný vzhled (YouTube).

    Ladislav Hagara | Komentářů: 15
    14.8. 12:44 | Zajímavý software

    Byla oznámena nativní podpora protokolu ACME (Automated Certificate Management Environment) ve webovém serveru a reverzní proxy NGINX. Modul nginx-acme je zatím v preview verzi.

    Ladislav Hagara | Komentářů: 1
    14.8. 12:22 | Nová verze

    Vývojáři KDE oznámili vydání balíku aplikací KDE Gear 25.08. Přehled novinek i s náhledy a videi v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    13.8. 11:55 | IT novinky

    Společnost Perplexity AI působící v oblasti umělé inteligence (AI) podala nevyžádanou nabídku na převzetí webového prohlížeče Chrome internetové firmy Google za 34,5 miliardy dolarů (zhruba 723 miliard Kč). Informovala o tom včera agentura Reuters. Upozornila, že výše nabídky výrazně převyšuje hodnotu firmy Perplexity. Společnost Google se podle ní k nabídce zatím nevyjádřila.

    Ladislav Hagara | Komentářů: 5
    13.8. 04:33 | Bezpečnostní upozornění

    Intel vydal 34 upozornění na bezpečnostní chyby ve svých produktech. Současně vydal verzi 20250812 mikrokódů pro své procesory řešící 6 bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 0
    Kolik tabů máte standardně otevřeno ve web prohlížeči?
     (52%)
     (19%)
     (4%)
     (5%)
     (3%)
     (1%)
     (1%)
     (17%)
    Celkem 396 hlasů
     Komentářů: 23, poslední 4.8. 13:01
    Rozcestník

    Dotaz: Chyba při kompilci modulu

    16.7.2006 00:16 diverman | skóre: 32 | blog: život s tučňáčkem
    Chyba při kompilci modulu
    Přečteno: 99×
    Ahoj, pokouším se naučit zase něco nového, ale zasekl jsem se na problému. Kompiluji modul podle tohoto článku.

    hello.c:
    #ifdef MODULE
    
    #include <linux/kernel.h>
    #include <linux/module.h>
    #include <linux/init.h>
    
    EXPORT_NO_SYMBOLS;
    
    /* Protos */
    static int hello_init(void) __init;
    static void hello_exit(void) __exit;
    
    /* Module Lifecycle */
    module_init(hello_init);
    module_exit(hello_exit);
    
    static int __init hello_init(void)
    {
            printk(KERN_INFO "Hello world !!!\n");
            return 0;
    }
    
    static void __exit hello_exit(void)
    {
    	printk(KERN_INFO "Bye Bye !!!\n");
            return;
    }
    
    #endif /* MODULE */
    
    Makefile:
    
    all: hello.o
    hello.o: hello.c
    	gcc -Wall -O2 -I /usr/src/linux/include -D__KERNEL__ -DMODULE -o hello.o -c  hello.c
    
    chyba:
    gcc -Wall -O2 -I /usr/src/linux/include -D __KERNEL__ -D MODULE -o hello.o -c  hello.c
    In file included from /usr/src/linux/include/asm/processor.h:18,
                     from /usr/src/linux/include/asm/thread_info.h:17,
                     from /usr/src/linux/include/linux/thread_info.h:21,
                     from /usr/src/linux/include/linux/preempt.h:10,
                     from /usr/src/linux/include/linux/spinlock.h:50,
                     from /usr/src/linux/include/linux/capability.h:45,
                     from /usr/src/linux/include/linux/sched.h:7,
                     from /usr/src/linux/include/linux/module.h:10,
                     from hello.c:4:
    /usr/src/linux/include/asm/system.h: In function '__set_64bit_var':
    /usr/src/linux/include/asm/system.h:210: warning: dereferencing type-punned pointer will break strict-aliasing rules
    /usr/src/linux/include/asm/system.h:210: warning: dereferencing type-punned pointer will break strict-aliasing rules
    In file included from /usr/src/linux/include/linux/rwsem.h:27,
                     from /usr/src/linux/include/asm/semaphore.h:42,
                     from /usr/src/linux/include/linux/sched.h:20,
                     from /usr/src/linux/include/linux/module.h:10,
                     from hello.c:4:
    /usr/src/linux/include/asm/rwsem.h: In function '__down_read':
    /usr/src/linux/include/asm/rwsem.h:105: error: syntax error before 'KBUILD_BASENAME'
    /usr/src/linux/include/asm/rwsem.h: In function '__down_write':
    /usr/src/linux/include/asm/rwsem.h:157: error: syntax error before 'KBUILD_BASENAME'
    /usr/src/linux/include/asm/rwsem.h: In function '__up_read':
    /usr/src/linux/include/asm/rwsem.h:194: error: syntax error before 'KBUILD_BASENAME'
    /usr/src/linux/include/asm/rwsem.h:188: warning: unused variable 'tmp'
    /usr/src/linux/include/asm/rwsem.h: In function '__up_write':
    /usr/src/linux/include/asm/rwsem.h:220: error: syntax error before 'KBUILD_BASENAME'
    /usr/src/linux/include/asm/rwsem.h: In function '__downgrade_write':
    /usr/src/linux/include/asm/rwsem.h:245: error: syntax error before 'KBUILD_BASENAME'
    In file included from /usr/src/linux/include/linux/sched.h:20,
                     from /usr/src/linux/include/linux/module.h:10,
                     from hello.c:4:
    /usr/src/linux/include/asm/semaphore.h: In function 'down':
    /usr/src/linux/include/asm/semaphore.h:105: error: syntax error before 'KBUILD_BASENAME'
    /usr/src/linux/include/asm/semaphore.h: In function 'down_interruptible':
    /usr/src/linux/include/asm/semaphore.h:130: error: syntax error before 'KBUILD_BASENAME'
    /usr/src/linux/include/asm/semaphore.h: In function 'down_trylock':
    /usr/src/linux/include/asm/semaphore.h:155: error: syntax error before 'KBUILD_BASENAME'
    /usr/src/linux/include/asm/semaphore.h: In function 'up':
    /usr/src/linux/include/asm/semaphore.h:179: error: syntax error before 'KBUILD_BASENAME'
    In file included from /usr/src/linux/include/asm/smp.h:18,
                     from /usr/src/linux/include/linux/smp.h:19,
                     from /usr/src/linux/include/linux/sched.h:26,
                     from /usr/src/linux/include/linux/module.h:10,
                     from hello.c:4:
    /usr/src/linux/include/asm/mpspec.h:6:25: error: mach_mpspec.h: není souborem ani adresářem
    In file included from /usr/src/linux/include/asm/smp.h:18,
                     from /usr/src/linux/include/linux/smp.h:19,
                     from /usr/src/linux/include/linux/sched.h:26,
                     from /usr/src/linux/include/linux/module.h:10,
                     from hello.c:4:
    /usr/src/linux/include/asm/mpspec.h: At top level:
    /usr/src/linux/include/asm/mpspec.h:8: error: 'MAX_MP_BUSSES' undeclared here (not in a function)
    /usr/src/linux/include/asm/mpspec.h:23: error: 'MAX_IRQ_SOURCES' undeclared here (not in a function)
    In file included from /usr/src/linux/include/linux/smp.h:19,
                     from /usr/src/linux/include/linux/sched.h:26,
                     from /usr/src/linux/include/linux/module.h:10,
                     from hello.c:4:
    /usr/src/linux/include/asm/smp.h:77:26: error: mach_apicdef.h: není souborem ani adresářem
    In file included from /usr/src/linux/include/linux/smp.h:19,
                     from /usr/src/linux/include/linux/sched.h:26,
                     from /usr/src/linux/include/linux/module.h:10,
                     from hello.c:4:
    /usr/src/linux/include/asm/smp.h: In function 'hard_smp_processor_id':
    /usr/src/linux/include/asm/smp.h:81: warning: implicit declaration of function 'GET_APIC_ID'
    hello.c: At top level:
    hello.c:7: warning: type defaults to 'int' in declaration of 'EXPORT_NO_SYMBOLS'
    hello.c:7: warning: data definition has no type or storage class
    make: *** [hello.o] Error 1
    
    uname -r: 2.6.16.20, /usr/src/linux->/usr/src/linux-2.6.16.20
    deb http://ftp.cz.debian.org/debian jessie main contrib non-free

    Odpovědi

    16.7.2006 01:02 Marble | skóre: 27 | blog: marble
    Rozbalit Rozbalit vše Re: Chyba při kompilci modulu
    Moduly do jádra 2.6 by se měly kompilovat přímo pomocí makefile jádra. Více info je v linux/Documentation/kbuild/modules.txt. (Nejsem si úplně jistý, že je to příčina uvedených chyb, ale rozhodně je lepší kompilovat uvedeným způsobem.)

    EXPORT_NO_SYMBOLS je v 2.6 standardní chování, takže netřeba psát (ale asi nevadí), #include <linux/kernel.h> mám pocit do modulu nepatří (ale opět nevím, jestli to vadí).

    Jinak asi nejlepší dokumentace (hlavně jedna z mála aktuálních) je knížka Linux Device Drivers (třetí vydání, pro 2.6 jádro) od O'Reilly. Dá se stáhnout jako PDFko (odkaz nevím, ale předpokládám, že půjde jednoduše najít; pokud ne, můžu někam hodit).
    16.7.2006 02:23 diverman | skóre: 32 | blog: život s tučňáčkem
    Rozbalit Rozbalit vše Re: Chyba při kompilci modulu
    deb http://ftp.cz.debian.org/debian jessie main contrib non-free
    Luk avatar 23.7.2006 17:27 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Chyba při kompilci modulu
    Česky je to popsáno v mém článku v LinuxExpresu. Makefile je vcelku primitivní, ale má poněkud jinou podobu než u běžných programů.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.