kernelforgatás > into tgz

 ( bzs | 2019. január 28., hétfő - 14:39 )

Sziasztok!

Mezei debianon forgattam kernelt, mert csökevényesnek tartottam egy doistrib fájlrendszertámogatását (overlayfs kell, az meg nem volt modulként sem)
Általános kernel, azaz amd-intel minden.

A kérdésem bizarr, mivel rég csináltam ilyet.

Ha leforgatom a kernelt, megvannak a modulok is, hogyan csinálok belőle csomagot mondjuk tgz-ben, hogy át tudjam pakolgatni-másolni a célhelyemre?
wine forgatásánál sem tudtam csomagot alkotni, make package ott sincs.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Köszi.

$ make deb-pkg LOCALVERSION=-falcot KDEB_PKGVERSION=$(make kernelversion)-1

tehát itt a példában csak a
-falcot
stringet kell átírnom valami légbőlkapottra és megvagyok.

este kipróbálom

a make-kpkg csomag már idejemúlt.

ez a helyes mód most:
make deb-pkg

Magában a kernel cforrásbann van debian csomag készítő szkript. Ez le fog generálni 5 csomagot. De ebből kettő nem igazán kell: src, dbg.

Ha nem akarsz debug kernelt is forgatni:
scripts/config --disable DEBUG_INFO
make bindeb-pkg

Amúgy ha az overlayfs-nek van dkms támogatása, akkor elég csak azokat a csomagokat felrakni és be tudod forgatni az adott kernelhez az overlayfs-t

Másik kérdés, kell-e teljes kernelt forgatni emiatt ?

Általában elég szokott lenni csak a modul beforgatása a meglévő kernelhez.

Min 10éve nem forgattam teljes kernelt, viszont modulokat jó párat forgattam gyári kernelhez, mai napig működnek szépen.

Fedora 28, Thinkpad x220

Azt hogy csináltad?

Sajnos szerintem ha a kernelben nem engeded még a modulhasználatot sem, a modprobe le sem fut.
Épp ma próbáltam, persze lehet, hogy rosszul
Este meg kipróbálom a kernel mindenestül történő átköltöztetését csomaggal

felraktam a header csomagokat, gcc stb, majd bementem a modul forrásába, aztan ./configure; make; make install

Én még nem láttam olyan distrib által szállított kernelt ami tiltotta a modulhasználatot.

Fedora 28, Thinkpad x220

expert installban nincs ilyen opció?
nagyon régen csináltam olyat, és nem emlékszem, hogy a modul betöltést az tiltotta-e, csak arra a lehetőségre emlékszem, hogy válassz kernelt: ehhez a rendszerhez optimalizált, és semmi sallang / generikus kernel

és mintha ott az optimized az egybeforgatott kernel lett volna, de már abban sem vagyok biztos, hogy ez debian volt-e

Fogalmam sincsen, sose használtam ilyen opciót. De mint fent említették és én is megnéztem a debian 9 esben alapból van overlay modul:


modinfo overlay
filename: /lib/modules/4.9.0-8-amd64/kernel/fs/overlayfs/overlay.ko
alias: fs-overlay
license: GPL
description: Overlay filesystem
author: Miklos Szeredi
depends:
retpoline: Y
intree: Y
vermagic: 4.9.0-8-amd64 SMP mod_unload modversions
parm: check_copy_up:bool
parm: ovl_check_copy_up:Warn on copy-up when causing process also has a R/O fd open

Vagy nem debian 9 -n fut a rendszer ?

Fedora 28, Thinkpad x220

debian alapon ez:
https://marinux.tuxfamily.org

Csak hát overlayfs, gnss sincs benne, utóbbi 2018-tól van benne...
Vannak hiányosságok, remélem sikerül majd beforgatnom, mert a distribben olyan speciális dolgok vannak már odahekkelve, melyek másban nincsenek meg.

Ez egy kiherélt valami, lehet akár debian is, de innetől kezdve nem sok köze van a debianhoz.

Fedora 28, Thinkpad x220

ja, kiherélt. Ezért akarok módosítani rajta.

> Mezei debianon
> Általános kernel
> nem volt modulként sem

# uname -v
#1 SMP Debian 4.19.12-1 (2018-12-22)

# modinfo -d overlay
Overlay filesystem

# modinfo -n overlay
/lib/modules/4.19.0-1-amd64/kernel/fs/overlayfs/overlay.ko

(csak a rend kedvéért: ez ránézésre Debian testing. Stretch-hez backportsban van 4.19. De az overlay modul a gyári 4.9-ben is benne van)

gondoltam, megnézem, mi van az initramfs-sel, melyet mountolni sem tudok az eredeti distribnél.

Ezt kaptam parteddel:

# parted initrd.img-3.16.36-1xinutop2
GNU Parted 3.2
Using /dev/shm/initrd.img-3.16.36-1xinutop2
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit
Unit? [compact]? B
(parted) print
Error: /dev/shm/initrd.img-3.16.36-1xinutop2: unrecognised disk label
Model: (file)
Disk /dev/shm/initrd.img-3.16.36-1xinutop2: 11250688B
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:
(parted)

Szóval miért nem tudom mountolni?
Rejtély.. Mégcsak nem is gzip:

root[tmp]# zcat ./initrd.img-3.16.36-1xinutop2 | cpio -idmv

gzip: ./initrd.img-3.16.36-1xinutop2: not in gzip format
cpio: premature end of archive
root[tmp]# gunzip -v ./initrd.img-3.16.36-1xinutop2
gzip: ./initrd.img-3.16.36-1xinutop2: unknown suffix -- ignored

Magamnak válaszolok a rejtélyre:

#!/bin/bash

mkdir /tmp/initrdmount
mount -t sysfs /initrd.img-3.16.36-1xinutop2 /tmp/initrdmount -o loop
echo "örül"
exit 0

# sysfs. ezexerint az initrd-k jó része ilyen. Érdekes.
# csak éppen azt nem tudom, hogyan csinálok ebből másikat, új kernellel és modulokkal