[MEGKERÜLVE] Már a kernel fordítás sem megy

Fórumok

Valaha sokszor fordítottam kernelt. Most ezt a patch-et szerettem volna a kernelben látni, de fordításkor segmentation fault-tal leáll a gcc. Nem ennél a modulnál, teljesen máshol. Tudom, túl új, használjak régebbit, de semmi kedvem felforgatni az egész oprendszert. Próbáltam csak a modult fordítani, de azt meg bizonyára elszúrtam, hiszen úgy kellene, hogy a kernel többi komponenséhez illeszkedjék, a keletkezett binárisból történő függvényhívások, hivatkozások működjenek. Szóval egyelőre - ha jól látom -, van egy inicializálatlan boolean típusú változóm, amelyben RAM-szemét van, s ezért gyakran eldobálja az amúgy jó hálózati csomagokat is. A gyakorlatban ez azt jelenti, hogy néhány MB/s helyett néhány tíz kB/s a wireless interface-emen az adatátviteli sebesség. Kénytelen vagyok átmenetileg egy másik wifi interface-t használni.

Pontosan mit kell tennem, ha csak négy modult szeretnék újra fordítani úgy, hogy azok a már létező binárisba illeszkedjenek? Bár lehet, ennek inkább a Linux kezdőben a helye. A kívánt modulok a /lib/modules/3.16.3-300.fc21.x86_64/kernel/drivers/net/wireless/ath/ath9k elérési úton:

ath9k_common.ko.xz
ath9k_htc.ko.xz
ath9k_hw.ko.xz
ath9k.ko.xz

Egyébként a lefordult modult csak simán össze kell xz-vel tömöríteni, vagy kernel modulok esetében valamilyen speciális feltétel, header, akármi is van?

Hozzászólások

Amíg a fejlesztők megreszelik, írtam egy /etc/modprobe.d/ath9k_htc.conf file-t az alábbi tartalommal:

options ath9k_htc nohwcrypt=1

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Úgy érted, hogy experimentális gcc van a gépeden? Mi a verziószáma?

Az egész oprendszer alfa állapotú Fedora 21, de kisebb nyűgöktől eltekintve jó. Például ez a kernel bug nyilván belekerült a stabil Fedora 20-ba is azzal, hogy 3.16.3-asra frissült a kernel.

rpm -q gcc
gcc-4.9.1-9.fc21.x86_64

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Most így visszaemlékezve nem. Arra emlékszem, hogy valamelyik multimédiával, hangkártyával kapcsolatos kernel modult fordította, aztán közölte, hogy segmentation fault a gcc részéről, aminek következtében a make nem sikerült, meg leírta, hogy ha nem reprodukálható a hiba, akkor ez hardware gond lesz, ha reprodukálható, akkor pedig esetleg küldjek a bugzillába bugreportot, hogy javítsák a fordítót. A gépem egyébként stabil, a hiba reprodukálható volt.

Az az igazság, hogy azáltal, hogy ezzel a workarounddal megint gyors a wifi, megszűnt a motiváltságom kernel fordítás irányában. Majd, ha binárisban jó lesz, akkor hagyom, hogy az USB dongle csinálja a titkosítást. Így szoftveresen sem eszik elviselhetetlenül sok gépidőt. Egy letöltés közben egy CPU mag 2 %-át láttam a top-on system futásidő gyanánt.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE