Linux за българи: Форуми

Linux секция за напреднали => Хардуерни и софтуерни проблеми => Темата е започната от: vstoykov в Jul 08, 2004, 19:58



Титла: Метод на компресия за VS Live GNU/Linux
Публикувано от: vstoykov в Jul 08, 2004, 19:58
Оказа се, че модулът cloop, който се ползва в Knoppix (и във VS Live) не може да се компилира за ядро 2.6.7. Как предлагате да се направи новата версия на VS Live? Да се ползва старо ядро, да се чака Klaus Knopper да напише нова версия на cloop, или да се ползва друг метод на компресия?
С mkzftree не съм се занимавал и не съм запознат с възможностите на този метод. В ранните версии на VS Live съм ползвал cramfs (този метод се ползваше и в Slackware-live), но се отказах от него тъй като не поддържа файлове по-големи от 16MB. Един от файловете с такива размери е  /usr/lib/aspell/bg.rws който съдържа думите от българския език за aspell (проверка на правописа). Има и други.


Титла: Метод на компресия за VS Live GNU/Linux
Публикувано от: savel в Jul 08, 2004, 23:06
може да се пробваме да го натъкмим към 2.6.7 , щом работи на 2.6.6 едва ли ще са нужни големи промени ,
с каква грешка гърми при компилиране ?


Титла: Метод на компресия за VS Live GNU/Linux
Публикувано от: vstoykov в Jul 08, 2004, 23:42
Цитат (savel @ Юли 09 2004,00<!--emo&:0)
може да се пробваме да го натъкмим към 2.6.7 , щом работи на 2.6.6 едва ли ще са нужни големи промени ,
с каква грешка гърми при компилиране ?

Файлът Makefile е счупен. Пише
Примерен код

 include $(KERNEL_DIR)/conf.vars

на едно място, а такъв файл няма.

След редактиране на Makefilе успявам да го компилирам, но при опит да го заредя ми дава:

Примерен код

root@darkstar:~/lab/cloop/cloop-2.01# insmod cloop.ko                                                                        
insmod: error inserting 'cloop.ko': -1 Invalid module format                                                                
root@darkstar:~/lab/cloop/cloop-2.01#    


или

Примерен код

root@darkstar:~/lab/cloop/cloop-2.01# insmod cloop.o
insmod: error inserting 'cloop.o': -1 Unknown symbol in module
root@darkstar:~/lab/cloop/cloop-2.01#


Някои от промените, които съм пробвал:
Примерен код

guest@darkstar:/root/lab/cloop$ diff cloop-2.01/Makefile Makefile
2c2
<
---
> PATCHLEVEL=7
6c6
< CFLAGS:=-Wall -Wstrict-prototypes -Wno-trigraphs -O2 -s -I. -fno-strict-aliasing -fno-common -fomit-frame-pointer
---
> CFLAGS:=-O2 -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -s -I. -fno-strict-aliasing -fno-common -fomit-frame-pointer
9c9
< include $(KERNEL_DIR)/conf.vars
---
> #include $(KERNEL_DIR)/conf.vars
15c15
< MODVERSIONS:= -DMODVERSIONS -include $(KERNEL_DIR)/include/linux/modversions.h
---
> MODVERSIONS:= -DMODVERSIONS -include $(KERNEL_DIR)/include/config/modversions.h
guest@darkstar:/root/lab/cloop$


Примерен код

root@darkstar:~/lab/cloop# diff cloop-2.01/Makefile Makefile
2c2
<
---
> PATCHLEVEL=7
6c6
< CFLAGS:=-Wall -Wstrict-prototypes -Wno-trigraphs -O2 -s -I. -fno-strict-aliasing -fno-common -fomit-frame-pointer
---
> CFLAGS:=-O2 -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -s -I. -fno-strict-aliasing -fno-common -fomit-frame-pointer
9c9
< include $(KERNEL_DIR)/conf.vars
---
> #include $(KERNEL_DIR)/conf.vars
15c15
< MODVERSIONS:= -DMODVERSIONS -include $(KERNEL_DIR)/include/linux/modversions.h
---
> MODVERSIONS:= -DMODVERSIONS -include $(KERNEL_DIR)/include/config/modversions.h
30c30
< ifeq ($(PATCHLEVEL),6)
---
> #ifeq ($(PATCHLEVEL),6)
32,34c32,34
< else
< MODULE:=cloop.o
< endif
---
> #else
> #MODULE:=cloop.o
> #endif
root@darkstar:~/lab/cloop#


Не съм пробвал как се компилира на 2.6.6. Успешно съм го компилирал на 2.4.x като съм махнал "include $(KERNEL_DIR)/conf.vars " и като съм добавил "-О2 " след "CFLAGS:=".

Текуща версия:
cloop_2.01-4.tar.gz

Връзки:
http://lists.altlinux.ru/pipermail/devel-kernel/2004-March/003892.html
http://www.knoppix.net/forum/viewtopic.php?t=11483
http://developer.linuxtag.net/knoppix/sources/


Титла: Метод на компресия за VS Live GNU/Linux
Публикувано от: savel в Jul 10, 2004, 17:23
ами ето ти и малко линкчета от мен :

http://www.fooz.org/cloop-2.6.php

http://www.morphix.org/debian/cloop-2.6/

http://rpm.pbone.net/index.p....pm.html

за съжаление нито можах да ти тествам нито мога да ти кажа откъде идва грешката

успех


Титла: Метод на компресия за VS Live GNU/Linux
Публикувано от: vstoykov в Jul 10, 2004, 22:36
Почти съм готов с пренаписването на скриптовете така че да може да се ползва друг метод на компресия - mkzftree.

С новите скриптове ще има възможност да се ползват и двата метода. Ще бъдат достъпни на
http://vstoykov.hit.bg/vslivecd/.


Титла: Метод на компресия за VS Live GNU/Linux
Публикувано от: mironcho в Jul 10, 2004, 23:20
Не по темата за cloop.
Чувствай се свободен да публикуваш новини винаги когато направиш нова версия или пък ако искаш да помолиш хората за помощ и т.н. Лично на мен много ми харесва това което правиш :)

Продължавай в същия дух!


Титла: Метод на компресия за VS Live GNU/Linux
Публикувано от: vstoykov в Jul 11, 2004, 11:26
Цитат (mironcho @ Юли 11 2004,00:20)
Не по темата за cloop.
Чувствай се свободен да публикуваш новини винаги когато направиш нова версия или пък ако искаш да помолиш хората за помощ и т.н. Лично на мен много ми харесва това което правиш :)

Продължавай в същия дух!


Благодаря за подкрепата  :)

В момента пиша това с новата версия на VS Live, която ползва mkzftree за компресиране. Надявам се скоро да успея да я пусна официално.

Има малко странни съобщеня за грешка по време на hotplug:
Примерен код

guest@darkstar:~$ dmesg | grep acpi
pciehp: acpi_pciehprm:\_SB_.PCI0 evaluate _BBN fail=0x5
pciehp: acpi_pciehprm:get_device PCI ROOT HID fail=0x5
shpchp: acpi_shpchprm:\_SB_.PCI0 evaluate _BBN fail=0x5
shpchp: acpi_shpchprm:get_device PCI ROOT HID fail=0x5
pciehp: acpi_pciehprm:\_SB_.PCI0 evaluate _BBN fail=0x5
pciehp: acpi_pciehprm:get_device PCI ROOT HID fail=0x5
shpchp: acpi_shpchprm:\_SB_.PCI0 evaluate _BBN fail=0x5
shpchp: acpi_shpchprm:get_device PCI ROOT HID fail=0x5
pciehp: acpi_pciehprm:\_SB_.PCI0 evaluate _BBN fail=0x5
pciehp: acpi_pciehprm:get_device PCI ROOT HID fail=0x5
shpchp: acpi_shpchprm:\_SB_.PCI0 evaluate _BBN fail=0x5
shpchp: acpi_shpchprm:get_device PCI ROOT HID fail=0x5
pciehp: acpi_pciehprm:\_SB_.PCI0 evaluate _BBN fail=0x5
pciehp: acpi_pciehprm:get_device PCI ROOT HID fail=0x5
shpchp: acpi_shpchprm:\_SB_.PCI0 evaluate _BBN fail=0x5
shpchp: acpi_shpchprm:get_device PCI ROOT HID fail=0x5
pciehp: acpi_pciehprm:\_SB_.PCI0 evaluate _BBN fail=0x5
pciehp: acpi_pciehprm:get_device PCI ROOT HID fail=0x5
shpchp: acpi_shpchprm:\_SB_.PCI0 evaluate _BBN fail=0x5
shpchp: acpi_shpchprm:get_device PCI ROOT HID fail=0x5
pciehp: acpi_pciehprm:\_SB_.PCI0 evaluate _BBN fail=0x5
pciehp: acpi_pciehprm:get_device PCI ROOT HID fail=0x5
shpchp: acpi_shpchprm:\_SB_.PCI0 evaluate _BBN fail=0x5
shpchp: acpi_shpchprm:get_device PCI ROOT HID fail=0x5
pciehp: acpi_pciehprm:\_SB_.PCI0 evaluate _BBN fail=0x5
pciehp: acpi_pciehprm:get_device PCI ROOT HID fail=0x5
shpchp: acpi_shpchprm:\_SB_.PCI0 evaluate _BBN fail=0x5
shpchp: acpi_shpchprm:get_device PCI ROOT HID fail=0x5
pciehp: acpi_pciehprm:\_SB_.PCI0 evaluate _BBN fail=0x5
pciehp: acpi_pciehprm:get_device PCI ROOT HID fail=0x5
shpchp: acpi_shpchprm:\_SB_.PCI0 evaluate _BBN fail=0x5
shpchp: acpi_shpchprm:get_device PCI ROOT HID fail=0x5
pciehp: acpi_pciehprm:\_SB_.PCI0 evaluate _BBN fail=0x5
pciehp: acpi_pciehprm:get_device PCI ROOT HID fail=0x5
shpchp: acpi_shpchprm:\_SB_.PCI0 evaluate _BBN fail=0x5
shpchp: acpi_shpchprm:get_device PCI ROOT HID fail=0x5
guest@darkstar:~$


и освен това не работи този код (от скрипта /etc/udev/scripts/make_extra_nodes.sh, който се извиква от скритпва /etc/rc.d/rc.udev):

Примерен код

# Seed the loop device by adding /dev/loop0 (use this, and they'll all appear):
if [ ! -r /dev/loop0 ]; then                                                    
  mknod -m 660 /dev/loop0 b 7 0                                                
  chown root:disk /dev/loop0                                                    
fi                                                                              


и се наложи да напиша това:

Примерен код

if [ ! -d /dev/loop ]; then                                                    
  echo "Създаване на директория /dev/loop и устройства в нея..."                
  mkdir /dev/loop                                                              
  for num in 0 1 2 3 4 5 6 7; do                                              
    if [ ! -r /dev/loop/${num} ]; then                                          
      mknod -m 660 /dev/loop/${num} b 7 ${num}                                  
      ln -sf /dev/loop/${num} /dev/loop${num}                                  
      chown root:disk /dev/loop/${num}                                          
    fi                                                                          
  done                                                                          
fi                                                                              


Стартирам /etc/rc.d/rc.udev преди /sbin/init. Монтирани  са /proc  и /sys, но компресираната файлова система не е монтирана т.е. някои модули ги няма. Възможно е някой важен модул да не съм включил в initrd-то.


Титла: Метод на компресия за VS Live GNU/Linux
Публикувано от: vstoykov в Jul 11, 2004, 13:29
Какво означава това:

man mkisofs
Примерен код

       -D     Do not use deep directory relocation,  and  instead
              just pack them in the way we see them.
              This  violates the ISO9660 standard, but it happens
              to work on many systems.  Use with caution.


Първото изречение не ми е ясно. Видях, че тази опция се ползва в Linux-Live.


Титла: Метод на компресия за VS Live GNU/Linux
Публикувано от: vstoykov в Jul 11, 2004, 18:19
Цитат (vstoykov @ Юли 10 2004,23:36)
Почти съм готов с пренаписването на скриптовете така че да може да се ползва друг метод на компресия - mkzftree.

С новите скриптове ще има възможност да се ползват и двата метода. Ще бъдат достъпни на
http://vstoykov.hit.bg/vslivecd/.

Както обещах, скриптовете са качени.

ISO-то е готово, но нямам възможност да го кача...
Писал съм в този форум молба за това. Когато ISO-то бъде качено на http://d.linux-bg.org/, ще пиша за това в новините.


Титла: Метод на компресия за VS Live GNU/Linux
Публикувано от: vstoykov в Jul 17, 2004, 23:42
Пишете какви са ви впечатленията от новия метод за компресиране на данните. На мен ми изглежда същата скоростта (не съм правил измервания с хронометър).


Титла: Метод на компресия за VS Live GNU/Linux
Публикувано от: vstoykov в Jul 21, 2004, 19:52
Новата версия на cloop се компилира успешно и работи :-)

Хедърите са на старото ядро с което са компилирани glibc и други програми (2.4.26), а ядрото е 2.6.7 (сорса е на /usr/src/linux-2.6.7 и имаше връзка linux -> linux-2.6.7).

Компилира се просто чрез

Примерен код

make


без параметри.

http://d.linux-bg.org/download/distros/VS_Live/src/cloop-2.01.4.p2.tgz


Титла: Метод на компресия за VS Live GNU/Linux
Публикувано от: vstoykov в Jul 23, 2004, 21:27
В същност не работи. Наблюдава се нещо странно:
Примерен код

Деинсталирам стария пакет:

removepkg /var/log/packages/kernel-modules-2.6.7vslive-i486-vslive23072004

Инсталирам още по-стар пакет:

installpkg kernel-modules-2.6.7-i486-vslive3.tgz

Вижда се, че работи:

root@darkstar:/lib/modules# insmod misc/cloop.ko
root@darkstar:/lib/modules# rmmod misc/cloop.ko
root@darkstar:/lib/modules# insmod misc/cloop.ko
root@darkstar:/lib/modules# rmmod misc/cloop.ko

След рестарт:

root@darkstar:/lib/modules# insmod misc/cloop.ko
insmod: error inserting 'misc/cloop.ko': -1 Unknown symbol in module
root@darkstar:/lib/modules#

Не се зареждат модулите за reiserfs, isofs и др.


Титла: Метод на компресия за VS Live GNU/Linux
Публикувано от: в Jul 29, 2004, 10:33
http://squashfs.sourceforge.net/ - squashfs 2.0 - novite gentoo livecds idvat s neia. niama problemi s 2.6 kernels. moze da bude module ili napravo w kernel-a.


Титла: Метод на компресия за VS Live GNU/Linux
Публикувано от: vstoykov в Aug 01, 2004, 12:00
Реших проблема с компилирането на cloop - просто компилирах още веднъж ядрото, пробвах пак да компилирам cloop и стана.


Титла: Метод на компресия за VS Live GNU/Linux
Публикувано от: vstoykov в Aug 01, 2004, 12:06
Цитат (Guest @ Юли 29 2004,11:33)
http://squashfs.sourceforge.net/ - squashfs 2.0 - novite gentoo livecds idvat s neia. niama problemi s 2.6 kernels. moze da bude module ili napravo w kernel-a.

Ще я пробвам.


Титла: Метод на компресия за VS Live GNU/Linux
Публикувано от: n_antonov в Aug 01, 2004, 12:26
Не мога да напиша впечатления за новия метод на компресиране, защото още не съм го видял, но се присъединявам към Мирончо. Мисля, че правиш нещо много смислено и то качествено, така че успех и занапред. Ще помагаме с каквото можем.


Титла: Метод на компресия за VS Live GNU/Linux
Публикувано от: vstoykov в Sep 02, 2004, 22:45
С ядрото 2.6.8.1 пак не се компилира текущата версия на cloop....

Може да е за добро - държи се доста добре с новия метод на компресия (mkzftree).

Ето какво казват за новата версия 05-09-2004-0:
Цитат

За пръв път пробвах vslive и останах много очарован, най-вече от конфигурацията при инсталиране, която е на български и всичко е просто и ясно. Скоростта с която се зареди цялата дистрибуция, заедно с gui-то също е впечатляваща.

Източник:този форум.