Hali!
A linux kernelben van ez a két dolog:
- ATA/ATAPI/MFM/RLL support
- Serial ATA (prod) and Parallel ATA (experimental) drivers
Ha jól vettem ki, akkor ez az utóbbi a libATA lenne, amely a SATA-s lemezek kezelését hivatott végezni + elvileg a régi PATA eszközök meghajtói is ide lesznek/vannak átportolva, átírva.
A rendszerem alapvetően IDE PATA rendszerű.
$ lspci -v | grep IDE
00:0d.0 IDE interface: nVidia Corporation MCP51 IDE (rev a1) (prog-if 8a [Master SecP PriP])
Valamint van egy külső USB2.0 rack házam (JMicron IDE SATA to USB) benne egy SATA2-es Samsung merevlemezzel.
Az érdekelne, hogy miként lehet "átállni" a régebbi "ATA/ATAPI/MFM/RLL support"-ról libATA használatára?
Melyek azok a dolgok, amelyeket meg kellene hagynom a régiből? Gondolok itt ilyenre " Include IDE/ATAPI CDROM support".
Vagy teljesen kikapcsolaható ez a menüpont és a "Serial ATA (prod) and Parallel ATA (experimental) drivers" rész lekezel mindent (PATA CDROM, DMA, stb.)?
UI.: Az világos, hogy a /dev/hdx -> /dev/sdx lesz, illetve a dvdromnál valami sg0, ezért fstab-ra figyeljek. Világos az is, hogy kell SCSI támogatás is a kernelbe.
Hogy leegyszerűsítsem a kérdésemet. A libATA-s dolgok a teljes IDE rendszerhez tartozó dolgokat lekezelik és ezért kikapcsolható a ATA/ATAPI... cucc, vagy az alap IDE dolgok kellenek és csak a chipset specifikus dolgokat lehet lecserélni a libATA-s megfelelőkkel? Vagy nagy a homály bennem? :D
- 2209 megtekintés
Hozzászólások
Nem pontosan ertem mi az amit szeretnel, de kevereg benned a taroloeszkoz, atviteli mod fogalma. Neked a usb-s hazad a usb-mass-storage modullal kapcsolodik ami scsi fuggosegu.
- A hozzászóláshoz be kell jelentkezni
Azt elfeljetettem említeni valóban. Azzal nincs is gond, csak azért írtam, hogy mutassam milyen lemez "architektúrával" rendelkezem. Világos, hogy usb-storage és scsi kell hozzá.
- A hozzászóláshoz be kell jelentkezni
Közben megoldottam. Így megválaszolom saját kérdésem, hátha másnak is jóljön.
Rátaláltam erre a levélre. Talán Alan Cox írta?
Egy teljesen PATA rendszeren (kivéve rack) átáltam libata-ra és teljesen kikapcsoltam a "ATA/ATAPI/MFM/RLL support" támogatást, ahogy a levél is ajánlotta. Ehhez muszály volt, hogy a SCSI disk /cdrom / general funkciókat statikusan fordítam bele a kernelbe, mivel nincs initrd.
"Serial ATA (prod) and Parallel ATA (experimental) drivers"-ből csak az engem éríntő részt "Nvidia PATA, General PATA" állítottam be, szintén statikusra.
Reboot előtt az fstab fájlt átírtam, hogy ne fixen a device nevek alapján mountoljon, hanem UUID alapján. Az UUID értékeket a vol_id segédprogram segítségével állapítottam meg, ez az udev csomag része.
Mivel crypto swap-ot használok, biztos ami biztos ezt kikapcsoltam és csak sikeres reboot után kapcsoltam vissza.
Meglepő módon elsőre sikerült az egész. Hdparm-os szkriptem is szépen működik miután átírtam a device node-ot.
#!/bin/bash
on_ac_power && battery="0" || battery="1"
case $battery in
0)
echo -n "A laptop hálózati áramforráson van!"
hdparm -S253 -M254 -B255 /dev/sda
#hdparm -S253 -M254 -B255 /dev/hdc # -M254 zajcsokkentes kikapcs, standby gyárira, APM kikapcs
echo "A merevlemez a gyári érték után kapcsol standby-ba"
cpufreq-selector -g ondemand && echo "Setting cpu governor to 'ondemand'"
echo 0 > /proc/sys/vm/laptop_mode && echo "Laptop mode disabled"
;;
1)
echo -n "A laptop az akkumulátorról megy!"
hdparm -S253 -M128 -B200 /dev/sda
echo "Standby = gyári, quiet üzemmód, alacsonyabb APM mód!"
cpufreq-selector -g ondemand && echo "Setting cpu governor to 'ondemand'"
echo 5 > /proc/sys/vm/laptop_mode && echo "Laptop mode enabled"
;;
*)
echo "Hiba! Nem allitottunk semmit!"
;;
esac# -B = Advanced Power Management
# -M = Automatic Acoustic Management
# -S = Spindown timeout
Ezzel a merevlemez kattogás is megoldva :)
Tapasztalatok:
-Desktop sebesség változatlan, sőt talán kicsit gyorsabban reagál a rendszer, bár ez lehet attól is, hogy 250Hz->1000Hz váltás is történt.
$ hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 1490 MB in 2.00 seconds = 744.70 MB/sec
Timing buffered disk reads: 110 MB in 3.01 seconds = 36.58 MB/sec
-gnome-mount applet kicsit zavarosan működik még mindig. 1-2 partíciót fstab-ból csatolok (backup, cdrom), ezek szépen meg is jelennek, de minden egyes ilyen partíciónak létrehoz egy külön, számozott ikont "lecsatolva" állapottal. Pl. y-meghajto -> y-meghajto(2)
-szépen egységesen látszik mostmár minden lemez: sda,sdb,sg0. Eddig kicsit zavaró volt, hogy hdc volt a merevlemez, hda a DVD és sda a rack.
- A hozzászóláshoz be kell jelentkezni
Pár dolgot még leírtak a blog verzióban is.
- A hozzászóláshoz be kell jelentkezni
kösz! neked hála végre sikerült beindítanom életem első saját kernelét.
azokat a dolgokat a kernelből, amiket tudja az ember, h úgyse fog használni modulként kell hagyni, vagy ki lehet venni?
- A hozzászóláshoz be kell jelentkezni
1. "úgyse fog használni" => akkor minek bele? ki vele :)
2. Modulba inkább olyan dolgokat raknék, amelyeket ritkán ugyan, de használok.
Pl. usb-storage + scsi modulok, mert csak heti 1-2 alkalommal van rádugva egy pendrive/usb-rack a gépre.
Illetve lehet még pár ok amiért modulba rak az ember valamit. De alapvetően 1. pont :)
- A hozzászóláshoz be kell jelentkezni
a "betöltött" kernelt újra tudom rakni, vagy a régibe vissza kell mennem?
- A hozzászóláshoz be kell jelentkezni
Ezt annyira nem vágom mire gondolsz.
Ha lefordítottál már egy kernelt, akkor gondolom megvan még a .config fájl (rejtett fájl). Ez tartalmazza a kernel konfigurációdat. Ha ez megvan, akkor nem kell újrakezdened, elég betölteni, módosítani és újrafordítani a kernelt, majd telepíteni.
0. cd /usr/src/linux (vagy ahova raktad)
1. ".config" fájl kimásol valahova (backup)
2. make mrproper (Mr. Proper mindent kitisztít)
3. ".config" fájlt visszamásolod
4. make menuconfig (elvégzed a módosításokat)
5. make && make modules && make modules_install
6. új kernel telepítése a /boot-ba (bzImage / System.map)
Tipp: ha többmagos processzorod van, akkor a "-j" kapcsolóval több szálon tudod futtatni a fordítást, ergo hamarabb végez. Például: "make -j4 && make modules -j4 && make modules_install" (a legutolsóból szándékosan hagytam ki)
- A hozzászóláshoz be kell jelentkezni
csak annyit értettem alatta, ha az 2.6.x kernelt töltöttem be, akkor újra tudom rakni ugyanezt a kernelt, vagy vissza kell mennem a 2.6.y-ba?
- A hozzászóláshoz be kell jelentkezni
Az éppen futó, betöltött verziójú kernelt természetesen újra tudod fordítani, amennyiben rendelkezel a forráskóddal és a .config fájllal is. Ez a folyamat teljesen független az éppen futó kerneltől.
Tehát ha gép indulásakor kiválasztottad a 2.6.x-et, akkor ettől függetlenül képes vagy 2.6.x, 2.6.y, 2.6.z stb kernelt fordítani. A fordítás végeztével kell a lefordított kernelt telepítened, majd a következő indításkor azt indítanod.
Egy kis segítség:
- kernel fordítás képekkel illusztrálva
- Kernel fordítás Debian Linux alatt - utóbbi doksiért köszönet Bandinak :)
--
http://kac.duf.hu/~balage/blog
- A hozzászóláshoz be kell jelentkezni
kösz, nagyjából működik
viszont grub-install mostmár nem megy:
$ mount
/dev/sda2 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
/dev/sda3 on /home/viktor type ext3 (rw)
/dev/sda1 on /mnt/win type vfat (rw)
nfsd on /proc/fs/nfsd type nfsd (rw)
$ cat /etc/fstab
# /etc/fstab: static file system information.
#
#
proc /proc proc defaults 0 0
/dev/sda2 / ext3 defaults,errors=remount-ro 0 1
/dev/sda3 /home/viktor ext3 defaults 0 0
/dev/sda1 /mnt/win vfat defaults 0 0
/dev/sda4 none swap sw 0 0
/dev/sdc /media/cdrom0 udf,iso9660 user,noauto 0 0
# grub-install /dev/sda
/dev/sda does not have any corresponding BIOS drive.
# grub-install /dev/hda
/dev/hda: Not found or not a block device.
$ cat /boot/grub/menu.lst
...
title Linux 2.6.24-rc6-git12
root (hd0,1)
kernel /boot/vmlinuz-2.6.24-rc6-git12 root=/dev/sda2 ro
savedefault
title Linux 2.6.24-rc6-git12 (single)
root (hd0,1)
kernel /boot/vmlinuz-2.6.24-rc6-git12 root=/dev/sda2 ro single
savedefault
title Linux 2.6.24-rc6
root (hd0,1)
kernel /boot/vmlinuz-2.6.24-rc6 root=/dev/hda2 ro
savedefault
title Linux 2.6.24-rc6 (single)
root (hd0,1)
kernel /boot/vmlinuz-2.6.24-rc6 root=/dev/hda2 ro single
savedefault
### END DEBIAN AUTOMAGIC KERNELS LIST
# This is a divider, added to separate the menu items below from the Debian
# ones.
title Other operating systems:
root
# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/hda1
title Microsoft Windows XP Home Edition
root (hd0,0)
savedefault
makeactive
chainloader +1
na, ilyenkor vajon mi a teendő. ja, egyébként engem az zavart meg, hogy grub menuben root (hd0,1), de root=/dev/sda2. ha átírom root (sd0,1)-re, akkor nem indul.
plusz érdekességként először átírtam fstabban
/dev/hda2 / ext3 defaults,errors=remount-ro 0 1
re, amíg grubban javítottam a sd0,1-et, utána nem írtam át, és a libata-s kernel ugyanúgy felmountolta a /dev/hda2-t (és mellette a többi /dev/sda-s cuccot), látszottak a fájlok, annak ellenére, hogy nem létezik a /dev/hda :)
szerk: hmm, most jutott eszembe, lehet, hogy fstabban meghagyom hda-nak a dolgokat (+ menu.lst-ben is), hátha úgy jó lesz. na majd holnap. de azért, ha nektek más az elképzelésetek, ne tartsátok vissza
- A hozzászóláshoz be kell jelentkezni
nem vált be. ha grubban átírom /dev/hda2-re, akkor pánikba esik
fstab-ban átírás szintén nem válik be, valamiért csak /dev/hda2 (/)-vel működik a trükk, a többit nem találja (habár egyáltalán nincs /dev/hda*)
úgyhogy érdekes:)
szóval maradt minden úgy, ahogy az előbb írtam, egyelőre ez a legkevésbé sz*r megoldás, viszont grub-install továbbra is görcsöl
vagy (ál)scsi lemezeken nem lehet mbr-be telepíteni a grub-ot? vagy mi...
még lehet, hogy próbát teszek lilo-val (ezt már tényleg holnap), ha addig nem jut eszembe valami más, vagy ti nem álltok elő valami ötlettel
- A hozzászóláshoz be kell jelentkezni
A grub csak (hdx,x) formában látja az eszközöket. A root=/dev/sdx más, az kernelnek átadott paraméter.
Amit leírtál tünet, akkor fordulhat elő, ha jól emlékszem, hogy benne marad a régi ata rendszer is egyidőben a libata-val, pedig azt a kernel configod-ban nem láttam.
Ha segít, akkor itt az én kernel config fájlom (2.6.23).
fstab részlet így néz ki:
#/dev/hdc1 /boot ext2 noauto,ro,noatime 1 2
UUID=3ee7e92f-198d-4a20-8e55-55eb4426fe76 /boot ext2 noauto,ro,noatime 1 2
#/dev/hdc2 / ext3 defaults,noatime 0 1
UUID=1f6146fb-7c89-4c3a-b6c0-80ae8f220e86 / ext3 defaults,noatime 0 1
#/dev/hdc4 /home ext3 defaults,noatime,user_xattr 0 2
UUID=1859ae58-efb4-465f-91be-74e8ef5d9a45 /home ext3 defaults,noatime 0 2
/dev/sg0 /mnt/cdrom auto user,noauto 0 0
A régi device node-os formátumot átírtam UUID-re, így bármi legyen a device node, megfelelően csatolja a rendszer a partíciókat.
- A hozzászóláshoz be kell jelentkezni
nem maradt benne
minden jól fel van csatolva, működik minden partíció, rádugott pendrive, külső vinyó, betett cd, akármi megy rendesen
csak grub rinyál
hát nem tudom, ha más nem, akkor lilo-zok egyet, hátha, épp most fordul az -rc7
- A hozzászóláshoz be kell jelentkezni
na, miután liloval ment, beugrott:
/boot/grub/device.map:
(hd0) /dev/hda
itt átírtam sda-ra, és működik
köszi az infókat, mostmár én is libata-zok =)
- A hozzászóláshoz be kell jelentkezni
Egészségedre :)
- A hozzászóláshoz be kell jelentkezni