ווטסאפ - לינוקס, BSD, קוד פתוח ותוכנה חופשית בעברית. Whatsup - Linux, BSD, open source and free software in Hebrew

 
 
  כניסת חברים · רישום · שכחתי סיסמה  
tux the penguin
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
אש (לא מחובר)אורח · ·
 

הודעה פורסם: 27/02/2015 - 00:07
נושא ההודעה: התקנת מודול קרנל אם פאטצ' ידני על אובונטו PPC

אני מנסה לעזור לחבר

הוא מריץ אובונטו powerpc על MDD (מחשב אפל powerpc 3.6 דגם firewire 800, אם 2 מעבדי G4 7455B), ואנחנו מנסים להפעיל על האובונטו מכונה וירטואלית בה ניתן להריץ גרסה ישנה של OS X, אותה אחת שהיתה מותקנת במקור על המחשב עצמו

המדריכים בהם השתמשנו :
https://techuman.wordpress.com/2014/04/24/lubuntu-14-04-lts-powerpc-virtualized-on-g4/
http://askubuntu.com/questions/515407/how-recipe-to-build-only-one-kernel-module

אנחנו מנסים להתקין KVM אם הפאטצ' שנמצא בלינק הראשון. לא ממש מקבלים שגיאות, אבל גם לא מקבלים מודול....

זה מה שהפעלנו וקיבלנו :

הכנות כלליות
קוד:

$ cd
$ mkdir kernel
$ cd kernel
$ apt-get source linux-image-`uname -r`
$ ls -al

total 122020
drwxrwxr-x 2 dez dez 4096 Feb 25 20:58 .
drwxr-xr-x 17 dez dez 4096 Feb 25 18:46 ..
-rw-r--r-- 1 root root 8502791 Feb 12 15:43 linux_3.13.0-46.75.diff.gz
-rw-r--r-- 1 root root 11783 Feb 12 15:43 linux_3.13.0-46.75.dsc
-rw-r--r-- 1 root root 116419243 Feb 3 2014 linux_3.13.0.orig.tar.gz

$ cd linux-3.13.0
$ make oldconfig

HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/zconf.lex.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
In file included from scripts/kconfig/zconf.tab.c:2537:0:
scripts/kconfig/menu.c: In function ‘get_symbol_str’:
scripts/kconfig/menu.c:587:18: warning: ‘jump’ may be used uninitialized in this function [-Wmaybe-uninitialized]
jump->offset = strlen(r->s);
^
scripts/kconfig/menu.c:548:19: note: ‘jump’ was declared here
struct jump_key *jump;
^
HOSTLD scripts/kconfig/conf
scripts/kconfig/conf --oldconfig Kconfig
#
# using defaults found in /boot/config-3.13.0-46-powerpc-smp
#
warning: (MPC836x_RDK && MTD_NAND_FSL_ELBC && MTD_NAND_FSL_UPM) selects FSL_LBC which has unmet direct dependencies (FSL_SOC)
#
# configuration written to .config
#

$ make prepare

scripts/kconfig/conf --silentoldconfig Kconfig
warning: (MPC836x_RDK && MTD_NAND_FSL_ELBC && MTD_NAND_FSL_UPM) selects FSL_LBC which has unmet direct dependencies (FSL_SOC)
warning: (MPC836x_RDK && MTD_NAND_FSL_ELBC && MTD_NAND_FSL_UPM) selects FSL_LBC which has unmet direct dependencies (FSL_SOC)
CHK include/config/kernel.release
UPD include/config/kernel.release
WRAP arch/powerpc/include/generated/asm/clkdev.h
WRAP arch/powerpc/include/generated/asm/rwsem.h
WRAP arch/powerpc/include/generated/asm/trace_clock.h
WRAP arch/powerpc/include/generated/asm/preempt.h
WRAP arch/powerpc/include/generated/asm/vtime.h
CHK include/generated/uapi/linux/version.h
UPD include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
UPD include/generated/utsrelease.h
CC kernel/bounds.s
GEN include/generated/bounds.h
CC arch/powerpc/kernel/asm-offsets.s
GEN include/generated/asm-offsets.h
CALL scripts/checksyscalls.sh
<stdin>:1226:2: warning: #warning syscall sched_setattr not implemented [-Wcpp]
<stdin>:1229:2: warning: #warning syscall sched_getattr not implemented [-Wcpp]
<stdin>:1232:2: warning: #warning syscall renameat2 not implemented [-Wcpp]
<stdin>:1235:2: warning: #warning syscall seccomp not implemented [-Wcpp]

$ make scripts

HOSTCC scripts/dtc/checks.o
HOSTCC scripts/dtc/data.o
SHIPPED scripts/dtc/dtc-lexer.lex.c
SHIPPED scripts/dtc/dtc-parser.tab.h
HOSTCC scripts/dtc/dtc-lexer.lex.o
SHIPPED scripts/dtc/dtc-parser.tab.c
HOSTCC scripts/dtc/dtc-parser.tab.o
HOSTCC scripts/dtc/dtc.o
HOSTCC scripts/dtc/flattree.o
HOSTCC scripts/dtc/fstree.o
HOSTCC scripts/dtc/livetree.o
HOSTCC scripts/dtc/srcpos.o
HOSTCC scripts/dtc/treesource.o
HOSTCC scripts/dtc/util.o
HOSTLD scripts/dtc/dtc
HOSTCC scripts/genksyms/genksyms.o
SHIPPED scripts/genksyms/lex.lex.c
SHIPPED scripts/genksyms/keywords.hash.c
SHIPPED scripts/genksyms/parse.tab.h
HOSTCC scripts/genksyms/lex.lex.o
SHIPPED scripts/genksyms/parse.tab.c
HOSTCC scripts/genksyms/parse.tab.o
HOSTLD scripts/genksyms/genksyms
CC scripts/mod/empty.o
HOSTCC scripts/mod/mk_elfconfig
MKELF scripts/mod/elfconfig.h
CC scripts/mod/devicetable-offsets.s
GEN scripts/mod/devicetable-offsets.h
HOSTCC scripts/mod/file2alias.o
HOSTCC scripts/mod/modpost.o
HOSTCC scripts/mod/sumversion.o
HOSTLD scripts/mod/modpost
HOSTCC scripts/selinux/genheaders/genheaders
HOSTCC scripts/selinux/mdp/mdp
HOSTCC scripts/kallsyms
HOSTCC scripts/conmakehash
HOSTCC scripts/asn1_compiler

$ cp -v /usr/src/linux-headers-$(uname -r)/Module.symvers .

‘/usr/src/linux-headers-3.13.0-46-powerpc-smp/Module.symvers’ -> ‘./Module.symvers’


התקנת הפאטצ'
קוד:

$ cp ~/a2363ccd8f9bc52339576b2420e0eea54e92df84.patch ./
$ patch -p1 < a2363ccd8f9bc52339576b2420e0eea54e92df84.patch

patching file arch/powerpc/kvm/book3s.c
Hunk #1 succeeded at 862 (offset -24 lines).
Hunk #2 succeeded at 871 (offset -24 lines).
Hunk #3 FAILED at 905.
1 out of 3 hunks FAILED -- saving rejects to file arch/powerpc/kvm/book3s.c.rej
patching file arch/powerpc/kvm/book3s_pr.c
Hunk #1 succeeded at 1202 (offset 49 lines).
Hunk #2 succeeded at 1247 (offset 49 lines).
Hunk #3 succeeded at 1264 (offset 49 lines).


בדיקה מהירה של השורה בקובץ הקוד מול קובץ הפאטצ' מראה שהפאטצ' כן הכניס את השינויים הנכונים בקובץ המקור כפי שהיה אמור להיות, כלומר הפאטצ' לא באמת FAILED :
קוד:

$ cat arch/powerpc/kvm/book3s.c |head -n 910
....
....
static void kvmppc_book3s_exit(void)
{
#ifdef CONFIG_KVM_BOOK3S_32_HANDLER
kvmppc_book3s_exit_pr();
#endif
kvm_exit();
}
....
....


קימפול המודול
קוד:

$ cd arch/powerpc/kvm/
$ make -C /lib/modules/$(uname -r)/build M=$(pwd) modules

make: Entering directory `/usr/src/linux-headers-3.13.0-46-powerpc-smp'
Building modules, stage 2.
MODPOST 0 modules
make: Leaving directory `/usr/src/linux-headers-3.13.0-46-powerpc-smp'

$ make -C /lib/modules/$(uname -r)/build M=$(pwd) modules_install

make: Entering directory `/usr/src/linux-headers-3.13.0-46-powerpc-smp'
mkdir: cannot create directory ‘/lib/modules/3.13.0-46-powerpc-smp/extra’: Permission denied
make: *** [_emodinst_] Error 1
make: Leaving directory `/usr/src/linux-headers-3.13.0-46-powerpc-smp'


שכחנו sudo, אבל זה איפשר לנו לראות איפה אמורים לנחות קבצי ה ko שנוצרים - אם הם היו נוצרים
קוד:

$ sudo make -C /lib/modules/$(uname -r)/build M=$(pwd) modules_install

[sudo] password for dez:
make: Entering directory `/usr/src/linux-headers-3.13.0-46-powerpc-smp'
DEPMOD 3.13.0-46-powerpc-smp
make: Leaving directory `/usr/src/linux-headers-3.13.0-46-powerpc-smp'


ו.. התיקיה נוצרת אבל נשארת ריקה
קוד:

$ ls -al /lib/modules/3.13.0-46-powerpc-smp/extra

total 8
drwxr-xr-x 2 root root 4096 Feb 25 21:31 .
drwxr-xr-x 5 root root 4096 Feb 25 21:31 ..


היי, האם בקונפיג ברירת המחדל בכלל יש kvm ?הרצנו קונפיג ידני בשביל לוודא, אבל כל מה שנראה קשור אכן היה מופעל.... יש לציין שהרבה מהאפשרויות היו נעולות על "*" (קומפול לתוך הקרנל) ללא אפשרות לבטל או להחליף ל "M" (קימפול כמודול)
קוד:

$ cd ../../..
$ make menuconfig


גוגל נוסף הביא לכך שצריך להתקין חבילה שנקראת kvm, התקננו אותה אבל זה לא שינה כלום
קוד:

$ sudo apt-get install kvm

ניסינו גם להפעיל מחדש, למקרה שמשהוא אמור לעלות אם הקרנל לפניי שנוכל לעלות את המודול. לא השתנה כלום

ניסיון לבנות מחדש את הקונפיג של הקרנל (בתיקיית הקוד מקור) או לקמפל את המודולים לא משנה כלום



בכללי, מה שאנחנו רוצים עדיין לא עובד :
קוד:

$ sudo modprobe kvm

modprobe: FATAL: Module kvm not found.

$ sudo qemu-system-ppc -m 1024 -M g3beige -hda macosx.img -boot c -prom-env 'boot-args=-v' -g 1024x768x32 -enable-kvm

Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory




האם אנחנו מפספסים משהוא ?

- אש
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
WobnI - offlineאורח · ·
 

הודעה פורסם: 27/02/2015 - 09:40
נושא ההודעה:

כן, הפאטץ' שלך לא עבר, לא סתם קיבלת FAILED, רשום לך שם באיזו שורה ואת הקובץ בו נמצא הקוד שכשל.
תראה מה הקוד שלא עבר ותכניס אותו ידנית.
לאחר מכן תנסה שוב את שאר הבנייה.
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אש (לא מחובר)אורח · ·
 

הודעה פורסם: 27/02/2015 - 17:17
נושא ההודעה:

זהו, שתוכן קובץ הפאטצ' הוא
קוד:

....
....
@@ -905,7 +905,7 @@ module_init(kvmppc_book3s_init);
 module_exit(kvmppc_book3s_exit);
 
 /* On 32bit this is our one and only kernel module */
-#ifdef CONFIG_KVM_BOOK3S_32
+#ifdef CONFIG_KVM_BOOK3S_32_HANDLER
 MODULE_ALIAS_MISCDEV(KVM_MINOR);
 MODULE_ALIAS("devname:kvm");
 #endif
....
....


ובדיקה של הקובץ arch/powerpc/kvm/book3s.c לאחר הרצת הפאטצ' מראה שאכן השורה הרלוונטית היא
קוד:

#ifdef CONFIG_KVM_BOOK3S_32_HANDLER


כלומר שהפאטצ' כן הכניס את השינוי, גם כשורה בה הוא חושב שהוא "FAILED"

האם זה לא אומר שהוא הצליח ?
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
הצגת הודעות מלפני:     
מעבר אל:  
כל הזמנים הם GMT + 2 שעות
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
PNphpBB2 © 2003-2004 

תוכן הדיון

  1. אורח [אש (לא מחובר)]
  2. אורח [WobnI - offline]
  3. אורח [אש (לא מחובר)]