התקנת מודול קרנל אם פאטצ' ידני על אובונטו PPC - לינוקס, Mac ומערכות הפעלה אחרות - HWzone פורומים
עבור לתוכן
  • צור חשבון

התקנת מודול קרנל אם פאטצ' ידני על אובונטו PPC


Ash Binary

Recommended Posts

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

הוא מריץ אובונטו 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 -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 -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

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

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...