Fórum Root.cz
Hlavní témata => Distribuce => Téma založeno: Jurajus 20. 03. 2014, 09:36:14
-
Ahoj, mam Lubuntu 12.04 s jadrem 3.2.0. Rad bych si stahnul zdrojove kody k vyssim verzím kernelu. Nejak se mi to ale nedari.
jirka@jirka-VirtualBox:/home/DISK$ sudo apt-get source linux-source-3.3.1
Čtu seznamy balíků… Hotovo
Vytvářím strom závislostí
Čtu stavové informace… Hotovo
E: Nelze najít zdrojový balík pro linux-source-3.3.1
jirka@jirka-VirtualBox:/home/DISK$
Nasel jsem jen uz zkompilovane baliky
http://kernel.ubuntu.com/~kernel-ppa/mainline/
Docet jsem se, ze jdou stahnout zdrojaky vanilla kernelu a opatchovat a ziskam tim distribucni jadro. Jak to ale funguje? Stahnu napr. vanilla kernel 3.3.1 a patche z distribucniho jadra 3.3.1. Opatchuju tim vanilla kernel a ziskam tim distribucni jadro 3.3.1?
Kde ziskam vsechny distribucni patche pro danou distribuci? Jsou to ty prvni tri soubory(*.patch) zde?
http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.1-precise/
Jeste bych poprosil o vysvetleni toho co se mi stahne zde:
jirka@jirka-VirtualBox:/home/DISK$ sudo apt-get source linux-source-3.2.0
Čtu seznamy balíků… Hotovo
Vytvářím strom závislostí
Čtu stavové informace… Hotovo
Vybírám „linux“ jako zdrojový balík místo „linux-source-3.2.0“
INFO: Balík „linux“ je spravován v systému pro správu verzí „Git“ na:
http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-precise.git
Přeskakuji dříve stažený soubor „linux_3.2.0-60.91.dsc“
Přeskakuji dříve stažený soubor „linux_3.2.0.orig.tar.gz“
Přeskakuji dříve stažený soubor „linux_3.2.0-60.91.diff.gz“
Potřebuji stáhnout 0 B zdrojových archivů.
Přeskakuji rozbalení již rozbaleného zdroje v linux-3.2.0
jirka@jirka-VirtualBox:/home/DISK$
Je to vannila jadro plus patche?
-
Je to vannila jadro plus patche?
Jo, ale ten diff bude fungovat jenom na prislusnou verzi, na novejsi nemusi.
A co zkusit proste nejnovejsi vanilku bez niceho? Ty patche jsou vetsinou backporty oprav, co uz v nejnovejsi vanilce jsou anebo veci, co nepotrebujes. Co je vlastne cilem?
-
Co je vlastne cilem?
Taknak pochytit veci okolo linuxu a jeho krenelu, kompilace, konfigurace, patchovani, moduly, ramdisk. Vse co se da.
Takze momentalne bych si chtel vyskouset patchovani. Kdyz vezmu nejnovejsi vanilku, kde pak najdu nejak patche na ni? Ohledne tehlech veci by se mi hodila nejaka nalejvarna, je to vec znalosti. Po netu to vycitat polovicate clanky a dotazovat se na diskuzich je pomale... na linuxu jsem chvili.
-
Skôr by som doporučil použiť vyšší kernel, ktorý je súčasťou distribúcie. Volá sa tuším linux-image-saucy-generic, dostaneš kernel 3.11, súčasne môžeš povýšiť aj xorg-server. Bol o tom článok tuším aj na root.cz, akurát pre krátkosť času ho neviem nájsť.
-
Ted na tu 3.11 koukam.
Tady jde stahnout zvlast zdrojak a zvlast patche https://launchpad.net/ubuntu/+source/linux/3.11.0-12.19
Jestli to dobre chapu tak aplikaci tech patchu a naslednou kompilaci ziskam distribucni jadro saucy.
Myslel jsem si ze to je vanila jadro+patche+popis, ale tady nekdo pise neco jineho: http://forum.ubuntu.cz/index.php?topic=14235.0
Z toho uz zacinam bejt trochu zmatenej, opatchovane jadro, ktere se jeste musi opatchovat. Takze vysledek bude jinej kdyz vezmu original vanilu a opatchuju tema patchem ze stranek... nevznikne totozne jadro s distribucnim. :D
Jak vlastne zjistim na prave naloudovanem jadre jake mam patche?Nejaky prikaz do konsole?Nebo adresar? Abych to mohl porovnat...
-
Kdyz vezmu nejnovejsi vanilku, kde pak najdu nejak patche na ni?
no a ptache jako jaky? jaky maji prinest novy vlastnosti? co maji opravovat? respektive proc jako vlastne patchovat? cim vic patchu, tim vic bordelu a moznosti, ze se neco p.s.r
trebas napriklad kdyz bys chtel zkusit BrainFuckScheduler tak patch je tady: http://ck.kolivas.org/patches/bfs/3.0/3.13/ a na novy vanilkovy jadro 3.13 aplikovat vetsinou jde
aplikuje se v adresaru jadra trebas pomoci cat 3.13-sched-bfs-446.patch | patch -p1
takze jestli si chces jen hrat, tak doporucuji vanilku a neco k tomu, cim min, tim lip. treba jen bfs nebo zfs
-
Kdybych vedel, jak ziskas totozne zdrojaky distribucniho jadra, tak poradim. Ale nevim, takze hodne stesti s ostatnimi :D
-
Zkusil jsem opatchovat nejnovejsi vanilku, napred simulaci, a pak naostro, nezdarilo se(dole poslednich par radku):
jirka@jirka-VirtualBox:/home/DISK/linux-3.13.6/linux-3.13.6$ sudo cat /home/DISK/3.13-sched-bfs-446.patch | patch -p1 --dry-run
patching file arch/powerpc/platforms/cell/spufs/sched.c
patching file Documentation/scheduler/sched-BFS.txt
patching file Documentation/sysctl/kernel.txt
patching file fs/proc/base.c
patching file include/linux/init_task.h
patching file include/linux/ioprio.h
patching file include/linux/sched.h
patching file init/Kconfig
patching file init/main.c
patching file kernel/delayacct.c
patching file kernel/exit.c
patching file kernel/posix-cpu-timers.c
patching file kernel/sysctl.c
Hunk #4 succeeded at 457 (offset 9 lines).
Hunk #5 succeeded at 936 (offset 9 lines).
patching file lib/Kconfig.debug
patching file include/linux/jiffies.h
patching file drivers/cpufreq/cpufreq.c
patching file drivers/cpufreq/cpufreq_ondemand.c
patching file kernel/sched/bfs.c
patching file include/uapi/linux/sched.h
patching file include/linux/sched/rt.h
patching file kernel/stop_machine.c
patching file drivers/cpufreq/cpufreq_conservative.c
patching file kernel/time/Kconfig
patching file kernel/sched/Makefile
patching file kernel/sched/bfs_sched.h
patching file kernel/sched/stats.c
jirka@jirka-VirtualBox:/home/DISK/linux-3.13.6/linux-3.13.6$
jirka@jirka-VirtualBox:/home/DISK/linux-3.13.6/linux-3.13.6$
jirka@jirka-VirtualBox:/home/DISK/linux-3.13.6/linux-3.13.6$
jirka@jirka-VirtualBox:/home/DISK/linux-3.13.6/linux-3.13.6$
jirka@jirka-VirtualBox:/home/DISK/linux-3.13.6/linux-3.13.6$ sudo cat /home/DISK/3.13-sched-bfs-446.patch | patch -p1
patching file arch/powerpc/platforms/cell/spufs/sched.c
patch: **** Can't remove file arch/powerpc/platforms/cell/spufs/sched.c : Permission denied
jirka@jirka-VirtualBox:/home/DISK/linux-3.13.6/linux-3.13.6$
:(((
A ještě Poradil by někdo jak se dá zjistit jaké jsou aplikované patche na právě běžícím jádře, nebo na jádře od kterého mám source? Pokud to jde?
-
To co jsem stahnul z kernel.org mi nejak nejede, nejde to ani patchnout ani nad tim zpustit make xconfig:
jirka@jirka-VirtualBox:/home/DISK/linux-3.13.6/linux-3.13.6$ sudo make xconfig
HOSTCC scripts/basic/fixdep
CHECK qt
* Unable to find the QT4 tool qmake. Trying to use QT3
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
MOC scripts/kconfig/qconf.moc
HOSTCXX scripts/kconfig/qconf.o
scripts/kconfig/qconf.cc: In constructor ‘ConfigSettings::ConfigSettings()’:
scripts/kconfig/qconf.cc:73:35: error: no matching function for call to ‘QSettings::QSettings(const char [11], const char [6])’
scripts/kconfig/qconf.cc:73:35: note: candidates are:
/usr/include/qt3/qsettings.h:149:5: note: QSettings::QSettings(const QSettings&)
/usr/include/qt3/qsettings.h:149:5: note: candidate expects 1 argument, 2 provided
/usr/include/qt3/qsettings.h:72:5: note: QSettings::QSettings(QSettings::Format)
/usr/include/qt3/qsettings.h:72:5: note: candidate expects 1 argument, 2 provided
/usr/include/qt3/qsettings.h:71:5: note: QSettings::QSettings()
/usr/include/qt3/qsettings.h:71:5: note: candidate expects 0 arguments, 2 provided
make[1]: *** [scripts/kconfig/qconf.o] Error 1
make: *** [xconfig] Error 2
jirka@jirka-VirtualBox:/home/DISK/linux-3.13.6/linux-3.13.6$
-
Osobně bych zkusil raději
make menuconfig
-
Tak jsem zkusil jeste nasimulovat patch distribucniho saucy 3.11.0, a take se nezdarilo:
jurajus@LubuStation:/usr/src/linux-source-3.11.0/linux-source-3.11.0$ sudo cat 3.11-sched-bfs-441.patch | patch -p1 --dry-run
patching file arch/powerpc/platforms/cell/spufs/sched.c
patching file Documentation/scheduler/sched-BFS.txt
patching file Documentation/sysctl/kernel.txt
Hunk #1 FAILED at 33.
Hunk #2 succeeded at 61 (offset 1 line).
Hunk #3 succeeded at 331 (offset 24 lines).
Hunk #4 succeeded at 599 (offset 24 lines).
1 out of 4 hunks FAILED -- saving rejects to file Documentation/sysctl/kernel.txt.rej
patching file fs/proc/base.c
patching file include/linux/init_task.h
patching file include/linux/ioprio.h
patching file include/linux/sched.h
Hunk #2 succeeded at 1035 (offset 4 lines).
Hunk #3 succeeded at 1174 (offset 4 lines).
Hunk #4 succeeded at 1430 (offset 4 lines).
Hunk #5 succeeded at 1919 (offset 4 lines).
Hunk #6 succeeded at 2697 (offset 68 lines).
patching file init/Kconfig
Hunk #2 succeeded at 354 (offset 9 lines).
Hunk #3 succeeded at 377 (offset 9 lines).
Hunk #4 succeeded at 858 (offset 9 lines).
Hunk #5 succeeded at 921 (offset 9 lines).
Hunk #6 succeeded at 1024 (offset 9 lines).
Hunk #7 succeeded at 1189 (offset 9 lines).
Hunk #8 succeeded at 1590 (offset 9 lines).
patching file init/main.c
Hunk #1 succeeded at 702 (offset 1 line).
Hunk #2 succeeded at 822 (offset 2 lines).
patching file kernel/delayacct.c
patching file kernel/exit.c
patching file kernel/posix-cpu-timers.c
patching file kernel/sysctl.c
Hunk #1 succeeded at 128 (offset 1 line).
Hunk #2 succeeded at 261 (offset 1 line).
Hunk #3 succeeded at 278 (offset 1 line).
Hunk #4 succeeded at 442 (offset 1 line).
Hunk #5 succeeded at 933 (offset 13 lines).
patching file lib/Kconfig.debug
patching file include/linux/jiffies.h
patching file drivers/cpufreq/cpufreq.c
patching file drivers/cpufreq/cpufreq_ondemand.c
patching file kernel/sched/bfs.c
patching file include/uapi/linux/sched.h
patching file include/linux/sched/rt.h
patching file kernel/stop_machine.c
patching file drivers/cpufreq/cpufreq_conservative.c
patching file kernel/time/Kconfig
patching file kernel/sched/Makefile
patching file kernel/sched/bfs_sched.h
patching file kernel/sched/stats.c
Osobně bych zkusil raději
make menuconfig
Zkusil jsem to doma a xconfigem a slapeto, netusim kde byla chyba.
-
Tak jsem zkusil jeste nasimulovat patch distribucniho saucy 3.11.0, a take se nezdarilo:
No bylo by dobre se naucit cist co rika vystup patche, rika ze jen jeden hunk se nepodarilo opravit a to v dokumentaci, takze podle mne se zdarilo
Kdyz bys chtel, aby si patch vubec nestezoval, bylo by potreba ho aplikovat na stejny jadro jako autor. V tomto pripade na vanilkovy a ne distribucni
-
Díky za osvětlení...
Druhou chybu už jsem si našel sám:
jirka@jirka-VirtualBox:/home/DISK/linux-3.13.6/linux-3.13.6$ sudo cat /home/DISK/3.13-sched-bfs-446.patch | patch -p1
CAT sice poustim s pravy roota ale PATCH(a tam je to dulezite) uz ne.
Dávám si pomyslný lepák :D
-
ja nevim, jak je to ted, ale driv se radilo kompilovat jadro jako root no, tak sem si toho nevsim :) takze su a kdyz nemas heslo roota tak sudo su
normalni programy se spis radilo kompilovat pod uzivatelem a udelas pak jen sudo make install
asi normalni program muze byt potencialne skodlivy a linusovi se veri ;D