Kernelfordítás EPISODE 2

Alábbiakban a kernelfordításom történetének második részéről olvashat az, aki erre éppen ráér. (első rész: http://hup.hu/node/109729 )
A dolog szórakoztató jellegű, ám szakmailag elképzelhető a helytelenség, a hiányosság, tehát nem wikipédiába illó karaktermassza húzódik itt alant.
-----------------
Ismételten kérek minden ide tévedő vérprofit, hogy vegye figyelembe: ezen nyelvezet a tapasztalatlanabbak (azaz jelenlegi jómagam) nyelvezetén íródott.
-----------------
Ha pont ezen recept alapján látnál neki saját ámokfutásodnak, kérlek olvasd végig firkálmányomat, mert egy pszichodráma kedvéért kihagyok valami fontosat, ami miatt biztos a kernelpánik, azaz az elindíthatatlanság.

Cél továbbra is az, hogy visszatekintsek még azon elmeállapotommal a kínlódásokra, mely elmeállapottal még le tudom írni azon jámbor lelkeknek is a cuccokat, akik éppen most kezdenének hozzá kalodába fogva a dogokhoz.
Még emlékszem mi volt az érthetetlen, mi volt a dühkitörésekhez vezető rész, ezeket később külön részletezem. Erről fog szólni az EPISODE 3...

----------------------------------

Az alábbiakban sorban végigkövetem a
make menuconfig
kiadása utáni lépéseket. Amiről nem írok, annak taglalása lényegtelen.

---Laptop, melyen mindezt végzem: eeepc701
---Jelen írás előzménye: http://hup.hu/node/109729

------------------
Tehát elindult a make menuconfig kiadása után a "konfigőr" (így emlegetik).
Adjunk kernelünknek egy nevet, melyet majd BASH-ban az
uname -a
parancs kiadásakor is láthatunk majd:

valami verziónevet kitalálni:

│ │ (-ultrakill) Local version - append to kernel release │ │
│ │ [*] Automatically append version information to the version string │ │

(Itt a Local version nevének megadásakor törekedjünk az ékezetmentességre, és lehetőleg kötőjellel kezdjük a nevet, pl. így: "-ultrakill", vagy "-eeepc701")
Nézzük meg a leendő uname-kimenetet BASH-ban:

root[a]# uname -a
Linux darkstar 3.1.5-ultrakill #2 SMP Sun Dec 11 13:57:36 CET 2011 i686 Intel(R) Celeron(R) M processor 900MHz GenuineIntel GNU/Linux
root[a]#

(itt látszik egyértelműen, miért kell esztétikai okokból a - jelet használni.)

------------

.config működjön:

│ │ <*> Kernel .config support │ │
│ │ [*] Enable access to .config through /proc/config.gz │ │

Mi is volt ez?
Sejtésem szerint ha ez megvan, akkor a mindenkor futó kernel .config file-ja megtalálható lesz a /proc/config.gz -ben, melyből zcat-tal kinyerhetjük a .config-ot:

zcat /proc/config.gz >.config

------------
Alapértelmezetten be van jelölve az initrd.
ha itt nem adunk meg elérési útvonalat, akkor kerneldebug lesz, nem találja a root filesystemet, ami ahhoz vezet, hogy értetlenül nézünk magunk elé és fel nem fogjuk, mit rontottunk el. Rendszerint elsőre az ember végignézi, hogy a támogatott fájlrendszereket modulba, vagy kernelbe forgatta-e. Ha minden rendben é ez még mindig hibás, kezdődik a vad káromkodás és a baráti környezet időszakos eltávolítása epsylon sugarú körön kívülre. (Két hétig káromkodtam, míg kínomban kikapcsoltam ezt a dolgot...)

│ │ [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support │ │
│ │ () Initramfs source file(s) (NEW) │ │

Tehát legjobb egyelőre nem belebonyolódni az initrd-be, kivéve, ha disztribúciót készítünk...

│ │ [ ] Initial RAM filesystem and RAM disk (initramfs/initrd) support │ │

-----------------

│ │ [*] Enable loadable module support ---> │ │

Engedélyezzük, hogy a modulok betölthetők legyenek, azaz a BASH alatt kiadott insmod működhessen. Erről van szó:

root[a]# insmod
Usage: insmod filename [args]
root[a]#

ha betöltődött egy modulba forgatott kernelmodul, az lsmod-dal a BASH-ban kiirattathatjuk:

root[a]# lsmod
Module Size Used by
bluetooth 76289 0
squashfs 24414 29
xz_dec 12678 1 squashfs
i915 446671 2
drm_kms_helper 21448 1 i915
drm 145624 3 i915,drm_kms_helper
root[a]#

Tehát a modulbetölthetőségek beállításai:

│ │ --- Enable loadable module support │ │
│ │ [ ] Forced module loading (NEW) │ │
│ │ [*] Module unloading │ │
│ │ [*] Forced module unloading │ │
│ │ [ ] Module versioning support (NEW) │ │
│ │ [ ] Source checksum for all modules (NEW) │ │
│ │ │ │
│ │

----------------------
│ │ -*- Enable the block layer
---> │ │

Gőzöm sincs mi ez, nem piszkáltam bele.

------------------------

│ │ Processor type and features ---> │ │

Itt már állítani kell mindenfélét. ha nem DELL- vagy egyéb laptopunk van, akkor a biztosan nem a mi laptopunkra jellemző cuccokat tiltani kell.

Általános x86 az mindenképpen kell:

│ │ [*] Generic x86 support │ │

Ha egymagos a processzorunk, akkor az összes SMP-t ki lehet kapcsoni, pl. ezt:

│ │ [ ] SMT (Hyperthreading) scheduler support │ │

INTEL, vagy AMD?
Ha találunk a riválistól valamit, kikapcsolni...
Ide em írok példát.

│ │ High Memory Support (4GB) ---> │ │

Ide belépve engedélyezzük a nagyobb memória használatát, ha van. Nekem a 4GB kell.

-------------------

│ │ Power management and ACPI options ---> │ │

Itt vannak az ACPI-re vonatkozó dolgok, amelyek a suspendeket meg egyebeket igazgatnak.
Gondolkozzunk el, kell-e nekünk mondjuk suspend to disk (acpitool -S parancs végzi például a BASH-ban). Suspend to disk csak akkor éri eg, ha rengeteg emulátort, és azokon belül sok elindított programot használunk. A leállítás és feltámasztás időt vesz igénybe, mert a memória teljes tartalmának tömörítéséről és kitömörítéséről beszélünk.

Ha suspend to disk kell, a célpartíciót ki kell jelölnünk:

Kilépünk BASH prompba, majd

root[a]# fdisk -l

Disk /dev/sda: 4001 MB, 4001292288 bytes
255 heads, 63 sectors/track, 486 cylinders, total 7815024 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x679b7c47

Device Boot Start End Blocks Id System
/dev/sda1 63 7614809 3807373+ 83 Linux
/dev/sda2 7614810 7815023 100107 82 Linux swap

Ha a swap túl kicsi, nem fog sikerülni a suspend to disk.
Ki ke majd találnunk egy olyan patíciót, ahova biztosan etömörül a RAM teljes tartalma, mondjuk legyen egy /dev/sda3 névre hallgató partíció.

Ekkor a kernelben ilyen a beállítás:

│ │ [*] Suspend to RAM and standby (NEW) │ │
│ │ [*] Hibernation (aka 'suspend to disk') │ │
│ │ (/dev/sda3) Default resume partition │ │

Nekem nem kell a suspend to disk, ezért ennél maradtam:

│ │ [*] Suspend to RAM and standby (NEW) │ │
│ │ [ ] Hibernation (aka 'suspend to disk') │ │

(...elég a suspend to RAM, ami BASH-ban az acpitool -s paranccsal jön majd nekem.
Lássuk itt a suspendekre vonatkozó acpitool helpet:

-s, --suspend suspend to memory (sleep state S3), if supported
-S suspend to disk (sleep state S4), if supported

)

│ │ [*] ACPI (Advanced Configuration and Power Interface) Support (NEW) ---> │ │

Ezen kinyíló menüben ezeket mindenképpen bejelöltem:

│ │ [*] Deprecated /proc/acpi/event support (NEW) │ │
│ │ <*> AC Adapter (NEW) │ │
│ │ <*> Battery (NEW) │ │
│ │ -*- Button │ │
│ │ -*- Video │ │
│ │ <*> Fan (NEW) │ │
│ │ [*] Dock │ │
│ │ <*> Processor (NEW) │ │

többit nem változtattam.

---------------------

Bus options --- nem bolygattam.

---------------------

Executive-cuccok:

│ │ [*] Kernel support for ELF binaries (NEW) │ │
│ │ [*] Write ELF core dumps with partial segments │ │
│ │ < > Kernel support for a.out and ECOFF binaries (NEW) │ │
│ │ <*> Kernel support for MISC binaries │ │
│ │

-----------------------
Networking support.

Na itt jön a dolgok veleje.

Kikapcsollni, ha nem vagyunk rádióamatőrök:
│ │ [ ] Amateur Radio support ---> │ │

A Bluetooth menüpont alatt ha engedélyezzük a legelső USB-t, legalul a mélyből előbukkan egy Atheros, mey eddig sosem látszott:

│ │ HCI USB driver │ │
│ │ < > HCI UART driver (NEW) │ │
│ │ < > HCI BCM203x USB driver (NEW) │ │
│ │ < > HCI BPA10x USB driver (NEW) │ │
│ │ < > HCI BlueFRITZ! USB driver (NEW) │ │
│ │ < > HCI DTL1 (PC Card) driver (NEW) │ │
│ │ < > HCI BT3C (PC Card) driver (NEW) │ │
│ │ < > HCI BlueCard (PC Card) driver (NEW) │ │
│ │ < > HCI UART (PC Card) device driver (NEW) │ │
│ │ < > HCI VHCI (Virtual HCI device) driver (NEW) │ │
│ │ < > Marvell Bluetooth driver support (NEW) │ │
│ │ Atheros firmware download driver │ │

itt jön az első érdekesség. ha engedélyezünk a menuconfigban valamit, elkezdődnek látszódni olyan paraméterecskék, amelyekre eseteg pont szükségünk lehetne. Ha a wifi kártyáink Atheros alapúak, mániákusan előkereshetünk mindenhol ilyen eldugott cuccokat. A fene tudja hogy mikor és miért működhetnek ezek...

IrDA letiltva, nincs infra-cuccom, egy sem. Távirányítani nem akarok laptopot. Adatátitelre meg ott az USB meg egyebek.

------------

Most jönnek a diverek, nagyüzemben:

│ │ Device Drivers ---> │ │

Ide belépve el is tztévedhetünk. Kis papírcetlire naplózhatjuk, mit tiltottunk le és mit jelöltünk be.

│ │ [*] Block devices (NEW) ---> │ │

Ebben találjuk a loop device dolgait, ez alapértelmezetten 8. mire jó ez?
Ha tömörített fájlrendszert (pl. squashfs-t használunk), egyszerre akár 30 darabot is betölthetünk az fstab-bal, vagy moutolhatunk iso-t, jó sokat. Nálam ebből rengeteg van.
Utólag persze rá kellett jönni, hogy kernelparaméterként a liloban is meg lehet adni ezt, pl így:

image = /boot/bzImage-3.1.5-biokiller
root = /dev/sda1
label = 3.1.5-biokiller
append="max_loop=150 mem=2048M"
read-only

(...ez idézet volt az /etc/lilo.conf-ból, jól látszik, hogy a loopolható eszközök száma 150, de mellékesen az is, hogy a fentebb említett magasabb memóriakezelés is megadható paraméterként.)

Visszatérve a kernelkonfighoz, a loopdevice nálam így lett megadva:

Block device-n belül:

│ │ <*> Loopback device support │ │
│ │ (150) Number of loop devices to pre-create at init time │ │

Megjegyzés: a squashfs-t majd később modulba kell fordítani, nem Y-nal bele a kernelbe. Valahol ezt olvastam, nem próbáltam ki milyen ez beforgatva.

│ │ <*> ATA/ATAPI/MFM/RLL support (DEPRECATED) ---> │ │

ha nincs RAID rendszernk, nem kell:

│ │ [ ] Multiple devices driver support (RAID and LVM) ---> │ │

input Device-nél a képernyőfelbontást megadtam:

│ │ (800) Horizontal screen resolution │ │
│ │ (480) Vertical screen resolution │ │

..Ez van. Nem tdom, hogy a screenbuffernek ez jó-e, mindenesetre nem árthet. Talán.

Keyboards alatt ott a Mice, abban a

│ │ <*> Synaptics I2C Touchpad support │ │

biztosankell, ellenkező esetben az érintőpad jobb oldali függőleges sávja nem lesz "gördíthető".

Ami itt biztosan nem kell:

│ │ < > AMD HW Random Number Generator support │ │
│ │ < > AMD Geode HW Random Number Generator support │ │
│ │ < > VIA HW Random Number Generator support │ │

--------------
A Device Drivers / IC" supportban van a I2C Hardware Bus support --->

itt az összes inteles szutykot beipszilonoztam.

A következő SPI-ben is leltem egyet:

│ │ <*> Intel EG20T PCH/OKI SEMICONDUCTOR ML7213 IOH SPI controller │ │

Legfeljebb később letiltom.

------------------

a hardware monitoring support alatt talltam egy

│ │ Intel Core/Core2/Atom temperature sensor │ │
, legalul meg egy ASUS-t:

│ CONFIG_SENSORS_ATK0110: │
│ │
│ If you say yes here you get support for the ACPI hardware │
│ monitoring interface found in many ASUS motherboards. This │
│ driver will provide readings of fans, voltages and temperatures │
│ through the system firmware. │
│ │
│ This driver can also be built as a module. If so, the module │
│ will be called asus_atk0110.

Egyszer talán kiderül, hogy a kedvelt acpitool parancssori programom miért nem mesél semmit a hőmérsékletről.. Még nem jöttem rá.

--------------

Multimedia Support:

y-t kapott.

Benne ezek vannak:

│ │ <*> Video For Linux │ │

│ │ [*] Video capture adapters (NEW) ---> │ │

ez utóbbiban lesz a kamera, méghozzá ebben a menüben:

│ │ [*] V4L USB devices (NEW) ---> │ │

itt van a kamera, egy ezen belüli menüben:

│ │ <*> GSPCA based webcams ---> │ │

...itt:

│ │ ViCam USB Camera Driver │ │

Ez egy inteles beépített kamera. ViCam néven. Hogy szakadna meg, aki ezt a nemvet adta neki. Tahát még egyszer:

│ -> Device Drivers │
│ -> Multimedia support (MEDIA_SUPPORT [=y]) │
│ -> Video capture adapters (VIDEO_CAPTURE_DRIVERS [=y]) │
│ -> V4L USB devices (V4L_USB_DRIVERS [=y]) │
│ -> GSPCA based webcams (USB_GSPCA [=y])

Nem tudom hol olvastam, de az eeepc701 netbooknál enélkül nem működik a beépített kamera.

-----------------

│ │ <*> Sound card support ---> │ │

KÉSŐBB részletezem ezt

---------------

│ │ [ ] HID Devices --->

letiltva

-------------

USB Support.

Nos, itt lehet elrontani az USB eszközöket szerintem.
Itt kéne megtalálnom azt, hogy a frissen betolt USB wifikrtyám örömöt okozzon aaz udevnek. Vagy valami hasonlót.

Ez biztosan kell:

│ │ <*> OHCI HCD support │ │
│ │ <*> UHCI HCD (most Intel and VIA) support │ │

ezek is:

│ │ <*> Wireless USB Host Controller Interface (WHCI) driver (EXPERIMENTAL) │ │

│ │ <*> USB Wireless Device Management support │ │

A többit nem barmoltam el.

------------------------

Firmware Drivers:

│ │ [*] Google Firmware Drivers │ │
│ │ Google Firmware Drivers ---> │ │

...bejelöltem az összes google-marhaságot, nem tudom mire jó, majd kiderül.

--------------------

File systems menüpont alatt ki kell jelölni és Y-nal kernelbe fordítani az összes olyan fájlrendszert, melyet valaha használni szeretnénk.
Ext2-t mindenképpen, ha oyanunk van alapból.

Itt fogjuk megtalálni az ta 3 menüpontot, melyben minden fontosat ki kell majd Y-oznunk.

│ │ CD-ROM/DVD Filesystems ---> │ │
│ │ DOS/FAT/NT Filesystems ---> │ │
│ │ Pseudo filesystems ---> │ │

Pl. a <*> UDF file system support fogja a dévédéinket nyomatni,
a <*> NTFS file system support és az alatta megnyíló marhaságok a dózerrel kapcsolatos szutykokat teszi kezelhetővé.

A DOS/FAT/NT Filesystems menüpont alatt érdemes a kódlapot megváltoztatni:

(iso8859-2) Default iocharset for FAT

... így lesz hosszú ő és ű betűnk.

Pseudo filesystemnél:

<*> Userspace-driven configuration filesystem

Aztán jönnek a jó dolgok:

[*] Miscellaneous filesystems (NEW) --->

│ │ <*> BeOS file system (BeFS) support (read only) (EXPERIMENTAL) │ │
│ │ [*] Debug BeFS

(...ez bban az esetben kell, ha BeOS-t használunk. Nekem kell. De hogy miért mountol mégis rosszul a cuccos, azt nem tudom. Csak a home meg a Trash látszik...)

Ihol a squashfs, melyet kötelezően modulba kell forgatni, nem tudom miért:

│ │ SquashFS 4.0 - Squashed file system support │ │

A partíció típusoknál a killdow$ cuccai is kellhetnek:

│ │ [*] Windows Logical Disk Manager (Dynamic Disk) support │ │
│ │ [*] Windows LDM extra logging

Lejjebb a Native language support ---> menüpontnál megszüntethetjük a japán-, kínai- és egyéb afrikai- bengáli támogatást.
Tegyük meg. Van olyan kernelkonfig, melyben mindegyik be volt jelölve, fordításkor meg sorban kiírta, hogy éppe nepálban jár...

A magyar kódkiosztás az iso8859-2, így ezt is átállítottam az alapértelmezett utf8-ról:

--- Native language support │ │
│ │ (iso8859-2) Default NLS Option

Miután mindez megtörtént, kiexitelhetjük magunkat (legutolsó lépésként Yes), megjelenik ekkor két sor:

*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.

Elindulhat a

make

parancs kiadásával a kernelfordítás.

Ha lefordult (vö. befordult, binárissá alakult, binarizálódott stb) a kernel, valami ilyesmi látszik:

....
OBJCOPY arch/x86/boot/vmlinux.bin
BUILD arch/x86/boot/bzImage
Setup is 12668 bytes (padded to 12800 bytes).
System is 4853 kB
CRC a3850607
Kernel: arch/x86/boot/bzImage is ready (#2)

...aztán jn a prompt, vagy ha szkriptünk van, jön a modulok fordítása.

Ha készítettünk kernelfordító szkiptet, akkor a sikeresen lefutott make után jön a következő, a
make install_modules
majd az
install modules.

A modulok fordításakor valami ilyesmi látszik a képernyőn:

...
Building modules, stage 2.
MODPOST 12 modules
LD [M] drivers/bluetooth/ath3k.ko

...és tovább gördül minden. (az ath3k.ko egyébként egy Atheros driver, azzal kezdődik, alfabetikus alapú tornyosulásból következtetve.)

Vegyük át tehát ezt még egyszer BASH nyelven:

make
make modules
make modules_install && make install
echo "all ok"

Ha sikeres a forgatás, láthatjuk a végén a llilo kimenetét, emlyet mindenképpen ismernünk kell. A lilo csak akkor végzi el munkáját, ha nem talál hibát.

---------------------------

Még néhány érdekesség, melyek kernelfordítási marhaságaim előtt sosem érdekeltek:

1. gyakran használt rendszermagkapcsolók

Amiket eddig a kernelBE akartam forgatni, kiderült, hogy másként is meg lehet oldani, mindenféle fárdatság nélkül.
Ihol néhány, ami eeepc701-re kiváló:

nosmp = letiltja a többprocesszoros üzemmódot
mem = a teljes rendelkezésre álló rendszermemória mérete
max_loop = a loopdevice száma.

Lássunk egy példát a liloban erre:

image = /boot/bzImage-3.1.5-biokiller
root = /dev/sda1
label = 3.1.5-biokiller
append="max_loop=150 mem=2048M"
read-only

2. elkezdtek érdekeni a logok, meg egyebek.

lspci --- az összes hardver-cucc, amink van gépen belül
lsmod --- modulként fordított, és insmod-dal betöltött kernelmodulok kilistázása
lsusb --- usb-re dugott eszközök nevei (fontos, hogy itt csak azok listázódnak ki, melyek éppen a gépbe be vannak tolva az egyik USB lukba)
dmesg --- brutális kromkodások folyamata, még nem tanultam róla
/var/log/messages taltalma --- itt íródik ki a rendszerindítás folyamata, meg minden egyéb

------------

Így EPISODE 2 gyanánt ennyi firkálmány jött össze.
Az EPISODE 3 tartlamazni fogja az összes olyan linket, írást, egyebet, amelyekből összehordtam mindazt, ami az előzőekben említésre került.
A fenti dolgokat a 3.1.5-ös kernelverzió alapbeállításaiból indítottam, azaz ha valami nem került letiltásra, az azért nem került letiltásra, mert alapértelmezettként a 3.1.5-ös .config-bellításban sem volt bejelölve. (...ezt a szép mondatot olvasd végig még egyszer.)

Az összes fent megemlített beállítást éppen most hajtom végre egy újabb fordítással, melynek kimenete itt van (az utolsó néhány sor):

...
INSTALL arch/x86/kernel/test_nx.ko
INSTALL drivers/bluetooth/ath3k.ko
INSTALL drivers/bluetooth/btusb.ko
INSTALL drivers/hwmon/asus_atk0110.ko
INSTALL drivers/media/video/gspca/gspca_vicam.ko
INSTALL drivers/scsi/scsi_wait_scan.ko
INSTALL drivers/telephony/ixj.ko
INSTALL drivers/telephony/ixj_pcmcia.ko
INSTALL drivers/telephony/phonedev.ko
INSTALL fs/squashfs/squashfs.ko
INSTALL net/bluetooth/bluetooth.ko
INSTALL net/netfilter/xt_mark.ko
DEPMOD 3.1.5-ultrakill
sh /mnt/sdc1/kernel/usr/src/linux-3.1.5/arch/x86/boot/install.sh 3.1.5-ultrakill arch/x86/boot/bzImage \
System.map "/boot"
Warning: LBA32 addressing assumed
Added kerneltest
Added 2.6.37.6-smp
Added 3.1.5-biokiller
Added 3.1.4-biokiller *
One warning was issued.
all ok

root[linux]#

.....................................

Ezután a kritikus könyvtárak, fájlok:

root[boot]# ls -l /boot/vmlinuz
-rw-r--r-- 1 root root 4952976 dec 15 17:29 /boot/vmlinuz

root[lib]# du -sh /lib/firmware
10M /lib/firmware

root[modules]# du -sh /lib/modules/3.1.5-ultrakill
512K /lib/modules/3.1.5-ultrakill

.....................................

A fentiek érdekessége:

AKI eeepc701-en ÍGY LEFORDÍT EGY KERNELT, kerneldebug lesz az eredménye, melynek hibaüzenetét eddig sosem voltam képes leírni.

Nem fogja találni a root filesystemet...

Megnézzük a dolgokat, hát nem kimaradt az ext2 fájlrendszer?
Itt van, rögtön a főoldalon a file systems menüpont első soraiban:

│ │ <*> Second extended fs support │ │
│ │ [*] Ext2 extended attributes │ │
│ │ [*] Ext2 POSIX Access Control Lists │ │
│ │ [*] Ext2 Security Labels │ │
│ │ [*] Ext2 execute in place support │ │

Leírás erről az első néhány sorról (megnyitva a HELP-et a menuconfigban):

│ CONFIG_EXT2_FS: │
│ │
│ Ext2 is a standard Linux file system for hard disks. │
│ │
│ To compile this file system support as a module, choose M here: the │
│ module will be called ext2. │
│ │
│ If unsure, say Y. │
│ │
│ Symbol: EXT2_FS [=y] │
│ Type : tristate │
│ Prompt: Second extended fs support │
│ Defined at fs/ext2/Kconfig:1 │
│ Depends on: BLOCK [=y] │
│ Location: │
│ -> File systems

--------------------

Előfordulhat, hogy sok mindent bejelöltünk, de még hiányzik néhány dolog, viszont nincs kerneldebug.
Kapunk egy promptot, a root filesystem megvan, de nem írható, fenyegetve vagyunk egy "nyomj ctrl-D-t vagy megpusztulsz"-jellegű kiírás által. Itt NE nyomjunk ctrl-D-t, különben reboot van. Adjuk meg a root jelszót, majd

mount -o remount,rw /

kiadása után újramountoltuk a gyökerünket, de már írhatunk is rá. ilyenkor tudnunk kell, hogy ha mondjuk írunk a fájlrendszerre (pl. rootjelszót váltunk), nem indíthatjuk rendszert akárhogy újra. Nem fut az init, nincs semmi, ami biztonságosan leállít mindent.
Újra kel fűznünk a fájlrendszert, legyen ismét csak olvasható, aztán mehet a reboot.

mount -o remount,ro /

Ha másképp teszünk, akkor egy leírás szerint jól megszívhatjuk.

Mint én.

--------------------

Folyt. köv.

Hozzászólások

Az insmod helyett a modprobe-t ajanlom :-)
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal 

Köszi!

Nem néztem még mi a 2 közti különbség, mert csupán a squashfs van kinn modulként, az meg mindig betöltődik.

Folyamatosan nézem, miket hagytam ki...

Kernelt fordítani --- az még rendben van. De leírni egy történetet, az már aztán végképp rázós.

---
--- A gond akkor van, ha látszólag minden működik. ---
---

Kezd tetszeni ez az egész.
1 hónapja még nem hittem volna, hogy valaha veszettül fogom nézegetni a rendszernaplót, a proc, sys, dev fájlrendszereket.
Ezek csak akkor lesznek érdekesek szerintem, ha valaki beugrik a kernelezésbe.
És még éppemhog nézegetem, a nézegetés elején vagyok.

---
--- A gond akkor van, ha látszólag minden működik. ---
---