PLD Linux Forum
Oficjalne forum dystrybucji PLD Linux

Problemy Ogólne - [HOWTO] pld na penie male howto ;]

n30 - 12 Czerwiec 2006, 23:17
Temat postu: [HOWTO] pld na penie male howto ;]
witam
troche sie z tym meczylem wiec postanowilem spisac co i jak:
http://pozlan.info/pldusb/
czyli pld na pendrive.

sam sie nie zle naszukalem jakis opisow dzieki ktorym mozna by to szybko zrobic oraz prosilem o pomoc miedzy innymi na tym forum oraz na grupach o linuxie... , wiec jesli sie komus przyda to dobrze, prosze takze o konstruktywne uwagi :)
postaram sie dopracowac artykul :)

Pozdro

spider - 13 Czerwiec 2006, 07:18

extra

wklej to tutaj, a ja dokleje to do faq

n30 - 13 Czerwiec 2006, 09:40

ok wklejam :)

Pld na pendrive.

dysponuje penem kingstone 512mb oraz jednym serwerem z pld.

INSTALACJA
Najpierw musimy zainstalowac system na pendrive.
Sama instalacja pld jest trywialna wystarczy zaladowac kilka modulow do jadra zamountowac naszego pena i odpalic poldka. Ale po kolei:
najpierw moduly:
ladujemy je poleceniem modprobe (to chyba juz kazdy wie:P) o to lista potrzebnych:
uhci-hcd scsi_mod usb_storage sd_mod (lub ehci-hcd ew ohhci-hcd w zaleznosci od plyty glownej i rodzaju usb jakie posiadamy)
po zaladowaniu modulow mozemy zamountowac naszego pena... jednak lepiej wczesniej odpalic fdiska i zrobic z nim pozadek... Nasz pen jest widoczny jako /dev/sda a partycja do mountowania /dev/sda1. ja ustawilem sobie pierwsza partycje 100mb na fat32 oraz reszta dalem dla ext2.

Kod:
fdisk /dev/sda


Badzmy pewni ze sien ie pomylilismy i np nie edytujemy talbicy partycji np z dev/hda :)

po wybraniu opcji m pokaze sie nam sprytne menu pomocy. Wystarczy usunac partycje (d) oaz dodac nowe (n), partycje sa typu primary (1 i 2) . Podczas Tworzenia partycji program sie pyta od ktorych blokow ma tworzyc partycje zaczynamy od 1 i pozniej wpisujemy np 100M ( co utworzy nam partycje o powierzchni ok 100Mb), gdy tworzymy druga partycje poprostu przyjmujemy wartosci domyslne czyli wciskamy enter.

Gdy utworzymy partycje wystarczy jeszcze:

Kod:
mkfs.ext2 /dev/sda2


Teraz mozesz zamountowac /dev/sda2 bo to na tej partycji zainstalujemy system.
utworz sobie katalog np /pen i

Kod:
mount /dev/sda2 /pen


teraz musimy stworzyc warunki poldkowi co by chlopak mogl sobie zainstalowac pakiety :)

Kod:
mkdir -p /pen/var/cache/poldek-cache


w dokumentacji pld jest zalecane ustawic cachedir na ten katalog co stworzylismy powyzej tak tez uczynmy, opcja ta jest w pliku poldek.conf w /etc/poldek/

teraz musimy stworzyc nowa baze rpmow :

Kod:
rpm --root /pen --initdb


teraz uruchamiamy poldka:

Kod:
poldek --root /pen


i wpisujemy:

Kod:
install setup FHS dev chkconfig dhcpd poldek vim genintrd modutils lilo


sa to podstawowe pakiety wymagane do instalacji, pociagna za soba jakie zaleznosci itp..
z tymi pakietami bedziemy mogli korzystac z naszego systemu... Generalnie mozna wyrzucic lilo, bo i tak sie nie przyda jesli bedziemy bootowac z plytki.. Jesli bysmy chcieli ustawic bootowanie na pena co jest mozliwe wtedy lilo sie przyda.

gdy juz poldek zmeczy te wszystkie pakiety... trzeba by przejsc do instalacji jadra... przed tem jednak trzeba zamountowac /proc

Kod:
mount none /pen/proc -t proc


teraz poldkiem instalujemy jadro

Kod:
poldek --root /pen -i kernel-grsecurity


w tym momencie mamy polowe drogi za soba:)

BOOTOWANIE

z bootowaniem juz nie jest tak lekko, nie wszystkie plyty obsluguja bootowanie z pendrive i osobiscie zlalem ta opcje. stworzylem sobie plytke ktora jest bootujaca i odpala tego pena. polecam doinstalowac jeszcze mc na naszym penie, ew jesli mamy na naszym linuxie takie same jadro jak na penie, mozemy wygenerowac nowy initrd na nasyzm dzialajacym systemie.
jesli chcemy juz dzialac na penie to:

Kod:
chroot /pen


no i teraz musimy wygenerowac initrd z modulami ktore beda oblsugiwac naszego pena... sa to te same moduly ktore ladowalismy przed mountowaniem pena.

Kod:
geninitrd -v --with=uhci_hcd --with=scsi_mod --with=usb_storage \
 --with=sd_mod usbinitrd.gz 2.x.x-wersja_naszego_jaja


Mozemy dodac takze moduly ehci_hcd lub ohci_hcd w zaleznosci od posiadanej plyty (ja dodalem je wszystkie co by uzyskac pelna mobilnosci pomiedzy roznymi komputerami ) glownej, wrazie jesli geninitrd pokaze ze jakis modul cos nie teges to sprawdzmy modprobe czy on istnieje, i jesli istnieje chwilowo usunmy go z listy... skoro mamy nasz kochany initrd musimy go mimo wszystko troche zedytowac... poniewaz mija kilka sekund od momentu zaladowania modulow do pelnego rozpoznania urzadzenia na usb, musimy zrobic mala pauze podczas ladowania systemu.. dlatego tez musimy rozpakowac nasz initrd, jest on domyslnie kompresowany(jesli pracujemy na chroocie nie mamy gzipa itp, wiec lepiej sie przenisesc na nasz nromalny system poleceniem exit) skopiujmy w jakies spokojne miejsce nasz plik np do /test

Kod:
gzip -d usbinitrd.gz


teraz utworzymy sobie katalog /test/initrd i podmountujemy nasz obraz

Kod:
mount -o loop usbinitrd initrd


teraz stworzmy sobie katalog initrd2 i skopiujmy zawrtosc initrd do initrd2, initrd do jakis romfs czyli system tylko do odczytu wiec nie zda sie nam na wiele:). przejdzmy do initrd2 i wyedytujmy plik linuxrc po ladowaniu modulow dodajmy cos na wzor:

Kod:
echo "napisz cos"
read cos


wiem ze to glupie, ale aktualnie nie umiem inaczej sprtynie i bezbolesnie wstrzymac ladowania sie systemu, jesli jakies moduly nam nie chcialy sie zaladowac do initrd mozemy je dodac w tj chwili kopiujac je do lib/modules wystarczy przejrzec te katalogi oraz analogiczne na naszym dysku...(moje moduly byly spakwoane gzipem a w initrd nie byly wiec te co dokopiowalem tez rozpakowalem) i nalezy dokonac odpowiednich wpisow w linuxrc, musimy jeszcze z powrotem zlozyc to do obrazu initrd:

Kod:
genromfs -d initrd2 -f initrd.ready


-d initrd2 to nazwa katalogu a initrd.ready to nasz gotowy plik.
wypadaloby go jeszcze spakowac:

Kod:
gzip -f -9 initrd.ready


teraz przydzadza nam sie dwa pakiety ktore niestety trzeba pobrac z sieci mkisofs mozna znalesc w rpmie potrzebujemy wersje 1.13 oraz syslinux a ten najlepiej sciagnac z strony projektu. mkisofs instalujemy, a syslinux tylko rozpakowywujemy nie potrzebujemy go instalowac. Tworzymy sobie katalog /test/boot/ i do niego kopiujemy: jadro (vmlinuz) i nasz initrd( z naszego systemu na penie) ktoremu zmienmy nazwe na poprostu initrd kopiujemy takze z syslinuxa plik isolinux.bin
tworzymy plik isolinux.cfg (polecenie touch) i edytujemy go:

Kod:
serial 0
default linux
say pld-usb
prompt 1
timeout 90
label linux
kernel vmlinuz
append initrd=initrd root=dev/sda2



To teraz pozostaje nam stworzenie pliku iso dla plyty:)

wchodzimy do katalogu w /test/boot/ i wykonujemy :

Kod:
 mkisofs -v -b isolinux.bin -c boot.cat \
-no-emul-boot -boot-load-size 4 boot-info-table \
-J -full-iso9660-filenames -R -hide-rr-moved \
-sysid Linux -V "CD" -o ../cd.iso .



lacznie z kropka na koncu. W katalogu glownym powstanie nam cd.iso u mnie zajmuje mniej niz 2mb :) nagrywamy obraz na plytke i probujemy szczescia:), proponuje uzyc plytki cd-rw ja zuzylem ok 12 plytek zanim mi to zaczelo chulac jak nalezy.
Finalnie nalezy ustawic bootowanie na cd, wlozyc plytke i poczekac az sie system zacznie uruchamiac. w momencie jak pokaze "napisz cos", nalezy odczekac az system wykryje nam pendrive i wystarczy wcisnac enter i powinno chulac:). aby sie zalogowac nalezy uruchomic system w trybie single, przy bootowaniu wpisac: linux single
i wykonac polecenie passwd ktore nada haslo dla roota dla naszego kochanego systemu :)


---------
wersja nie co poprawiona... jak co to i tak prosze dokonywac zmian, milo by bylo jakby ktos mogl zrobic takiego initrd z sleepem :) co by bylo mzona zautomatyzowac bootowanie:)
Kod:
Kod:

spider - 13 Czerwiec 2006, 10:38

dodane, dzieki
shadzik - 14 Czerwiec 2006, 15:19

Na http://pl.docs.pld-linux.org z tym bardzo proszę. :)
prism - 22 Czerwiec 2006, 08:28

n30 napisał/a:

Kod:
echo "napisz cos"
read cos


wiem ze to glupie, ale aktualnie nie umiem inaczej sprtynie i bezbolesnie wstrzymac ladowania sie systemu


Kod:
man sleep?
;)

n30 - 22 Czerwiec 2006, 10:17

ql tlyko w pld w initrd, sleep nie jest wkompilowane... zreszta request o cos takiego jest na dole howto.
grymek - 25 Październik 2006, 21:20

ello jak myślicie na odtwarzaczu mp3 będę mógł sobie zainstalowac PLD?? Trochę się pietram czy jak zacznę bawić się w tworzenie partycji itp to czy nie przestanie mi odtwarzać muzyki :)

aha i jeszcze jedno czy dało by radę zainstalować gruba na tym. Bo nie chcę ładować tam całej dystrybucji swojej tylko rescuecd. Na stronie projektu jest opis ale z instalacją selinux ale mnie to nie kręci bo łatwiej i wygodniej dla mnie jest mieć gruba.

n30 - 25 Październik 2006, 21:40

zrob kopie cat
pozniej pozmieniaj i jak sie zepsuje to wgraj z powrotem ;]

grymek - 25 Październik 2006, 21:55

hehe łatwo powiedzieć :) Właśnie się zastanawiam czy tam jest jakiś rom z softem czy wszystko jest na fleshu zapisane. Chyba to pierwsze bo żadnych innych plików i katalogów nie widzę. A jest to odtwarzacz mp4 więc troche funkcji niby ma... A nie chce zepsuć.
bas - 26 Październik 2006, 01:08

Na podstawie tego topic'u i własnych poprawek stworzyłem działający system(testowane na aparacie cyfrowym), można pobrać tu: http://iret.math.uni.lodz...pen-0.1.img.bz2
md5sum:
5d56dc47ee9ede3faadcf8ae1498b32c pen-0.1.img.bz2
LIsta zainstalowanych pakietów znajduje się tu: http://pen.szlanta.pl/


Po pobraniu:
Kod:

bzip2 -d pen-0.1.img.bz2
dd if=pen-0.1.img of=/dev/sda

Aby zalogowac się do systemu:
Kod:

login: root
hasło: pld


Uwaga na zastrzeżenia http://forum.pld-linux.org/viewtopic.php?t=1915

Pozdrawiam BAS

GEN - 3 Listopad 2006, 11:39

Witam
Zgodnie ze wszystkimi wskazowkami postawilem system na pendrive'ie boot'ujacy sie samodzielnie (bez cd/fd), ale w edycji pliku z romu initrd musialem zrobic read 'cos' po ladowaniu modulow tak jak to zrobil kolega z howto, bo komenda sleep 5 nie chce mi dzialac. Pierwszy albo drugi wpis umieszczam zaraz pod ostatnia linijka insmod. Niedzialanie sleep objawia sie tym, ze przy uruchamianiu systemu wywala critical error w stylu:
/bin/sleep: 1: unexpected "["
Prosze o porade, bo uzywanie read po prostu brzydko wyglada heh

ps.
Sam systemik dziala naprawde super, przez chwile route'owal net dla sieci ;-)

dziubek - 17 Listopad 2006, 21:15

bas napisał/a:
Na podstawie tego topic'u i własnych poprawek stworzyłem działający system(testowane na aparacie cyfrowym), można pobrać tu: http://iret.math.uni.lodz...pen-0.1.img.bz2
md5sum:
5d56dc47ee9ede3faadcf8ae1498b32c pen-0.1.img.bz2


Link nie dziala. Rowniez link do opisu z pierwszego postu jest nieaktualny,
Mozna prosic o jakis nowy namiar na poradnik i gotowa wersje :) ?


pozdr
dziubek

bas - 17 Listopad 2006, 21:56

dziubek napisał/a:
Link nie dziala. Rowniez link do opisu z pierwszego postu jest nieaktualny,
Mozna prosic o jakis nowy namiar na poradnik i gotowa wersje :) ?


Faktycznie serwer, na którym leży obraz nie odpowiada. Chwilowo możesz pobrać stąd http://pen.szlanta.pl/download/0.1/pen-0.1.img.bz2
co do spisu pakietów to stronka http://pen.szlanta.pl działa.

Pozdrawiam BAS

dziubek - 18 Listopad 2006, 22:41

bas napisał/a:
dziubek napisał/a:
Link nie dziala. Rowniez link do opisu z pierwszego postu jest nieaktualny,
Mozna prosic o jakis nowy namiar na poradnik i gotowa wersje :) ?


Faktycznie serwer, na którym leży obraz nie odpowiada. Chwilowo możesz pobrać stąd http://pen.szlanta.pl/download/0.1/pen-0.1.img.bz2
co do spisu pakietów to stronka http://pen.szlanta.pl działa.

Pozdrawiam BAS


Dzieki za szybki odzew i pomoc :)
pozdr
dziubek

saxifrage - 18 Listopad 2006, 23:15

n30 napisał/a:
ql tlyko w pld w initrd, sleep nie jest wkompilowane... zreszta request o cos takiego jest na dole howto.

to może busybox? on jest w initrd
Kod:
 /bin/busybox sleep 7

(nie sprawdzone:)

djrzulf - 3 Wrzesień 2007, 20:05

usleep 7000000 i na 7s robi przerwę :)
secam - 9 Październik 2007, 19:18

Witam!
Czy da się, jeśli tak, to jak, odpalić PLD z pena jeśli bios nie bootuje z usb,
a cdrom jest zepsuty, za to działa flopydisk?

bas - 9 Październik 2007, 19:37

secam napisał/a:
Czy da się, jeśli tak, to jak, odpalić PLD z pena jeśli bios nie bootuje z usb,
a cdrom jest zepsuty, za to działa flopydisk?

Da się(nie sprawdzałem, ale w teorii tak) odpalasz z dyskietki gdzie masz sbm i wskazujesz, że mam dalej bootować z usb.
http://sourceforge.net/pr...p?group_id=4185
Jeśli sbm nie potrafi wskazać z jakiś powodów usb to możesz sobie na dyskietce umieścić dowolny bootloader.

Pozdrawiam BAS

hoek - 12 Maj 2008, 22:36

robię wszystko jak w instrukcji napisane :) a gdy chcę poldkiem zainstalować shadow i chkconfig to nie ma takich pakietów :( instaluje z rescue 2.95
bas - 12 Maj 2008, 22:42

hoek napisał/a:
robię wszystko jak w instrukcji napisane :) a gdy chcę poldkiem zainstalować shadow i chkconfig to nie ma takich pakietów :( instaluje z rescue 2.95

Bo instalujesz TH a w TH nie ma z tego co pamiętam(nie mam pod ręką działającego TH) shadow, jest passwd-cośtam.

Pozdrawiam BAS

hoek - 13 Maj 2008, 08:03

hmm ok, to jak ac zainstalować? zmienić ino poldek source? na płytce rescue jest poldek-ac ale nie śmiga niezgodności wywala :(
bas - 13 Maj 2008, 08:07

hoek napisał/a:
jak ac zainstalować?

http://rescuecd.pld-linux.org/download/2005-10-23/

Pozdrawiam BAS

hoek - 13 Maj 2008, 08:33

aha po prostu starsze rescue ok :) dzięki :)

a tak poza konkursem to istnieje możliwość zainstalowania th na penie? czy jeszcze nie?
czy jest po prostu inna lista pakietów :)

bas - 13 Maj 2008, 08:47

hoek napisał/a:
czy jest po prostu inna lista pakietów :)

yeap.
Cytat:
a tak poza konkursem to istnieje możliwość zainstalowania th na penie?

Tak, różnice są analogiczne jak pomiędzy instalacją ac i th na normalnym dysku.
Właściwie to jedyną różnicą pomiędzy instalacją na dysku sata/scsi a usb-storage(np. pendrive) są moduły jakie trzeba włożyć do initrd.

Pozdrawiam BAS

hoek - 13 Maj 2008, 09:08

dziękuje bardzo za odpowiedzi na moje być może trywialne pytanka :P

czas zasiąść nazot do zabawy :)

pozdrawiam i jeszcze raz dziękuje :)

paszczus - 18 Sierpień 2008, 20:45

No, ciekawy temat :) Bylo jak zrobic rescueCD na pendrive, ale tego nie bylo.
Moze by to tez wrzucic na pld-users.org ?

uzi18 - 14 Wrzesień 2008, 10:52

Moja propozycja dzieki temu bez cudowania mozna zrobic opoznienie - wystarcy dodac do genienitrd opcje --with-wait_key

Ewentualnie linijke :
Kod:
WAIT_FOR_KEY=yes

nalezy dodac do /etc/sysconfig/geninitrd

testujcie - latka na geninitrd :

Kod:
$ diff -u /sbin/geninitrd /sbin/geninitrd_usb
--- /sbin/geninitrd     2008-08-06 13:16:10.000000000 +0200
+++ /sbin/geninitrd_usb 2008-09-14 11:51:20.000000000 +0200
@@ -25,6 +25,7 @@
 USEINSMODSTATIC=no
 USE_SUSPEND=yes
 USE_TUXONICE=no
+WAIT_FOR_KEY=no
 # it should be safe to remove scsi_mod from here, but I'm not sure...
 PRESCSIMODS="-scsi_mod unknown -sd_mod"
 PREIDEMODS="-ide-core unknown -ide-detect -ide-disk"
@@ -102,7 +103,7 @@
        echo "       [--with-suspend] [--without-suspend]"
        echo "       [--with-tuxonice] [--without-tuxonice]"
        echo "       [--without-dmraid] [--without-multipath]"
-       echo "       [--without-blkid]"
+       echo "       [--without-blkid] [--with-wait_key]"
        echo "       <initrd-image> <kernel-version>"
        echo ""
        echo "example:"
@@ -1703,6 +1704,9 @@
        --without-blkid)
                USE_BLKID=no
                ;;
+       --with-wait_key)
+               WAIT_FOR_KEY=yes
+               ;;
        --with=*)
                BASICMODULES="$BASICMODULES ${1#--with=}"
                ;;
@@ -2073,6 +2077,13 @@
 # additional devs always needed
 [ ! -e "$DESTDIR/$rootdev_add" ] && inst $rootdev_add /dev

+if is_yes "$WAIT_FOR_KEY"; then
+add_linuxrc <<-'EOF'
+       echo "Press ENTER to start boot ..."
+       read waitforkey
+EOF
+fi
+
 if [ "$INITRDFS" = "initramfs" ]; then
        inst_d /newroot
        if [ "$rootdev" = "/dev/nfs" ]; then


Moze pozniej podesle na pld-devel-pl i wrzuce do cvs ... zobaczymy.

Czekam na wasz odzew.
ps. dzieki temu przenioslem zwykle th na pena i dziala ...

ps2. padla propozycja (dzieki adamg) wykorzystania w pliku /etc/sysconfig/geninitrd zmiennej typu :
MODULE_{nazwa modulu}_USLEEP=opoznienie_po_zaladowaniu.

edit:

Bardziej elegancki sposob (UWAGA! U MNIE DZIALA ):
- czekamy 30 sek. na pojawienie sie root-a jesli sie nie pojawi pokazujemy userowi co ma innego do wyboru

Kod:

--- /sbin/geninitrd    2008-08-06 13:16:10.000000000 +0200
+++ /home/users/uzi/geninitrd    2008-09-15 01:51:25.000000000 +0200
@@ -2125,6 +2125,30 @@
             device=$rootdev
         fi
 
+        # 30 sekund opoznienia na poczatek
+        echo "Waiting for root device apear "
+        timetowait=30
+        device_short=`basename $device /dev/`
+        while [ "$timetowait" != "0" ];
+        do
+            timetowait=$((timetowait - 1))
+            echo -n "."
+            wehaveroot=`grep $device_short /proc/partitions`
+
+            if [ -z "$wehaveroot" ]; then
+                sleep 1
+            else
+                timetowait=0
+                echo "Found root device"
+            fi
+        done
+
+        if [ -z "$wehaveroot" ]; then
+            busybox awk '{print "/dev/"$4" "}' /proc/partitions
+            echo -n "Can't find root=$device please choose one from listed above :"
+            read device
+        fi
+
         mount -t $rootfs -r $device /newroot
         init="$(echo "$CMDLINE" | busybox awk '/init=\// { gsub(/.*init=/,NIL,$0); gsub(/ .*/,NIL,$0); print }')"
         if [ -z "$init" -o ! -x "/newroot$init" ]; then


Monitka - 28 Październik 2012, 10:57

Czy taki pendrive działa na zasadzie liveCD i czy dam radę włączyć tam środowisko graficzne, czy trzeba coś dograć?
KrystianT - 28 Październik 2012, 13:23

Jak chcesz ze środowiskiem graficznym to zainteresuj się http://gnome.livecd.pld-linux.org/ - pod Features masz link do prostego sposobu na przeniesienie tego live na pendriva.

Powered by phpBB modified by Przemo © 2003 phpBB Group